commit b58369a6d107c0fe38de16865b18c8495f0bdc8c Author: Cailean Finn Date: Sat Oct 14 13:06:04 2023 +0100 initial commit diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..25564b6 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,58 @@ +# 3D models +*.3dm filter=lfs diff=lfs merge=lfs -text +*.3ds filter=lfs diff=lfs merge=lfs -text +*.blend filter=lfs diff=lfs merge=lfs -text +*.c4d filter=lfs diff=lfs merge=lfs -text +*.collada filter=lfs diff=lfs merge=lfs -text +*.dae filter=lfs diff=lfs merge=lfs -text +*.dxf filter=lfs diff=lfs merge=lfs -text +*.fbx filter=lfs diff=lfs merge=lfs -text +*.jas filter=lfs diff=lfs merge=lfs -text +*.lws filter=lfs diff=lfs merge=lfs -text +*.lxo filter=lfs diff=lfs merge=lfs -text +*.ma filter=lfs diff=lfs merge=lfs -text +*.max filter=lfs diff=lfs merge=lfs -text +*.mb filter=lfs diff=lfs merge=lfs -text +*.obj filter=lfs diff=lfs merge=lfs -text +*.ply filter=lfs diff=lfs merge=lfs -text +*.skp filter=lfs diff=lfs merge=lfs -text +*.stl filter=lfs diff=lfs merge=lfs -text +*.ztl filter=lfs diff=lfs merge=lfs -text +# Audio +*.aif filter=lfs diff=lfs merge=lfs -text +*.aiff filter=lfs diff=lfs merge=lfs -text +*.it filter=lfs diff=lfs merge=lfs -text +*.mod filter=lfs diff=lfs merge=lfs -text +*.mp3 filter=lfs diff=lfs merge=lfs -text +*.ogg filter=lfs diff=lfs merge=lfs -text +*.s3m filter=lfs diff=lfs merge=lfs -text +*.wav filter=lfs diff=lfs merge=lfs -text +*.xm filter=lfs diff=lfs merge=lfs -text +# Video +*.mp4 filter=lfs diff=lfs merge=lfs -text +# Fonts +*.otf filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +# Images +*.bmp filter=lfs diff=lfs merge=lfs -text +*.exr filter=lfs diff=lfs merge=lfs -text +*.gif filter=lfs diff=lfs merge=lfs -text +*.hdr filter=lfs diff=lfs merge=lfs -text +*.iff filter=lfs diff=lfs merge=lfs -text +*.jpeg filter=lfs diff=lfs merge=lfs -text +*.jpg filter=lfs diff=lfs merge=lfs -text +*.pict filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.psd filter=lfs diff=lfs merge=lfs -text +*.tga filter=lfs diff=lfs merge=lfs -text +*.tif filter=lfs diff=lfs merge=lfs -text +*.tiff filter=lfs diff=lfs merge=lfs -text +# Collapse Unity-generated files on GitHub +*.asset linguist-generated +*.mat linguist-generated +*.meta linguist-generated +*.prefab linguist-generated +*.unity linguist-generated +*.aar filter=lfs diff=lfs merge=lfs -text +# ONNX Models +*.onnx filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f9c73b5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,76 @@ +# This .gitignore file should be placed at the root of your Unity project directory +# +# Get latest from https://github.com/github/gitignore/blob/main/Unity.gitignore +# +/[Ll]ibrary/ +/[Tt]emp/ +/[Oo]bj/ +/[Bb]uild/ +/[Bb]uilds/ +/[Ll]ogs/ +/[Uu]ser[Ss]ettings/ + +# MemoryCaptures can get excessive in size. +# They also could contain extremely sensitive data +/[Mm]emoryCaptures/ + +# Recordings can get excessive in size +/[Rr]ecordings/ + +# Uncomment this line if you wish to ignore the asset store tools plugin +# /[Aa]ssets/AssetStoreTools* + +# Autogenerated Jetbrains Rider plugin +/[Aa]ssets/Plugins/Editor/JetBrains* + +# Visual Studio cache directory +.vs/ + +# Gradle cache directory +.gradle/ + +# Autogenerated VS/MD/Consulo solution and project files +ExportedObj/ +.consulo/ +*.csproj +*.unityproj +*.sln +*.suo +*.tmp +*.user +*.userprefs +*.pidb +*.booproj +*.svd +*.pdb +*.mdb +*.opendb +*.VC.db + +# Unity3D generated meta files +*.pidb.meta +*.pdb.meta +*.mdb.meta + +# Unity3D generated file on crash reports +sysinfo.txt + +# Builds +*.apk +*.aab +*.unitypackage +*.app + +# Crashlytics generated file +crashlytics-build.properties + +# Packed Addressables +/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin* + +# Temporary auto-generated Android Assets +/[Aa]ssets/[Ss]treamingAssets/aa.meta +/[Aa]ssets/[Ss]treamingAssets/aa/* + +# Dlls + +*.dll diff --git a/.vsconfig b/.vsconfig new file mode 100644 index 0000000..d70cd98 --- /dev/null +++ b/.vsconfig @@ -0,0 +1,6 @@ +{ + "version": "1.0", + "components": [ + "Microsoft.VisualStudio.Workload.ManagedGame" + ] +} diff --git a/Assets/Act-4 Azure.unity b/Assets/Act-4 Azure.unity new file mode 100644 index 0000000..0bcd583 --- /dev/null +++ b/Assets/Act-4 Azure.unity @@ -0,0 +1,1625 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.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: 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} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 3 + 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 + buildHeightMesh: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1001 &109379637 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 365239547} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 23470acf8ba76b04f80eaec2151717f6, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 23470acf8ba76b04f80eaec2151717f6, + type: 3} + propertyPath: m_LocalPosition.y + value: 0.235 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 23470acf8ba76b04f80eaec2151717f6, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 23470acf8ba76b04f80eaec2151717f6, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 23470acf8ba76b04f80eaec2151717f6, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 23470acf8ba76b04f80eaec2151717f6, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 23470acf8ba76b04f80eaec2151717f6, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 23470acf8ba76b04f80eaec2151717f6, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 23470acf8ba76b04f80eaec2151717f6, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 23470acf8ba76b04f80eaec2151717f6, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 23470acf8ba76b04f80eaec2151717f6, + type: 3} + propertyPath: m_Name + value: female_model + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 23470acf8ba76b04f80eaec2151717f6, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: 23470acf8ba76b04f80eaec2151717f6, + type: 3} + insertIndex: -1 + addedObject: {fileID: 109379641} + - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: 23470acf8ba76b04f80eaec2151717f6, + type: 3} + insertIndex: -1 + addedObject: {fileID: 109379640} + m_SourcePrefab: {fileID: 100100000, guid: 23470acf8ba76b04f80eaec2151717f6, type: 3} +--- !u!4 &109379638 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 23470acf8ba76b04f80eaec2151717f6, + type: 3} + m_PrefabInstance: {fileID: 109379637} + m_PrefabAsset: {fileID: 0} +--- !u!1 &109379639 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 23470acf8ba76b04f80eaec2151717f6, + type: 3} + m_PrefabInstance: {fileID: 109379637} + m_PrefabAsset: {fileID: 0} +--- !u!114 &109379640 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 109379639} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 06c52c07402f7274cab64e484b1bddc9, type: 3} + m_Name: + m_EditorClassIdentifier: + playerIndex: 0 + mirroredMovement: 0 + verticalMovement: 1 + horizontalMovement: 1 + externalRootMotion: 0 + externalHeadRotation: 0 + externalHandRotations: 0 + fingerOrientations: 1 + moveRate: 1 + smoothFactor: 10 + lateUpdateAvatar: 0 + offsetNode: {fileID: 0} + posRelativeToCamera: {fileID: 1823688466} + posRelOverlayColor: 0 + posRelInvertedZ: 0 + groundedFeet: 0 + applyMuscleLimits: 0 + flipLeftRight: 0 + horizontalOffset: 0 + verticalOffset: 0.5 + forwardOffset: 0 + useUnscaledTime: 0 + boneColliderRadius: 0 +--- !u!54 &109379641 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 109379639} + serializedVersion: 4 + m_Mass: 80 + m_Drag: 0 + m_AngularDrag: 0.05 + m_CenterOfMass: {x: 0, y: 0, z: 0} + m_InertiaTensor: {x: 1, y: 1, z: 1} + m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ImplicitCom: 1 + m_ImplicitTensor: 1 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!1 &157207112 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 157207114} + - component: {fileID: 157207113} + - component: {fileID: 157207115} + m_Layer: 0 + m_Name: Sun + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &157207113 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 157207112} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 130000 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + 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_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 2 + m_AreaSize: {x: 0.5, y: 0.5} + m_BounceIntensity: 1 + m_ColorTemperature: 6500 + m_UseColorTemperature: 1 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 2.5 +--- !u!4 &157207114 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 157207112} + serializedVersion: 2 + m_LocalRotation: {x: 0.076557435, y: 0.9052032, z: -0.37494728, w: 0.18482618} + m_LocalPosition: {x: -6.547202, y: -1.9623251, z: -6.2407} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1457849204} + m_LocalEulerAnglesHint: {x: 45, y: 156.92, z: 0} +--- !u!114 &157207115 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 157207112} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7a68c43fe1f2a47cfa234b5eeaa98012, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Intensity: 130000 + m_EnableSpotReflector: 0 + m_LuxAtDistance: 1 + m_InnerSpotPercent: 0 + m_SpotIESCutoffPercent: 100 + m_LightDimmer: 1 + m_VolumetricDimmer: 1 + m_LightUnit: 2 + m_FadeDistance: 10000 + m_VolumetricFadeDistance: 10000 + m_AffectDiffuse: 1 + m_AffectSpecular: 1 + m_NonLightmappedOnly: 0 + m_ShapeWidth: 0.5 + m_ShapeHeight: 0.5 + m_AspectRatio: 1 + m_ShapeRadius: 0.025 + m_SoftnessScale: 1 + m_UseCustomSpotLightShadowCone: 0 + m_CustomSpotLightShadowCone: 30 + m_MaxSmoothness: 0.99 + m_ApplyRangeAttenuation: 1 + m_DisplayAreaLightEmissiveMesh: 0 + m_AreaLightCookie: {fileID: 0} + m_IESPoint: {fileID: 0} + m_IESSpot: {fileID: 0} + m_IncludeForRayTracing: 1 + m_AreaLightShadowCone: 120 + m_UseScreenSpaceShadows: 0 + m_InteractsWithSky: 1 + m_AngularDiameter: 2.5 + m_FlareSize: 2 + m_FlareTint: {r: 1, g: 1, b: 1, a: 1} + m_FlareFalloff: 4 + m_SurfaceTexture: {fileID: 0} + m_SurfaceTint: {r: 1, g: 1, b: 1, a: 1} + m_Distance: 1.5e+11 + m_UseRayTracedShadows: 0 + m_NumRayTracingSamples: 4 + m_FilterTracedShadow: 1 + m_FilterSizeTraced: 16 + m_SunLightConeAngle: 0.5 + m_LightShadowRadius: 0.5 + m_SemiTransparentShadow: 0 + m_ColorShadow: 1 + m_DistanceBasedFiltering: 0 + m_EvsmExponent: 15 + m_EvsmLightLeakBias: 0 + m_EvsmVarianceBias: 0.00001 + m_EvsmBlurPasses: 0 + m_LightlayersMask: 1 + m_LinkShadowLayers: 1 + m_ShadowNearPlane: 0.1 + m_BlockerSampleCount: 24 + m_FilterSampleCount: 16 + m_MinFilterSize: 0.1 + m_KernelSize: 5 + m_LightAngle: 1 + m_MaxDepthBias: 0.001 + m_ShadowResolution: + m_Override: 512 + m_UseOverride: 1 + m_Level: 0 + m_ShadowDimmer: 1 + m_VolumetricShadowDimmer: 1 + m_ShadowFadeDistance: 10000 + m_UseContactShadow: + m_Override: 0 + m_UseOverride: 1 + m_Level: 0 + m_RayTracedContactShadow: 0 + m_ShadowTint: {r: 0, g: 0, b: 0, a: 1} + m_PenumbraTint: 0 + m_NormalBias: 0.75 + m_SlopeBias: 0.5 + m_ShadowUpdateMode: 0 + m_AlwaysDrawDynamicShadows: 0 + m_UpdateShadowOnLightMovement: 0 + m_CachedShadowTranslationThreshold: 0.01 + m_CachedShadowAngularThreshold: 0.5 + m_BarnDoorAngle: 90 + m_BarnDoorLength: 0.05 + m_preserveCachedShadow: 0 + m_OnDemandShadowRenderOnPlacement: 1 + m_ShadowCascadeRatios: + - 0.05 + - 0.2 + - 0.3 + m_ShadowCascadeBorders: + - 0.2 + - 0.2 + - 0.2 + - 0.2 + m_ShadowAlgorithm: 0 + m_ShadowVariant: 0 + m_ShadowPrecision: 0 + useOldInspector: 0 + useVolumetric: 1 + featuresFoldout: 1 + m_AreaLightEmissiveMeshShadowCastingMode: 0 + m_AreaLightEmissiveMeshMotionVectorGenerationMode: 0 + m_AreaLightEmissiveMeshLayer: -1 + m_Version: 11 + m_ObsoleteShadowResolutionTier: 1 + m_ObsoleteUseShadowQualitySettings: 0 + m_ObsoleteCustomShadowResolution: 512 + m_ObsoleteContactShadows: 0 + m_PointlightHDType: 0 + m_SpotLightShape: 0 + m_AreaLightShape: 0 +--- !u!1 &162248096 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 162248098} + - component: {fileID: 162248097} + m_Layer: 0 + m_Name: KinectController + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &162248097 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 162248096} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6b531f336dfee5f438f94ed501caefc7, type: 3} + m_Name: + m_EditorClassIdentifier: + useMultiCamConfig: 0 + syncMultiCamFrames: 0 + startDepthSensors: 1 + dontDestroyAcrossScenes: 0 + getDepthFrames: 1 + getColorFrames: 0 + getInfraredFrames: 0 + getPoseFrames: 0 + getBodyFrames: 3 + syncDepthAndColor: 0 + syncBodyAndDepth: 1 + minUserDistance: 0 + maxUserDistance: 0 + maxLeftRightDistance: 0 + maxTrackedUsers: 0 + showAllowedUsersOnly: 0 + userDetectionOrder: 0 + ignoreInferredJoints: 0 + ignoreZCoordinates: 0 + jointPositionSmoothing: 1 + estimateJointVelocities: 0 + jointVelocitySmoothing: 2 + boneOrientationConstraints: 1 + bodySpinFilter: 0 + playerCalibrationPose: 0 + userManager: {fileID: 0} + gestureManager: {fileID: 0} + displayImages: 0101000001000000 + displayImageWidthPercent: 0.2 + statusInfoText: {fileID: 0} + consoleLogMessages: 1 + OnDepthSensorsStarted: + m_PersistentCalls: + m_Calls: [] + OnDepthSensorsStopped: + m_PersistentCalls: + m_Calls: [] +--- !u!4 &162248098 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 162248096} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1884213386} + - {fileID: 1135110643} + - {fileID: 1464251905} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &201432153 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 201432157} + - component: {fileID: 201432156} + - component: {fileID: 201432155} + - component: {fileID: 201432154} + m_Layer: 0 + m_Name: Plane + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!64 &201432154 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 201432153} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &201432155 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 201432153} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 257 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 73c176f402d2c2f4d929aa5da7585d17, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &201432156 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 201432153} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &201432157 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 201432153} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: -1.0403252, z: 0} + m_LocalScale: {x: 3.961, y: 3.961, z: 3.961} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1214092765} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &365239546 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 365239547} + m_Layer: 0 + m_Name: VFX + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &365239547 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 365239546} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 6.547202, y: 4.962325, z: 6.2407} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 109379638} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &432432459 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 432432461} + - component: {fileID: 432432460} + m_Layer: 0 + m_Name: Sky and Fog Volume + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &432432460 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 432432459} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IsGlobal: 1 + priority: 0 + blendDistance: 0 + weight: 1 + sharedProfile: {fileID: 11400000, guid: df0b9422a2c24004084014a9bc51bea0, type: 2} +--- !u!4 &432432461 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 432432459} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -6.547202, y: -4.962325, z: -6.2407} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1773784443} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &831686891 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 831686892} + m_Layer: 0 + m_Name: Avatar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &831686892 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 831686891} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 6.547202, y: 4.962325, z: 6.2407} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &963342126 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 963342129} + - component: {fileID: 963342128} + - component: {fileID: 963342127} + m_Layer: 0 + m_Name: Spot Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &963342127 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 963342126} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7a68c43fe1f2a47cfa234b5eeaa98012, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Intensity: 2989.2336 + m_EnableSpotReflector: 1 + m_LuxAtDistance: 1 + m_InnerSpotPercent: 0 + m_SpotIESCutoffPercent: 100 + m_LightDimmer: 1 + m_VolumetricDimmer: 1 + m_LightUnit: 0 + m_FadeDistance: 10000 + m_VolumetricFadeDistance: 10000 + m_AffectDiffuse: 1 + m_AffectSpecular: 1 + m_NonLightmappedOnly: 0 + m_ShapeWidth: 0.5 + m_ShapeHeight: 0.5 + m_AspectRatio: 1 + m_ShapeRadius: 0.025 + m_SoftnessScale: 1 + m_UseCustomSpotLightShadowCone: 0 + m_CustomSpotLightShadowCone: 19.4 + m_MaxSmoothness: 0.99 + m_ApplyRangeAttenuation: 1 + m_DisplayAreaLightEmissiveMesh: 0 + m_AreaLightCookie: {fileID: 0} + m_IESPoint: {fileID: 0} + m_IESSpot: {fileID: 0} + m_IncludeForRayTracing: 1 + m_AreaLightShadowCone: 120 + m_UseScreenSpaceShadows: 0 + m_InteractsWithSky: 1 + m_AngularDiameter: 0.5 + m_FlareSize: 2 + m_FlareTint: {r: 1, g: 1, b: 1, a: 1} + m_FlareFalloff: 4 + m_SurfaceTexture: {fileID: 0} + m_SurfaceTint: {r: 1, g: 1, b: 1, a: 1} + m_Distance: 1.5e+11 + m_UseRayTracedShadows: 0 + m_NumRayTracingSamples: 4 + m_FilterTracedShadow: 1 + m_FilterSizeTraced: 16 + m_SunLightConeAngle: 0.5 + m_LightShadowRadius: 0.5 + m_SemiTransparentShadow: 0 + m_ColorShadow: 1 + m_DistanceBasedFiltering: 0 + m_EvsmExponent: 15 + m_EvsmLightLeakBias: 0 + m_EvsmVarianceBias: 0.00001 + m_EvsmBlurPasses: 0 + m_LightlayersMask: 1 + m_LinkShadowLayers: 1 + m_ShadowNearPlane: 0.1 + m_BlockerSampleCount: 24 + m_FilterSampleCount: 16 + m_MinFilterSize: 0.1 + m_KernelSize: 5 + m_LightAngle: 1 + m_MaxDepthBias: 0.001 + m_ShadowResolution: + m_Override: 512 + m_UseOverride: 1 + m_Level: 0 + m_ShadowDimmer: 1 + m_VolumetricShadowDimmer: 1 + m_ShadowFadeDistance: 10000 + m_UseContactShadow: + m_Override: 0 + m_UseOverride: 1 + m_Level: 0 + m_RayTracedContactShadow: 0 + m_ShadowTint: {r: 0, g: 0, b: 0, a: 1} + m_PenumbraTint: 0 + m_NormalBias: 0.75 + m_SlopeBias: 0.5 + m_ShadowUpdateMode: 0 + m_AlwaysDrawDynamicShadows: 0 + m_UpdateShadowOnLightMovement: 0 + m_CachedShadowTranslationThreshold: 0.01 + m_CachedShadowAngularThreshold: 0.5 + m_BarnDoorAngle: 90 + m_BarnDoorLength: 0.05 + m_preserveCachedShadow: 0 + m_OnDemandShadowRenderOnPlacement: 1 + m_ShadowCascadeRatios: + - 0.05 + - 0.2 + - 0.3 + m_ShadowCascadeBorders: + - 0.2 + - 0.2 + - 0.2 + - 0.2 + m_ShadowAlgorithm: 0 + m_ShadowVariant: 0 + m_ShadowPrecision: 0 + useOldInspector: 0 + useVolumetric: 1 + featuresFoldout: 1 + m_AreaLightEmissiveMeshShadowCastingMode: 0 + m_AreaLightEmissiveMeshMotionVectorGenerationMode: 0 + m_AreaLightEmissiveMeshLayer: -1 + m_Version: 11 + m_ObsoleteShadowResolutionTier: 1 + m_ObsoleteUseShadowQualitySettings: 0 + m_ObsoleteCustomShadowResolution: 512 + m_ObsoleteContactShadows: 0 + m_PointlightHDType: 0 + m_SpotLightShape: 0 + m_AreaLightShape: 0 +--- !u!108 &963342128 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 963342126} + m_Enabled: 0 + serializedVersion: 10 + m_Type: 0 + m_Shape: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 2338.1877 + m_Range: 100 + m_SpotAngle: 74.4 + m_InnerSpotAngle: 19.4 + 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_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 2 + m_AreaSize: {x: 0.5, y: 0.5} + m_BounceIntensity: 0 + m_ColorTemperature: 6570 + m_UseColorTemperature: 1 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &963342129 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 963342126} + serializedVersion: 2 + m_LocalRotation: {x: 0.8554861, y: -0, z: -0, w: 0.51782584} + m_LocalPosition: {x: 0, y: 5.856675, z: 2.9583006} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1457849204} + m_LocalEulerAnglesHint: {x: 117.627, y: 0, z: 0} +--- !u!1 &1135110642 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1135110643} + - component: {fileID: 1135110644} + m_Layer: 0 + m_Name: KinectV2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1135110643 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1135110642} + serializedVersion: 2 + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 162248098} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1135110644 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1135110642} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3187c833c6106e54facb6071b57475a2, type: 3} + m_Name: + m_EditorClassIdentifier: + deviceStreamingMode: 0 + deviceIndex: 0 + recordingFile: + minDepthDistance: 0.5 + maxDepthDistance: 10 + pointCloudResolution: 0 + pointCloudVertexTexture: {fileID: 0} + pointCloudColorTexture: {fileID: 0} + pointCloudPlayerList: + frameSourceFlags: 0 + depth2colorCamMat: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + sensorRotValueY: 0 + usersFaceBackwards: 0 +--- !u!1 &1214092764 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1214092765} + m_Layer: 0 + m_Name: Environment + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1214092765 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1214092764} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 6.547202, y: 4.962325, z: 6.2407} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 201432157} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1457849203 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1457849204} + m_Layer: 0 + m_Name: Lighting + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1457849204 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1457849203} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 6.547202, y: 4.962325, z: 6.2407} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 963342129} + - {fileID: 157207114} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1464251904 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1464251905} + - component: {fileID: 1464251906} + m_Layer: 0 + m_Name: RealSense + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1464251905 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1464251904} + serializedVersion: 2 + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 162248098} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1464251906 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1464251904} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3c9bb53fec8f7ee47a021adfdc0ec203, type: 3} + m_Name: + m_EditorClassIdentifier: + deviceStreamingMode: 0 + deviceIndex: 0 + recordingFile: + minDepthDistance: 0.5 + maxDepthDistance: 10 + pointCloudResolution: 0 + pointCloudVertexTexture: {fileID: 0} + pointCloudColorTexture: {fileID: 0} + pointCloudPlayerList: + frameSourceFlags: 0 + depth2colorCamMat: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + sensorRotValueY: 0 + colorCameraMode: 35 + depthCameraMode: 35 +--- !u!1 &1773784442 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1773784443} + m_Layer: 0 + m_Name: Volumes + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1773784443 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1773784442} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 6.547202, y: 4.962325, z: 6.2407} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 432432461} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1823688464 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1823688467} + - component: {fileID: 1823688466} + - component: {fileID: 1823688465} + - component: {fileID: 1823688468} + m_Layer: 0 + m_Name: Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &1823688465 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1823688464} + m_Enabled: 1 +--- !u!20 &1823688466 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1823688464} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 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: 0 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &1823688467 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1823688464} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: 0.99936223, z: -0, w: -0.035710618} + m_LocalPosition: {x: 6.6, y: 4.9, z: 13.836} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 184.093, z: 0} +--- !u!114 &1823688468 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1823688464} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 23c1ce4fb46143f46bc5cb5224c934f6, type: 3} + m_Name: + m_EditorClassIdentifier: + clearColorMode: 1 + backgroundColorHDR: {r: 0, g: 0, b: 0, a: 0} + clearDepth: 1 + volumeLayerMask: + serializedVersion: 2 + m_Bits: 1 + volumeAnchorOverride: {fileID: 0} + antialiasing: 2 + SMAAQuality: 2 + dithering: 1 + stopNaNs: 0 + taaSharpenStrength: 0.5 + TAAQuality: 1 + taaHistorySharpening: 0.35 + taaAntiFlicker: 0.5 + taaMotionVectorRejection: 0 + taaAntiHistoryRinging: 0 + taaBaseBlendFactor: 0.875 + taaJitterScale: 1 + physicalParameters: + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 + flipYMode: 0 + xrRendering: 1 + fullscreenPassthrough: 0 + allowDynamicResolution: 0 + customRenderingSettings: 0 + invertFaceCulling: 0 + probeLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + hasPersistentHistory: 0 + screenSizeOverride: {x: 0, y: 0, z: 0, w: 0} + screenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} + allowDeepLearningSuperSampling: 1 + deepLearningSuperSamplingUseCustomQualitySettings: 0 + deepLearningSuperSamplingQuality: 0 + deepLearningSuperSamplingUseCustomAttributes: 0 + deepLearningSuperSamplingUseOptimalSettings: 1 + deepLearningSuperSamplingSharpening: 0 + fsrOverrideSharpness: 0 + fsrSharpness: 0.92 + exposureTarget: {fileID: 0} + materialMipBias: 0 + m_RenderingPathCustomFrameSettings: + bitDatas: + data1: 72198262773251917 + data2: 13763000464465395712 + lodBias: 1 + lodBiasMode: 0 + lodBiasQualityLevel: 0 + maximumLODLevel: 0 + maximumLODLevelMode: 0 + maximumLODLevelQualityLevel: 0 + sssQualityMode: 0 + sssQualityLevel: 0 + sssCustomSampleBudget: 20 + msaaMode: 9 + materialQuality: 0 + renderingPathCustomFrameSettingsOverrideMask: + mask: + data1: 0 + data2: 0 + defaultFrameSettings: 0 + m_Version: 9 + m_ObsoleteRenderingPath: 0 + m_ObsoleteFrameSettings: + overrides: 0 + enableShadow: 0 + enableContactShadows: 0 + enableShadowMask: 0 + enableSSR: 0 + enableSSAO: 0 + enableSubsurfaceScattering: 0 + enableTransmission: 0 + enableAtmosphericScattering: 0 + enableVolumetrics: 0 + enableReprojectionForVolumetrics: 0 + enableLightLayers: 0 + enableExposureControl: 1 + diffuseGlobalDimmer: 0 + specularGlobalDimmer: 0 + shaderLitMode: 0 + enableDepthPrepassWithDeferredRendering: 0 + enableTransparentPrepass: 0 + enableMotionVectors: 0 + enableObjectMotionVectors: 0 + enableDecals: 0 + enableRoughRefraction: 0 + enableTransparentPostpass: 0 + enableDistortion: 0 + enablePostprocess: 0 + enableOpaqueObjects: 0 + enableTransparentObjects: 0 + enableRealtimePlanarReflection: 0 + enableMSAA: 0 + enableAsyncCompute: 0 + runLightListAsync: 0 + runSSRAsync: 0 + runSSAOAsync: 0 + runContactShadowsAsync: 0 + runVolumeVoxelizationAsync: 0 + lightLoopSettings: + overrides: 0 + enableDeferredTileAndCluster: 0 + enableComputeLightEvaluation: 0 + enableComputeLightVariants: 0 + enableComputeMaterialVariants: 0 + enableFptlForForwardOpaque: 0 + enableBigTilePrepass: 0 + isFptlEnabled: 0 +--- !u!1 &1884213385 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1884213386} + - component: {fileID: 1884213387} + m_Layer: 0 + m_Name: Kinect4Azure + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1884213386 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1884213385} + serializedVersion: 2 + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 162248098} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1884213387 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1884213385} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e8f864d895d4d9c4cb2a9b96bb86c08b, type: 3} + m_Name: + m_EditorClassIdentifier: + deviceStreamingMode: 1 + deviceIndex: 0 + recordingFile: + minDepthDistance: 0.5 + maxDepthDistance: 10 + pointCloudResolution: 0 + pointCloudVertexTexture: {fileID: 0} + pointCloudColorTexture: {fileID: 0} + pointCloudPlayerList: + frameSourceFlags: 0 + depth2colorCamMat: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + sensorRotValueY: 0 + colorCameraMode: 2 + depthCameraMode: 2 + cameraFPS: 2 + deviceSyncMode: 0 + subDeviceDelayUsec: 0 + bodyTemporalSmoothing: 0 + playbackPosSeconds: -1 + loopPlayback: 0 + bodyTrackingSensorOrientation: 0 + bodyTrackingProcessingMode: 2 + detectFloorForPoseEstimation: 1 +--- !u!1 &2013410473 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2013410475} + - component: {fileID: 2013410474} + m_Layer: 0 + m_Name: StaticLightingSky + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2013410474 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2013410473} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 441482e8936e35048a1dffac814e3ef8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Profile: {fileID: 11400000, guid: 8ba92e2dd7f884a0f88b98fa2d235fe7, type: 2} + m_StaticLightingSkyUniqueID: 4 + m_StaticLightingCloudsUniqueID: 0 + m_StaticLightingVolumetricClouds: 0 +--- !u!4 &2013410475 +Transform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2013410473} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 1823688467} + - {fileID: 2013410475} + - {fileID: 831686892} + - {fileID: 365239547} + - {fileID: 1773784443} + - {fileID: 1457849204} + - {fileID: 1214092765} + - {fileID: 162248098} diff --git a/Assets/Act-4 Azure.unity.meta b/Assets/Act-4 Azure.unity.meta new file mode 100644 index 0000000..1019f29 --- /dev/null +++ b/Assets/Act-4 Azure.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 39a7265aa0add1a4996e7a5f6b29bdb3 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Act-4 Barracuda.unity b/Assets/Act-4 Barracuda.unity new file mode 100644 index 0000000..21e5065 --- /dev/null +++ b/Assets/Act-4 Barracuda.unity @@ -0,0 +1,2060 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.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: 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} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 0 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 10 + m_AtlasSize: 512 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 256 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 1864405362} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 3 + 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 + buildHeightMesh: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!115 &27465617 +MonoScript: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + serializedVersion: 7 + m_DefaultReferences: {} + m_Icon: {fileID: 0} + m_Type: 2 + m_ExecutionOrder: 0 + m_ClassName: VFXSkinnedMeshBinder + m_Namespace: Smrvfx + m_AssemblyName: +--- !u!1 &307651365 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 307651369} + - component: {fileID: 307651368} + - component: {fileID: 307651367} + - component: {fileID: 307651366} + - component: {fileID: 307651370} + m_Layer: 0 + m_Name: Lines + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &307651366 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 307651365} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cdafc37f32b176349b1684c4455b98e9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ExecuteInEditor: 1 + m_Bindings: [] + m_VisualEffect: {fileID: 307651368} +--- !u!73398921 &307651367 +VFXRenderer: + serializedVersion: 1 + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 307651365} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 257 + m_RendererPriority: 0 + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!2083052967 &307651368 +VisualEffect: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 307651365} + m_Enabled: 1 + m_Asset: {fileID: 8926484042661614526, guid: 70ed7ab9ddb2dc9a2957ad0a45b516ea, type: 3} + m_InitialEventName: OnPlay + m_InitialEventNameOverriden: 0 + m_StartSeed: 0 + m_ResetSeedOnPlay: 1 + m_AllowInstancing: 1 + m_ResourceVersion: 1 + m_PropertySheet: + m_Float: + m_Array: [] + m_Vector2f: + m_Array: [] + m_Vector3f: + m_Array: [] + m_Vector4f: + m_Array: [] + m_Uint: + m_Array: [] + m_Int: + m_Array: [] + m_Matrix4x4f: + m_Array: [] + m_AnimationCurve: + m_Array: [] + m_Gradient: + m_Array: [] + m_NamedObject: + m_Array: + - m_Value: {fileID: 0} + m_Name: PositionMap + m_Overridden: 1 + - m_Value: {fileID: 0} + m_Name: VelocityMap + m_Overridden: 1 + m_Bool: + m_Array: [] +--- !u!4 &307651369 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 307651365} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1133257407} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &307651370 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 307651365} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 27465617} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &338605487 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 338605490} + - component: {fileID: 338605489} + - component: {fileID: 338605488} + m_Layer: 0 + m_Name: Floor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!23 &338605488 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 338605487} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 257 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: c9e9c67ff6ff90f489027880d4ccbf3e, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &338605489 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 338605487} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &338605490 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 338605487} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 10, y: 10, z: 10} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 568415602} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &427500571 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 427500572} + - component: {fileID: 427500574} + - component: {fileID: 427500573} + m_Layer: 0 + m_Name: Spot Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &427500572 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 427500571} + serializedVersion: 2 + m_LocalRotation: {x: 0.26041883, y: -0.4768585, z: 0.15035288, w: 0.8259431} + m_LocalPosition: {x: 2.48, y: 2.89, z: -1.228728} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 568415602} + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} +--- !u!114 &427500573 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 427500571} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7a68c43fe1f2a47cfa234b5eeaa98012, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Intensity: 3000 + m_EnableSpotReflector: 0 + m_LuxAtDistance: 1 + m_InnerSpotPercent: 0 + m_SpotIESCutoffPercent: 100 + m_LightDimmer: 1 + m_VolumetricDimmer: 1 + m_LightUnit: 0 + m_FadeDistance: 10000 + m_VolumetricFadeDistance: 10000 + m_AffectDiffuse: 1 + m_AffectSpecular: 1 + m_NonLightmappedOnly: 0 + m_ShapeWidth: 0.5 + m_ShapeHeight: 0.5 + m_AspectRatio: 1 + m_ShapeRadius: 0 + m_SoftnessScale: 1 + m_UseCustomSpotLightShadowCone: 0 + m_CustomSpotLightShadowCone: 5 + m_MaxSmoothness: 0.99 + m_ApplyRangeAttenuation: 1 + m_DisplayAreaLightEmissiveMesh: 0 + m_AreaLightCookie: {fileID: 0} + m_IESPoint: {fileID: 0} + m_IESSpot: {fileID: 0} + m_IncludeForRayTracing: 1 + m_AreaLightShadowCone: 120 + m_UseScreenSpaceShadows: 0 + m_InteractsWithSky: 1 + m_AngularDiameter: 0.5 + m_FlareSize: 2 + m_FlareTint: {r: 1, g: 1, b: 1, a: 1} + m_FlareFalloff: 4 + m_SurfaceTexture: {fileID: 0} + m_SurfaceTint: {r: 1, g: 1, b: 1, a: 1} + m_Distance: 1.5e+11 + m_UseRayTracedShadows: 0 + m_NumRayTracingSamples: 4 + m_FilterTracedShadow: 1 + m_FilterSizeTraced: 16 + m_SunLightConeAngle: 0.5 + m_LightShadowRadius: 0.5 + m_SemiTransparentShadow: 0 + m_ColorShadow: 1 + m_DistanceBasedFiltering: 0 + m_EvsmExponent: 15 + m_EvsmLightLeakBias: 0 + m_EvsmVarianceBias: 0.00001 + m_EvsmBlurPasses: 0 + m_LightlayersMask: 1 + m_LinkShadowLayers: 1 + m_ShadowNearPlane: 0.1 + m_BlockerSampleCount: 24 + m_FilterSampleCount: 16 + m_MinFilterSize: 0.1 + m_KernelSize: 5 + m_LightAngle: 1 + m_MaxDepthBias: 0.001 + m_ShadowResolution: + m_Override: 512 + m_UseOverride: 1 + m_Level: 0 + m_ShadowDimmer: 1 + m_VolumetricShadowDimmer: 1 + m_ShadowFadeDistance: 10000 + m_UseContactShadow: + m_Override: 0 + m_UseOverride: 1 + m_Level: 0 + m_RayTracedContactShadow: 0 + m_ShadowTint: {r: 0, g: 0, b: 0, a: 1} + m_PenumbraTint: 0 + m_NormalBias: 0.75 + m_SlopeBias: 0.5 + m_ShadowUpdateMode: 0 + m_AlwaysDrawDynamicShadows: 0 + m_UpdateShadowOnLightMovement: 0 + m_CachedShadowTranslationThreshold: 0.01 + m_CachedShadowAngularThreshold: 0.5 + m_BarnDoorAngle: 90 + m_BarnDoorLength: 0.05 + m_preserveCachedShadow: 0 + m_OnDemandShadowRenderOnPlacement: 1 + m_ShadowCascadeRatios: + - 0.05 + - 0.2 + - 0.3 + m_ShadowCascadeBorders: + - 0.2 + - 0.2 + - 0.2 + - 0.2 + m_ShadowAlgorithm: 0 + m_ShadowVariant: 0 + m_ShadowPrecision: 0 + useOldInspector: 0 + useVolumetric: 1 + featuresFoldout: 1 + m_AreaLightEmissiveMeshShadowCastingMode: 0 + m_AreaLightEmissiveMeshMotionVectorGenerationMode: 0 + m_AreaLightEmissiveMeshLayer: -1 + m_Version: 11 + m_ObsoleteShadowResolutionTier: 1 + m_ObsoleteUseShadowQualitySettings: 0 + m_ObsoleteCustomShadowResolution: 512 + m_ObsoleteContactShadows: 0 + m_PointlightHDType: 0 + m_SpotLightShape: 0 + m_AreaLightShape: 0 +--- !u!108 &427500574 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 427500571} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 0 + m_Shape: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 238.7324 + m_Range: 10 + m_SpotAngle: 90 + m_InnerSpotAngle: 5 + m_CookieSize: 10 + m_Shadows: + m_Type: 1 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 2 + m_AreaSize: {x: 0.5, y: 0.5} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!1 &429835175 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 429835176} + m_Layer: 0 + m_Name: System + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &429835176 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 429835175} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2007224357} + - {fileID: 1873549736} + - {fileID: 1875476001} + - {fileID: 1187676605} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &534669902 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 534669905} + - component: {fileID: 534669904} + - component: {fileID: 534669903} + - component: {fileID: 534669906} + m_Layer: 0 + m_Name: Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &534669903 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 534669902} + m_Enabled: 1 +--- !u!20 &534669904 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 534669902} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_Iso: 3000 + m_ShutterSpeed: 0.03333334 + m_Aperture: 2 + m_FocusDistance: 10 + m_FocalLength: 45 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 + m_SensorSize: {x: 21, y: 15.2} + m_LensShift: {x: 0, y: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 100 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 33 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 0 + m_AllowMSAA: 0 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &534669905 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 534669902} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.9, z: -3} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 568415602} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &534669906 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 534669902} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 23c1ce4fb46143f46bc5cb5224c934f6, type: 3} + m_Name: + m_EditorClassIdentifier: + clearColorMode: 1 + backgroundColorHDR: {r: 0, g: 0, b: 0, a: 0} + clearDepth: 1 + volumeLayerMask: + serializedVersion: 2 + m_Bits: 1 + volumeAnchorOverride: {fileID: 0} + antialiasing: 0 + SMAAQuality: 2 + dithering: 0 + stopNaNs: 0 + taaSharpenStrength: 0.5 + TAAQuality: 1 + taaHistorySharpening: 0.35 + taaAntiFlicker: 0.5 + taaMotionVectorRejection: 0 + taaAntiHistoryRinging: 0 + taaBaseBlendFactor: 0.875 + taaJitterScale: 1 + physicalParameters: + m_Iso: 3000 + m_ShutterSpeed: 0.03333334 + m_Aperture: 2 + m_FocusDistance: 10 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 + flipYMode: 0 + xrRendering: 1 + fullscreenPassthrough: 0 + allowDynamicResolution: 0 + customRenderingSettings: 0 + invertFaceCulling: 0 + probeLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + hasPersistentHistory: 0 + screenSizeOverride: {x: 0, y: 0, z: 0, w: 0} + screenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} + allowDeepLearningSuperSampling: 1 + deepLearningSuperSamplingUseCustomQualitySettings: 0 + deepLearningSuperSamplingQuality: 0 + deepLearningSuperSamplingUseCustomAttributes: 0 + deepLearningSuperSamplingUseOptimalSettings: 1 + deepLearningSuperSamplingSharpening: 0 + fsrOverrideSharpness: 0 + fsrSharpness: 0.92 + exposureTarget: {fileID: 0} + materialMipBias: 0 + m_RenderingPathCustomFrameSettings: + bitDatas: + data1: 72198262773251917 + data2: 13763000468760363032 + lodBias: 1 + lodBiasMode: 0 + lodBiasQualityLevel: 0 + maximumLODLevel: 0 + maximumLODLevelMode: 0 + maximumLODLevelQualityLevel: 0 + sssQualityMode: 0 + sssQualityLevel: 0 + sssCustomSampleBudget: 20 + msaaMode: 9 + materialQuality: 0 + renderingPathCustomFrameSettingsOverrideMask: + mask: + data1: 0 + data2: 0 + defaultFrameSettings: 0 + m_Version: 9 + m_ObsoleteRenderingPath: 0 + m_ObsoleteFrameSettings: + overrides: 0 + enableShadow: 0 + enableContactShadows: 0 + enableShadowMask: 0 + enableSSR: 0 + enableSSAO: 0 + enableSubsurfaceScattering: 0 + enableTransmission: 0 + enableAtmosphericScattering: 0 + enableVolumetrics: 0 + enableReprojectionForVolumetrics: 0 + enableLightLayers: 0 + enableExposureControl: 1 + diffuseGlobalDimmer: 0 + specularGlobalDimmer: 0 + shaderLitMode: 0 + enableDepthPrepassWithDeferredRendering: 0 + enableTransparentPrepass: 0 + enableMotionVectors: 0 + enableObjectMotionVectors: 0 + enableDecals: 0 + enableRoughRefraction: 0 + enableTransparentPostpass: 0 + enableDistortion: 0 + enablePostprocess: 0 + enableOpaqueObjects: 0 + enableTransparentObjects: 0 + enableRealtimePlanarReflection: 0 + enableMSAA: 0 + enableAsyncCompute: 0 + runLightListAsync: 0 + runSSRAsync: 0 + runSSAOAsync: 0 + runContactShadowsAsync: 0 + runVolumeVoxelizationAsync: 0 + lightLoopSettings: + overrides: 0 + enableDeferredTileAndCluster: 0 + enableComputeLightEvaluation: 0 + enableComputeLightVariants: 0 + enableComputeMaterialVariants: 0 + enableFptlForForwardOpaque: 0 + enableBigTilePrepass: 0 + isFptlEnabled: 0 +--- !u!1 &568415601 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 568415602} + m_Layer: 0 + m_Name: Stage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &568415602 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 568415601} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 534669905} + - {fileID: 1608186716} + - {fileID: 427500572} + - {fileID: 338605490} + - {fileID: 666181308} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &651858668 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 6827947152276301977, guid: 184e8f3c9fd8e7347bc6408e7a166b07, + type: 3} + m_PrefabInstance: {fileID: 1347140882} + m_PrefabAsset: {fileID: 0} +--- !u!1 &666181306 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 666181308} + - component: {fileID: 666181307} + m_Layer: 0 + m_Name: Reflection + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &666181307 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 666181306} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a4ee7c3a3b205a14a94094d01ff91d6b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ProbeSettings: + frustum: + fieldOfViewMode: 1 + fixedValue: 90 + automaticScale: 1 + viewerScale: 1 + type: 1 + mode: 1 + realtimeMode: 0 + timeSlicing: 0 + lighting: + multiplier: 1 + weight: 1 + lightLayer: 1 + fadeDistance: 10000 + rangeCompressionFactor: 1 + influence: + m_Shape: 0 + m_BoxSize: {x: 10, y: 0.1, z: 10} + m_BoxBlendDistancePositive: {x: 0.05, y: 0.05, z: 0.05} + m_BoxBlendDistanceNegative: {x: 0.05, y: 0.05, z: 0.05} + m_BoxBlendNormalDistancePositive: {x: 0, y: 0, z: 0} + m_BoxBlendNormalDistanceNegative: {x: 0, y: 0, z: 0} + m_BoxSideFadePositive: {x: 1, y: 1, z: 1} + m_BoxSideFadeNegative: {x: 1, y: 1, z: 1} + m_SphereRadius: 3 + m_SphereBlendDistance: 0 + m_SphereBlendNormalDistance: 0 + m_EditorAdvancedModeBlendDistancePositive: {x: 0, y: 0, z: 0} + m_EditorAdvancedModeBlendDistanceNegative: {x: 0, y: 0, z: 0} + m_EditorSimplifiedModeBlendDistance: 0.05 + m_EditorAdvancedModeBlendNormalDistancePositive: {x: 0, y: 0, z: 0} + m_EditorAdvancedModeBlendNormalDistanceNegative: {x: 0, y: 0, z: 0} + m_EditorSimplifiedModeBlendNormalDistance: 0 + m_EditorAdvancedModeEnabled: 0 + m_EditorAdvancedModeFaceFadePositive: {x: 1, y: 1, z: 1} + m_EditorAdvancedModeFaceFadeNegative: {x: 1, y: 1, z: 1} + m_Version: 1 + m_ObsoleteSphereBaseOffset: {x: 0, y: 0, z: 0} + m_ObsoleteOffset: {x: 0, y: 0, z: 0} + proxy: + m_Shape: 0 + m_BoxSize: {x: 1, y: 1, z: 1} + m_SphereRadius: 1 + m_CSVersion: 2 + m_ObsoleteSphereInfiniteProjection: 0 + m_ObsoleteBoxInfiniteProjection: 0 + proxySettings: + useInfluenceVolumeAsProxyVolume: 0 + capturePositionProxySpace: {x: 0, y: 0, z: 0} + captureRotationProxySpace: {x: 0, y: 0, z: 0, w: 1} + mirrorPositionProxySpace: {x: 0, y: 0, z: 0} + mirrorRotationProxySpace: {x: -0.70710677, y: 0, z: 0, w: 0.70710677} + resolutionScalable: + m_Override: 1024 + m_UseOverride: 1 + m_Level: 0 + resolution: 0 + cubeResolution: + m_Override: 128 + m_UseOverride: 0 + m_Level: 0 + cameraSettings: + customRenderingSettings: 0 + renderingPathCustomFrameSettings: + bitDatas: + data1: 72198262773251917 + data2: 13763000468760363032 + lodBias: 1 + lodBiasMode: 0 + lodBiasQualityLevel: 0 + maximumLODLevel: 0 + maximumLODLevelMode: 0 + maximumLODLevelQualityLevel: 0 + sssQualityMode: 0 + sssQualityLevel: 0 + sssCustomSampleBudget: 20 + msaaMode: 1 + materialQuality: 0 + renderingPathCustomFrameSettingsOverrideMask: + mask: + data1: 0 + data2: 0 + bufferClearing: + clearColorMode: 1 + backgroundColorHDR: {r: 0, g: 0, b: 0, a: 0} + clearDepth: 1 + volumes: + layerMask: + serializedVersion: 2 + m_Bits: 4294967295 + anchorOverride: {fileID: 0} + frustum: + mode: 0 + aspect: 1 + farClipPlaneRaw: 50 + nearClipPlaneRaw: 0.1 + fieldOfView: 90 + projectionMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + culling: + useOcclusionCulling: 0 + cullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + sceneCullingMaskOverride: 0 + invertFaceCulling: 0 + flipYMode: 0 + probeLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + defaultFrameSettings: 0 + m_ObsoleteRenderingPath: 0 + m_ObsoleteFrameSettings: + overrides: 0 + enableShadow: 0 + enableContactShadows: 0 + enableShadowMask: 0 + enableSSR: 0 + enableSSAO: 0 + enableSubsurfaceScattering: 0 + enableTransmission: 0 + enableAtmosphericScattering: 0 + enableVolumetrics: 0 + enableReprojectionForVolumetrics: 0 + enableLightLayers: 0 + enableExposureControl: 1 + diffuseGlobalDimmer: 0 + specularGlobalDimmer: 0 + shaderLitMode: 0 + enableDepthPrepassWithDeferredRendering: 0 + enableTransparentPrepass: 0 + enableMotionVectors: 0 + enableObjectMotionVectors: 0 + enableDecals: 0 + enableRoughRefraction: 0 + enableTransparentPostpass: 0 + enableDistortion: 0 + enablePostprocess: 0 + enableOpaqueObjects: 0 + enableTransparentObjects: 0 + enableRealtimePlanarReflection: 0 + enableMSAA: 0 + enableAsyncCompute: 0 + runLightListAsync: 0 + runSSRAsync: 0 + runSSAOAsync: 0 + runContactShadowsAsync: 0 + runVolumeVoxelizationAsync: 0 + lightLoopSettings: + overrides: 0 + enableDeferredTileAndCluster: 0 + enableComputeLightEvaluation: 0 + enableComputeLightVariants: 0 + enableComputeMaterialVariants: 0 + enableFptlForForwardOpaque: 0 + enableBigTilePrepass: 0 + isFptlEnabled: 0 + roughReflections: 1 + distanceBasedRoughness: 0 + m_ProbeSettingsOverride: + probe: 0 + camera: + camera: 0 + m_ProxyVolume: {fileID: 0} + m_BakedTexture: {fileID: 0} + m_CustomTexture: {fileID: 0} + m_BakedRenderData: + m_WorldToCameraRHS: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + m_ProjectionMatrix: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + m_CapturePosition: {x: 0, y: 0, z: 0} + m_CaptureRotation: {x: 0, y: 0, z: 0, w: 0} + m_FieldOfView: 0 + m_Aspect: 0 + m_CustomRenderData: + m_WorldToCameraRHS: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + m_ProjectionMatrix: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + m_CapturePosition: {x: 0, y: 0, z: 0} + m_CaptureRotation: {x: 0, y: 0, z: 0, w: 0} + m_FieldOfView: 0 + m_Aspect: 0 + m_HasValidSHForNormalization: 0 + m_SHForNormalization: + sh[ 0]: 0 + sh[ 1]: 0 + sh[ 2]: 0 + sh[ 3]: 0 + sh[ 4]: 0 + sh[ 5]: 0 + sh[ 6]: 0 + sh[ 7]: 0 + sh[ 8]: 0 + sh[ 9]: 0 + sh[10]: 0 + sh[11]: 0 + sh[12]: 0 + sh[13]: 0 + sh[14]: 0 + sh[15]: 0 + sh[16]: 0 + sh[17]: 0 + sh[18]: 0 + sh[19]: 0 + sh[20]: 0 + sh[21]: 0 + sh[22]: 0 + sh[23]: 0 + sh[24]: 0 + sh[25]: 0 + sh[26]: 0 + m_SHValidForCapturePosition: {x: 0, y: 0, z: 0} + m_SHValidForSourcePosition: {x: 0, y: 0, z: 0} + m_HDProbeVersion: 3 + m_ObsoleteInfiniteProjection: 1 + m_ObsoleteInfluenceVolume: + m_Shape: 0 + m_BoxSize: {x: 10, y: 10, z: 10} + m_BoxBlendDistancePositive: {x: 0, y: 0, z: 0} + m_BoxBlendDistanceNegative: {x: 0, y: 0, z: 0} + m_BoxBlendNormalDistancePositive: {x: 0, y: 0, z: 0} + m_BoxBlendNormalDistanceNegative: {x: 0, y: 0, z: 0} + m_BoxSideFadePositive: {x: 1, y: 1, z: 1} + m_BoxSideFadeNegative: {x: 1, y: 1, z: 1} + m_SphereRadius: 3 + m_SphereBlendDistance: 0 + m_SphereBlendNormalDistance: 0 + m_EditorAdvancedModeBlendDistancePositive: {x: 0, y: 0, z: 0} + m_EditorAdvancedModeBlendDistanceNegative: {x: 0, y: 0, z: 0} + m_EditorSimplifiedModeBlendDistance: 0 + m_EditorAdvancedModeBlendNormalDistancePositive: {x: 0, y: 0, z: 0} + m_EditorAdvancedModeBlendNormalDistanceNegative: {x: 0, y: 0, z: 0} + m_EditorSimplifiedModeBlendNormalDistance: 0 + m_EditorAdvancedModeEnabled: 0 + m_EditorAdvancedModeFaceFadePositive: {x: 1, y: 1, z: 1} + m_EditorAdvancedModeFaceFadeNegative: {x: 1, y: 1, z: 1} + m_Version: 1 + m_ObsoleteSphereBaseOffset: {x: 0, y: 0, z: 0} + m_ObsoleteOffset: {x: 0, y: 0, z: 0} + m_ObsoleteFrameSettings: + overrides: 0 + enableShadow: 0 + enableContactShadows: 0 + enableShadowMask: 0 + enableSSR: 0 + enableSSAO: 0 + enableSubsurfaceScattering: 0 + enableTransmission: 0 + enableAtmosphericScattering: 0 + enableVolumetrics: 0 + enableReprojectionForVolumetrics: 0 + enableLightLayers: 0 + enableExposureControl: 1 + diffuseGlobalDimmer: 0 + specularGlobalDimmer: 0 + shaderLitMode: 0 + enableDepthPrepassWithDeferredRendering: 0 + enableTransparentPrepass: 0 + enableMotionVectors: 0 + enableObjectMotionVectors: 0 + enableDecals: 0 + enableRoughRefraction: 0 + enableTransparentPostpass: 0 + enableDistortion: 0 + enablePostprocess: 0 + enableOpaqueObjects: 0 + enableTransparentObjects: 0 + enableRealtimePlanarReflection: 0 + enableMSAA: 0 + enableAsyncCompute: 0 + runLightListAsync: 0 + runSSRAsync: 0 + runSSAOAsync: 0 + runContactShadowsAsync: 0 + runVolumeVoxelizationAsync: 0 + lightLoopSettings: + overrides: 0 + enableDeferredTileAndCluster: 0 + enableComputeLightEvaluation: 0 + enableComputeLightVariants: 0 + enableComputeMaterialVariants: 0 + enableFptlForForwardOpaque: 0 + enableBigTilePrepass: 0 + isFptlEnabled: 0 + m_ObsoleteMultiplier: 1 + m_ObsoleteWeight: 1 + m_ObsoleteMode: 0 + m_ObsoleteLightLayers: 1 + m_ObsoleteCaptureSettings: + overrides: 0 + clearColorMode: 0 + backgroundColorHDR: {r: 0.023529412, g: 0.07058824, b: 0.1882353, a: 0} + clearDepth: 1 + cullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + useOcclusionCulling: 1 + volumeLayerMask: + serializedVersion: 2 + m_Bits: 1 + volumeAnchorOverride: {fileID: 0} + projection: 0 + nearClipPlane: 0.3 + farClipPlane: 1000 + fieldOfView: 90 + orthographicSize: 5 + renderingPath: 0 + shadowDistance: 100 + m_LocalReferencePosition: {x: 0, y: 0.99999994, z: 0.000000059604645} + m_PlanarProbeVersion: 7 + m_ObsoleteCaptureNearPlane: 0.3 + m_ObsoleteCaptureFarPlane: 1000 + m_ObsoleteOverrideFieldOfView: 0 + m_ObsoleteFieldOfViewOverride: 90 +--- !u!4 &666181308 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 666181306} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 568415602} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1133257406 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1133257407} + m_Layer: 0 + m_Name: VFX + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1133257407 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1133257406} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 307651369} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1187676600 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1187676605} + - component: {fileID: 1187676604} + - component: {fileID: 1187676603} + - component: {fileID: 1187676602} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1187676602 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1187676600} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1187676603 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1187676600} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, 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: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &1187676604 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1187676600} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 534669904} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 0 + m_UpdateRectTransformForStandalone: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &1187676605 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1187676600} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1200076499} + m_Father: {fileID: 429835176} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 448, y: 448} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1200076498 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1200076499} + - component: {fileID: 1200076502} + - component: {fileID: 1200076501} + m_Layer: 5 + m_Name: RawImage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1200076499 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1200076498} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 30} + m_LocalScale: {x: 0.02, y: 0.02, z: 0.02} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1187676605} + 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: 5} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1200076501 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1200076498} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Texture: {fileID: 0} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &1200076502 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1200076498} + m_CullTransparentMesh: 0 +--- !u!1001 &1347140882 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1858168407} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 184e8f3c9fd8e7347bc6408e7a166b07, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 184e8f3c9fd8e7347bc6408e7a166b07, + type: 3} + propertyPath: m_LocalPosition.y + value: 1.296 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 184e8f3c9fd8e7347bc6408e7a166b07, + type: 3} + propertyPath: m_LocalPosition.z + value: 0.839 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 184e8f3c9fd8e7347bc6408e7a166b07, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 184e8f3c9fd8e7347bc6408e7a166b07, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 184e8f3c9fd8e7347bc6408e7a166b07, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 184e8f3c9fd8e7347bc6408e7a166b07, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 184e8f3c9fd8e7347bc6408e7a166b07, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 184e8f3c9fd8e7347bc6408e7a166b07, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 184e8f3c9fd8e7347bc6408e7a166b07, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 184e8f3c9fd8e7347bc6408e7a166b07, + type: 3} + propertyPath: m_Name + value: female_model + objectReference: {fileID: 0} + - target: {fileID: 5866666021909216657, guid: 184e8f3c9fd8e7347bc6408e7a166b07, + type: 3} + propertyPath: m_Avatar + value: + objectReference: {fileID: 9000000, guid: 23470acf8ba76b04f80eaec2151717f6, type: 3} + - target: {fileID: 5866666021909216657, guid: 184e8f3c9fd8e7347bc6408e7a166b07, + type: 3} + propertyPath: m_Enabled + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5866666021909216657, guid: 184e8f3c9fd8e7347bc6408e7a166b07, + type: 3} + propertyPath: m_Controller + value: + objectReference: {fileID: 9100000, guid: afdf00a23f40a0643911e7680bd9a0b3, type: 2} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: 184e8f3c9fd8e7347bc6408e7a166b07, + type: 3} + insertIndex: -1 + addedObject: {fileID: 1387092520} + m_SourcePrefab: {fileID: 100100000, guid: 184e8f3c9fd8e7347bc6408e7a166b07, type: 3} +--- !u!1 &1387092518 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 184e8f3c9fd8e7347bc6408e7a166b07, + type: 3} + m_PrefabInstance: {fileID: 1347140882} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1387092519 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 184e8f3c9fd8e7347bc6408e7a166b07, + type: 3} + m_PrefabInstance: {fileID: 1347140882} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1387092520 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1387092518} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3558338e378282c4a91d1a3356b57301, type: 3} + m_Name: + m_EditorClassIdentifier: + showSkeleton: 0 + skeletonMaterial: {fileID: 2100000, guid: f8188c9479a7aad41b7448fe5eeed839, type: 2} + skeletonX: -1 + skeletonY: 0.9 + skeletonZ: 0 + skeletonScale: 0.006 + nose: {fileID: 651858668} + jointPoints: [] +--- !u!1 &1608186714 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1608186716} + - component: {fileID: 1608186715} + m_Layer: 0 + m_Name: Volume + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1608186715 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1608186714} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IsGlobal: 1 + priority: 0 + blendDistance: 0 + weight: 1 + sharedProfile: {fileID: 11400000, guid: d7f98742e27fe844fb5e4c6428f1cb8d, type: 2} +--- !u!4 &1608186716 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1608186714} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 568415602} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1858168406 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1858168407} + m_Layer: 0 + m_Name: Avatars + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1858168407 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1858168406} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1387092519} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!850595691 &1864405362 +LightingSettings: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Settings.lighting + serializedVersion: 6 + m_GIWorkflowMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_RealtimeEnvironmentLighting: 1 + m_BounceScale: 1 + m_AlbedoBoost: 1 + m_IndirectOutputScale: 1 + m_UsingShadowmask: 1 + m_BakeBackend: 1 + m_LightmapMaxSize: 512 + m_BakeResolution: 10 + m_Padding: 2 + m_LightmapCompression: 3 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAO: 0 + m_MixedBakeMode: 2 + m_LightmapsBakeMode: 1 + m_FilterMode: 1 + m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0} + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_RealtimeResolution: 2 + m_ForceWhiteAlbedo: 0 + m_ForceUpdates: 0 + m_FinalGather: 0 + m_FinalGatherRayCount: 256 + m_FinalGatherFiltering: 1 + m_PVRCulling: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 256 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_LightProbeSampleCountMultiplier: 4 + m_PVRBounces: 2 + m_PVRMinBounces: 2 + m_PVREnvironmentImportanceSampling: 0 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_PVRTiledBaking: 0 + m_NumRaysToShootPerTexel: -1 + m_RespectSceneVisibilityWhenBakingGI: 0 +--- !u!1 &1873549732 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1873549736} + - component: {fileID: 1873549735} + - component: {fileID: 1873549734} + - component: {fileID: 1873549737} + - component: {fileID: 1873549733} + m_Layer: 2 + m_Name: VideoCapture + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1873549733 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1873549732} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b0015fead31b30e44a6ac6586bfda03c, type: 3} + m_Name: + m_EditorClassIdentifier: + rawImage: {fileID: 1200076501} + scale: 1 + useWebCam: 0 + webCamIndex: 0 +--- !u!23 &1873549734 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1873549732} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 0 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 393fc0bc42def7a42b82d7de2070ddf1, 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 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1873549735 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1873549732} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1873549736 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1873549732} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 10, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 429835176} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!328 &1873549737 +VideoPlayer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1873549732} + m_Enabled: 1 + m_VideoClip: {fileID: 32900000, guid: 15588459e6605c2489744026931a299e, type: 3} + m_TargetCameraAlpha: 1 + m_TargetCamera3DLayout: 0 + m_TargetCamera: {fileID: 0} + m_TargetTexture: {fileID: 0} + m_TimeReference: 0 + m_TargetMaterialRenderer: {fileID: 0} + m_TargetMaterialProperty: _MainTex + m_RenderMode: 2 + m_AspectRatio: 2 + m_DataSource: 0 + m_TimeUpdateMode: 2 + m_PlaybackSpeed: 1 + m_AudioOutputMode: 0 + m_TargetAudioSources: [] + m_DirectAudioVolumes: [] + m_Url: file://C:/Users/dev/Downloads/videoplayback.mp4 + m_EnabledAudioTracks: + m_DirectAudioMutes: + m_ControlledAudioTrackCount: 0 + m_PlayOnAwake: 0 + m_SkipOnDrop: 1 + m_Looping: 1 + m_WaitForFirstFrame: 1 + m_FrameReadyEventEnabled: 0 + m_VideoShaders: [] +--- !u!1 &1875475999 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1875476001} + - component: {fileID: 1875476000} + m_Layer: 0 + m_Name: BarracudaRunner + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1875476000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1875475999} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a27889227d895094c8cd75784aa13cc2, type: 3} + m_Name: + m_EditorClassIdentifier: + neuralNetworkModel: {fileID: 5022602860645237092, guid: 03c27c5acf3dfb5489d6b32d68546daa, + type: 3} + workerType: 32768 + waitTime: 3 + verbose: 0 + inputImageSize: 448 + heatMapCol: 28 + kalmanParamQ: 0.001 + kalmanParamR: 0.0015 + useLowPassFilter: 1 + lowPassParam: 0.1 + baseTexture: {fileID: 2800000, guid: 7322ccd0ff5309147a9faf5de7a100ae, type: 3} + videoCapture: {fileID: 1873549733} + avatar: {fileID: 1387092520} +--- !u!4 &1875476001 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1875475999} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 429835176} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2007224354 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2007224357} + - component: {fileID: 2007224356} + - component: {fileID: 2007224355} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2007224355 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2007224354} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} + m_Name: + m_EditorClassIdentifier: + m_SendPointerHoverToParent: 1 + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &2007224356 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2007224354} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &2007224357 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2007224354} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 429835176} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 429835176} + - {fileID: 568415602} + - {fileID: 1858168407} + - {fileID: 1133257407} diff --git a/Assets/Act-4 Barracuda.unity.meta b/Assets/Act-4 Barracuda.unity.meta new file mode 100644 index 0000000..c55478d --- /dev/null +++ b/Assets/Act-4 Barracuda.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5deb965500846b64ab123fdbbbc2de24 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure.meta b/Assets/Azure.meta new file mode 100644 index 0000000..59a20d0 --- /dev/null +++ b/Assets/Azure.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e41940127110d0147ae02474cfa63fe9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts.meta b/Assets/Azure/KinectScripts.meta new file mode 100644 index 0000000..485e284 --- /dev/null +++ b/Assets/Azure/KinectScripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5a85012640094184b9a055de55b8416c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/AvatarController.cs b/Assets/Azure/KinectScripts/AvatarController.cs new file mode 100644 index 0000000..c0e15ca --- /dev/null +++ b/Assets/Azure/KinectScripts/AvatarController.cs @@ -0,0 +1,1725 @@ +using UnityEngine; +//using Windows.Kinect; + +using System; +using System.Collections; +using System.Collections.Generic; +using com.rfilkov.kinect; + + +namespace com.rfilkov.components +{ + /// + /// Avatar controller is the component that transfers the captured user motion to a humanoid model (avatar). + /// + [RequireComponent(typeof(Animator))] + public class AvatarController : MonoBehaviour + { + [Tooltip("Index of the player, tracked by this component. 0 means the 1st player, 1 - the 2nd one, 2 - the 3rd one, etc.")] + public int playerIndex = 0; + + [Tooltip("Whether the avatar is facing the player or not.")] + public bool mirroredMovement = false; + + [Tooltip("Whether the avatar is allowed to move vertically or not.")] + public bool verticalMovement = true; + + [Tooltip("Whether the avatar is allowed to move horizontally or not.")] + public bool horizontalMovement = true; + + [Tooltip("Whether the avatar's root motion is applied by other component or script.")] + public bool externalRootMotion = false; + + [Tooltip("Whether the head rotation is controlled externally (e.g. by VR-headset).")] + public bool externalHeadRotation = false; + + [Tooltip("Whether the hand and finger rotations are controlled externally (e.g. by LeapMotion controller)")] + public bool externalHandRotations = false; + + [Tooltip("Whether the finger orientations are allowed or not.")] + public bool fingerOrientations = false; + + [Tooltip("Rate at which the avatar will move through the scene.")] + public float moveRate = 1f; + + [Tooltip("Smooth factor used for avatar movements and joint rotations.")] + public float smoothFactor = 10f; + + [Tooltip("Whether to update the avatar in LateUpdate(), instead of in Update(). Needed for Mecanim animation blending.")] + public bool lateUpdateAvatar = false; + + [Tooltip("Game object this transform is relative to (optional).")] + public Transform offsetNode; + + [Tooltip("If enabled, makes the avatar position relative to this camera to be the same as the player's position to the sensor.")] + public Camera posRelativeToCamera; + + [Tooltip("Whether the avatar's position should match the color image (in Pos-rel-to-camera mode only).")] + public bool posRelOverlayColor = false; + + //[Tooltip("Plane used to render the color camera background to overlay.")] + //public Transform backgroundPlane; + + [Tooltip("Whether z-axis movement needs to be inverted (Pos-Relative mode only).")] + [HideInInspector] + public bool posRelInvertedZ = false; + + [Tooltip("Whether the avatar's feet must stick to the ground.")] + public bool groundedFeet = false; + + [Tooltip("Whether to apply the humanoid model's muscle limits or not.")] + public bool applyMuscleLimits = false; + + [Tooltip("Whether to flip left and right, relative to the sensor.")] + public bool flipLeftRight = false; + + + [Tooltip("Horizontal offset of the avatar with respect to the position of user's spine-base.")] + [Range(-0.5f, 0.5f)] + public float horizontalOffset = 0f; + + [Tooltip("Vertical offset of the avatar with respect to the position of user's spine-base.")] + [Range(-0.5f, 0.5f)] + public float verticalOffset = 0f; + + [Tooltip("Forward offset of the avatar with respect to the position of user's spine-base.")] + [Range(-0.5f, 0.5f)] + public float forwardOffset = 0f; + + // suggested and implemented by Ruben Gonzalez + [Tooltip("Whether to use unscaled or normal (scaled) time.")] + public bool useUnscaledTime = false; + + [Tooltip("Radius of the joint sphere and bone capsule colliders, in meters. You can set it to 0.02 to try it out. 0 means no collider.")] + [Range(0f, 0.1f)] + public float boneColliderRadius = 0f; // 0.02f; + + // userId of the player + [NonSerialized] + public ulong playerId = 0; + + + // The body root node + protected Transform bodyRoot; + protected float hipCenterDist = 0f; + + // Variable to hold all them bones. It will initialize the same size as initialRotations. + protected Transform[] bones; + //protected Transform[] fingerBones; + + protected CapsuleCollider[] boneColliders; + protected Transform[] boneColTrans; + protected Transform[] boneColJoint; + protected Transform[] boneColParent; + + // Rotations of the bones when the Kinect tracking starts. + protected Quaternion[] initialRotations; + protected Quaternion[] localRotations; + protected bool[] isBoneDisabled; + + // Local rotations of finger bones + protected Dictionary fingerBoneLocalRotations = new Dictionary(); + protected Dictionary fingerBoneLocalAxes = new Dictionary(); + + // Initial position and rotation of the transform + protected Vector3 initialPosition; + protected Quaternion initialRotation; + protected Vector3 initialHipsPosition; + protected Quaternion initialHipsRotation; + protected Vector3 initialUpVector; + + //protected Vector3 offsetNodePos; + //protected Quaternion offsetNodeRot; + protected Vector3 bodyRootPosition; + + // Calibration Offset Variables for Character Position. + [NonSerialized] + public bool offsetCalibrated = false; + protected Vector3 offsetPos = Vector3.zero; + //protected float xOffset, yOffset, zOffset; + //private Quaternion originalRotation; + //protected Vector3 offsetCamPos = Vector3.zero; + //protected Quaternion offsetCamRot = Quaternion.identity; + + // whether the user pose has been applied on the avatar or not + protected bool poseApplied = false; + protected Quaternion pelvisRotation = Quaternion.identity; + + // sharp rotation angle + protected const float SHARP_ROT_ANGLE = 90f; // 90 degrees + + protected Animator animatorComponent = null; + private HumanPoseHandler humanPoseHandler = null; + private HumanPose humanPose = new HumanPose(); + + // whether the parent transform obeys physics + protected bool isRigidBody = false; + + // private instance of the KinectManager + protected KinectManager kinectManager; + + //// last hand events + //private InteractionManager.HandEventType lastLeftHandEvent = InteractionManager.HandEventType.Release; + //private InteractionManager.HandEventType lastRightHandEvent = InteractionManager.HandEventType.Release; + + //// fist states + //private bool bLeftFistDone = false; + //private bool bRightFistDone = false; + + // grounder constants and variables + //protected const int raycastLayers = ~2; // Ignore Raycast + protected const float MaxFootDistanceGround = 0.02f; // maximum distance from lower foot to the ground + protected const float MaxFootDistanceTime = 0.2f; // 1.0f; // maximum allowed time, the lower foot to be distant from the ground + protected Transform leftFoot, rightFoot; + protected Vector3 leftFootPos, rightFootPos; + + //protected float fFootDistanceInitial = 0f; + protected float fFootDistance = 0f; + protected float fFootDistanceTime = 0f; + protected Vector3 vFootCorrection = Vector3.zero; + + //// background plane rectangle + //private Rect planeRect = new Rect(); + //private bool planeRectSet = false; + + // last time when the avatar was updated + protected float lastUpdateTime = 0f; + protected const float MaxUpdateTime = 0.5f; // allow 0.5 seconds max for smooth updates + + + /// + /// Gets the number of bone transforms (array length). + /// + /// The number of bone transforms. + public int GetBoneTransformCount() + { + return bones != null ? bones.Length : 0; + } + + /// + /// Gets the bone transform by index. + /// + /// The bone transform. + /// Index + public Transform GetBoneTransform(int index) + { + if (index >= 0 && bones != null && index < bones.Length) + { + return bones[index]; + } + + return null; + } + + /// + /// Disables the bone and optionally resets its orientation. + /// + /// Bone index. + /// If set to true resets bone orientation. + public void DisableBone(int index, bool resetBone) + { + if (index >= 0 && index < bones.Length) + { + isBoneDisabled[index] = true; + + if (resetBone && bones[index] != null) + { + bones[index].rotation = localRotations[index]; + } + } + } + + /// + /// Enables the bone, so AvatarController could update its orientation. + /// + /// Bone index. + public void EnableBone(int index) + { + if (index >= 0 && index < bones.Length) + { + isBoneDisabled[index] = false; + } + } + + /// + /// Determines whether the bone orientation update is enabled or not. + /// + /// true if the bone update is enabled; otherwise, false. + /// Bone index. + public bool IsBoneEnabled(int index) + { + if (index >= 0 && index < bones.Length) + { + return !isBoneDisabled[index]; + } + + return false; + } + + /// + /// Gets the bone index by joint type. + /// + /// The bone index. + /// Joint type + /// If set to true gets the mirrored joint index. + public int GetBoneIndexByJoint(KinectInterop.JointType joint, bool bMirrored) + { + int boneIndex = -1; + + if (jointMap2boneIndex.ContainsKey(joint)) + { + boneIndex = !bMirrored ? jointMap2boneIndex[joint] : mirrorJointMap2boneIndex[joint]; + } + + return boneIndex; + } + + /// + /// Gets the list of AC-controlled mecanim bones. + /// + /// List of AC-controlled mecanim bones + public List GetMecanimBones() + { + List alMecanimBones = new List(); + + for (int boneIndex = 0; boneIndex < bones.Length; boneIndex++) + { + if (!boneIndex2MecanimMap.ContainsKey(boneIndex) || boneIndex >= 21) + continue; + + alMecanimBones.Add(boneIndex2MecanimMap[boneIndex]); + } + + return alMecanimBones; + } + + + // transform caching gives performance boost since Unity calls GetComponent() each time you call transform + private Transform _transformCache; + public new Transform transform + { + get + { + if (!_transformCache) + { + _transformCache = base.transform; + } + + return _transformCache; + } + } + + + public virtual void Awake() + { + // check for double start + if (bones != null) + return; + if (!gameObject.activeInHierarchy) + return; + + // inits the bones array + bones = new Transform[25]; + + // get the animator reference + animatorComponent = GetComponent(); + + // Map bones to the points the Kinect tracks + MapBones(); + + // get distance to hip center + Vector3 bodyRootPos = bodyRoot != null ? bodyRoot.position : transform.position; + Vector3 hipCenterPos = bodyRoot != null ? bodyRoot.position : (bones != null && bones.Length > 0 && bones[0] != null ? bones[0].position : transform.position); + hipCenterDist = (hipCenterPos - bodyRootPos).magnitude; + + // Set model's arms to be in T-pose, if needed + SetModelArmsInTpose(); + + // Initial rotations and directions of the bones. + initialRotations = new Quaternion[bones.Length]; + localRotations = new Quaternion[bones.Length]; + isBoneDisabled = new bool[bones.Length]; + + // Get initial bone rotations + GetInitialRotations(); + + // enable all bones + for (int i = 0; i < bones.Length; i++) + { + isBoneDisabled[i] = false; + } + + // get initial distance to ground + //fFootDistanceInitial = GetCorrDistanceToGround(); + fFootDistance = 0f; + fFootDistanceTime = 0f; + + // get left & right foot positions + leftFoot = GetBoneTransform(GetBoneIndexByJoint(KinectInterop.JointType.FootLeft, false)); + rightFoot = GetBoneTransform(GetBoneIndexByJoint(KinectInterop.JointType.FootRight, false)); + + if (leftFoot == null || rightFoot == null) + { + leftFoot = GetBoneTransform(GetBoneIndexByJoint(KinectInterop.JointType.AnkleLeft, false)); + rightFoot = GetBoneTransform(GetBoneIndexByJoint(KinectInterop.JointType.AnkleRight, false)); + } + + leftFootPos = leftFoot != null ? leftFoot.position : Vector3.zero; + rightFootPos = rightFoot != null ? rightFoot.position : Vector3.zero; + + // if parent transform uses physics + isRigidBody = (gameObject.GetComponent() != null); + + // get the pose handler reference + if (animatorComponent && animatorComponent.avatar && animatorComponent.avatar.isHuman) + { + Transform hipsTransform = animatorComponent.GetBoneTransform(HumanBodyBones.Hips); + Transform rootTransform = hipsTransform; // transform; + + humanPoseHandler = new HumanPoseHandler(animatorComponent.avatar, rootTransform); + humanPoseHandler.GetHumanPose(ref humanPose); + + initialHipsPosition = (humanPose.bodyPosition - rootTransform.position); // hipsTransform.position + initialHipsRotation = humanPose.bodyRotation; + //Debug.Log($"{gameObject.name} - initialHipsPos: {initialHipsPosition}, rot: {initialHipsRotation.eulerAngles}, humanPosePos: {humanPose.bodyPosition}, transformPos: {rootTransform.position}"); + } + + // create bone and joint colliders, if needed + CreateBoneColliders(); + } + + + public virtual void Update() + { + if(kinectManager == null) + { + kinectManager = KinectManager.Instance; + } + + ulong userId = kinectManager ? kinectManager.GetUserIdByIndex(playerIndex) : 0; + if (playerId != userId) + { + if (/**playerId == 0 &&*/ userId != 0) + SuccessfulCalibration(userId, false); + else if (/**playerId != 0 &&*/ userId == 0) + ResetToInitialPosition(); + } + + if (!lateUpdateAvatar && playerId != 0) + { + //Vector3 playerPos = kinectManager.GetUserPosition(playerId); + //Vector3 playerRot = kinectManager.GetJointOrientation(playerId, 0, true).eulerAngles; + //Debug.Log(string.Format("Avatar userIndex: {0}, userId: {1}, pos: {2}, rot: {3}", playerIndex, playerId, playerPos, playerRot)); + + UpdateAvatar(playerId); + } + } + + + public virtual void LateUpdate() + { + if (lateUpdateAvatar && playerId != 0) + { + UpdateAvatar(playerId); + } + + // update bone colliders, as needed + UpdateBoneColliders(); + } + + + // applies the muscle limits for humanoid avatar + private void CheckMuscleLimits() + { + if (humanPoseHandler == null) + return; + + humanPoseHandler.GetHumanPose(ref humanPose); + + //Debug.Log(playerId + " - Trans: " + transform.position + ", body: " + humanPose.bodyPosition); + + bool isPoseChanged = false; + + float muscleMin = -1f; + float muscleMax = 1f; + + for (int i = 0; i < humanPose.muscles.Length; i++) + { + if (float.IsNaN(humanPose.muscles[i])) + { + //humanPose.muscles[i] = 0f; + continue; + } + + if (humanPose.muscles[i] < muscleMin) + { + humanPose.muscles[i] = muscleMin; + isPoseChanged = true; + } + else if (humanPose.muscles[i] > muscleMax) + { + humanPose.muscles[i] = muscleMax; + isPoseChanged = true; + } + } + + if (isPoseChanged) + { + //Quaternion localBodyRot = Quaternion.Inverse(transform.rotation) * humanPose.bodyRotation; + Vector3 localBodyPos = Quaternion.Inverse(initialHipsRotation) * initialHipsPosition; + Quaternion localBodyRot = Quaternion.Inverse(initialHipsRotation) * humanPose.bodyRotation; + //Debug.Log($"{gameObject.name} - lBodyPos: {localBodyPos}, lBodyRot: {localBodyRot.eulerAngles}\ninitHipsPos: {initialHipsPosition}, initHipsRot: {initialHipsRotation.eulerAngles}"); + + // recover the body position & orientation + humanPose.bodyPosition = localBodyPos; // initialHipsPosition; + humanPose.bodyRotation = localBodyRot; // Quaternion.identity; + + humanPoseHandler.SetHumanPose(ref humanPose); + //Debug.Log(" Human pose updated."); + } + + } + + + /// + /// Updates the avatar each frame. + /// + /// User ID + public virtual void UpdateAvatar(ulong UserID) + { + if (!gameObject.activeInHierarchy) + return; + + // Get the KinectManager instance + if (kinectManager == null) + { + kinectManager = KinectManager.Instance; + } + + //// get the background plane rectangle if needed + //if (backgroundPlane && !planeRectSet && kinectManager && kinectManager.IsInitialized()) + //{ + // planeRectSet = true; + + // planeRect.width = 10f * Mathf.Abs(backgroundPlane.localScale.x); + // planeRect.height = 10f * Mathf.Abs(backgroundPlane.localScale.z); + // planeRect.x = backgroundPlane.position.x - planeRect.width / 2f; + // planeRect.y = backgroundPlane.position.y - planeRect.height / 2f; + //} + + // move the avatar to its Kinect position + if (!externalRootMotion) + { + MoveAvatar(UserID); + } + + //// get the left hand state and event + //if (kinectManager && kinectManager.GetJointTrackingState(UserID, (int)KinectInterop.JointType.HandLeft) != KinectInterop.TrackingState.NotTracked) + //{ + // KinectInterop.HandState leftHandState = kinectManager.GetLeftHandState(UserID); + // InteractionManager.HandEventType leftHandEvent = InteractionManager.HandStateToEvent(leftHandState, lastLeftHandEvent); + + // if (leftHandEvent != InteractionManager.HandEventType.None) + // { + // lastLeftHandEvent = leftHandEvent; + // } + //} + + //// get the right hand state and event + //if (kinectManager && kinectManager.GetJointTrackingState(UserID, (int)KinectInterop.JointType.HandRight) != KinectInterop.TrackingState.NotTracked) + //{ + // KinectInterop.HandState rightHandState = kinectManager.GetRightHandState(UserID); + // InteractionManager.HandEventType rightHandEvent = InteractionManager.HandStateToEvent(rightHandState, lastRightHandEvent); + + // if (rightHandEvent != InteractionManager.HandEventType.None) + // { + // lastRightHandEvent = rightHandEvent; + // } + //} + + // check for sharp pelvis rotations + float pelvisAngle = GetPelvisAngle(UserID, false); + + if (!poseApplied || pelvisAngle < SHARP_ROT_ANGLE) + { + // rotate the avatar bones + for (var boneIndex = 0; boneIndex < bones.Length; boneIndex++) + { + if (!bones[boneIndex] || isBoneDisabled[boneIndex]) // check for missing or disabled bones + continue; + + bool flip = !(mirroredMovement ^ flipLeftRight); + if (boneIndex2JointMap.ContainsKey(boneIndex)) + { + KinectInterop.JointType joint = flip ? boneIndex2JointMap[boneIndex] : boneIndex2MirrorJointMap[boneIndex]; + + if (externalHeadRotation && joint == KinectInterop.JointType.Head) // skip head if moved externally + { + continue; + } + + if (externalHandRotations && // skip hands if moved externally + (joint == KinectInterop.JointType.WristLeft || joint == KinectInterop.JointType.WristRight || + joint == KinectInterop.JointType.HandLeft || joint == KinectInterop.JointType.HandRight)) + { + continue; + } + + TransformBone(UserID, joint, boneIndex, flip); + } + else if (boneIndex >= 21 && boneIndex <= 24) + { + // fingers or thumbs + if (fingerOrientations && !externalHandRotations) + { + KinectInterop.JointType joint = flip ? boneIndex2FingerMap[boneIndex] : boneIndex2MirrorFingerMap[boneIndex]; + + TransformSpecialBoneFingers(UserID, (int)joint, boneIndex, flip); + } + } + } + + } + + // save pelvis rotation + SavePelvisRotation(UserID); + + // user pose has been applied + poseApplied = true; + + if (applyMuscleLimits && kinectManager && kinectManager.IsUserTracked(UserID)) + { + // check for limits + CheckMuscleLimits(); + } + + // update time + lastUpdateTime = Time.time; + } + + /// + /// Resets bones to their initial positions and rotations. This also releases avatar control from KM, by settings playerId to 0 + /// + public virtual void ResetToInitialPosition() + { + //Debug.Log("ResetToInitialPosition. UserId: " + playerId); + playerId = 0; + + if (bones == null) + return; + + // For each bone that was defined, reset to initial position. + transform.rotation = Quaternion.identity; + + for (int pass = 0; pass < 2; pass++) // 2 passes because clavicles are at the end + { + for (int i = 0; i < bones.Length; i++) + { + if (bones[i] != null) + { + bones[i].rotation = initialRotations[i]; + } + } + } + + // reset finger bones to initial position + //Animator animatorComponent = GetComponent(); + foreach (HumanBodyBones bone in fingerBoneLocalRotations.Keys) + { + Transform boneTransform = animatorComponent ? animatorComponent.GetBoneTransform(bone) : null; + + if (boneTransform) + { + boneTransform.localRotation = fingerBoneLocalRotations[bone]; + } + } + + //// Restore the offset's position and rotation + //if (offsetNode != null) + //{ + // offsetNode.transform.position = offsetNodePos; + // offsetNode.transform.rotation = offsetNodeRot; + //} + + transform.position = initialPosition; + transform.rotation = initialRotation; + initialUpVector = transform.up; + } + + /// + /// Invoked on the successful calibration of the player. + /// + /// User identifier. + public virtual void SuccessfulCalibration(ulong userId, bool resetInitialTransform) + { + playerId = userId; + //Debug.Log("SuccessfulCalibration. UserId: " + playerId); + + //// reset the models position + //if (offsetNode != null) + //{ + // offsetNode.transform.position = offsetNodePos; + // offsetNode.transform.rotation = offsetNodeRot; + //} + + // reset initial position / rotation if needed + if (resetInitialTransform) + { + bodyRootPosition = transform.position; + initialPosition = transform.position; + initialRotation = transform.rotation; + } + + transform.position = initialPosition; + transform.rotation = initialRotation; + initialUpVector = transform.up; + + // re-calibrate the position offset + offsetCalibrated = false; + poseApplied = false; + } + + /// + /// Moves the avatar to its initial/base position + /// + /// world position + /// rotation offset + public virtual void ResetInitialTransform(Vector3 position, Vector3 rotation) + { + bodyRootPosition = position; + initialPosition = position; + initialRotation = Quaternion.Euler(rotation); + + transform.position = initialPosition; + transform.rotation = initialRotation; + initialUpVector = transform.up; + + offsetCalibrated = false; // this causes calibrating offset in MoveAvatar function + poseApplied = false; + } + + /// + /// Sets the avatar's offset position (position of initial user detection). + /// + /// New offset position. If zero, sets the current player position as offset position. + public void SetOffsetPos(Vector3 pos) + { + if(pos == Vector3.zero) + { + pos = kinectManager.GetUserPosition(playerId); + } + + if(pos != Vector3.zero) + { + offsetPos.x = pos.x; + offsetPos.y = pos.y; + offsetPos.z = !mirroredMovement && !posRelativeToCamera ? -pos.z : pos.z; + + offsetCalibrated = true; + //Debug.LogWarning($"{gameObject.name} offset set to: {offsetPos:F2}"); + } + } + + // Checks if the given joint is part of the legs + protected bool IsLegJoint(KinectInterop.JointType joint) + { + return ((joint == KinectInterop.JointType.HipLeft) || (joint == KinectInterop.JointType.HipRight) || + (joint == KinectInterop.JointType.KneeLeft) || (joint == KinectInterop.JointType.KneeRight) || + (joint == KinectInterop.JointType.AnkleLeft) || (joint == KinectInterop.JointType.AnkleRight)); + } + + // saves current pelvis rotation + protected void SavePelvisRotation(ulong userId) + { + if (kinectManager != null && kinectManager.IsJointTracked(userId, (int)KinectInterop.JointType.Pelvis)) + { + Quaternion curPelvisRot = kinectManager.GetJointOrientation(userId, (int)KinectInterop.JointType.Pelvis, false); + if (poseApplied) + pelvisRotation = Quaternion.RotateTowards(pelvisRotation, curPelvisRot, 90f * Time.deltaTime); // 90 deg/s + else + pelvisRotation = curPelvisRot; + //Debug.Log($" P{playerIndex}, id: {playerId} - Pel: {pelvisRotation.eulerAngles}, Cur: {curPelvisRot.eulerAngles} P: {poseApplied}, dT: {Time.deltaTime:F3}, P: {poseApplied}, dT: {Time.deltaTime:F3}"); + } + } + + // returns the angle between the last and current pelvis orientations (in degrees 0-180), or -1 if anything goes wrong + protected float GetPelvisAngle(ulong userId, bool flip) + { + int iJoint = (int)KinectInterop.JointType.Pelvis; + if (kinectManager == null || !kinectManager.IsJointTracked(userId, iJoint)) + return -1f; + + // get Kinect joint orientation + Quaternion jointRotation = kinectManager.GetJointOrientation(userId, iJoint, flip); + if (jointRotation == Quaternion.identity) + return -1f; + + float angle = Quaternion.Angle(pelvisRotation, jointRotation); + + return angle; + } + + // Apply the rotations tracked by kinect to the joints. + protected virtual void TransformBone(ulong userId, KinectInterop.JointType joint, int boneIndex, bool flip) + { + Transform boneTransform = bones[boneIndex]; + if (boneTransform == null || kinectManager == null) + return; + + int iJoint = (int)joint; + if ((iJoint < 0) || (kinectManager.GetJointTrackingState(userId, iJoint) < KinectInterop.TrackingState.Tracked)) + return; + + // Get Kinect joint orientation + Quaternion jointRotation = kinectManager.GetJointOrientation(userId, iJoint, flip); + if (jointRotation == Quaternion.identity && !IsLegJoint(joint)) + return; + + //if (joint == KinectInterop.JointType.WristLeft) + //{ + // //jointRotation = Quaternion.identity; + // Debug.Log(string.Format("AC {0:F3} {1}, user: {2}, state: {3}\npos: {4}, rot: {5}", Time.time, joint, + // userId, kinectManager.GetJointTrackingState(userId, iJoint), + // kinectManager.GetJointPosition(userId, iJoint), jointRotation.eulerAngles)); + //} + + // calculate the new orientation + Quaternion newRotation = Kinect2AvatarRot(jointRotation, boneIndex); + + if (externalRootMotion) + { + newRotation = transform.rotation * newRotation; + } + + // Smoothly transition to the new rotation + bool isSmoothAllowed = (Time.time - lastUpdateTime) <= MaxUpdateTime; + + if (isSmoothAllowed && smoothFactor != 0f) + boneTransform.rotation = Quaternion.Slerp(boneTransform.rotation, newRotation, smoothFactor * (useUnscaledTime ? Time.unscaledDeltaTime : Time.deltaTime)); + else + boneTransform.rotation = newRotation; + + //if(boneIndex == 5 || boneIndex == 6) // clavicles + //{ + // Debug.Log(boneIndex + " rot - joint: " + jointRotation.eulerAngles + ", k2a: " + newRotation.eulerAngles + ", trans: " + boneTransform.rotation.eulerAngles); + //} + } + + // Apply the rotations tracked by kinect to fingers (one joint = multiple bones) + protected virtual void TransformSpecialBoneFingers(ulong userId, int joint, int boneIndex, bool flip) + { + //// check for hand grips + //if (joint == (int)KinectInterop.JointType.HandtipLeft || joint == (int)KinectInterop.JointType.ThumbLeft) + //{ + // if (lastLeftHandEvent == InteractionManager.HandEventType.Grip) + // { + // if (!bLeftFistDone && !kinectManager.IsUserTurnedAround(userId)) + // { + // float angleSign = !mirroredMovement /**(boneIndex == 21 || boneIndex == 22)*/ ? -1f : -1f; + // float angleRot = angleSign * 60f; + + // TransformSpecialBoneFist(boneIndex, angleRot); + // bLeftFistDone = (boneIndex >= 29); + // } + + // return; + // } + // else if (bLeftFistDone && lastLeftHandEvent == InteractionManager.HandEventType.Release) + // { + // TransformSpecialBoneUnfist(boneIndex); + // bLeftFistDone = !(boneIndex >= 29); + // } + //} + //else if (joint == (int)KinectInterop.JointType.HandtipRight || joint == (int)KinectInterop.JointType.ThumbRight) + //{ + // if (lastRightHandEvent == InteractionManager.HandEventType.Grip) + // { + // if (!bRightFistDone && !kinectManager.IsUserTurnedAround(userId)) + // { + // float angleSign = !mirroredMovement /**(boneIndex == 21 || boneIndex == 22)*/ ? -1f : -1f; + // float angleRot = angleSign * 60f; + + // TransformSpecialBoneFist(boneIndex, angleRot); + // bRightFistDone = (boneIndex >= 29); + // } + + // return; + // } + // else if (bRightFistDone && lastRightHandEvent == InteractionManager.HandEventType.Release) + // { + // TransformSpecialBoneUnfist(boneIndex); + // bRightFistDone = !(boneIndex >= 29); + // } + //} + + bool isJointTracked = kinectManager.IsJointTracked(userId, joint); + if (!animatorComponent || !isJointTracked) + return; + + // Get Kinect joint orientation + Quaternion jointRotation = kinectManager.GetJointOrientation(userId, joint, flip); + if (jointRotation == Quaternion.identity) + return; + + // calculate the new orientation + Quaternion newRotation = Kinect2AvatarRot(jointRotation, boneIndex); + + if (externalRootMotion) + { + newRotation = transform.rotation * newRotation; + } + + // get the list of bones + List alBones = boneIndex2MultiBoneMap[boneIndex]; + + // Smoothly transition to the new rotation + bool isSmoothAllowed = (Time.time - lastUpdateTime) <= MaxUpdateTime; + + for (int i = 0; i < alBones.Count; i++) + { + Transform boneTransform = animatorComponent.GetBoneTransform(alBones[i]); + if (!boneTransform) + continue; + + if (isSmoothAllowed && smoothFactor != 0f) + boneTransform.rotation = Quaternion.Slerp(boneTransform.rotation, newRotation, smoothFactor * (useUnscaledTime ? Time.unscaledDeltaTime : Time.deltaTime)); + else + boneTransform.rotation = newRotation; + } + } + + // Apply the rotations needed to transform fingers to fist + protected virtual void TransformSpecialBoneFist(int boneIndex, float angle) + { + if (!animatorComponent) + return; + + List alBones = boneIndex2MultiBoneMap[boneIndex]; + for (int i = 0; i < alBones.Count; i++) + { + if (i < 1 && (boneIndex == 22 || boneIndex == 24)) // skip the first thumb bone + continue; + + HumanBodyBones bone = alBones[i]; + Transform boneTransform = animatorComponent.GetBoneTransform(bone); + + // set the fist rotation + if (boneTransform && fingerBoneLocalAxes[bone] != Vector3.zero) + { + Quaternion qRotFinger = Quaternion.AngleAxis(angle, fingerBoneLocalAxes[bone]); + boneTransform.localRotation = fingerBoneLocalRotations[bone] * qRotFinger; + } + } + + } + + // Apply the initial rotations fingers + protected virtual void TransformSpecialBoneUnfist(int boneIndex) + { + if (!animatorComponent) + return; + + List alBones = boneIndex2MultiBoneMap[boneIndex]; + for (int i = 0; i < alBones.Count; i++) + { + HumanBodyBones bone = alBones[i]; + Transform boneTransform = animatorComponent.GetBoneTransform(bone); + + // set the initial rotation + if (boneTransform) + { + boneTransform.localRotation = fingerBoneLocalRotations[bone]; + } + } + } + + // Moves the avatar - gets the tracked position of the user and applies it to avatar. + protected virtual void MoveAvatar(ulong UserID) + { + if ((moveRate == 0f) || !kinectManager || + (kinectManager.GetJointTrackingState(UserID, (int)KinectInterop.JointType.Pelvis) < KinectInterop.TrackingState.Tracked)) + { + return; + } + + // get the position of user's spine base + Vector3 trans = kinectManager.GetUserPosition(UserID); + + // move avatar transform + DoMoveAvatar(UserID, trans); + } + + // Moves the avatar transform + protected void DoMoveAvatar(ulong UserID, Vector3 trans) + { + //Debug.Log("User " + playerIndex + " pos: " + trans); + if (flipLeftRight) + trans.x = -trans.x; + + if (posRelativeToCamera) + { + if (posRelOverlayColor) + { + // disable grounded feet + if(groundedFeet) + { + groundedFeet = false; + } + + // use the color overlay position + int sensorIndex = kinectManager.GetPrimaryBodySensorIndex(); + + //if (backgroundPlane && planeRectSet) + //{ + // // get the plane overlay position + // trans = kinectManager.GetJointPosColorOverlay(UserID, (int)KinectInterop.JointType.Pelvis, sensorIndex, planeRect); + // trans.z = backgroundPlane.position.z - posRelativeToCamera.transform.position.z - 0.1f; // 10cm offset + //} + //else + { + Rect backgroundRect = posRelativeToCamera.pixelRect; + PortraitBackground portraitBack = PortraitBackground.Instance; + + if (portraitBack && portraitBack.enabled) + { + backgroundRect = portraitBack.GetBackgroundRect(); + } + + trans = kinectManager.GetJointPosColorOverlay(UserID, (int)KinectInterop.JointType.Pelvis, sensorIndex, posRelativeToCamera, backgroundRect); + } + } + else + { + // move according to the camera + Vector3 bodyRootPos = bodyRoot != null ? bodyRoot.position : transform.position; + Vector3 userLocalPos = kinectManager.GetUserKinectPosition(UserID, true); + trans = posRelativeToCamera.transform.TransformPoint(userLocalPos); + //Debug.Log(" trans: " + trans + ", localPos: " + userLocalPos + ", camPos: " + posRelativeToCamera.transform.position); + + if (!horizontalMovement) + { + trans = new Vector3(bodyRootPos.x, trans.y, bodyRootPos.z); + } + + if (verticalMovement) + { + trans.y -= hipCenterDist; + } + else + { + trans.y = bodyRootPos.y; + } + + //Debug.Log("cameraPos: " + posRelativeToCamera.transform.position + ", cameraRot: " + posRelativeToCamera.transform.rotation.eulerAngles + + // ", bodyRoot: " + bodyRootPos + ", hipCenterDist: " + hipCenterDist + ", localPos: " + userLocalPos + ", trans: " + trans); + } + + if (flipLeftRight) + trans.x = -trans.x; + + if(posRelOverlayColor || !offsetCalibrated) + { + if (bodyRoot != null) + { + bodyRoot.position = trans; + } + else + { + transform.position = trans; + } + + bodyRootPosition = trans; + //Debug.Log($"BodyRootPos set: {trans:F2}"); + + // reset the body offset + offsetCalibrated = false; + } + } + + // invert the z-coordinate, if needed + if (posRelativeToCamera && posRelInvertedZ) + { + trans.z = -trans.z; + } + + //if (posRelativeToCamera /**&& horizontalMovement*/) + //{ + // //if(offsetCamPos != posRelativeToCamera.transform.position || offsetCamRot != posRelativeToCamera.transform.rotation) + // { + // //offsetCamPos = posRelativeToCamera.transform.position; + // //offsetCamRot = posRelativeToCamera.transform.rotation; + // //Debug.Log("Changed cam pos: " + offsetCamPos + ", rot: " + offsetCamRot.eulerAngles); + // } + //} + + if (!offsetCalibrated) + { + offsetPos.x = trans.x; // !mirroredMovement ? trans.x * moveRate : -trans.x * moveRate; + offsetPos.y = trans.y; // trans.y * moveRate; + offsetPos.z = !mirroredMovement && !posRelativeToCamera ? -trans.z : trans.z; // -trans.z * moveRate; + + offsetCalibrated = posRelativeToCamera || GetUserHipAngle(UserID) >= 170f; + //Debug.LogWarning($"{gameObject.name} offset: {offsetPos:F2}, calibrated: {offsetCalibrated}, hipAngle: {GetUserHipAngle(UserID):F1}"); + } + + // transition to the new position + Vector3 targetPos = bodyRootPosition + Kinect2AvatarPos(trans, verticalMovement, horizontalMovement); + //Debug.Log(" targetPos: " + targetPos + ", trans: " + trans + ", offsetPos: " + offsetPos + ", bodyRootPos: " + bodyRootPosition); + + if (isRigidBody && !verticalMovement) + { + // workaround for obeying the physics (e.g. gravity falling) + targetPos.y = bodyRoot != null ? bodyRoot.position.y : transform.position.y; + } + + // fixed bone indices - thanks to Martin Cvengros! + var biShoulderL = GetBoneIndexByJoint(KinectInterop.JointType.ShoulderLeft, false); // you may replace 'false' with 'mirroredMovement' + var biShoulderR = GetBoneIndexByJoint(KinectInterop.JointType.ShoulderRight, false); // you may replace 'false' with 'mirroredMovement' + var biPelvis = GetBoneIndexByJoint(KinectInterop.JointType.Pelvis, false); // you may replace 'false' with 'mirroredMovement' + var biNeck = GetBoneIndexByJoint(KinectInterop.JointType.Neck, false); // you may replace 'false' with 'mirroredMovement' + + // added by r618 + if (horizontalMovement && horizontalOffset != 0f && + bones[biShoulderL] != null && bones[biShoulderR] != null) + { + // { 5, HumanBodyBones.LeftUpperArm}, + // { 11, HumanBodyBones.RightUpperArm}, + //Vector3 dirSpine = bones[5].position - bones[11].position; + Vector3 dirShoulders = bones[biShoulderR].position - bones[biShoulderL].position; + targetPos += dirShoulders.normalized * horizontalOffset; + } + + if (verticalMovement && verticalOffset != 0f && + bones[biPelvis] != null && bones[biNeck] != null) + { + Vector3 dirSpine = bones[biNeck].position - bones[biPelvis].position; + targetPos += dirSpine.normalized * verticalOffset; + } + + if (horizontalMovement && forwardOffset != 0f && + bones[biPelvis] != null && bones[biNeck] != null && bones[biShoulderL] != null && bones[biShoulderR] != null) + { + Vector3 dirSpine = (bones[biNeck].position - bones[biPelvis].position).normalized; + Vector3 dirShoulders = (bones[biShoulderR].position - bones[biShoulderL].position).normalized; + Vector3 dirForward = Vector3.Cross(dirShoulders, dirSpine).normalized; + + targetPos += dirForward * forwardOffset; + } + + if (groundedFeet && verticalMovement) // without vertical movement, grounding produces an ever expanding jump up & down + { + float fNewDistance = GetCorrDistanceToGround(); + float fNewDistanceTime = useUnscaledTime ? Time.unscaledTime : Time.time; + //Vector3 lastTargetPos = targetPos; + + if (Mathf.Abs(fNewDistance) >= MaxFootDistanceGround && Mathf.Abs(fFootDistance + fNewDistance) < 1f) // limit the correction to 1 meter + { + if ((fNewDistanceTime - fFootDistanceTime) >= MaxFootDistanceTime) + { + fFootDistance += fNewDistance; + fFootDistanceTime = fNewDistanceTime; + + vFootCorrection = initialUpVector * fFootDistance; + + //Debug.Log($"****{leftFoot.name} pos: {leftFoot.position}, ini: {leftFootPos}, dif: {leftFoot.position - leftFootPos}\n" + + // $"****{rightFoot.name} pos: {rightFoot.position}, ini: {rightFootPos}, dif: {rightFoot.position - rightFootPos}\n" + + // $"****footDist: {fNewDistance:F2}, footCorr: {vFootCorrection}, {transform.name} pos: {transform.position}"); + } + } + else + { + fFootDistanceTime = fNewDistanceTime; + } + + targetPos += vFootCorrection; + //Debug.Log($"Gnd targetPos: {targetPos}, lastPos: {lastTargetPos}, vFootCorrection: {vFootCorrection}\nfFootDistance: {fFootDistance:F2}, fNewDistance: {fNewDistance:F2}, upVector: {initialUpVector}, distTime: {(fNewDistanceTime - fFootDistanceTime):F3}"); + } + + bool isSmoothAllowed = (Time.time - lastUpdateTime) <= MaxUpdateTime; + if (bodyRoot != null) + { + bodyRoot.position = isSmoothAllowed && smoothFactor != 0f ? + Vector3.Lerp(bodyRoot.position, targetPos, smoothFactor * (useUnscaledTime ? Time.unscaledDeltaTime : Time.deltaTime)) : targetPos; + } + else + { + transform.position = isSmoothAllowed && smoothFactor != 0f ? + Vector3.Lerp(transform.position, targetPos, smoothFactor * (useUnscaledTime ? Time.unscaledDeltaTime : Time.deltaTime)) : targetPos; + } + } + + // Returns the angle at user's hip (knee-hip-neck) + protected float GetUserHipAngle(ulong userId) + { + float angle = 0f; + + if(kinectManager != null && + kinectManager.GetJointTrackingState(userId, (int)KinectInterop.JointType.Pelvis) >= KinectInterop.TrackingState.Tracked && + kinectManager.GetJointTrackingState(userId, (int)KinectInterop.JointType.Neck) >= KinectInterop.TrackingState.Tracked && + kinectManager.GetJointTrackingState(userId, (int)KinectInterop.JointType.KneeLeft) >= KinectInterop.TrackingState.Tracked && + kinectManager.GetJointTrackingState(userId, (int)KinectInterop.JointType.KneeRight) >= KinectInterop.TrackingState.Tracked) + { + Vector3 posPelvis = kinectManager.GetJointPosition(userId, (int)KinectInterop.JointType.Pelvis); + Vector3 posNeck = kinectManager.GetJointPosition(userId, (int)KinectInterop.JointType.Neck); + + Vector3 posKneeL = kinectManager.GetJointPosition(userId, (int)KinectInterop.JointType.KneeLeft); + Vector3 posKneeR = kinectManager.GetJointPosition(userId, (int)KinectInterop.JointType.KneeRight); + Vector3 posKneeC = (posKneeL + posKneeR) / 2f; + + angle = Vector3.Angle(posNeck - posPelvis, posKneeC - posPelvis); + } + + return angle; + } + + // Set model's arms to be in T-pose + protected virtual void SetModelArmsInTpose() + { + Vector3 vTposeLeftDir = transform.TransformDirection(Vector3.left); + Vector3 vTposeRightDir = transform.TransformDirection(Vector3.right); + + Transform transLeftUarm = GetBoneTransform(GetBoneIndexByJoint(KinectInterop.JointType.ShoulderLeft, false)); // animator.GetBoneTransform(HumanBodyBones.LeftUpperArm); + Transform transLeftLarm = GetBoneTransform(GetBoneIndexByJoint(KinectInterop.JointType.ElbowLeft, false)); // animator.GetBoneTransform(HumanBodyBones.LeftLowerArm); + Transform transLeftHand = GetBoneTransform(GetBoneIndexByJoint(KinectInterop.JointType.WristLeft, false)); // animator.GetBoneTransform(HumanBodyBones.LeftHand); + + if (transLeftUarm != null && transLeftLarm != null) + { + Vector3 vUarmLeftDir = transLeftLarm.position - transLeftUarm.position; + float fUarmLeftAngle = Vector3.Angle(vUarmLeftDir, vTposeLeftDir); + + if (Mathf.Abs(fUarmLeftAngle) >= 5f) + { + Quaternion vFixRotation = Quaternion.FromToRotation(vUarmLeftDir, vTposeLeftDir); + transLeftUarm.rotation = vFixRotation * transLeftUarm.rotation; + } + + if (transLeftHand != null) + { + Vector3 vLarmLeftDir = transLeftHand.position - transLeftLarm.position; + float fLarmLeftAngle = Vector3.Angle(vLarmLeftDir, vTposeLeftDir); + + if (Mathf.Abs(fLarmLeftAngle) >= 5f) + { + Quaternion vFixRotation = Quaternion.FromToRotation(vLarmLeftDir, vTposeLeftDir); + transLeftLarm.rotation = vFixRotation * transLeftLarm.rotation; + } + } + } + + Transform transRightUarm = GetBoneTransform(GetBoneIndexByJoint(KinectInterop.JointType.ShoulderRight, false)); // animator.GetBoneTransform(HumanBodyBones.RightUpperArm); + Transform transRightLarm = GetBoneTransform(GetBoneIndexByJoint(KinectInterop.JointType.ElbowRight, false)); // animator.GetBoneTransform(HumanBodyBones.RightLowerArm); + Transform transRightHand = GetBoneTransform(GetBoneIndexByJoint(KinectInterop.JointType.WristRight, false)); // animator.GetBoneTransform(HumanBodyBones.RightHand); + + if (transRightUarm != null && transRightLarm != null) + { + Vector3 vUarmRightDir = transRightLarm.position - transRightUarm.position; + float fUarmRightAngle = Vector3.Angle(vUarmRightDir, vTposeRightDir); + + if (Mathf.Abs(fUarmRightAngle) >= 5f) + { + Quaternion vFixRotation = Quaternion.FromToRotation(vUarmRightDir, vTposeRightDir); + transRightUarm.rotation = vFixRotation * transRightUarm.rotation; + } + + if (transRightHand != null) + { + Vector3 vLarmRightDir = transRightHand.position - transRightLarm.position; + float fLarmRightAngle = Vector3.Angle(vLarmRightDir, vTposeRightDir); + + if (Mathf.Abs(fLarmRightAngle) >= 5f) + { + Quaternion vFixRotation = Quaternion.FromToRotation(vLarmRightDir, vTposeRightDir); + transRightLarm.rotation = vFixRotation * transRightLarm.rotation; + } + } + } + + } + + // If the bones to be mapped have been declared, map that bone to the model. + protected virtual void MapBones() + { + for (int boneIndex = 0; boneIndex < bones.Length; boneIndex++) + { + if (!boneIndex2MecanimMap.ContainsKey(boneIndex)) + continue; + + bones[boneIndex] = animatorComponent ? animatorComponent.GetBoneTransform(boneIndex2MecanimMap[boneIndex]) : null; + } + + //// map finger bones, too + //fingerBones = new Transform[fingerIndex2MecanimMap.Count]; + + //for (int boneIndex = 0; boneIndex < fingerBones.Length; boneIndex++) + //{ + // if (!fingerIndex2MecanimMap.ContainsKey(boneIndex)) + // continue; + + // fingerBones[boneIndex] = animatorComponent ? animatorComponent.GetBoneTransform(fingerIndex2MecanimMap[boneIndex]) : null; + //} + } + + // creates the joint and bone colliders + protected virtual void CreateBoneColliders() + { + if (boneColliderRadius <= 0f) + return; + + boneColliders = new CapsuleCollider[bones.Length]; + boneColTrans = new Transform[bones.Length]; + boneColJoint = new Transform[bones.Length]; + boneColParent = new Transform[bones.Length]; + + for (int i = 0; i < bones.Length; i++) + { + if (bones[i] == null) + continue; + + SphereCollider jCollider = bones[i].gameObject.AddComponent(); + jCollider.radius = boneColliderRadius; + + if (i > 0) + { + GameObject objBoneCollider = new GameObject("BoneCollider" + i); + objBoneCollider.transform.parent = bones[i]; + boneColTrans[i] = objBoneCollider.transform; + + CapsuleCollider bCollider = objBoneCollider.AddComponent(); + bCollider.radius = boneColliderRadius; + bCollider.height = 0f; + + boneColliders[i] = bCollider; + } + } + + for (int i = 0; i < bones.Length; i++) + { + if (boneColliders[i] == null) + continue; + + boneColJoint[i] = bones[i]; + Transform parentTrans = boneColJoint[i].parent; + + while (parentTrans != null) + { + if (parentTrans.GetComponent() != null) + break; + parentTrans = parentTrans.parent; + } + + if (parentTrans != null) + boneColParent[i] = parentTrans; + else + boneColliders[i] = null; + } + } + + // updates the bone colliders, as needed + protected void UpdateBoneColliders() + { + if (boneColliders == null) + return; + + for (int i = 0; i < bones.Length; i++) + { + if (boneColliders[i] == null) + continue; + + Vector3 posJoint = boneColJoint[i].position; + Vector3 posParent = boneColParent[i].position; + + Vector3 dirFromParent = posJoint - posParent; + boneColTrans[i].position = posParent + dirFromParent / 2f; + boneColTrans[i].up = dirFromParent.normalized; + boneColliders[i].height = dirFromParent.magnitude; + } + } + + // Capture the initial rotations of the bones + protected void GetInitialRotations() + { + //// save the initial rotation + //if (offsetNode != null) + //{ + // offsetNodePos = offsetNode.transform.position; + // offsetNodeRot = offsetNode.transform.rotation; + //} + + initialPosition = transform.position; + initialRotation = transform.rotation; + initialUpVector = transform.up; + + transform.rotation = Quaternion.identity; + + // save the body root initial position + if (bodyRoot != null) + { + bodyRootPosition = bodyRoot.position; + } + else + { + bodyRootPosition = transform.position; + } + + if (offsetNode != null) + { + bodyRootPosition = bodyRootPosition - offsetNode.position; + } + + // save the initial bone rotations + for (int i = 0; i < bones.Length; i++) + { + if (bones[i] != null) + { + initialRotations[i] = bones[i].rotation; + localRotations[i] = bones[i].localRotation; + } + } + + // get finger bones' local rotations + foreach (int boneIndex in boneIndex2MultiBoneMap.Keys) + { + List alBones = boneIndex2MultiBoneMap[boneIndex]; + + for (int b = 0; b < alBones.Count; b++) + { + HumanBodyBones bone = alBones[b]; + Transform boneTransform = animatorComponent ? animatorComponent.GetBoneTransform(bone) : null; + + // get the finger's 1st transform + Transform fingerBaseTransform = animatorComponent ? animatorComponent.GetBoneTransform(alBones[b - (b % 3)]) : null; + + // get the finger's 2nd transform + Transform baseChildTransform = fingerBaseTransform && fingerBaseTransform.childCount > 0 ? fingerBaseTransform.GetChild(0) : null; + Vector3 vBoneDirChild = baseChildTransform && fingerBaseTransform ? (baseChildTransform.position - fingerBaseTransform.position).normalized : Vector3.zero; + Vector3 vOrthoDirChild = Vector3.Cross(vBoneDirChild, Vector3.up).normalized; + + if (boneTransform) + { + fingerBoneLocalRotations[bone] = boneTransform.localRotation; + + if (vBoneDirChild != Vector3.zero) + { + fingerBoneLocalAxes[bone] = boneTransform.InverseTransformDirection(vOrthoDirChild).normalized; + } + else + { + fingerBoneLocalAxes[bone] = Vector3.zero; + } + } + } + } + + // Restore the initial rotation + transform.rotation = initialRotation; + } + + // Converts kinect joint rotation to avatar joint rotation, depending on joint initial rotation and offset rotation + protected Quaternion Kinect2AvatarRot(Quaternion jointRotation, int boneIndex) + { + Quaternion newRotation = jointRotation * initialRotations[boneIndex]; + //newRotation = initialRotation * newRotation; + + if (!externalRootMotion) // fix by Mathias Parger + { + newRotation = initialRotation * newRotation; + + if (offsetNode != null) + { + newRotation = offsetNode.rotation * newRotation; + } + } + + return newRotation; + } + + // Converts Kinect position to avatar skeleton position, depending on initial position, mirroring and move rate + protected Vector3 Kinect2AvatarPos(Vector3 jointPosition, bool bMoveVertically, bool bMoveHorizontally) + { + float xPos = (jointPosition.x - offsetPos.x) * moveRate; + float yPos = (jointPosition.y - offsetPos.y) * moveRate; + float zPos = !mirroredMovement && !posRelativeToCamera ? (-jointPosition.z - offsetPos.z) * moveRate : (jointPosition.z - offsetPos.z) * moveRate; + + Vector3 newPosition = new Vector3(bMoveHorizontally ? xPos : 0f, bMoveVertically ? yPos : 0f, bMoveHorizontally ? zPos : 0f); + + Quaternion posRotation = mirroredMovement ? Quaternion.Euler(0f, 180f, 0f) * initialRotation : initialRotation; + newPosition = posRotation * newPosition; + + if (offsetNode != null) + { + //newPosition += offsetNode.transform.position; + newPosition = offsetNode.position; + } + + return newPosition; + } + + // returns distance from the given transform to its initial position + protected virtual float GetCorrDistanceToGround(Transform trans, Vector3 initialPos, bool isRightJoint) + { + if (!trans) + return 0f; + + Vector3 deltaDir = trans.position - initialPos; + Vector3 vTrans = new Vector3(deltaDir.x * initialUpVector.x, deltaDir.y * initialUpVector.y, deltaDir.z * initialUpVector.z); + + float fSign = Vector3.Dot(deltaDir, initialUpVector) < 0f ? 1f : -1f; // change the sign, because it's a correction + float deltaDist = fSign * vTrans.magnitude; + + return deltaDist; + } + + // returns the min distance distance from left or right foot to the ground, or 0 if no LF/RF are found + protected virtual float GetCorrDistanceToGround() + { + //if (leftFoot == null && rightFoot == null) + //{ + // leftFoot = GetBoneTransform(GetBoneIndexByJoint(KinectInterop.JointType.FootLeft, false)); + // rightFoot = GetBoneTransform(GetBoneIndexByJoint(KinectInterop.JointType.FootRight, false)); + + // if (leftFoot == null || rightFoot == null) + // { + // leftFoot = GetBoneTransform(GetBoneIndexByJoint(KinectInterop.JointType.AnkleLeft, false)); + // rightFoot = GetBoneTransform(GetBoneIndexByJoint(KinectInterop.JointType.AnkleRight, false)); + // } + + // leftFootPos = leftFoot != null ? leftFoot.position : Vector3.zero; + // rightFootPos = rightFoot != null ? rightFoot.position : Vector3.zero; + //} + + float fDistMin = 1000f; + float fDistLeft = leftFoot ? GetCorrDistanceToGround(leftFoot, leftFootPos, false) : fDistMin; + float fDistRight = rightFoot ? GetCorrDistanceToGround(rightFoot, rightFootPos, true) : fDistMin; + fDistMin = Mathf.Abs(fDistLeft) < Mathf.Abs(fDistRight) ? fDistLeft : fDistRight; + + if (fDistMin == 1000f) + { + fDistMin = 0f; + } + + return fDistMin; + } + + // protected void OnCollisionEnter(Collision col) + // { + // Debug.Log("Collision entered"); + // } + // + // protected void OnCollisionExit(Collision col) + // { + // Debug.Log("Collision exited"); + // } + + + + // dictionaries to speed up bone processing + protected static readonly Dictionary boneIndex2MecanimMap = new Dictionary + { + {0, HumanBodyBones.Hips}, + {1, HumanBodyBones.Spine}, + {2, HumanBodyBones.Chest}, + {3, HumanBodyBones.Neck}, + {4, HumanBodyBones.Head}, + + {5, HumanBodyBones.LeftShoulder}, + {6, HumanBodyBones.LeftUpperArm}, + {7, HumanBodyBones.LeftLowerArm}, + {8, HumanBodyBones.LeftHand}, + + {9, HumanBodyBones.RightShoulder}, + {10, HumanBodyBones.RightUpperArm}, + {11, HumanBodyBones.RightLowerArm}, + {12, HumanBodyBones.RightHand}, + + {13, HumanBodyBones.LeftUpperLeg}, + {14, HumanBodyBones.LeftLowerLeg}, + {15, HumanBodyBones.LeftFoot}, + {16, HumanBodyBones.LeftToes}, + + {17, HumanBodyBones.RightUpperLeg}, + {18, HumanBodyBones.RightLowerLeg}, + {19, HumanBodyBones.RightFoot}, + {20, HumanBodyBones.RightToes}, + + {21, HumanBodyBones.LeftIndexProximal}, + {22, HumanBodyBones.LeftThumbProximal}, + {23, HumanBodyBones.RightIndexProximal}, + {24, HumanBodyBones.RightThumbProximal}, + }; + + protected static readonly Dictionary boneIndex2JointMap = new Dictionary + { + {0, KinectInterop.JointType.Pelvis}, + {1, KinectInterop.JointType.SpineNaval}, + {2, KinectInterop.JointType.SpineChest}, + {3, KinectInterop.JointType.Neck}, + {4, KinectInterop.JointType.Head}, + + {5, KinectInterop.JointType.ClavicleLeft}, + {6, KinectInterop.JointType.ShoulderLeft}, + {7, KinectInterop.JointType.ElbowLeft}, + {8, KinectInterop.JointType.WristLeft}, + + {9, KinectInterop.JointType.ClavicleRight}, + {10, KinectInterop.JointType.ShoulderRight}, + {11, KinectInterop.JointType.ElbowRight}, + {12, KinectInterop.JointType.WristRight}, + + {13, KinectInterop.JointType.HipLeft}, + {14, KinectInterop.JointType.KneeLeft}, + {15, KinectInterop.JointType.AnkleLeft}, + {16, KinectInterop.JointType.FootLeft}, + + {17, KinectInterop.JointType.HipRight}, + {18, KinectInterop.JointType.KneeRight}, + {19, KinectInterop.JointType.AnkleRight}, + {20, KinectInterop.JointType.FootRight}, + }; + + protected static readonly Dictionary boneIndex2MirrorJointMap = new Dictionary + { + {0, KinectInterop.JointType.Pelvis}, + {1, KinectInterop.JointType.SpineNaval}, + {2, KinectInterop.JointType.SpineChest}, + {3, KinectInterop.JointType.Neck}, + {4, KinectInterop.JointType.Head}, + + {5, KinectInterop.JointType.ClavicleRight}, + {6, KinectInterop.JointType.ShoulderRight}, + {7, KinectInterop.JointType.ElbowRight}, + {8, KinectInterop.JointType.WristRight}, + + {9, KinectInterop.JointType.ClavicleLeft}, + {10, KinectInterop.JointType.ShoulderLeft}, + {11, KinectInterop.JointType.ElbowLeft}, + {12, KinectInterop.JointType.WristLeft}, + + {13, KinectInterop.JointType.HipRight}, + {14, KinectInterop.JointType.KneeRight}, + {15, KinectInterop.JointType.AnkleRight}, + {16, KinectInterop.JointType.FootRight}, + + {17, KinectInterop.JointType.HipLeft}, + {18, KinectInterop.JointType.KneeLeft}, + {19, KinectInterop.JointType.AnkleLeft}, + {20, KinectInterop.JointType.FootLeft}, + }; + + protected static readonly Dictionary jointMap2boneIndex = new Dictionary + { + {KinectInterop.JointType.Pelvis, 0}, + {KinectInterop.JointType.SpineNaval, 1}, + {KinectInterop.JointType.SpineChest, 2}, + {KinectInterop.JointType.Neck, 3}, + {KinectInterop.JointType.Head, 4}, + + {KinectInterop.JointType.ClavicleLeft, 5}, + {KinectInterop.JointType.ShoulderLeft, 6}, + {KinectInterop.JointType.ElbowLeft, 7}, + {KinectInterop.JointType.WristLeft, 8}, + + {KinectInterop.JointType.ClavicleRight, 9}, + {KinectInterop.JointType.ShoulderRight, 10}, + {KinectInterop.JointType.ElbowRight, 11}, + {KinectInterop.JointType.WristRight, 12}, + + {KinectInterop.JointType.HipLeft, 13}, + {KinectInterop.JointType.KneeLeft, 14}, + {KinectInterop.JointType.AnkleLeft, 15}, + {KinectInterop.JointType.FootLeft, 16}, + + {KinectInterop.JointType.HipRight, 17}, + {KinectInterop.JointType.KneeRight, 18}, + {KinectInterop.JointType.AnkleRight, 19}, + {KinectInterop.JointType.FootRight, 20}, + }; + + protected static readonly Dictionary mirrorJointMap2boneIndex = new Dictionary + { + {KinectInterop.JointType.Pelvis, 0}, + {KinectInterop.JointType.SpineNaval, 1}, + {KinectInterop.JointType.SpineChest, 2}, + {KinectInterop.JointType.Neck, 3}, + {KinectInterop.JointType.Head, 4}, + + {KinectInterop.JointType.ClavicleRight, 5}, + {KinectInterop.JointType.ShoulderRight, 6}, + {KinectInterop.JointType.ElbowRight, 7}, + {KinectInterop.JointType.WristRight, 8}, + + {KinectInterop.JointType.ClavicleLeft, 9}, + {KinectInterop.JointType.ShoulderLeft, 10}, + {KinectInterop.JointType.ElbowLeft, 11}, + {KinectInterop.JointType.WristLeft, 12}, + + {KinectInterop.JointType.HipRight, 13}, + {KinectInterop.JointType.KneeRight, 14}, + {KinectInterop.JointType.AnkleRight, 15}, + {KinectInterop.JointType.FootRight, 16}, + + {KinectInterop.JointType.HipLeft, 17}, + {KinectInterop.JointType.KneeLeft, 18}, + {KinectInterop.JointType.AnkleLeft, 19}, + {KinectInterop.JointType.FootLeft, 20}, + }; + + protected static readonly Dictionary boneIndex2FingerMap = new Dictionary + { + {21, KinectInterop.JointType.HandtipLeft}, + {22, KinectInterop.JointType.ThumbLeft}, + {23, KinectInterop.JointType.HandtipRight}, + {24, KinectInterop.JointType.ThumbRight}, + }; + + protected static readonly Dictionary boneIndex2MirrorFingerMap = new Dictionary + { + {21, KinectInterop.JointType.HandtipRight}, + {22, KinectInterop.JointType.ThumbRight}, + {23, KinectInterop.JointType.HandtipLeft}, + {24, KinectInterop.JointType.ThumbLeft}, + }; + + protected static readonly Dictionary> boneIndex2MultiBoneMap = new Dictionary> + { + {21, new List { // left fingers + HumanBodyBones.LeftIndexProximal, + HumanBodyBones.LeftIndexIntermediate, + HumanBodyBones.LeftIndexDistal, + HumanBodyBones.LeftMiddleProximal, + HumanBodyBones.LeftMiddleIntermediate, + HumanBodyBones.LeftMiddleDistal, + HumanBodyBones.LeftRingProximal, + HumanBodyBones.LeftRingIntermediate, + HumanBodyBones.LeftRingDistal, + HumanBodyBones.LeftLittleProximal, + HumanBodyBones.LeftLittleIntermediate, + HumanBodyBones.LeftLittleDistal, + }}, + {22, new List { // left thumb + HumanBodyBones.LeftThumbProximal, + HumanBodyBones.LeftThumbIntermediate, + HumanBodyBones.LeftThumbDistal, + }}, + {23, new List { // right fingers + HumanBodyBones.RightIndexProximal, + HumanBodyBones.RightIndexIntermediate, + HumanBodyBones.RightIndexDistal, + HumanBodyBones.RightMiddleProximal, + HumanBodyBones.RightMiddleIntermediate, + HumanBodyBones.RightMiddleDistal, + HumanBodyBones.RightRingProximal, + HumanBodyBones.RightRingIntermediate, + HumanBodyBones.RightRingDistal, + HumanBodyBones.RightLittleProximal, + HumanBodyBones.RightLittleIntermediate, + HumanBodyBones.RightLittleDistal, + }}, + {24, new List { // right thumb + HumanBodyBones.RightThumbProximal, + HumanBodyBones.RightThumbIntermediate, + HumanBodyBones.RightThumbDistal, + }}, + }; + + } +} diff --git a/Assets/Azure/KinectScripts/AvatarController.cs.meta b/Assets/Azure/KinectScripts/AvatarController.cs.meta new file mode 100644 index 0000000..95ad4d9 --- /dev/null +++ b/Assets/Azure/KinectScripts/AvatarController.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 06c52c07402f7274cab64e484b1bddc9 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Azure/KinectScripts/AvatarControllerClassic.cs b/Assets/Azure/KinectScripts/AvatarControllerClassic.cs new file mode 100644 index 0000000..a5ed870 --- /dev/null +++ b/Assets/Azure/KinectScripts/AvatarControllerClassic.cs @@ -0,0 +1,85 @@ +using UnityEngine; +//using Windows.Kinect; + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Runtime.InteropServices; +using System.IO; +using System.Text; + + +namespace com.rfilkov.components +{ + /// + /// Avatar controller is the component that transfers the captured user motion to a humanoid model (avatar). Avatar controller classic allows manual assignment of model's rigged bones to the tracked body joints. + /// + public class AvatarControllerClassic : AvatarController + { + // Public variables that will get matched to bones. If empty, the Kinect will simply not track it. + public Transform Pelvis; + public Transform SpineNaval; + public Transform SpineChest; + public Transform Neck; + //public Transform Head; + + public Transform ClavicleLeft; + public Transform ShoulderLeft; + public Transform ElbowLeft; + public Transform WristLeft; + + public Transform ClavicleRight; + public Transform ShoulderRight; + public Transform ElbowRight; + public Transform WristRight; + + public Transform HipLeft; + public Transform KneeLeft; + public Transform AnkleLeft; + //private Transform FootLeft = null; + + public Transform HipRight; + public Transform KneeRight; + public Transform AnkleRight; + //private Transform FootRight = null; + + [Tooltip("The body root node (optional).")] + public Transform BodyRoot; + + + // map the bones to the model. + protected override void MapBones() + { + bones[0] = Pelvis; + bones[1] = SpineNaval; + bones[2] = SpineChest; + bones[3] = Neck; + //bones[4] = Head; + + bones[5] = ClavicleLeft; + bones[6] = ShoulderLeft; + bones[7] = ElbowLeft; + bones[8] = WristLeft; + + bones[9] = ClavicleRight; + bones[10] = ShoulderRight; + bones[11] = ElbowRight; + bones[12] = WristRight; + + bones[13] = HipLeft; + bones[14] = KneeLeft; + bones[15] = AnkleLeft; + //bones[16] = FootLeft; + + bones[17] = HipRight; + bones[18] = KneeRight; + bones[19] = AnkleRight; + //bones[20] = FootRight; + + // body root + bodyRoot = BodyRoot; + } + + } +} + diff --git a/Assets/Azure/KinectScripts/AvatarControllerClassic.cs.meta b/Assets/Azure/KinectScripts/AvatarControllerClassic.cs.meta new file mode 100644 index 0000000..5feece5 --- /dev/null +++ b/Assets/Azure/KinectScripts/AvatarControllerClassic.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7b38f8c0e60334143a1b54003b3a0ae5 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Azure/KinectScripts/AvatarScaler.cs b/Assets/Azure/KinectScripts/AvatarScaler.cs new file mode 100644 index 0000000..0d41e47 --- /dev/null +++ b/Assets/Azure/KinectScripts/AvatarScaler.cs @@ -0,0 +1,771 @@ +using UnityEngine; +using System.Collections; +using com.rfilkov.kinect; + + +namespace com.rfilkov.components +{ + /// + /// Avatar scaler is the component that scales avatar's body, according to the user's body and bone sizes. + /// + [RequireComponent(typeof(Animator))] + public class AvatarScaler : MonoBehaviour + { + [Tooltip("Index of the player, tracked by this component. 0 means the 1st player, 1 - the 2nd one, 2 - the 3rd one, etc.")] + public int playerIndex = 0; + + [Tooltip("Whether the avatar is facing the player or not.")] + public bool mirroredAvatar = false; + + [Tooltip("Minimum distance to the user.")] + public float minUserDistance = 1.0f; + + [Tooltip("Body scale factor (incl. arms and legs) that may be used for fine tuning of model-scale.")] + [Range(0.0f, 2.0f)] + public float bodyScaleFactor = 1f; + + [Tooltip("Body width scale factor that may be used for fine tuning of model-width scale.")] + [Range(0.0f, 2.0f)] + public float bodyWidthFactor = 0f; + + [Tooltip("Additional scale factor for arms that may be used for fine tuning of model arm-scale.")] + [Range(0.0f, 2.0f)] + public float armScaleFactor = 0f; + + [Tooltip("Additional scale factor for legs that may be used for fine tuning of model leg-scale.")] + [Range(0.0f, 2.0f)] + public float legScaleFactor = 0f; + + [Tooltip("Whether the scale is updated continuously or just after the calibration pose.")] + public bool continuousScaling = true; + + [Tooltip("Scale smoothing factor used in case of continuous scaling.")] + public float smoothFactor = 5f; + + [Tooltip("Camera used to overlay the model over the background.")] + public Camera foregroundCamera; + + [Tooltip("Plane used to render the color camera background.")] + private Transform backgroundPlane = null; + + [Tooltip("Index of the depth sensor that generates the color camera background. 0 is the 1st one, 1 - the 2nd one, etc.")] + private int sensorIndex = 0; + + // [Tooltip("Whether to put the clothing model hip and shoulder joints where the user joints are.")] + // public bool fixModelHipsAndShoulders = false; + + [Tooltip("UI-Text to display the avatar-scaler debug messages.")] + public UnityEngine.UI.Text debugText; + + // used by category selector + [System.NonSerialized] + public ulong currentUserId = 0; + + // used by category selector + [System.NonSerialized] + public bool scalerInited = false; + + // class references + private KinectManager kinectManager = null; + private AvatarController avtController = null; + + // model transforms for scaling + private Transform bodyScaleTransform; + //private Transform bodyHipsTransform; + + private Transform leftShoulderScaleTransform; + private Transform leftElbowScaleTransform; + private Transform rightShoulderScaleTransform; + private Transform rightElbowScaleTransform; + private Transform leftHipScaleTransform; + private Transform leftKneeScaleTransform; + private Transform rightHipScaleTransform; + private Transform rightKneeScaleTransform; + + private Vector3 modelBodyScale = Vector3.one; + private Vector3 modelLeftShoulderScale = Vector3.one; + private Vector3 modelLeftElbowScale = Vector3.one; + private Vector3 modelRightShoulderScale = Vector3.one; + private Vector3 modelRightElbowScale = Vector3.one; + private Vector3 modelLeftHipScale = Vector3.one; + private Vector3 modelLeftKneeScale = Vector3.one; + private Vector3 modelRightHipScale = Vector3.one; + private Vector3 modelRightKneeScale = Vector3.one; + + // model bone sizes and original scales + private float modelBodyHeight = 0f; + private float modelBodyWidth = 0f; + private float modelLeftUpperArmLength = 0f; + private float modelLeftLowerArmLength = 0f; + private float modelRightUpperArmLength = 0f; + private float modelRightLowerArmLength = 0f; + private float modelLeftUpperLegLength = 0f; + private float modelLeftLowerLegLength = 0f; + private float modelRightUpperLegLength = 0f; + private float modelRightLowerLegLength = 0f; + + // user bone sizes + private float userBodyHeight = 0f; + private float userBodyWidth = 0f; + private float leftUpperArmLength = 0f; + private float leftLowerArmLength = 0f; + private float rightUpperArmLength = 0f; + private float rightLowerArmLength = 0f; + private float leftUpperLegLength = 0f; + private float leftLowerLegLength = 0f; + private float rightUpperLegLength = 0f; + private float rightLowerLegLength = 0f; + + // user bone scale factors + private float fScaleBodyHeight = 0f; + private float fScaleBodyWidth = 0f; + private float fScaleLeftUpperArm = 0f; + private float fScaleLeftLowerArm = 0f; + private float fScaleRightUpperArm = 0f; + private float fScaleRightLowerArm = 0f; + private float fScaleLeftUpperLeg = 0f; + private float fScaleLeftLowerLeg = 0f; + private float fScaleRightUpperLeg = 0f; + private float fScaleRightLowerLeg = 0f; + + // background plane rectangle + private Rect planeRect = new Rect(); + private bool planeRectSet = false; + + // user body lengths + private bool gotUserBodySize = false; + private bool gotUserArmsSize = false; + private bool gotUserLegsSize = false; + + // mesh renderer + private SkinnedMeshRenderer meshRenderer = null; + + + public void Start() + { + // get references to other components + kinectManager = KinectManager.Instance; + avtController = gameObject.GetComponent(); + + // get model transforms + Animator animatorComponent = GetComponent(); + AvatarController avatarController = GetComponent(); + + // get mesh renderer + meshRenderer = GetComponentInChildren(); + + // use the root transform for body scale + bodyScaleTransform = transform; + + if (animatorComponent && animatorComponent.GetBoneTransform(HumanBodyBones.Hips)) + { + //bodyHipsTransform = animatorComponent.GetBoneTransform (HumanBodyBones.Hips); + + leftShoulderScaleTransform = animatorComponent.GetBoneTransform(HumanBodyBones.LeftUpperArm); + leftElbowScaleTransform = animatorComponent.GetBoneTransform(HumanBodyBones.LeftLowerArm); + rightShoulderScaleTransform = animatorComponent.GetBoneTransform(HumanBodyBones.RightUpperArm); + rightElbowScaleTransform = animatorComponent.GetBoneTransform(HumanBodyBones.RightLowerArm); + + leftHipScaleTransform = animatorComponent.GetBoneTransform(HumanBodyBones.LeftUpperLeg); + leftKneeScaleTransform = animatorComponent.GetBoneTransform(HumanBodyBones.LeftLowerLeg); + rightHipScaleTransform = animatorComponent.GetBoneTransform(HumanBodyBones.RightUpperLeg); + rightKneeScaleTransform = animatorComponent.GetBoneTransform(HumanBodyBones.RightLowerLeg); + } + else if (avatarController) + { + //bodyHipsTransform = avatarController.GetBoneTransform(avatarController.GetBoneIndexByJoint(KinectInterop.JointType.SpineBase, false)); + + leftShoulderScaleTransform = avatarController.GetBoneTransform(avatarController.GetBoneIndexByJoint(KinectInterop.JointType.ShoulderLeft, false)); + leftElbowScaleTransform = avatarController.GetBoneTransform(avatarController.GetBoneIndexByJoint(KinectInterop.JointType.ElbowLeft, false)); + rightShoulderScaleTransform = avatarController.GetBoneTransform(avatarController.GetBoneIndexByJoint(KinectInterop.JointType.ShoulderRight, false)); + rightElbowScaleTransform = avatarController.GetBoneTransform(avatarController.GetBoneIndexByJoint(KinectInterop.JointType.ElbowRight, false)); + + leftHipScaleTransform = avatarController.GetBoneTransform(avatarController.GetBoneIndexByJoint(KinectInterop.JointType.HipLeft, false)); + leftKneeScaleTransform = avatarController.GetBoneTransform(avatarController.GetBoneIndexByJoint(KinectInterop.JointType.KneeLeft, false)); + rightHipScaleTransform = avatarController.GetBoneTransform(avatarController.GetBoneIndexByJoint(KinectInterop.JointType.HipRight, false)); + rightKneeScaleTransform = avatarController.GetBoneTransform(avatarController.GetBoneIndexByJoint(KinectInterop.JointType.KneeRight, false)); + } + else + { + // needed transforms could not be found + return; + } + + // get model bone scales + modelBodyScale = bodyScaleTransform ? bodyScaleTransform.localScale : Vector3.one; + + modelLeftShoulderScale = leftShoulderScaleTransform ? leftShoulderScaleTransform.localScale : Vector3.one; + modelLeftElbowScale = leftElbowScaleTransform ? leftElbowScaleTransform.localScale : Vector3.one; + modelRightShoulderScale = rightShoulderScaleTransform ? rightShoulderScaleTransform.localScale : Vector3.one; + modelRightElbowScale = rightElbowScaleTransform ? rightElbowScaleTransform.localScale : Vector3.one; + + modelLeftHipScale = leftHipScaleTransform ? leftHipScaleTransform.localScale : Vector3.one; + modelLeftKneeScale = leftKneeScaleTransform ? leftKneeScaleTransform.localScale : Vector3.one; + modelRightHipScale = rightHipScaleTransform ? rightHipScaleTransform.localScale : Vector3.one; + modelRightKneeScale = rightKneeScaleTransform ? rightKneeScaleTransform.localScale : Vector3.one; + + if (animatorComponent && animatorComponent.GetBoneTransform(HumanBodyBones.Hips)) + { + GetModelBodyHeight(animatorComponent, ref modelBodyHeight, ref modelBodyWidth); + //Debug.Log (string.Format("MW: {0:F3}, MH: {1:F3}", modelBodyWidth, modelBodyHeight)); + + GetModelBoneLength(animatorComponent, HumanBodyBones.LeftUpperArm, HumanBodyBones.LeftLowerArm, ref modelLeftUpperArmLength); + GetModelBoneLength(animatorComponent, HumanBodyBones.LeftLowerArm, HumanBodyBones.LeftHand, ref modelLeftLowerArmLength); + GetModelBoneLength(animatorComponent, HumanBodyBones.RightUpperArm, HumanBodyBones.RightLowerArm, ref modelRightUpperArmLength); + GetModelBoneLength(animatorComponent, HumanBodyBones.RightLowerArm, HumanBodyBones.RightHand, ref modelRightLowerArmLength); + + GetModelBoneLength(animatorComponent, HumanBodyBones.LeftUpperLeg, HumanBodyBones.LeftLowerLeg, ref modelLeftUpperLegLength); + GetModelBoneLength(animatorComponent, HumanBodyBones.LeftLowerLeg, HumanBodyBones.LeftFoot, ref modelLeftLowerLegLength); + GetModelBoneLength(animatorComponent, HumanBodyBones.RightUpperLeg, HumanBodyBones.RightLowerLeg, ref modelRightUpperLegLength); + GetModelBoneLength(animatorComponent, HumanBodyBones.RightLowerLeg, HumanBodyBones.RightFoot, ref modelRightLowerLegLength); + + scalerInited = true; + } + else if (avatarController) + { + GetModelBodyHeight(avatarController, ref modelBodyHeight, ref modelBodyWidth); + //Debug.Log (string.Format("MW: {0:F3}, MH: {1:F3}", modelBodyWidth, modelBodyHeight)); + + GetModelBoneLength(avatarController, KinectInterop.JointType.ShoulderLeft, KinectInterop.JointType.ElbowLeft, ref modelLeftUpperArmLength); + GetModelBoneLength(avatarController, KinectInterop.JointType.ElbowLeft, KinectInterop.JointType.WristLeft, ref modelLeftLowerArmLength); + GetModelBoneLength(avatarController, KinectInterop.JointType.ShoulderRight, KinectInterop.JointType.ElbowRight, ref modelRightUpperArmLength); + GetModelBoneLength(avatarController, KinectInterop.JointType.ElbowRight, KinectInterop.JointType.WristRight, ref modelRightLowerArmLength); + + GetModelBoneLength(avatarController, KinectInterop.JointType.HipLeft, KinectInterop.JointType.KneeLeft, ref modelLeftUpperLegLength); + GetModelBoneLength(avatarController, KinectInterop.JointType.KneeLeft, KinectInterop.JointType.AnkleLeft, ref modelLeftLowerLegLength); + GetModelBoneLength(avatarController, KinectInterop.JointType.HipRight, KinectInterop.JointType.KneeRight, ref modelRightUpperLegLength); + GetModelBoneLength(avatarController, KinectInterop.JointType.KneeRight, KinectInterop.JointType.AnkleRight, ref modelRightLowerLegLength); + + scalerInited = true; + } + + // update the scale immediately + Update(); + } + + public void Update() + { + if (scalerInited && kinectManager && kinectManager.IsInitialized()) + { + // get the plane rectangle to be used for object overlay + if (backgroundPlane && !planeRectSet) + { + planeRectSet = true; + + planeRect.width = 10f * Mathf.Abs(backgroundPlane.localScale.x); + planeRect.height = 10f * Mathf.Abs(backgroundPlane.localScale.z); + planeRect.x = backgroundPlane.position.x - planeRect.width / 2f; + planeRect.y = backgroundPlane.position.y - planeRect.height / 2f; + } + + ulong userId = kinectManager.GetUserIdByIndex(playerIndex); + + // check user distance and hand positions + if (userId != 0 && minUserDistance > 0f) + { + Vector3 userPos = kinectManager.GetUserPosition(userId); + + //bool lHandTracked = kinectManager.IsJointTracked(userId, (int)KinectInterop.JointType.WristLeft); + //Vector3 lHandPos = lHandTracked ? kinectManager.GetJointPosition(userId, (int)KinectInterop.JointType.WristLeft) : Vector3.zero; + + //bool rHandTracked = kinectManager.IsJointTracked(userId, (int)KinectInterop.JointType.WristRight); + //Vector3 rHandPos = rHandTracked ? kinectManager.GetJointPosition(userId, (int)KinectInterop.JointType.WristRight) : Vector3.zero; + + if (userPos.z < minUserDistance) // || + //!lHandTracked || (lHandPos.z - userPos.z) <= -0.3f || + //!rHandTracked || (rHandPos.z - userPos.z) <= -0.3f) + { + // don't scale the model + userId = 0; + //Debug.Log ("Avatar scaling skipped."); + } + + } + + if (userId != currentUserId) + { + currentUserId = userId; + + if (userId != 0) + { + GetUserBodySize(true, true, true); + + if (gotUserBodySize) + { + // show the mesh + if (meshRenderer && !meshRenderer.gameObject.activeSelf) + meshRenderer.gameObject.SetActive(true); + + // scale avatar initially + ScaleAvatar(0f, true); + } + else + { + // hide the mesh + if (meshRenderer && meshRenderer.gameObject.activeSelf) + meshRenderer.gameObject.SetActive(false); + + // consider the user as not tracked + currentUserId = 0; + } + } + else + { + // user not tracked + gotUserBodySize = gotUserArmsSize = gotUserLegsSize = false; + } + } + } + + if (currentUserId != 0 && continuousScaling) + { + // scale avatar continuously + GetUserBodySize(true, true, true); + ScaleAvatar(smoothFactor, false); + } + } + + // gets the the actual sizes of the user bones + public void GetUserBodySize(bool bBody, bool bArms, bool bLegs) + { + //KinectManager kinectManager = KinectManager.Instance; + if (kinectManager == null) + return; + + if (bBody) + { + gotUserBodySize = GetUserBodyHeight(kinectManager, bodyScaleFactor, bodyWidthFactor, ref userBodyHeight, ref userBodyWidth); + } + + if (bArms) + { + bool gotLeftArmSize = GetUserBoneLength(kinectManager, KinectInterop.JointType.ShoulderLeft, KinectInterop.JointType.ElbowLeft, armScaleFactor, ref leftUpperArmLength); + gotLeftArmSize &= GetUserBoneLength(kinectManager, KinectInterop.JointType.ElbowLeft, KinectInterop.JointType.WristLeft, armScaleFactor, ref leftLowerArmLength); + bool gotRightArmSize = GetUserBoneLength(kinectManager, KinectInterop.JointType.ShoulderRight, KinectInterop.JointType.ElbowRight, armScaleFactor, ref rightUpperArmLength); + gotRightArmSize &= GetUserBoneLength(kinectManager, KinectInterop.JointType.ElbowRight, KinectInterop.JointType.WristRight, armScaleFactor, ref rightLowerArmLength); + + gotUserArmsSize = gotLeftArmSize | gotRightArmSize; + if(gotUserArmsSize) + { + EqualizeBoneLength(ref leftUpperArmLength, ref rightUpperArmLength); + EqualizeBoneLength(ref leftLowerArmLength, ref rightLowerArmLength); + } + } + + if (bLegs) + { + bool gotLeftLegSize = GetUserBoneLength(kinectManager, KinectInterop.JointType.HipLeft, KinectInterop.JointType.KneeLeft, legScaleFactor, ref leftUpperLegLength); + gotLeftLegSize &= GetUserBoneLength(kinectManager, KinectInterop.JointType.KneeLeft, KinectInterop.JointType.AnkleLeft, legScaleFactor, ref leftLowerLegLength); + bool gotRightLegSize = GetUserBoneLength(kinectManager, KinectInterop.JointType.HipRight, KinectInterop.JointType.KneeRight, legScaleFactor, ref rightUpperLegLength); + gotRightLegSize &= GetUserBoneLength(kinectManager, KinectInterop.JointType.KneeRight, KinectInterop.JointType.AnkleRight, legScaleFactor, ref rightLowerLegLength); + + gotUserLegsSize = gotLeftLegSize | gotRightLegSize; + if(gotUserLegsSize) + { + EqualizeBoneLength(ref leftUpperLegLength, ref rightUpperLegLength); + EqualizeBoneLength(ref leftLowerLegLength, ref rightLowerLegLength); + } + } + } + + // scales the avatar as needed + public void ScaleAvatar(float fSmooth, bool bInitialScale) + { + // scale body + if (bodyScaleFactor > 0f && gotUserBodySize) + { + SetupBodyScale(bodyScaleTransform, modelBodyScale, modelBodyHeight, modelBodyWidth, userBodyHeight, userBodyWidth, + fSmooth, ref fScaleBodyHeight, ref fScaleBodyWidth); + + if (avtController) + { + // recalibrate avatar position due to transform scale change + avtController.offsetCalibrated = false; + + // set AC smooth-factor to 0 to prevent flickering (r618-issue) + if (avtController.smoothFactor != 0f) + { + avtController.smoothFactor = 0f; + } + } + } + + // scale arms + if (/**bInitialScale &&*/ armScaleFactor > 0f && gotUserArmsSize) + { + float fLeftUpperArmLength = !mirroredAvatar ? leftUpperArmLength : rightUpperArmLength; + SetupBoneScale(leftShoulderScaleTransform, modelLeftShoulderScale, modelLeftUpperArmLength, + fLeftUpperArmLength, fScaleBodyHeight, fSmooth, ref fScaleLeftUpperArm); + + float fLeftLowerArmLength = !mirroredAvatar ? leftLowerArmLength : rightLowerArmLength; + SetupBoneScale(leftElbowScaleTransform, modelLeftElbowScale, modelLeftLowerArmLength, + fLeftLowerArmLength, fScaleLeftUpperArm, fSmooth, ref fScaleLeftLowerArm); + + float fRightUpperArmLength = !mirroredAvatar ? rightUpperArmLength : leftUpperArmLength; + SetupBoneScale(rightShoulderScaleTransform, modelRightShoulderScale, modelRightUpperArmLength, + fRightUpperArmLength, fScaleBodyHeight, fSmooth, ref fScaleRightUpperArm); + + float fRightLowerArmLength = !mirroredAvatar ? rightLowerArmLength : leftLowerArmLength; + SetupBoneScale(rightElbowScaleTransform, modelRightElbowScale, modelLeftLowerArmLength, + fRightLowerArmLength, fScaleRightUpperArm, fSmooth, ref fScaleRightLowerArm); + } + + // scale legs + if (/**bInitialScale &&*/ legScaleFactor > 0 && gotUserLegsSize) + { + float fLeftUpperLegLength = !mirroredAvatar ? leftUpperLegLength : rightUpperLegLength; + SetupBoneScale(leftHipScaleTransform, modelLeftHipScale, modelLeftUpperLegLength, + fLeftUpperLegLength, fScaleBodyHeight, fSmooth, ref fScaleLeftUpperLeg); + + float fLeftLowerLegLength = !mirroredAvatar ? leftLowerLegLength : rightLowerLegLength; + SetupBoneScale(leftKneeScaleTransform, modelLeftKneeScale, modelLeftLowerLegLength, + fLeftLowerLegLength, fScaleLeftUpperLeg, fSmooth, ref fScaleLeftLowerLeg); + + float fRightUpperLegLength = !mirroredAvatar ? rightUpperLegLength : leftUpperLegLength; + SetupBoneScale(rightHipScaleTransform, modelRightHipScale, modelRightUpperLegLength, + fRightUpperLegLength, fScaleBodyHeight, fSmooth, ref fScaleRightUpperLeg); + + float fRightLowerLegLength = !mirroredAvatar ? rightLowerLegLength : leftLowerLegLength; + SetupBoneScale(rightKneeScaleTransform, modelRightKneeScale, modelRightLowerLegLength, + fRightLowerLegLength, fScaleRightUpperLeg, fSmooth, ref fScaleRightLowerLeg); + } + + if (debugText != null) + { + string sDebug = string.Format("BW: {0:F2}/{1:F3}, BH: {2:F2}/{3:F3}\nLUA: {4:F3}, LLA: {5:F3}; RUA: {6:F3}, RLA: {7:F3}\nLUL: {8:F3}, LLL: {9:F3}; RUL: {10:F3}, RLL: {11:F3}", + userBodyWidth, fScaleBodyWidth, userBodyHeight, fScaleBodyHeight, + fScaleLeftUpperArm, fScaleLeftLowerArm, + fScaleRightUpperArm, fScaleRightLowerArm, + fScaleLeftUpperLeg, fScaleLeftLowerLeg, + fScaleRightUpperLeg, fScaleRightLowerLeg); + debugText.text = sDebug; + } + + } + + private bool GetModelBodyHeight(Animator animatorComponent, ref float height, ref float width) + { + height = 0f; + + if (animatorComponent) + { + //Transform hipCenter = animatorComponent.GetBoneTransform(HumanBodyBones.Hips); + + Transform leftUpperArm = animatorComponent.GetBoneTransform(HumanBodyBones.LeftUpperArm); + Transform rightUpperArm = animatorComponent.GetBoneTransform(HumanBodyBones.RightUpperArm); + + Transform leftUpperLeg = animatorComponent.GetBoneTransform(HumanBodyBones.LeftUpperLeg); + Transform rightUpperLeg = animatorComponent.GetBoneTransform(HumanBodyBones.RightUpperLeg); + + if (leftUpperArm && rightUpperArm && leftUpperLeg && rightUpperLeg) + { + Vector3 posShoulderCenter = (leftUpperArm.position + rightUpperArm.position) / 2f; + Vector3 posHipCenter = (leftUpperLeg.position + rightUpperLeg.position) / 2f; // hipCenter.position + + //height = (posShoulderCenter.y - posHipCenter.y); + height = (posShoulderCenter - posHipCenter).magnitude; + width = (rightUpperArm.position - leftUpperArm.position).magnitude; + + return true; + } + } + + return false; + } + + private bool GetModelBodyHeight(AvatarController avatarController, ref float height, ref float width) + { + height = 0f; + + if (avatarController) + { + Transform leftUpperArm = avatarController.GetBoneTransform(avatarController.GetBoneIndexByJoint(KinectInterop.JointType.ShoulderLeft, false)); + Transform rightUpperArm = avatarController.GetBoneTransform(avatarController.GetBoneIndexByJoint(KinectInterop.JointType.ShoulderRight, false)); + + Transform leftUpperLeg = avatarController.GetBoneTransform(avatarController.GetBoneIndexByJoint(KinectInterop.JointType.HipLeft, false)); + Transform rightUpperLeg = avatarController.GetBoneTransform(avatarController.GetBoneIndexByJoint(KinectInterop.JointType.HipRight, false)); + + if (leftUpperArm && rightUpperArm && leftUpperLeg && rightUpperLeg) + { + Vector3 posShoulderCenter = (leftUpperArm.position + rightUpperArm.position) / 2f; + Vector3 posHipCenter = (leftUpperLeg.position + rightUpperLeg.position) / 2f; // hipCenter.position + + //height = (posShoulderCenter.y - posHipCenter.y); + height = (posShoulderCenter - posHipCenter).magnitude; + width = (rightUpperArm.position - leftUpperArm.position).magnitude; + + return true; + } + } + + return false; + } + + private bool GetModelBoneLength(Animator animatorComponent, HumanBodyBones baseJoint, HumanBodyBones endJoint, ref float length) + { + length = 0f; + + if (animatorComponent) + { + Transform joint1 = animatorComponent.GetBoneTransform(baseJoint); + Transform joint2 = animatorComponent.GetBoneTransform(endJoint); + + if (joint1 && joint2) + { + length = (joint2.position - joint1.position).magnitude; + return true; + } + } + + return false; + } + + private bool GetModelBoneLength(AvatarController avatarController, KinectInterop.JointType baseJoint, KinectInterop.JointType endJoint, ref float length) + { + length = 0f; + + if (avatarController) + { + Transform joint1 = avatarController.GetBoneTransform(avatarController.GetBoneIndexByJoint(baseJoint, false)); + Transform joint2 = avatarController.GetBoneTransform(avatarController.GetBoneIndexByJoint(endJoint, false)); + + if (joint1 && joint2) + { + length = (joint2.position - joint1.position).magnitude; + return true; + } + } + + return false; + } + + private bool GetUserBodyHeight(KinectManager manager, float scaleFactor, float widthFactor, ref float height, ref float width) + { + height = 0f; + width = 0f; + + Vector3 posHipLeft = GetJointPosition(manager, (int)KinectInterop.JointType.HipLeft); + Vector3 posHipRight = GetJointPosition(manager, (int)KinectInterop.JointType.HipRight); + Vector3 posShoulderLeft = GetJointPosition(manager, (int)KinectInterop.JointType.ShoulderLeft); + Vector3 posShoulderRight = GetJointPosition(manager, (int)KinectInterop.JointType.ShoulderRight); + + if (posHipLeft != Vector3.zero && posHipRight != Vector3.zero && + posShoulderLeft != Vector3.zero && posShoulderRight != Vector3.zero) + { + Vector3 posHipCenter = (posHipLeft + posHipRight) / 2f; + Vector3 posShoulderCenter = (posShoulderLeft + posShoulderRight) / 2f; + //height = (posShoulderCenter.y - posHipCenter.y) * scaleFactor; + + height = (posShoulderCenter - posHipCenter).magnitude * scaleFactor; + width = (posShoulderRight - posShoulderLeft).magnitude * widthFactor; + + return true; + } + + return false; + } + + private bool GetUserBoneLength(KinectManager manager, KinectInterop.JointType baseJoint, KinectInterop.JointType endJoint, float scaleFactor, ref float length) + { + length = 0f; + + Vector3 vPos1 = GetJointPosition(manager, (int)baseJoint); + Vector3 vPos2 = GetJointPosition(manager, (int)endJoint); + + if (vPos1 != Vector3.zero && vPos2 != Vector3.zero) + { + length = (vPos2 - vPos1).magnitude * scaleFactor; + return true; + } + + return false; + } + + private void EqualizeBoneLength(ref float boneLen1, ref float boneLen2) + { + if (boneLen1 < boneLen2) + { + boneLen1 = boneLen2; + } + else + { + boneLen2 = boneLen1; + } + } + + private bool SetupBodyScale(Transform scaleTrans, Vector3 modelBodyScale, float modelHeight, float modelWidth, float userHeight, float userWidth, + float fSmooth, ref float heightScale, ref float widthScale) + { + if (modelHeight > 0f && userHeight > 0f) + { + heightScale = userHeight / modelHeight; + } + + if (modelWidth > 0f && userWidth > 0f) + { + widthScale = userWidth / modelWidth; + } + else + { + widthScale = heightScale; + } + + if (scaleTrans && heightScale > 0f && widthScale > 0f) + { + float depthScale = heightScale; // (heightScale + widthScale) / 2f; + Vector3 newLocalScale = new Vector3(modelBodyScale.x * widthScale, modelBodyScale.y * heightScale, modelBodyScale.z * depthScale); + + if (fSmooth != 0f) + scaleTrans.localScale = Vector3.Lerp(scaleTrans.localScale, newLocalScale, fSmooth * Time.deltaTime); + else + scaleTrans.localScale = newLocalScale; + + return true; + } + + return false; + } + + + private bool SetupBoneScale(Transform scaleTrans, Vector3 modelBoneScale, float modelBoneLen, float userBoneLen, float parentScale, float fSmooth, ref float boneScale) + { + if (modelBoneLen > 0f && userBoneLen > 0f) + { + boneScale = userBoneLen / modelBoneLen; + } + + float localScale = boneScale; + if (boneScale > 0f && parentScale > 0f) + { + localScale = boneScale / parentScale; + } + + if (scaleTrans && localScale > 0f) + { + if (fSmooth != 0f) + scaleTrans.localScale = Vector3.Lerp(scaleTrans.localScale, modelBoneScale * localScale, fSmooth * Time.deltaTime); + else + scaleTrans.localScale = modelBoneScale * localScale; + + return true; + } + + return false; + } + + + public bool FixJointsBeforeScale() + { + Animator animatorComponent = GetComponent(); + KinectManager manager = KinectManager.Instance; + + if (animatorComponent && modelBodyHeight > 0f && userBodyHeight > 0f) + { + Transform hipCenter = animatorComponent.GetBoneTransform(HumanBodyBones.Hips); + if ((hipCenter.localScale - Vector3.one).magnitude > 0.01f) + return false; + + Transform leftUpperLeg = animatorComponent.GetBoneTransform(HumanBodyBones.LeftUpperLeg); + Transform rightUpperLeg = animatorComponent.GetBoneTransform(HumanBodyBones.RightUpperLeg); + + Transform leftUpperArm = animatorComponent.GetBoneTransform(HumanBodyBones.LeftUpperArm); + Transform rightUpperArm = animatorComponent.GetBoneTransform(HumanBodyBones.RightUpperArm); + + if (leftUpperArm && rightUpperArm && leftUpperLeg && rightUpperLeg) + { + Vector3 posHipCenter = GetJointPosition(manager, (int)KinectInterop.JointType.Pelvis); + + Vector3 posHipLeft = GetJointPosition(manager, (int)KinectInterop.JointType.HipLeft); + Vector3 posHipRight = GetJointPosition(manager, (int)KinectInterop.JointType.HipRight); + + Vector3 posShoulderLeft = GetJointPosition(manager, (int)KinectInterop.JointType.ShoulderLeft); + Vector3 posShoulderRight = GetJointPosition(manager, (int)KinectInterop.JointType.ShoulderRight); + + if (posHipCenter != Vector3.zero && posHipLeft != Vector3.zero && posHipRight != Vector3.zero && + posShoulderLeft != Vector3.zero && posShoulderRight != Vector3.zero) + { + SetupUnscaledJoint(hipCenter, leftUpperLeg, posHipCenter, (!mirroredAvatar ? posHipLeft : posHipRight), modelBodyHeight, userBodyHeight); + SetupUnscaledJoint(hipCenter, rightUpperLeg, posHipCenter, (!mirroredAvatar ? posHipRight : posHipLeft), modelBodyHeight, userBodyHeight); + + SetupUnscaledJoint(hipCenter, leftUpperArm, posHipCenter, (!mirroredAvatar ? posShoulderLeft : posShoulderRight), modelBodyHeight, userBodyHeight); + SetupUnscaledJoint(hipCenter, rightUpperArm, posHipCenter, (!mirroredAvatar ? posShoulderRight : posShoulderLeft), modelBodyHeight, userBodyHeight); + + // recalculate model joints + Start(); + + return true; + } + } + } + + return false; + } + + + // gets the joint position in space + private Vector3 GetJointPosition(KinectManager manager, int joint) + { + Vector3 vPosJoint = Vector3.zero; + + if (manager.IsJointTracked(currentUserId, joint)) + { + if (backgroundPlane && planeRectSet) + { + // get the plane overlay position + vPosJoint = manager.GetJointPosColorOverlay(currentUserId, joint, sensorIndex, planeRect); + vPosJoint.z = backgroundPlane.position.z; + } + else if (foregroundCamera) + { + // get the background rectangle (use the portrait background, if available) + Rect backgroundRect = foregroundCamera.pixelRect; + PortraitBackground portraitBack = PortraitBackground.Instance; + + if (portraitBack && portraitBack.enabled) + { + backgroundRect = portraitBack.GetBackgroundRect(); + } + + // get the color overlay position + vPosJoint = manager.GetJointPosColorOverlay(currentUserId, joint, sensorIndex, foregroundCamera, backgroundRect); + } + + // else + if (vPosJoint == Vector3.zero) + { + vPosJoint = manager.GetJointPosition(currentUserId, joint); + } + } + + return vPosJoint; + } + + + // sets the joint position before scaling + private bool SetupUnscaledJoint(Transform hipCenter, Transform joint, Vector3 posHipCenter, Vector3 posJoint, float modelBoneLen, float userBoneLen) + { + float boneScale = 0f; + + if (modelBoneLen > 0f && userBoneLen > 0f) + { + boneScale = userBoneLen / modelBoneLen; + //boneScale = 1f; + } + + if (boneScale > 0f) + { + Vector3 posDiff = (posJoint - posHipCenter) / boneScale; + if (foregroundCamera == null && backgroundPlane == null) + posDiff.z = 0f; // ignore difference in z (non-overlay mode) + + Vector3 posJointNew = hipCenter.position + posDiff; + joint.position = posJointNew; + + return true; + } + + return false; + } + + } +} diff --git a/Assets/Azure/KinectScripts/AvatarScaler.cs.meta b/Assets/Azure/KinectScripts/AvatarScaler.cs.meta new file mode 100644 index 0000000..04e03e8 --- /dev/null +++ b/Assets/Azure/KinectScripts/AvatarScaler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: de8f786bc13e05e4ebcbf32c68cf3515 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/BackgroundColorCamDepthImage.cs b/Assets/Azure/KinectScripts/BackgroundColorCamDepthImage.cs new file mode 100644 index 0000000..1061c9c --- /dev/null +++ b/Assets/Azure/KinectScripts/BackgroundColorCamDepthImage.cs @@ -0,0 +1,280 @@ +using UnityEngine; +using System.Collections; +using com.rfilkov.kinect; +using System; + +namespace com.rfilkov.components +{ + /// + /// BackgroundColorCamDepthImage is component that displays the color camera aligned depth image on RawImage texture, usually the scene background. + /// + public class BackgroundColorCamDepthImage : MonoBehaviour + { + [Tooltip("Depth sensor index - 0 is the 1st one, 1 - the 2nd one, etc.")] + public int sensorIndex = 0; + + [Tooltip("RawImage used to display the color camera feed.")] + public UnityEngine.UI.RawImage backgroundImage; + + [Tooltip("Camera used to display the background image. Set it, if you'd like to allow background image to resize, to match the color image's aspect ratio.")] + public Camera backgroundCamera; + + + // last camera rect width & height + private float lastCamRectW = 0; + private float lastCamRectH = 0; + + // reference to the kinectManager + private KinectManager kinectManager = null; + private KinectInterop.SensorData sensorData = null; + private Vector2 initialAnchorPos = Vector2.zero; + + // color-camera aligned frames + private ulong lastColorCamDepthFrameTime = 0; + + // color-camera aligned texture and buffers + private RenderTexture depthImageTexture = null; + private Material depthImageMaterial = null; + + private ComputeBuffer depthImageBuffer = null; + private ComputeBuffer depthHistBuffer = null; + + // depth image hist data + protected int[] depthHistBufferData = null; + protected int[] equalHistBufferData = null; + protected int depthHistTotalPoints = 0; + + + void Start() + { + if (backgroundImage == null) + { + backgroundImage = GetComponent(); + } + + kinectManager = KinectManager.Instance; + sensorData = kinectManager != null ? kinectManager.GetSensorData(sensorIndex) : null; + + if(sensorData != null) + { + // enable color camera aligned depth frames + sensorData.sensorInterface.EnableColorCameraDepthFrame(sensorData, true); + + // create the output texture and needed buffers + depthImageTexture = KinectInterop.CreateRenderTexture(depthImageTexture, sensorData.colorImageWidth, sensorData.colorImageHeight); + depthImageMaterial = new Material(Shader.Find("Kinect/DepthHistImageShader")); + + //int depthBufferLength = sensorData.colorImageWidth * sensorData.colorImageHeight >> 1; + //depthImageBuffer = KinectInterop.CreateComputeBuffer(depthImageBuffer, depthBufferLength, sizeof(uint)); + + depthHistBuffer = KinectInterop.CreateComputeBuffer(depthHistBuffer, DepthSensorBase.MAX_DEPTH_DISTANCE_MM + 1, sizeof(int)); + + depthHistBufferData = new int[DepthSensorBase.MAX_DEPTH_DISTANCE_MM + 1]; + equalHistBufferData = new int[DepthSensorBase.MAX_DEPTH_DISTANCE_MM + 1]; + } + } + + + void OnDestroy() + { + if (depthImageTexture) + { + depthImageTexture.Release(); + depthImageTexture = null; + } + + if (depthImageBuffer != null) + { + depthImageBuffer.Dispose(); + depthImageBuffer = null; + } + + if (depthHistBuffer != null) + { + depthHistBuffer.Dispose(); + depthHistBuffer = null; + } + + if (sensorData != null) + { + // disable color camera aligned depth frames + sensorData.sensorInterface.EnableColorCameraDepthFrame(sensorData, false); + } + } + + + void Update() + { + if (kinectManager && kinectManager.IsInitialized()) + { + float cameraWidth = backgroundCamera ? backgroundCamera.pixelRect.width : 0f; + float cameraHeight = backgroundCamera ? backgroundCamera.pixelRect.height : 0f; + + // check for new color camera aligned frames + UpdateTextureWithNewFrame(); + + if (backgroundImage && depthImageTexture != null && (backgroundImage.texture == null || + backgroundImage.texture.width != depthImageTexture.width || backgroundImage.texture.height != depthImageTexture.height || + lastCamRectW != cameraWidth || lastCamRectH != cameraHeight)) + { + lastCamRectW = cameraWidth; + lastCamRectH = cameraHeight; + + // enable color camera aligned depth frames + sensorData = kinectManager.GetSensorData(sensorIndex); // sensor data may be re-created after sensor-int restart + sensorData.sensorInterface.EnableColorCameraDepthFrame(sensorData, true); + + // set background texture + backgroundImage.texture = depthImageTexture; + backgroundImage.rectTransform.localScale = sensorData.colorImageScale; // kinectManager.GetColorImageScale(sensorIndex); + backgroundImage.color = Color.white; + + if (backgroundCamera != null) + { + // adjust image's size and position to match the stream aspect ratio + int colorImageWidth = sensorData.colorImageWidth; // kinectManager.GetColorImageWidth(sensorIndex); + int colorImageHeight = sensorData.colorImageHeight; // kinectManager.GetColorImageHeight(sensorIndex); + if (colorImageWidth == 0 || colorImageHeight == 0) + return; + + RectTransform rectImage = backgroundImage.rectTransform; + float rectWidth = (rectImage.anchorMin.x != rectImage.anchorMax.x) ? cameraWidth * (rectImage.anchorMax.x - rectImage.anchorMin.x) : rectImage.sizeDelta.x; + float rectHeight = (rectImage.anchorMin.y != rectImage.anchorMax.y) ? cameraHeight * (rectImage.anchorMax.y - rectImage.anchorMin.y) : rectImage.sizeDelta.y; + + if (colorImageWidth > colorImageHeight) + rectWidth = rectHeight * colorImageWidth / colorImageHeight; + else + rectHeight = rectWidth * colorImageHeight / colorImageWidth; + + Vector2 pivotOffset = (rectImage.pivot - new Vector2(0.5f, 0.5f)) * 2f; + Vector2 imageScale = sensorData.colorImageScale; // (Vector2)kinectManager.GetColorImageScale(sensorIndex); + Vector2 anchorPos = rectImage.anchoredPosition + pivotOffset * imageScale * new Vector2(rectWidth, rectHeight); + + if (rectImage.anchorMin.x != rectImage.anchorMax.x) + { + rectWidth = -(cameraWidth - rectWidth); + } + + if (rectImage.anchorMin.y != rectImage.anchorMax.y) + { + rectHeight = -(cameraHeight - rectHeight); + } + + rectImage.sizeDelta = new Vector2(rectWidth, rectHeight); + rectImage.anchoredPosition = initialAnchorPos = anchorPos; + } + } + + //if (backgroundImage) + //{ + // // update the anchor position, if needed + // if (sensorData != null && sensorData.sensorInterface != null) + // { + // Vector2 updatedAnchorPos = initialAnchorPos + sensorData.sensorInterface.GetBackgroundImageAnchorPos(sensorData); + // if (backgroundImage.rectTransform.anchoredPosition != updatedAnchorPos) + // { + // backgroundImage.rectTransform.anchoredPosition = updatedAnchorPos; + // } + // } + //} + } + else + { + // reset the background texture, if needed + if (backgroundImage && backgroundImage.texture != null) + { + backgroundImage.texture = null; + + // disable color camera aligned depth frames + if(sensorData != null && sensorData.sensorInterface != null) + { + sensorData.sensorInterface.EnableColorCameraDepthFrame(sensorData, false); + } + } + } + + //RectTransform rectTransform = backgroundImage.rectTransform; + //Debug.Log("pivot: " + rectTransform.pivot + ", anchorPos: " + rectTransform.anchoredPosition + ", \nanchorMin: " + rectTransform.anchorMin + ", anchorMax: " + rectTransform.anchorMax); + } + + + // checks for new color-camera aligned frames, and composes an updated body-index texture, if needed + private void UpdateTextureWithNewFrame() + { + if (sensorData == null || sensorData.sensorInterface == null || sensorData.colorCamDepthImage == null) + return; + + // get the updated depth frame + if (lastColorCamDepthFrameTime != sensorData.lastColorCamDepthFrameTime) + { + lastColorCamDepthFrameTime = sensorData.lastColorCamDepthFrameTime; + + if (depthImageTexture.width != sensorData.colorImageWidth || depthImageTexture.height != sensorData.colorImageHeight) + { + depthImageTexture = KinectInterop.CreateRenderTexture(depthImageTexture, sensorData.colorImageWidth, sensorData.colorImageHeight); + } + + Array.Clear(depthHistBufferData, 0, depthHistBufferData.Length); + Array.Clear(equalHistBufferData, 0, equalHistBufferData.Length); + depthHistTotalPoints = 0; + + // get configured min & max distances + float minDistance = ((DepthSensorBase)sensorData.sensorInterface).minDepthDistance; + float maxDistance = ((DepthSensorBase)sensorData.sensorInterface).maxDepthDistance; + + int depthMinDistance = (int)(minDistance * 1000f); + int depthMaxDistance = (int)(maxDistance * 1000f); + + int frameLen = sensorData.colorCamDepthImage.Length; + for (int i = 0; i < frameLen; i++) + { + int depth = sensorData.colorCamDepthImage[i]; + int limDepth = (depth <= DepthSensorBase.MAX_DEPTH_DISTANCE_MM) ? depth : 0; + + if (limDepth > 0) + { + depthHistBufferData[limDepth]++; + depthHistTotalPoints++; + } + } + + equalHistBufferData[0] = depthHistBufferData[0]; + for (int i = 1; i < depthHistBufferData.Length; i++) + { + equalHistBufferData[i] = equalHistBufferData[i - 1] + depthHistBufferData[i]; + } + + // make depth 0 equal to the max-depth + equalHistBufferData[0] = equalHistBufferData[equalHistBufferData.Length - 1]; + + int depthBufferLength = sensorData.colorCamDepthImage.Length >> 1; + if(depthImageBuffer == null || depthImageBuffer.count != depthBufferLength) + { + depthImageBuffer = KinectInterop.CreateComputeBuffer(depthImageBuffer, depthBufferLength, sizeof(uint)); + } + + KinectInterop.SetComputeBufferData(depthImageBuffer, sensorData.colorCamDepthImage, depthBufferLength, sizeof(uint)); + + if (depthHistBuffer != null) + { + KinectInterop.SetComputeBufferData(depthHistBuffer, equalHistBufferData, equalHistBufferData.Length, sizeof(int)); + } + + depthImageMaterial.SetInt("_TexResX", sensorData.colorImageWidth); + depthImageMaterial.SetInt("_TexResY", sensorData.colorImageHeight); + depthImageMaterial.SetInt("_MinDepth", depthMinDistance); + depthImageMaterial.SetInt("_MaxDepth", depthMaxDistance); + + depthImageMaterial.SetBuffer("_DepthMap", depthImageBuffer); + depthImageMaterial.SetBuffer("_HistMap", depthHistBuffer); + depthImageMaterial.SetInt("_TotalPoints", depthHistTotalPoints); + + Graphics.Blit(null, depthImageTexture, depthImageMaterial); + } + + + } + + } +} + diff --git a/Assets/Azure/KinectScripts/BackgroundColorCamDepthImage.cs.meta b/Assets/Azure/KinectScripts/BackgroundColorCamDepthImage.cs.meta new file mode 100644 index 0000000..01f9dcd --- /dev/null +++ b/Assets/Azure/KinectScripts/BackgroundColorCamDepthImage.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: bcdfb9864840151469f8a2a0ba31d093 +timeCreated: 1481733120 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/BackgroundColorCamInfraredImage.cs b/Assets/Azure/KinectScripts/BackgroundColorCamInfraredImage.cs new file mode 100644 index 0000000..1e8253f --- /dev/null +++ b/Assets/Azure/KinectScripts/BackgroundColorCamInfraredImage.cs @@ -0,0 +1,223 @@ +using UnityEngine; +using System.Collections; +using com.rfilkov.kinect; +using System; + +namespace com.rfilkov.components +{ + /// + /// BackgroundColorCamInfraredImage is component that displays the color camera aligned infrared image on RawImage texture, usually the scene background. + /// + public class BackgroundColorCamInfraredImage : MonoBehaviour + { + [Tooltip("Depth sensor index - 0 is the 1st one, 1 - the 2nd one, etc.")] + public int sensorIndex = 0; + + [Tooltip("RawImage used to display the color camera feed.")] + public UnityEngine.UI.RawImage backgroundImage; + + [Tooltip("Camera used to display the background image. Set it, if you'd like to allow background image to resize, to match the color image's aspect ratio.")] + public Camera backgroundCamera; + + + // last camera rect width & height + private float lastCamRectW = 0; + private float lastCamRectH = 0; + + // reference to the kinectManager + private KinectManager kinectManager = null; + private KinectInterop.SensorData sensorData = null; + private Vector2 initialAnchorPos = Vector2.zero; + + // color-camera aligned frames + private ulong lastColorCamInfraredFrameTime = 0; + + // color-camera aligned texture and buffers + private RenderTexture infraredImageTexture = null; + private Material infraredImageMaterial = null; + private ComputeBuffer infraredImageBuffer = null; + + + void Start() + { + if (backgroundImage == null) + { + backgroundImage = GetComponent(); + } + + kinectManager = KinectManager.Instance; + sensorData = kinectManager != null ? kinectManager.GetSensorData(sensorIndex) : null; + + if(sensorData != null) + { + // enable color camera aligned infrared frames + sensorData.sensorInterface.EnableColorCameraInfraredFrame(sensorData, true, false); + + // create the output texture and needed buffers + infraredImageTexture = KinectInterop.CreateRenderTexture(infraredImageTexture, sensorData.colorImageWidth, sensorData.colorImageHeight); + infraredImageMaterial = new Material(Shader.Find("Kinect/InfraredImageShader")); + + //int infraredBufferLength = sensorData.colorImageWidth * sensorData.colorImageHeight >> 1; + //infraredImageBuffer = KinectInterop.CreateComputeBuffer(infraredImageBuffer, infraredBufferLength, sizeof(uint)); + } + } + + + void OnDestroy() + { + if (infraredImageTexture) + { + infraredImageTexture.Release(); + infraredImageTexture = null; + } + + if (infraredImageBuffer != null) + { + infraredImageBuffer.Dispose(); + infraredImageBuffer = null; + } + + if (sensorData != null) + { + // disable color camera aligned infrared frames + sensorData.sensorInterface.EnableColorCameraInfraredFrame(sensorData, false, false); + } + } + + + void Update() + { + if (kinectManager && kinectManager.IsInitialized()) + { + float cameraWidth = backgroundCamera ? backgroundCamera.pixelRect.width : 0f; + float cameraHeight = backgroundCamera ? backgroundCamera.pixelRect.height : 0f; + + // check for new color camera aligned frames + UpdateTextureWithNewFrame(); + + if (backgroundImage && infraredImageTexture != null && (backgroundImage.texture == null || + backgroundImage.texture.width != infraredImageTexture.width || backgroundImage.texture.height != infraredImageTexture.height || + lastCamRectW != cameraWidth || lastCamRectH != cameraHeight)) + { + lastCamRectW = cameraWidth; + lastCamRectH = cameraHeight; + + // enable color camera aligned infrared frames + sensorData = kinectManager.GetSensorData(sensorIndex); // sensor data may be re-created after sensor-int restart + sensorData.sensorInterface.EnableColorCameraInfraredFrame(sensorData, true, false); + + backgroundImage.texture = infraredImageTexture; + backgroundImage.rectTransform.localScale = sensorData.colorImageScale; // kinectManager.GetColorImageScale(sensorIndex); + backgroundImage.color = Color.white; + + if (backgroundCamera != null) + { + // adjust image's size and position to match the stream aspect ratio + int colorImageWidth = sensorData.colorImageWidth; // kinectManager.GetColorImageWidth(sensorIndex); + int colorImageHeight = sensorData.colorImageHeight; // kinectManager.GetColorImageHeight(sensorIndex); + if (colorImageWidth == 0 || colorImageHeight == 0) + return; + + RectTransform rectImage = backgroundImage.rectTransform; + float rectWidth = (rectImage.anchorMin.x != rectImage.anchorMax.x) ? cameraWidth * (rectImage.anchorMax.x - rectImage.anchorMin.x) : rectImage.sizeDelta.x; + float rectHeight = (rectImage.anchorMin.y != rectImage.anchorMax.y) ? cameraHeight * (rectImage.anchorMax.y - rectImage.anchorMin.y) : rectImage.sizeDelta.y; + + if (colorImageWidth > colorImageHeight) + rectWidth = rectHeight * colorImageWidth / colorImageHeight; + else + rectHeight = rectWidth * colorImageHeight / colorImageWidth; + + Vector2 pivotOffset = (rectImage.pivot - new Vector2(0.5f, 0.5f)) * 2f; + Vector2 imageScale = sensorData.colorImageScale; // (Vector2)kinectManager.GetColorImageScale(sensorIndex); + Vector2 anchorPos = rectImage.anchoredPosition + pivotOffset * imageScale * new Vector2(rectWidth, rectHeight); + + if (rectImage.anchorMin.x != rectImage.anchorMax.x) + { + rectWidth = -(cameraWidth - rectWidth); + } + + if (rectImage.anchorMin.y != rectImage.anchorMax.y) + { + rectHeight = -(cameraHeight - rectHeight); + } + + rectImage.sizeDelta = new Vector2(rectWidth, rectHeight); + rectImage.anchoredPosition = initialAnchorPos = anchorPos; + } + } + + //if (backgroundImage) + //{ + // // update the anchor position, if needed + // if (sensorData != null && sensorData.sensorInterface != null) + // { + // Vector2 updatedAnchorPos = initialAnchorPos + sensorData.sensorInterface.GetBackgroundImageAnchorPos(sensorData); + // if (backgroundImage.rectTransform.anchoredPosition != updatedAnchorPos) + // { + // backgroundImage.rectTransform.anchoredPosition = updatedAnchorPos; + // } + // } + //} + } + else + { + // reset the background texture, if needed + if (backgroundImage && backgroundImage.texture != null) + { + backgroundImage.texture = null; + + // disable color camera aligned infrared frames + if (sensorData != null && sensorData.sensorInterface != null) + { + sensorData.sensorInterface.EnableColorCameraInfraredFrame(sensorData, false, false); + } + } + } + + //RectTransform rectTransform = backgroundImage.rectTransform; + //Debug.Log("pivot: " + rectTransform.pivot + ", anchorPos: " + rectTransform.anchoredPosition + ", \nanchorMin: " + rectTransform.anchorMin + ", anchorMax: " + rectTransform.anchorMax); + } + + + // checks for new color-camera aligned frames, and composes an updated body-index texture, if needed + private void UpdateTextureWithNewFrame() + { + if (sensorData == null || sensorData.sensorInterface == null || sensorData.colorCamInfraredImage == null) + return; + + // get the updated infrared + if (lastColorCamInfraredFrameTime != sensorData.lastColorCamInfraredFrameTime) + { + lastColorCamInfraredFrameTime = sensorData.lastColorCamInfraredFrameTime; + + if (infraredImageTexture.width != sensorData.colorImageWidth || infraredImageTexture.height != sensorData.colorImageHeight) + { + infraredImageTexture = KinectInterop.CreateRenderTexture(infraredImageTexture, sensorData.colorImageWidth, sensorData.colorImageHeight); + } + + int infraredBufferLength = sensorData.colorCamInfraredImage.Length >> 1; + if (infraredImageBuffer == null || infraredImageBuffer.count != infraredBufferLength) + { + infraredImageBuffer = KinectInterop.CreateComputeBuffer(infraredImageBuffer, infraredBufferLength, sizeof(uint)); + } + + KinectInterop.SetComputeBufferData(infraredImageBuffer, sensorData.colorCamInfraredImage, infraredBufferLength, sizeof(uint)); + + float minInfraredValue = ((DepthSensorBase)sensorData.sensorInterface).GetMinInfraredValue(); + float maxInfraredValue = ((DepthSensorBase)sensorData.sensorInterface).GetMaxInfraredValue(); + + infraredImageMaterial.SetInt("_TexResX", sensorData.colorImageWidth); + infraredImageMaterial.SetInt("_TexResY", sensorData.colorImageHeight); + infraredImageMaterial.SetFloat("_MinValue", minInfraredValue); + infraredImageMaterial.SetFloat("_MaxValue", maxInfraredValue); + infraredImageMaterial.SetBuffer("_InfraredMap", infraredImageBuffer); + + Graphics.Blit(null, infraredImageTexture, infraredImageMaterial); + } + + + } + + } +} + diff --git a/Assets/Azure/KinectScripts/BackgroundColorCamInfraredImage.cs.meta b/Assets/Azure/KinectScripts/BackgroundColorCamInfraredImage.cs.meta new file mode 100644 index 0000000..761f1d0 --- /dev/null +++ b/Assets/Azure/KinectScripts/BackgroundColorCamInfraredImage.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: db2e5a5269099984a990878f9ccceb23 +timeCreated: 1481733120 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/BackgroundColorCamUserImage.cs b/Assets/Azure/KinectScripts/BackgroundColorCamUserImage.cs new file mode 100644 index 0000000..0057364 --- /dev/null +++ b/Assets/Azure/KinectScripts/BackgroundColorCamUserImage.cs @@ -0,0 +1,322 @@ +using UnityEngine; +using System.Collections; +using com.rfilkov.kinect; +using System; + +namespace com.rfilkov.components +{ + /// + /// BackgroundColorCamUserImage is component that displays the color camera aligned user-body image on RawImage texture, usually the scene background. + /// + public class BackgroundColorCamUserImage : MonoBehaviour + { + [Tooltip("Depth sensor index - 0 is the 1st one, 1 - the 2nd one, etc.")] + public int sensorIndex = 0; + + [Tooltip("Index of the player, tracked by this component. -1 means all players, 0 - the 1st player, 1 - the 2nd one, 2 - the 3rd one, etc.")] + public int playerIndex = -1; + + [Tooltip("RawImage used to display the color camera feed.")] + public UnityEngine.UI.RawImage backgroundImage; + + [Tooltip("Camera used to display the background image. Set it, if you'd like to allow background image to resize, to match the color image's aspect ratio.")] + public Camera backgroundCamera; + + + // last camera rect width & height + private float lastCamRectW = 0; + private float lastCamRectH = 0; + + // reference to the kinectManager + private KinectManager kinectManager = null; + private KinectInterop.SensorData sensorData = null; + private Vector2 initialAnchorPos = Vector2.zero; + + // color-camera aligned frames + private ulong lastColorCamDepthFrameTime = 0; + private ulong lastColorCamBodyIndexFrameTime = 0; + + // color-camera aligned texture and buffers + private RenderTexture bodyImageTexture = null; + private Material bodyImageMaterial = null; + + private ComputeBuffer bodyIndexBuffer = null; + private ComputeBuffer depthImageBuffer = null; + private ComputeBuffer bodyHistBuffer = null; + + // body image hist data + protected int[] depthBodyBufferData = null; + protected int[] equalBodyBufferData = null; + protected int bodyHistTotalPoints = 0; + + + void Start() + { + if (backgroundImage == null) + { + backgroundImage = GetComponent(); + } + + kinectManager = KinectManager.Instance; + sensorData = kinectManager != null ? kinectManager.GetSensorData(sensorIndex) : null; + + if(sensorData != null) + { + // enable color camera aligned depth & body-index frames + sensorData.sensorInterface.EnableColorCameraDepthFrame(sensorData, true); + sensorData.sensorInterface.EnableColorCameraBodyIndexFrame(sensorData, true); + + // create the user texture and needed buffers + //bodyImageTexture = KinectInterop.CreateRenderTexture(bodyImageTexture, sensorData.colorImageWidth, sensorData.colorImageHeight); + bodyImageMaterial = new Material(Shader.Find("Kinect/UserHistImageShader")); + + bodyHistBuffer = KinectInterop.CreateComputeBuffer(bodyHistBuffer, DepthSensorBase.MAX_DEPTH_DISTANCE_MM + 1, sizeof(int)); + + depthBodyBufferData = new int[DepthSensorBase.MAX_DEPTH_DISTANCE_MM + 1]; + equalBodyBufferData = new int[DepthSensorBase.MAX_DEPTH_DISTANCE_MM + 1]; + } + } + + + void OnDestroy() + { + if (bodyImageTexture) + { + bodyImageTexture.Release(); + bodyImageTexture = null; + } + + if (bodyIndexBuffer != null) + { + bodyIndexBuffer.Dispose(); + bodyIndexBuffer = null; + } + + if (depthImageBuffer != null) + { + depthImageBuffer.Dispose(); + depthImageBuffer = null; + } + + if (bodyHistBuffer != null) + { + bodyHistBuffer.Dispose(); + bodyHistBuffer = null; + } + + if (sensorData != null) + { + // disable color camera aligned depth & body-index frames + sensorData.sensorInterface.EnableColorCameraDepthFrame(sensorData, false); + sensorData.sensorInterface.EnableColorCameraBodyIndexFrame(sensorData, false); + } + } + + + void Update() + { + if (kinectManager && kinectManager.IsInitialized()) + { + float cameraWidth = backgroundCamera ? backgroundCamera.pixelRect.width : 0f; + float cameraHeight = backgroundCamera ? backgroundCamera.pixelRect.height : 0f; + + // check for new color camera aligned frames + UpdateTextureWithNewFrame(); + + if (backgroundImage && bodyImageTexture != null && (backgroundImage.texture == null || + backgroundImage.texture.width != bodyImageTexture.width || backgroundImage.texture.height != bodyImageTexture.height || + lastCamRectW != cameraWidth || lastCamRectH != cameraHeight)) + { + lastCamRectW = cameraWidth; + lastCamRectH = cameraHeight; + + // enable color camera aligned depth & body-index frames + sensorData = kinectManager.GetSensorData(sensorIndex); // sensor data may be re-created after sensor-int restart + sensorData.sensorInterface.EnableColorCameraDepthFrame(sensorData, true); + sensorData.sensorInterface.EnableColorCameraBodyIndexFrame(sensorData, true); + + backgroundImage.texture = bodyImageTexture; + backgroundImage.rectTransform.localScale = sensorData.colorImageScale; // kinectManager.GetColorImageScale(sensorIndex); + backgroundImage.color = Color.white; + + if (backgroundCamera != null) + { + // adjust image's size and position to match the stream aspect ratio + int colorImageWidth = sensorData.colorImageWidth; // kinectManager.GetColorImageWidth(sensorIndex); + int colorImageHeight = sensorData.colorImageHeight; // kinectManager.GetColorImageHeight(sensorIndex); + if (colorImageWidth == 0 || colorImageHeight == 0) + return; + + RectTransform rectImage = backgroundImage.rectTransform; + float rectWidth = (rectImage.anchorMin.x != rectImage.anchorMax.x) ? cameraWidth * (rectImage.anchorMax.x - rectImage.anchorMin.x) : rectImage.sizeDelta.x; + float rectHeight = (rectImage.anchorMin.y != rectImage.anchorMax.y) ? cameraHeight * (rectImage.anchorMax.y - rectImage.anchorMin.y) : rectImage.sizeDelta.y; + + if (colorImageWidth > colorImageHeight) + rectWidth = rectHeight * colorImageWidth / colorImageHeight; + else + rectHeight = rectWidth * colorImageHeight / colorImageWidth; + + Vector2 pivotOffset = (rectImage.pivot - new Vector2(0.5f, 0.5f)) * 2f; + Vector2 imageScale = sensorData.colorImageScale; // (Vector2)kinectManager.GetColorImageScale(sensorIndex); + Vector2 anchorPos = rectImage.anchoredPosition + pivotOffset * imageScale * new Vector2(rectWidth, rectHeight); + + if (rectImage.anchorMin.x != rectImage.anchorMax.x) + { + rectWidth = -(cameraWidth - rectWidth); + } + + if (rectImage.anchorMin.y != rectImage.anchorMax.y) + { + rectHeight = -(cameraHeight - rectHeight); + } + + rectImage.sizeDelta = new Vector2(rectWidth, rectHeight); + rectImage.anchoredPosition = initialAnchorPos = anchorPos; + } + } + + //if (backgroundImage) + //{ + // // update the anchor position, if needed + // if (sensorData != null && sensorData.sensorInterface != null) + // { + // Vector2 updatedAnchorPos = initialAnchorPos + sensorData.sensorInterface.GetBackgroundImageAnchorPos(sensorData); + // if (backgroundImage.rectTransform.anchoredPosition != updatedAnchorPos) + // { + // backgroundImage.rectTransform.anchoredPosition = updatedAnchorPos; + // } + // } + //} + } + else + { + // reset the background texture, if needed + if (backgroundImage && backgroundImage.texture != null) + { + backgroundImage.texture = null; + + if (sensorData != null) + { + // disable color camera aligned depth & body-index frames + sensorData.sensorInterface.EnableColorCameraDepthFrame(sensorData, false); + sensorData.sensorInterface.EnableColorCameraBodyIndexFrame(sensorData, false); + } + } + } + + //RectTransform rectTransform = backgroundImage.rectTransform; + //Debug.Log("pivot: " + rectTransform.pivot + ", anchorPos: " + rectTransform.anchoredPosition + ", \nanchorMin: " + rectTransform.anchorMin + ", anchorMax: " + rectTransform.anchorMax); + } + + + // checks for new color-camera aligned frames, and composes an updated body-index texture, if needed + private void UpdateTextureWithNewFrame() + { + if (sensorData == null || sensorData.sensorInterface == null || sensorData.colorCamBodyIndexImage == null || sensorData.colorCamDepthImage == null) + return; + if (sensorData.colorImageWidth == 0 || sensorData.colorImageHeight == 0 || sensorData.lastColorCamDepthFrameTime == 0 || sensorData.lastColorCamBodyIndexFrameTime == 0) + return; + + // get body index frame + if (lastColorCamDepthFrameTime != sensorData.lastColorCamDepthFrameTime || lastColorCamBodyIndexFrameTime != sensorData.lastColorCamBodyIndexFrameTime) + { + lastColorCamDepthFrameTime = sensorData.lastColorCamDepthFrameTime; + lastColorCamBodyIndexFrameTime = sensorData.lastColorCamBodyIndexFrameTime; + + if(bodyImageTexture == null || bodyImageTexture.width != sensorData.colorImageWidth || bodyImageTexture.height != sensorData.colorImageHeight) + { + bodyImageTexture = KinectInterop.CreateRenderTexture(bodyImageTexture, sensorData.colorImageWidth, sensorData.colorImageHeight); + } + + Array.Clear(depthBodyBufferData, 0, depthBodyBufferData.Length); + Array.Clear(equalBodyBufferData, 0, equalBodyBufferData.Length); + bodyHistTotalPoints = 0; + + // get configured min & max distances + float minDistance = ((DepthSensorBase)sensorData.sensorInterface).minDepthDistance; + float maxDistance = ((DepthSensorBase)sensorData.sensorInterface).maxDepthDistance; + + int depthMinDistance = (int)(minDistance * 1000f); + int depthMaxDistance = (int)(maxDistance * 1000f); + + int frameLen = sensorData.colorCamDepthImage.Length; + for (int i = 0; i < frameLen; i++) + { + int depth = sensorData.colorCamDepthImage[i]; + int limDepth = (depth >= depthMinDistance && depth <= depthMaxDistance) ? depth : 0; + + if (/**rawBodyIndexImage[i] != 255 &&*/ limDepth > 0) + { + depthBodyBufferData[limDepth]++; + bodyHistTotalPoints++; + } + } + + if (bodyHistTotalPoints > 0) + { + equalBodyBufferData[0] = depthBodyBufferData[0]; + for (int i = 1; i < depthBodyBufferData.Length; i++) + { + equalBodyBufferData[i] = equalBodyBufferData[i - 1] + depthBodyBufferData[i]; + } + } + + int bodyIndexBufferLength = sensorData.colorCamBodyIndexImage.Length >> 2; + if (bodyIndexBuffer == null || bodyIndexBuffer.count != bodyIndexBufferLength) + { + bodyIndexBuffer = KinectInterop.CreateComputeBuffer(bodyIndexBuffer, bodyIndexBufferLength, sizeof(uint)); + } + + KinectInterop.SetComputeBufferData(bodyIndexBuffer, sensorData.colorCamBodyIndexImage, bodyIndexBufferLength, sizeof(uint)); + + int depthBufferLength = sensorData.colorCamDepthImage.Length >> 1; + if(depthImageBuffer == null || depthImageBuffer.count != depthBufferLength) + { + depthImageBuffer = KinectInterop.CreateComputeBuffer(depthImageBuffer, depthBufferLength, sizeof(uint)); + } + + KinectInterop.SetComputeBufferData(depthImageBuffer, sensorData.colorCamDepthImage, depthBufferLength, sizeof(uint)); + + if (bodyHistBuffer != null) + { + KinectInterop.SetComputeBufferData(bodyHistBuffer, equalBodyBufferData, equalBodyBufferData.Length, sizeof(int)); + } + + float minDist = minDistance; // kinectManager.minUserDistance != 0f ? kinectManager.minUserDistance : minDistance; + float maxDist = maxDistance; // kinectManager.maxUserDistance != 0f ? kinectManager.maxUserDistance : maxDistance; + + bodyImageMaterial.SetInt("_TexResX", sensorData.colorImageWidth); + bodyImageMaterial.SetInt("_TexResY", sensorData.colorImageHeight); + bodyImageMaterial.SetInt("_MinDepth", (int)(minDist * 1000f)); + bodyImageMaterial.SetInt("_MaxDepth", (int)(maxDist * 1000f)); + + bodyImageMaterial.SetBuffer("_BodyIndexMap", bodyIndexBuffer); + bodyImageMaterial.SetBuffer("_DepthMap", depthImageBuffer); + bodyImageMaterial.SetBuffer("_HistMap", bodyHistBuffer); + bodyImageMaterial.SetInt("_TotalPoints", bodyHistTotalPoints); + + Color[] bodyIndexColors = kinectManager.GetBodyIndexColors(); + if(playerIndex >= 0) + { + ulong userId = kinectManager.GetUserIdByIndex(playerIndex); + int bodyIndex = kinectManager.GetBodyIndexByUserId(userId); + + int numBodyIndices = bodyIndexColors.Length; + Color clrNone = new Color(0f, 0f, 0f, 0f); + + for (int i = 0; i < numBodyIndices; i++) + { + if (i != bodyIndex) + bodyIndexColors[i] = clrNone; + } + } + + bodyImageMaterial.SetColorArray("_BodyIndexColors", bodyIndexColors); + + Graphics.Blit(null, bodyImageTexture, bodyImageMaterial); + } + } + + } +} + diff --git a/Assets/Azure/KinectScripts/BackgroundColorCamUserImage.cs.meta b/Assets/Azure/KinectScripts/BackgroundColorCamUserImage.cs.meta new file mode 100644 index 0000000..53249a4 --- /dev/null +++ b/Assets/Azure/KinectScripts/BackgroundColorCamUserImage.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 5460d666a1cb85f418682ed53b4b3d26 +timeCreated: 1481733120 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/BackgroundColorImage.cs b/Assets/Azure/KinectScripts/BackgroundColorImage.cs new file mode 100644 index 0000000..a4f3188 --- /dev/null +++ b/Assets/Azure/KinectScripts/BackgroundColorImage.cs @@ -0,0 +1,132 @@ +using UnityEngine; +using System.Collections; +using com.rfilkov.kinect; + + +namespace com.rfilkov.components +{ + /// + /// Background color image is component that displays the color camera feed on RawImage texture, usually the scene background. + /// + public class BackgroundColorImage : MonoBehaviour + { + [Tooltip("Depth sensor index - 0 is the 1st one, 1 - the 2nd one, etc.")] + public int sensorIndex = 0; + + [Tooltip("RawImage used to display the color camera feed.")] + public UnityEngine.UI.RawImage backgroundImage; + + [Tooltip("Camera used to display the background image. Set it, if you'd like to allow background image to resize, to match the color image's aspect ratio.")] + public Camera backgroundCamera; + + + // last camera rect width & height + private float lastCamRectW = 0; + private float lastCamRectH = 0; + + // references + private KinectManager kinectManager = null; + private KinectInterop.SensorData sensorData = null; + private Vector2 initialAnchorPos = Vector2.zero; + + + void Start() + { + if (backgroundImage == null) + { + backgroundImage = GetComponent(); + } + + kinectManager = KinectManager.Instance; + sensorData = kinectManager != null ? kinectManager.GetSensorData(sensorIndex) : null; + } + + + void Update() + { + if (kinectManager && kinectManager.IsInitialized()) + { + float cameraWidth = backgroundCamera ? backgroundCamera.pixelRect.width : 0f; + float cameraHeight = backgroundCamera ? backgroundCamera.pixelRect.height : 0f; + + Texture imageTex = kinectManager.GetColorImageTex(sensorIndex); + if (backgroundImage && imageTex != null && (backgroundImage.texture == null || + backgroundImage.texture.width != imageTex.width || backgroundImage.texture.height != imageTex.height || + lastCamRectW != cameraWidth || lastCamRectH != cameraHeight)) + { + lastCamRectW = cameraWidth; + lastCamRectH = cameraHeight; + + backgroundImage.texture = imageTex; + backgroundImage.rectTransform.localScale = sensorData.colorImageScale; // kinectManager.GetColorImageScale(sensorIndex); + backgroundImage.color = Color.white; + + //Debug.Log("aPos: " + backgroundImage.rectTransform.anchoredPosition + ", aMin: " + backgroundImage.rectTransform.anchorMin + + // ", aMax:" + backgroundImage.rectTransform.anchorMax + ", pivot: " + backgroundImage.rectTransform.pivot + + // ", size: " + backgroundImage.rectTransform.sizeDelta); + + if (backgroundCamera != null) + { + // adjust image's size and position to match the stream aspect ratio + int colorImageWidth = sensorData.colorImageWidth; // kinectManager.GetColorImageWidth(sensorIndex); + int colorImageHeight = sensorData.colorImageHeight; // kinectManager.GetColorImageHeight(sensorIndex); + if (colorImageWidth == 0 || colorImageHeight == 0) + return; + + RectTransform rectImage = backgroundImage.rectTransform; + float rectWidth = (rectImage.anchorMin.x != rectImage.anchorMax.x) ? cameraWidth * (rectImage.anchorMax.x - rectImage.anchorMin.x) : rectImage.sizeDelta.x; + float rectHeight = (rectImage.anchorMin.y != rectImage.anchorMax.y) ? cameraHeight * (rectImage.anchorMax.y - rectImage.anchorMin.y) : rectImage.sizeDelta.y; + + if (colorImageWidth > colorImageHeight) + rectWidth = rectHeight * colorImageWidth / colorImageHeight; + else + rectHeight = rectWidth * colorImageHeight / colorImageWidth; + + Vector2 pivotOffset = (rectImage.pivot - new Vector2(0.5f, 0.5f)) * 2f; + Vector2 imageScale = sensorData.colorImageScale; // (Vector2)kinectManager.GetColorImageScale(sensorIndex); + Vector2 anchorPos = rectImage.anchoredPosition + pivotOffset * imageScale * new Vector2(rectWidth, rectHeight); + + if (rectImage.anchorMin.x != rectImage.anchorMax.x) + { + rectWidth = -(cameraWidth - rectWidth); + } + + if (rectImage.anchorMin.y != rectImage.anchorMax.y) + { + rectHeight = -(cameraHeight - rectHeight); + } + + rectImage.sizeDelta = new Vector2(rectWidth, rectHeight); + rectImage.anchoredPosition = initialAnchorPos = anchorPos; + } + } + + //if(backgroundImage) + //{ + // // update the anchor position, if needed + // if(sensorData != null && sensorData.sensorInterface != null) + // { + // Vector2 updatedAnchorPos = initialAnchorPos + sensorData.sensorInterface.GetBackgroundImageAnchorPos(sensorData); + // if(backgroundImage.rectTransform.anchoredPosition != updatedAnchorPos) + // { + // backgroundImage.rectTransform.anchoredPosition = updatedAnchorPos; + // } + // } + //} + } + else + { + // reset the background texture, if needed + if (backgroundImage && backgroundImage.texture != null) + { + backgroundImage.texture = null; + } + } + + //RectTransform rectTransform = backgroundImage.rectTransform; + //Debug.Log("pivot: " + rectTransform.pivot + ", anchorPos: " + rectTransform.anchoredPosition + ", \nanchorMin: " + rectTransform.anchorMin + ", anchorMax: " + rectTransform.anchorMax); + } + + } +} + diff --git a/Assets/Azure/KinectScripts/BackgroundColorImage.cs.meta b/Assets/Azure/KinectScripts/BackgroundColorImage.cs.meta new file mode 100644 index 0000000..fd7ff6c --- /dev/null +++ b/Assets/Azure/KinectScripts/BackgroundColorImage.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4c68913127bedcd4bbd001b610521305 +timeCreated: 1481733120 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/BackgroundDepthCamColorImage.cs b/Assets/Azure/KinectScripts/BackgroundDepthCamColorImage.cs new file mode 100644 index 0000000..6a825f7 --- /dev/null +++ b/Assets/Azure/KinectScripts/BackgroundDepthCamColorImage.cs @@ -0,0 +1,146 @@ +using UnityEngine; +using System.Collections; +using com.rfilkov.kinect; +using System; + +namespace com.rfilkov.components +{ + /// + /// BackgroundDepthCamColorImage is component that displays the depth camera aligned color image on RawImage texture, usually the scene background. + /// + public class BackgroundDepthCamColorImage : MonoBehaviour + { + [Tooltip("Depth sensor index - 0 is the 1st one, 1 - the 2nd one, etc.")] + public int sensorIndex = 0; + + [Tooltip("RawImage used to display the color camera feed.")] + public UnityEngine.UI.RawImage backgroundImage; + + [Tooltip("Camera used to display the background image. Set it, if you'd like to allow background image to resize, to match the color image's aspect ratio.")] + public Camera backgroundCamera; + + + // last camera rect width & height + private float lastCamRectW = 0; + private float lastCamRectH = 0; + + // reference to the kinectManager + private KinectManager kinectManager = null; + private KinectInterop.SensorData sensorData = null; + private Vector2 initialAnchorPos = Vector2.zero; + + //// depth-camera aligned frames + //private ulong lastDepthCamColorFrameTime = 0; + + + void Start() + { + if (backgroundImage == null) + { + backgroundImage = GetComponent(); + } + + kinectManager = KinectManager.Instance; + sensorData = kinectManager != null ? kinectManager.GetSensorData(sensorIndex) : null; + + if(sensorData != null) + { + // enable depth camera aligned color frames + sensorData.sensorInterface.EnableDepthCameraColorFrame(sensorData, true); + } + } + + + void OnDestroy() + { + if (sensorData != null) + { + // disable depth camera aligned color frames + sensorData.sensorInterface.EnableDepthCameraColorFrame(sensorData, false); + } + } + + + void Update() + { + if (kinectManager && kinectManager.IsInitialized()) + { + float cameraWidth = backgroundCamera ? backgroundCamera.pixelRect.width : 0f; + float cameraHeight = backgroundCamera ? backgroundCamera.pixelRect.height : 0f; + + if(sensorData.depthCamColorImageTexture == null) + { + // enable depth camera aligned color frames + sensorData = kinectManager.GetSensorData(sensorIndex); // sensor data may be re-created after sensor-int restart + sensorData.sensorInterface.EnableDepthCameraColorFrame(sensorData, true); + } + + if (backgroundImage && sensorData.depthCamColorImageTexture != null && (backgroundImage.texture == null || + backgroundImage.texture.width != sensorData.depthCamColorImageTexture.width || backgroundImage.texture.height != sensorData.depthCamColorImageTexture.height || + lastCamRectW != cameraWidth || lastCamRectH != cameraHeight)) + { + lastCamRectW = cameraWidth; + lastCamRectH = cameraHeight; + + backgroundImage.texture = sensorData.depthCamColorImageTexture; + backgroundImage.rectTransform.localScale = sensorData.depthImageScale; + backgroundImage.color = Color.white; + + if (backgroundCamera != null) + { + // adjust image's size and position to match the stream aspect ratio + int colorImageWidth = sensorData.depthImageWidth; + int colorImageHeight = sensorData.depthImageHeight; + if (colorImageWidth == 0 || colorImageHeight == 0) + return; + + RectTransform rectImage = backgroundImage.rectTransform; + float rectWidth = (rectImage.anchorMin.x != rectImage.anchorMax.x) ? cameraWidth * (rectImage.anchorMax.x - rectImage.anchorMin.x) : rectImage.sizeDelta.x; + float rectHeight = (rectImage.anchorMin.y != rectImage.anchorMax.y) ? cameraHeight * (rectImage.anchorMax.y - rectImage.anchorMin.y) : rectImage.sizeDelta.y; + + if (colorImageWidth > colorImageHeight) + rectWidth = rectHeight * colorImageWidth / colorImageHeight; + else + rectHeight = rectWidth * colorImageHeight / colorImageWidth; + + Vector2 pivotOffset = (rectImage.pivot - new Vector2(0.5f, 0.5f)) * 2f; + Vector2 imageScale = sensorData.depthImageScale; + Vector2 anchorPos = rectImage.anchoredPosition + pivotOffset * imageScale * new Vector2(rectWidth, rectHeight); + + if (rectImage.anchorMin.x != rectImage.anchorMax.x) + { + rectWidth = -(cameraWidth - rectWidth); + } + + if (rectImage.anchorMin.y != rectImage.anchorMax.y) + { + rectHeight = -(cameraHeight - rectHeight); + } + + rectImage.sizeDelta = new Vector2(rectWidth, rectHeight); + rectImage.anchoredPosition = initialAnchorPos = anchorPos; + } + } + } + else + { + // reset the background texture, if needed + if (backgroundImage && backgroundImage.texture != null) + { + backgroundImage.texture = null; + + if (sensorData != null) + { + // disable depth camera aligned color frames + sensorData.sensorInterface.EnableDepthCameraColorFrame(sensorData, false); + } + } + } + + //RectTransform rectTransform = backgroundImage.rectTransform; + //Debug.Log("pivot: " + rectTransform.pivot + ", anchorPos: " + rectTransform.anchoredPosition + ", \nanchorMin: " + rectTransform.anchorMin + ", anchorMax: " + rectTransform.anchorMax); + } + + } +} + diff --git a/Assets/Azure/KinectScripts/BackgroundDepthCamColorImage.cs.meta b/Assets/Azure/KinectScripts/BackgroundDepthCamColorImage.cs.meta new file mode 100644 index 0000000..6804b34 --- /dev/null +++ b/Assets/Azure/KinectScripts/BackgroundDepthCamColorImage.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0cf0a53458b5548acb078c1bc6d443c8 +timeCreated: 1481733120 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/BackgroundDepthImage.cs b/Assets/Azure/KinectScripts/BackgroundDepthImage.cs new file mode 100644 index 0000000..ce14823 --- /dev/null +++ b/Assets/Azure/KinectScripts/BackgroundDepthImage.cs @@ -0,0 +1,132 @@ +using UnityEngine; +using System.Collections; +using com.rfilkov.kinect; + + +namespace com.rfilkov.components +{ + /// + /// Background depth image is component that displays the depth camera image on RawImage texture, usually the scene background. + /// + public class BackgroundDepthImage : MonoBehaviour + { + [Tooltip("Depth sensor index - 0 is the 1st one, 1 - the 2nd one, etc.")] + public int sensorIndex = 0; + + [Tooltip("RawImage used to display the depth image.")] + public UnityEngine.UI.RawImage backgroundImage; + + [Tooltip("Camera used to display the background image. Set it, if you'd like to allow background image to resize, to match the depth image's aspect ratio.")] + public Camera backgroundCamera; + + + // last camera rect width & height + private float lastCamRectW = 0; + private float lastCamRectH = 0; + + // references + private KinectManager kinectManager = null; + private KinectInterop.SensorData sensorData = null; + private Vector2 initialAnchorPos = Vector2.zero; + + + void Start() + { + if (backgroundImage == null) + { + backgroundImage = GetComponent(); + } + + kinectManager = KinectManager.Instance; + sensorData = kinectManager != null ? kinectManager.GetSensorData(sensorIndex) : null; + } + + + void Update() + { + if (kinectManager && kinectManager.IsInitialized()) + { + float cameraWidth = backgroundCamera ? backgroundCamera.pixelRect.width : 0f; + float cameraHeight = backgroundCamera ? backgroundCamera.pixelRect.height : 0f; + + Texture imageTex = kinectManager.GetDepthImageTex(sensorIndex); + if (backgroundImage && imageTex != null && (backgroundImage.texture == null || + backgroundImage.texture.width != imageTex.width || backgroundImage.texture.height != imageTex.height || + lastCamRectW != cameraWidth || lastCamRectH != cameraHeight)) + { + lastCamRectW = cameraWidth; + lastCamRectH = cameraHeight; + + backgroundImage.texture = imageTex; + backgroundImage.rectTransform.localScale = sensorData.depthImageScale; // kinectManager.GetDepthImageScale(sensorIndex); + backgroundImage.color = Color.white; + + //Debug.Log("aPos: " + backgroundImage.rectTransform.anchoredPosition + ", aMin: " + backgroundImage.rectTransform.anchorMin + + // ", aMax:" + backgroundImage.rectTransform.anchorMax + ", pivot: " + backgroundImage.rectTransform.pivot + + // ", size: " + backgroundImage.rectTransform.sizeDelta); + + if (backgroundCamera != null) + { + // adjust image's size and position to match the stream aspect ratio + int depthImageWidth = sensorData.depthImageWidth; // kinectManager.GetDepthImageWidth(sensorIndex); + int depthImageHeight = sensorData.depthImageHeight; // kinectManager.GetDepthImageHeight(sensorIndex); + if (depthImageWidth == 0 || depthImageHeight == 0) + return; + + RectTransform rectImage = backgroundImage.rectTransform; + float rectWidth = (rectImage.anchorMin.x != rectImage.anchorMax.x) ? cameraWidth * (rectImage.anchorMax.x - rectImage.anchorMin.x) : rectImage.sizeDelta.x; + float rectHeight = (rectImage.anchorMin.y != rectImage.anchorMax.y) ? cameraHeight * (rectImage.anchorMax.y - rectImage.anchorMin.y) : rectImage.sizeDelta.y; + + if (depthImageWidth > depthImageHeight) + rectWidth = rectHeight * depthImageWidth / depthImageHeight; + else + rectHeight = rectWidth * depthImageHeight / depthImageWidth; + + Vector2 pivotOffset = (rectImage.pivot - new Vector2(0.5f, 0.5f)) * 2f; + Vector2 imageScale = sensorData.depthImageScale; // (Vector2)kinectManager.GetDepthImageScale(sensorIndex); + Vector2 anchorPos = rectImage.anchoredPosition + pivotOffset * imageScale * new Vector2(rectWidth, rectHeight); + + if (rectImage.anchorMin.x != rectImage.anchorMax.x) + { + rectWidth = -(cameraWidth - rectWidth); + } + + if (rectImage.anchorMin.y != rectImage.anchorMax.y) + { + rectHeight = -(cameraHeight - rectHeight); + } + + rectImage.sizeDelta = new Vector2(rectWidth, rectHeight); + rectImage.anchoredPosition = initialAnchorPos = anchorPos; + } + } + + //if (backgroundImage) + //{ + // // update the anchor position, if needed + // if (sensorData != null && sensorData.sensorInterface != null) + // { + // Vector2 updatedAnchorPos = initialAnchorPos + sensorData.sensorInterface.GetBackgroundImageAnchorPos(sensorData); + // if (backgroundImage.rectTransform.anchoredPosition != updatedAnchorPos) + // { + // backgroundImage.rectTransform.anchoredPosition = updatedAnchorPos; + // } + // } + //} + } + else + { + // reset the background texture, if needed + if (backgroundImage && backgroundImage.texture != null) + { + backgroundImage.texture = null; + } + } + + //RectTransform rectTransform = backgroundImage.rectTransform; + //Debug.Log("pivot: " + rectTransform.pivot + ", anchorPos: " + rectTransform.anchoredPosition + ", \nanchorMin: " + rectTransform.anchorMin + ", anchorMax: " + rectTransform.anchorMax); + } + + } +} + diff --git a/Assets/Azure/KinectScripts/BackgroundDepthImage.cs.meta b/Assets/Azure/KinectScripts/BackgroundDepthImage.cs.meta new file mode 100644 index 0000000..56b6a8a --- /dev/null +++ b/Assets/Azure/KinectScripts/BackgroundDepthImage.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 65268b386677b334bbfd2f6ec3e726fb +timeCreated: 1483707326 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/BackgroundInfraredImage.cs b/Assets/Azure/KinectScripts/BackgroundInfraredImage.cs new file mode 100644 index 0000000..7a3ce32 --- /dev/null +++ b/Assets/Azure/KinectScripts/BackgroundInfraredImage.cs @@ -0,0 +1,128 @@ +using UnityEngine; +using System.Collections; +using com.rfilkov.kinect; + + +namespace com.rfilkov.components +{ + /// + /// Background infrared image is component that displays the infrared camera image on RawImage texture, usually the scene background. + /// + public class BackgroundInfraredImage : MonoBehaviour + { + [Tooltip("Depth sensor index - 0 is the 1st one, 1 - the 2nd one, etc.")] + public int sensorIndex = 0; + + [Tooltip("RawImage used to display the depth image.")] + public UnityEngine.UI.RawImage backgroundImage; + + [Tooltip("Camera used to display the background image. Set it, if you'd like to allow background image to resize, to match the depth image's aspect ratio.")] + public Camera backgroundCamera; + + + // last camera rect width & height + private float lastCamRectW = 0; + private float lastCamRectH = 0; + + // references + private KinectManager kinectManager = null; + private KinectInterop.SensorData sensorData = null; + private Vector2 initialAnchorPos = Vector2.zero; + + + void Start() + { + if (backgroundImage == null) + { + backgroundImage = GetComponent(); + } + + kinectManager = KinectManager.Instance; + sensorData = kinectManager != null ? kinectManager.GetSensorData(sensorIndex) : null; + } + + + void Update() + { + if (kinectManager && kinectManager.IsInitialized()) + { + float cameraWidth = backgroundCamera ? backgroundCamera.pixelRect.width : 0f; + float cameraHeight = backgroundCamera ? backgroundCamera.pixelRect.height : 0f; + + Texture imageTex = kinectManager.GetInfraredImageTex(sensorIndex); + if (backgroundImage && imageTex != null && (backgroundImage.texture == null || + backgroundImage.texture.width != imageTex.width || backgroundImage.texture.height != imageTex.height || + lastCamRectW != cameraWidth || lastCamRectH != cameraHeight)) + { + lastCamRectW = cameraWidth; + lastCamRectH = cameraHeight; + + backgroundImage.texture = imageTex; + backgroundImage.rectTransform.localScale = sensorData.infraredImageScale; // kinectManager.GetInfraredImageScale(sensorIndex); + backgroundImage.color = Color.white; + + if (backgroundCamera != null) + { + // adjust image's size and position to match the stream aspect ratio + int depthImageWidth = sensorData.depthImageWidth; // kinectManager.GetDepthImageWidth(sensorIndex); + int depthImageHeight = sensorData.depthImageHeight; // kinectManager.GetDepthImageHeight(sensorIndex); + if (depthImageWidth == 0 || depthImageHeight == 0) + return; + + RectTransform rectImage = backgroundImage.rectTransform; + float rectWidth = (rectImage.anchorMin.x != rectImage.anchorMax.x) ? cameraWidth * (rectImage.anchorMax.x - rectImage.anchorMin.x) : rectImage.sizeDelta.x; + float rectHeight = (rectImage.anchorMin.y != rectImage.anchorMax.y) ? cameraHeight * (rectImage.anchorMax.y - rectImage.anchorMin.y) : rectImage.sizeDelta.y; + + if (depthImageWidth > depthImageHeight) + rectWidth = rectHeight * depthImageWidth / depthImageHeight; + else + rectHeight = rectWidth * depthImageHeight / depthImageWidth; + + Vector2 pivotOffset = (rectImage.pivot - new Vector2(0.5f, 0.5f)) * 2f; + Vector2 imageScale = sensorData.infraredImageScale; // (Vector2)kinectManager.GetDepthImageScale(sensorIndex); + Vector2 anchorPos = rectImage.anchoredPosition + pivotOffset * imageScale * new Vector2(rectWidth, rectHeight); + + if (rectImage.anchorMin.x != rectImage.anchorMax.x) + { + rectWidth = -(cameraWidth - rectWidth); + } + + if (rectImage.anchorMin.y != rectImage.anchorMax.y) + { + rectHeight = -(cameraHeight - rectHeight); + } + + rectImage.sizeDelta = new Vector2(rectWidth, rectHeight); + rectImage.anchoredPosition = initialAnchorPos = anchorPos; + } + } + + //if (backgroundImage) + //{ + // // update the anchor position, if needed + // if (sensorData != null && sensorData.sensorInterface != null) + // { + // Vector2 updatedAnchorPos = initialAnchorPos + sensorData.sensorInterface.GetBackgroundImageAnchorPos(sensorData); + // if (backgroundImage.rectTransform.anchoredPosition != updatedAnchorPos) + // { + // backgroundImage.rectTransform.anchoredPosition = updatedAnchorPos; + // } + // } + //} + } + else + { + // reset the background texture, if needed + if (backgroundImage && backgroundImage.texture != null) + { + backgroundImage.texture = null; + } + } + + //RectTransform rectTransform = backgroundImage.rectTransform; + //Debug.Log("pivot: " + rectTransform.pivot + ", anchorPos: " + rectTransform.anchoredPosition + ", \nanchorMin: " + rectTransform.anchorMin + ", anchorMax: " + rectTransform.anchorMax); + } + + } +} + diff --git a/Assets/Azure/KinectScripts/BackgroundInfraredImage.cs.meta b/Assets/Azure/KinectScripts/BackgroundInfraredImage.cs.meta new file mode 100644 index 0000000..a0d3370 --- /dev/null +++ b/Assets/Azure/KinectScripts/BackgroundInfraredImage.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: fd43548cc180bc7498e01c3b7606c18e +timeCreated: 1483707326 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/BackgroundRemovalByBodyBounds.cs b/Assets/Azure/KinectScripts/BackgroundRemovalByBodyBounds.cs new file mode 100644 index 0000000..9ae113d --- /dev/null +++ b/Assets/Azure/KinectScripts/BackgroundRemovalByBodyBounds.cs @@ -0,0 +1,171 @@ +using com.rfilkov.components; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + + +namespace com.rfilkov.kinect +{ + /// + /// BackgroundRemovalByBodyBounds filters user silhouettes, according to the bounds determined by the positions of the body joints. + /// + public class BackgroundRemovalByBodyBounds : MonoBehaviour + { + [Tooltip("Offset from the lowest body joint to the floor.")] + [Range(-0.1f, 0.4f)] + public float offsetToFloor = 0.05f; + + [Tooltip("Offset from the highest body joint to the top of the body.")] + [Range(-0.1f, 0.4f)] + public float headOffset = 0.2f; + + [Tooltip("Offset from the leftmost body joint to the left end of the body.")] + [Range(-0.1f, 0.4f)] + public float leftOffset = 0.2f; + + [Tooltip("Offset from the rightmost body joint to the right end of the body.")] + [Range(-0.1f, 0.4f)] + public float rightOffset = 0.2f; + + [Tooltip("Offset from the frontmost body joint to the front end of the body.")] + [Range(-0.1f, 0.4f)] + public float frontOffset = 0.2f; + + [Tooltip("Offset from the backmost body joint to the back end of the body.")] + [Range(-0.1f, 0.4f)] + public float backOffset = 0.2f; + + + // foreground filter shader + private ComputeShader foregroundFilterShader = null; + private int foregroundFilterKernel = -1; + + //private Vector4[] foregroundFilterPos = null; + private Vector4[] bodyPosMin = null; + private Vector4[] bodyPosMaxX = null; + private Vector4[] bodyPosMaxY = null; + private Vector4[] bodyPosMaxZ = null; + private Vector4[] bodyPosDot = null; + + + // initializes background removal with shaders + public bool InitBackgroundRemoval(KinectInterop.SensorData sensorData, int maxBodyCount) + { + foregroundFilterShader = Resources.Load("ForegroundFiltBodyShader") as ComputeShader; + foregroundFilterKernel = foregroundFilterShader != null ? foregroundFilterShader.FindKernel("FgFiltBody") : -1; + + //foregroundFilterPos = new Vector4[KinectInterop.Constants.MaxBodyCount]; + bodyPosMin = new Vector4[maxBodyCount]; + bodyPosMaxX = new Vector4[maxBodyCount]; + bodyPosMaxY = new Vector4[maxBodyCount]; + bodyPosMaxZ = new Vector4[maxBodyCount]; + bodyPosDot = new Vector4[maxBodyCount]; + + return true; + } + + + // releases background removal shader resources + public void FinishBackgroundRemoval(KinectInterop.SensorData sensorData) + { + if (foregroundFilterShader != null) + { + foregroundFilterShader = null; + } + + //foregroundFilterPos = null; + bodyPosMin = null; + bodyPosMaxX = null; + bodyPosMaxY = null; + bodyPosMaxZ = null; + bodyPosDot = null; + } + + + /// + /// Applies foreground filter by body bounds. + /// + public void ApplyForegroundFilterByBody(Texture vertexTexture, RenderTexture alphaTexture, int playerIndex, int sensorIndex, int maxBodyCount, + Matrix4x4 matKinectWorld, KinectManager kinectManager, Camera foregroundCamera) + { + Matrix4x4 matWorldKinect = matKinectWorld.inverse; + if (kinectManager != null && kinectManager.userManager != null) + { + List alUserIds = null; + + if (playerIndex < 0) + { + alUserIds = kinectManager.userManager.alUserIds; + } + else + { + alUserIds = new List(); + + ulong userId = kinectManager.GetUserIdByIndex(playerIndex); + if (userId != 0) + alUserIds.Add(userId); + } + + int uCount = Mathf.Min(alUserIds.Count, maxBodyCount); + foregroundFilterShader.SetInt("_NumBodies", uCount); + + //if (uCount > 0) + //{ + // Debug.Log("playerIndex: " + playerIndex + ", uCount: " + uCount + ", userId: " + (uCount > 0 ? alUserIds[0] : 0)); + //} + + // get the background rectangle (use the portrait background, if available) + Rect backgroundRect = foregroundCamera.pixelRect; + PortraitBackground portraitBack = PortraitBackground.Instance; + + if (portraitBack && portraitBack.enabled) + { + backgroundRect = portraitBack.GetBackgroundRect(); + } + + int jCount = kinectManager.GetJointCount(); + for (int i = 0; i < uCount; i++) + { + ulong userId = alUserIds[i]; + + bool bSuccess = kinectManager.GetUserBoundingBox(userId, /**foregroundCamera*/ null, sensorIndex, backgroundRect, + out Vector3 pMin, out Vector3 pMax); + //Debug.Log("pMin: " + pMin + ", pMax: " + pMax); + + if (bSuccess) + { + Vector3 posMin = new Vector3(pMin.x - leftOffset, pMin.y - offsetToFloor, pMin.z - frontOffset); + Vector3 posMaxX = new Vector3(pMax.x + rightOffset, posMin.y, posMin.z); + Vector3 posMaxY = new Vector3(posMin.x, pMax.y + headOffset, posMin.z); + Vector3 posMaxZ = new Vector3(posMin.x, posMin.y, pMax.z + backOffset); + + //foregroundFilterDistXY[i] = new Vector4(xMin - 0.1f, xMax + 0.1f, yMin - offsetToFloor, yMax + 0.1f); + //foregroundFilterDistZ[i] = new Vector4(zMin - 0.2f, zMax + 0.0f, 0f, 0f); + bodyPosMin[i] = matWorldKinect.MultiplyPoint3x4(posMin); + bodyPosMaxX[i] = matWorldKinect.MultiplyPoint3x4(posMaxX) - (Vector3)bodyPosMin[i]; + bodyPosMaxY[i] = matWorldKinect.MultiplyPoint3x4(posMaxY) - (Vector3)bodyPosMin[i]; + bodyPosMaxZ[i] = matWorldKinect.MultiplyPoint3x4(posMaxZ) - (Vector3)bodyPosMin[i]; + + bodyPosDot[i] = new Vector3(Vector3.Dot(bodyPosMaxX[i], bodyPosMaxX[i]), Vector3.Dot(bodyPosMaxY[i], bodyPosMaxY[i]), Vector3.Dot(bodyPosMaxZ[i], bodyPosMaxZ[i])); + //Debug.Log("pMin: " + (Vector3)posMin + ", pMaxX: " + (Vector3)bodyPosMaxX[i] + ", pMaxY: " + (Vector3)bodyPosMaxY[i] + ", pMaxZ: " + (Vector3)bodyPosMaxZ[i] + ", pDot: " + (Vector3)bodyPosDot[i]); + } + + //string sMessage2 = string.Format("Xmin: {0:F1}; Xmax: {1:F1}", bodyPosMin[i].x, bodyPosMaxX[i].x); + //Debug.Log(sMessage2); + } + } + + //foregroundFilterShader.SetVectorArray("BodyPos", foregroundFilterPos); + foregroundFilterShader.SetVectorArray("_BodyPosMin", bodyPosMin); + foregroundFilterShader.SetVectorArray("_BodyPosMaxX", bodyPosMaxX); + foregroundFilterShader.SetVectorArray("_BodyPosMaxY", bodyPosMaxY); + foregroundFilterShader.SetVectorArray("_BodyPosMaxZ", bodyPosMaxZ); + foregroundFilterShader.SetVectorArray("_BodyPosDot", bodyPosDot); + + foregroundFilterShader.SetTexture(foregroundFilterKernel, "_VertexTex", vertexTexture); + foregroundFilterShader.SetTexture(foregroundFilterKernel, "_AlphaTex", alphaTexture); + foregroundFilterShader.Dispatch(foregroundFilterKernel, vertexTexture.width / 8, vertexTexture.height / 8, 1); + } + + } +} diff --git a/Assets/Azure/KinectScripts/BackgroundRemovalByBodyBounds.cs.meta b/Assets/Azure/KinectScripts/BackgroundRemovalByBodyBounds.cs.meta new file mode 100644 index 0000000..0c5b0bc --- /dev/null +++ b/Assets/Azure/KinectScripts/BackgroundRemovalByBodyBounds.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 314091ebf33d9fd47a58c6cfd6213f1d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/BackgroundRemovalByBodyIndex.cs b/Assets/Azure/KinectScripts/BackgroundRemovalByBodyIndex.cs new file mode 100644 index 0000000..01ec8c1 --- /dev/null +++ b/Assets/Azure/KinectScripts/BackgroundRemovalByBodyIndex.cs @@ -0,0 +1,115 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + + +namespace com.rfilkov.kinect +{ + /// + /// BackgroundRemovalByBodyIndex filters user silhouettes, according to the body index frames coming from the body tracking SDK. + /// + public class BackgroundRemovalByBodyIndex : MonoBehaviour + { + // whether the color-bi-buffer is created or not + private bool bColorBiBufferCreated = false; + + // foreground filter shader + private ComputeShader foregroundFilterShader = null; + private int foregroundFilterKernel = -1; + + // current body indices + private int[] userBodyIndex = null; + + + // initializes background removal with shaders + public bool InitBackgroundRemoval(KinectInterop.SensorData sensorData) + { + if (sensorData != null && sensorData.colorImageWidth > 0 && sensorData.colorImageHeight > 0) + { + if(sensorData.colorBodyIndexBuffer == null) + { + int bufferLength = sensorData.colorImageWidth * sensorData.colorImageHeight / 4; + sensorData.colorBodyIndexBuffer = new ComputeBuffer(bufferLength, sizeof(uint)); + bColorBiBufferCreated = true; + } + + foregroundFilterShader = Resources.Load("ForegroundFiltBodyIndexShader") as ComputeShader; + foregroundFilterKernel = foregroundFilterShader != null ? foregroundFilterShader.FindKernel("FgFiltBodyIndex") : -1; + + return true; + } + + return false; + } + + + // releases background removal shader resources + public void FinishBackgroundRemoval(KinectInterop.SensorData sensorData) + { + if (bColorBiBufferCreated && sensorData.colorBodyIndexBuffer != null) + { + sensorData.colorBodyIndexBuffer.Dispose(); + sensorData.colorBodyIndexBuffer = null; + } + } + + + /// + /// Applies foreground filter by body index. + /// + public void ApplyForegroundFilterByBodyIndex(RenderTexture alphaTexture, KinectInterop.SensorData sensorData, + KinectManager kinectManager, int playerIndex, int maxBodyCount) + { + if (kinectManager != null && kinectManager.userManager != null && sensorData.colorBodyIndexBuffer != null) + { + List alUserIds = null; + + if (playerIndex < 0) + { + alUserIds = kinectManager.userManager.alUserIds; // new List(); // + } + else + { + alUserIds = new List(); + + ulong userId = kinectManager.GetUserIdByIndex(playerIndex); + if (userId != 0) + alUserIds.Add(userId); + } + + maxBodyCount = 5; // limit to 5 body indices in the shader, because SetInts() doesn't work correctly + if (userBodyIndex == null) + { + userBodyIndex = new int[maxBodyCount]; + } + + int uCount = Mathf.Min(alUserIds.Count, maxBodyCount); + for (int i = 0; i < uCount; i++) + { + ulong userId = alUserIds[i]; + userBodyIndex[i] = kinectManager.GetBodyIndexByUserId(userId); + } + + foregroundFilterShader.SetInt("_TexResX", alphaTexture.width); + foregroundFilterShader.SetInt("_TexResY", alphaTexture.height); + + //foregroundFilterShader.SetInt("_NumBodies", uCount); + //foregroundFilterShader.SetInts("_BodyIndices", userBodyIndex); // ComputeShader.SetInts() doesn't work correctly + + foregroundFilterShader.SetInt("_BodyIndexAll", playerIndex < 0 ? 1 : 0); + + foregroundFilterShader.SetInt("_BodyIndex0", uCount > 0 ? userBodyIndex[0] : -1); + foregroundFilterShader.SetInt("_BodyIndex1", uCount > 1 ? userBodyIndex[1] : -1); + foregroundFilterShader.SetInt("_BodyIndex2", uCount > 2 ? userBodyIndex[2] : -1); + foregroundFilterShader.SetInt("_BodyIndex3", uCount > 3 ? userBodyIndex[3] : -1); + foregroundFilterShader.SetInt("_BodyIndex4", uCount > 4 ? userBodyIndex[4] : -1); + + foregroundFilterShader.SetBuffer(foregroundFilterKernel, "_BodyIndexMap", sensorData.colorBodyIndexBuffer); + foregroundFilterShader.SetTexture(foregroundFilterKernel, "_AlphaTex", alphaTexture); + + foregroundFilterShader.Dispatch(foregroundFilterKernel, alphaTexture.width / 8, alphaTexture.height / 8, 1); + } + } + + } +} diff --git a/Assets/Azure/KinectScripts/BackgroundRemovalByBodyIndex.cs.meta b/Assets/Azure/KinectScripts/BackgroundRemovalByBodyIndex.cs.meta new file mode 100644 index 0000000..aea709f --- /dev/null +++ b/Assets/Azure/KinectScripts/BackgroundRemovalByBodyIndex.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e4e45b4f33dd18f419753482798bf289 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/BackgroundRemovalByDist.cs b/Assets/Azure/KinectScripts/BackgroundRemovalByDist.cs new file mode 100644 index 0000000..346e22e --- /dev/null +++ b/Assets/Azure/KinectScripts/BackgroundRemovalByDist.cs @@ -0,0 +1,93 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + + +namespace com.rfilkov.kinect +{ + /// + /// BackgroundRemovalByDist filters part of the real environment, according to the given spatial limits. + /// + public class BackgroundRemovalByDist : MonoBehaviour + { + [Tooltip("Whether or not to apply the sensor pose to background removal estimation.")] + public bool applySensorPose = true; + + [Space] + + [Tooltip("Horizontal limit - minimum, in meters.")] + [Range(-5f, 5f)] + public float xMin = -1.5f; + + [Tooltip("Horizontal limit - maximum, in meters.")] + [Range(-5f, 5f)] + public float xMax = 1.5f; + + [Tooltip("Vertical limit - minimum, in meters.")] + [Range(-5f, 5f)] + public float yMin = 0f; + + [Tooltip("Vertical limit - maximum, in meters.")] + [Range(-5f, 5f)] + public float yMax = 3f; + + [Tooltip("Distance limit - minimum, in meters.")] + [Range(0.5f, 10f)] + public float zMin = 0.5f; + + [Tooltip("Distance limit - maximum at the left end, in meters.")] + [Range(0.5f, 10f)] + public float zMaxLeft = 3f; + + [Tooltip("Distance limit - maximum at the right end, in meters.")] + [Range(0.5f, 10f)] + public float zMaxRight = 3f; + + // foreground filter shader + private ComputeShader foregroundFilterShader = null; + private int foregroundFilterKernel = -1; + + + void Start() + { + foregroundFilterShader = Resources.Load("ForegroundFiltDistShader") as ComputeShader; + foregroundFilterKernel = foregroundFilterShader != null ? foregroundFilterShader.FindKernel("FgFiltDist") : -1; + } + + + /// + /// Applies vertex filter by distance. + /// + /// The vertex texture + /// The alpha texture + public void ApplyVertexFilter(RenderTexture vertexTexture, RenderTexture alphaTexture, Matrix4x4 sensorWorldMatrix) + { + foregroundFilterShader.SetMatrix("_Transform", applySensorPose ? sensorWorldMatrix : Matrix4x4.identity); + //Matrix4x4 matWorldKinect = sensorWorldMatrix.inverse; + + Vector3 posMin = new Vector3(xMin, yMin, zMin); // matWorldKinect.MultiplyPoint3x4(new Vector3(xMin, yMin, zMin)); + Vector3 posMaxX = new Vector3(xMax, yMin, zMin) - posMin; // matWorldKinect.MultiplyPoint3x4(new Vector3(xMax, yMin, zMin)) - posMin; + Vector3 posMaxY = new Vector3(xMin, yMax, zMin) - posMin; // matWorldKinect.MultiplyPoint3x4(new Vector3(xMin, yMax, zMin)) - posMin; + + Vector3 posMaxZLeft = new Vector3(xMin, yMin, zMaxLeft) - posMin; // matWorldKinect.MultiplyPoint3x4(new Vector3(xMin, yMin, zMaxRight)) - posMin; + Vector3 posMaxZRight = new Vector3(xMin, yMin, zMaxRight) - posMin; // matWorldKinect.MultiplyPoint3x4(new Vector3(xMin, yMin, zMaxLeft)) - posMin; + + Vector3 posMaxZ = (posMaxZLeft + posMaxZRight) / 2; + + Vector3 posDot = new Vector3(Vector3.Dot(posMaxX, posMaxX), Vector3.Dot(posMaxY, posMaxY), Vector3.Dot(posMaxZ, posMaxZ)); + + foregroundFilterShader.SetVector("_PosMin", posMin); + foregroundFilterShader.SetVector("_PosMaxX", posMaxX); + foregroundFilterShader.SetVector("_PosMaxY", posMaxY); + //foregroundFilterShader.SetVector("_PosMaxZ", posMaxZ); + foregroundFilterShader.SetVector("_PosMaxZLeft", posMaxZLeft); + foregroundFilterShader.SetVector("_PosMaxZRight", posMaxZRight); + foregroundFilterShader.SetVector("_PosDot", posDot); + + foregroundFilterShader.SetTexture(foregroundFilterKernel, "_VertexTex", vertexTexture); + foregroundFilterShader.SetTexture(foregroundFilterKernel, "_AlphaTex", alphaTexture); + foregroundFilterShader.Dispatch(foregroundFilterKernel, vertexTexture.width / 8, vertexTexture.height / 8, 1); + } + + } +} diff --git a/Assets/Azure/KinectScripts/BackgroundRemovalByDist.cs.meta b/Assets/Azure/KinectScripts/BackgroundRemovalByDist.cs.meta new file mode 100644 index 0000000..c0b765b --- /dev/null +++ b/Assets/Azure/KinectScripts/BackgroundRemovalByDist.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3fa7b39e46e63a24c9a12a224406a1f4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/BackgroundRemovalByGreenScreen.cs b/Assets/Azure/KinectScripts/BackgroundRemovalByGreenScreen.cs new file mode 100644 index 0000000..8f0cdae --- /dev/null +++ b/Assets/Azure/KinectScripts/BackgroundRemovalByGreenScreen.cs @@ -0,0 +1,89 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + + +namespace com.rfilkov.kinect +{ + /// + /// BackgroundRemovalByGreenScreen filters color camera data, according to its similarity or difference to the color of the green-screen. + /// + public class BackgroundRemovalByGreenScreen : MonoBehaviour + { + [Tooltip("The color of the 'green screen'.")] + public Color greenScreenColor = Color.green; + + [Tooltip("Allowed similarity between the 'green screen' color and the texture color.")] + public float greenScreenColorRange = 0.5f; + + [Tooltip("Alpha values below this value will be set to fully transparent.")] + [Range(0f, 1f)] + public float setAsTransparentBelow = 0f; + + [Tooltip("Alpha values above this value will be set to fully opaque.")] + [Range(0f, 1f)] + public float setAsOpaqueAbove = 1f; + + [Tooltip("Green screen rectangle in normalized coordinates (between 0 and 1).")] + public Rect greenScreenRect = new Rect(0, 0, 1, 1); + + + // foreground filter shader + private ComputeShader foregroundFilterShader = null; + private int foregroundFilterKernel = -1; + + + // initializes background removal shaders + public bool InitBackgroundRemoval(KinectInterop.SensorData sensorData) + { + if (sensorData != null && sensorData.colorImageWidth > 0 && sensorData.colorImageHeight > 0) + { + foregroundFilterShader = Resources.Load("ForegroundFiltGreenScreenShader") as ComputeShader; + foregroundFilterKernel = foregroundFilterShader != null ? foregroundFilterShader.FindKernel("FgFiltFreenScreen") : -1; + + return true; + } + + return false; + } + + + //// releases background removal shader resources + //public void FinishBackgroundRemoval(KinectInterop.SensorData sensorData) + //{ + //} + + + /// + /// Applies foreground filter by green screen. + /// + public void ApplyForegroundFilterByGreenScreen(RenderTexture alphaTexture, KinectInterop.SensorData sensorData, + KinectManager kinectManager, RenderTexture colorTexture) + { + if (foregroundFilterShader != null && colorTexture != null && alphaTexture != null) + { + foregroundFilterShader.SetVector("_GreenScreenColor", greenScreenColor); + foregroundFilterShader.SetFloat("_GreenScreenColorRange", greenScreenColorRange); + + foregroundFilterShader.SetTexture(foregroundFilterKernel, "_ColorTex", colorTexture); + foregroundFilterShader.SetTexture(foregroundFilterKernel, "_AlphaTex", alphaTexture); + + foregroundFilterShader.SetFloat("_SetTranspBelow", setAsTransparentBelow); + foregroundFilterShader.SetFloat("_SetOpaqueAbove", setAsOpaqueAbove); + + float xMin = sensorData.colorImageScale.x > 0 ? greenScreenRect.xMin * colorTexture.width : (1f - greenScreenRect.xMax) * colorTexture.width; + float yMin = sensorData.colorImageScale.y > 0 ? greenScreenRect.yMin * colorTexture.height : (1f - greenScreenRect.yMax) * colorTexture.height; + float xMax = sensorData.colorImageScale.x > 0 ? greenScreenRect.xMax * colorTexture.width : (1f - greenScreenRect.xMin) * colorTexture.width; + float yMax = sensorData.colorImageScale.y > 0 ? greenScreenRect.yMax * colorTexture.height : (1f - greenScreenRect.yMin) * colorTexture.height; + + Vector4 vGreenScreenRect = new Vector4(xMin, yMin, xMax, yMax); + foregroundFilterShader.SetVector("_GreenScreenRect", vGreenScreenRect); + //Debug.Log(vGreenScreenRect); + + foregroundFilterShader.Dispatch(foregroundFilterKernel, alphaTexture.width / 8, alphaTexture.height / 8, 1); + //Debug.Log("ApplyForegroundFilterByGreenScreen()"); + } + } + + } +} diff --git a/Assets/Azure/KinectScripts/BackgroundRemovalByGreenScreen.cs.meta b/Assets/Azure/KinectScripts/BackgroundRemovalByGreenScreen.cs.meta new file mode 100644 index 0000000..42fe56e --- /dev/null +++ b/Assets/Azure/KinectScripts/BackgroundRemovalByGreenScreen.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: db05d85cc2655464b934a2b1d7f5658c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/BackgroundRemovalManager.cs b/Assets/Azure/KinectScripts/BackgroundRemovalManager.cs new file mode 100644 index 0000000..d6daca0 --- /dev/null +++ b/Assets/Azure/KinectScripts/BackgroundRemovalManager.cs @@ -0,0 +1,623 @@ +using UnityEngine; +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using com.rfilkov.components; + + +namespace com.rfilkov.kinect +{ + /// + /// Background removal manager is the component that filters and renders user body silhouettes. + /// + public class BackgroundRemovalManager : MonoBehaviour + { + [Tooltip("Depth sensor index - 0 is the 1st one, 1 - the 2nd one, etc.")] + public int sensorIndex = 0; + + [Tooltip("Index of the player, tracked by this component. -1 means all players, 0 - the 1st player only, 1 - the 2nd player only, etc.")] + public int playerIndex = -1; + + [Tooltip("RawImage used for displaying the foreground image.")] + public UnityEngine.UI.RawImage foregroundImage; + + [Tooltip("Camera used for alignment of bodies to color camera image.")] + public Camera foregroundCamera; + + [Tooltip("Resolution of the generated foreground textures.")] + private DepthSensorBase.PointCloudResolution foregroundImageResolution = DepthSensorBase.PointCloudResolution.ColorCameraResolution; + + [Tooltip("Whether only the alpha texture is needed.")] + public bool computeAlphaMaskOnly = false; + + [Tooltip("Whether the alpha texture will be inverted or not..")] + public bool invertAlphaMask = false; + + [Tooltip("(Advanced) Whether to apply the median filter before the other filters.")] + public bool applyMedianFilter = false; + + [Tooltip("(Advanced) Number of iterations used by the alpha texture's erode filter 0.")] + [Range(0, 9)] + public int erodeIterations0 = 0; // 1 + + [Tooltip("(Advanced) Number of iterations used by the alpha texture's dilate filter 1.")] + [Range(0, 9)] + public int dilateIterations = 0; // 3; + + [Tooltip("(Advanced) Whether to apply the gradient filter.")] + private bool applyGradientFilter = true; + + [Tooltip("(Advanced) Number of iterations used by the alpha texture's erode filter 2.")] + [Range(0, 9)] + public int erodeIterations = 0; // 4; + + [Tooltip("(Advanced) Whether to apply the blur filter after at the end.")] + public bool applyBlurFilter = true; + + [Tooltip("(Advanced) Color applied to the body contour after the filters.")] + public Color bodyContourColor = Color.black; + + [Tooltip("UI-Text to display the BR-Manager debug messages.")] + public UnityEngine.UI.Text debugText; + + + // max number of bodies to track + private const int MAX_BODY_COUNT = 10; + + // primary sensor data structure + private KinectInterop.SensorData sensorData = null; + private KinectManager kinectManager = null; + + // sensor interface + private DepthSensorBase sensorInt = null; + + // render texture resolution + private Vector2Int textureRes; + + // Bool to keep track whether Kinect and BR library have been initialized + private bool bBackgroundRemovalInited = false; + private int lastColorW = 0, lastColorH = 0; + + // The single instance of BackgroundRemovalManager + //private static BackgroundRemovalManager instance; + + // last point cloud frame time + private ulong lastDepth2SpaceFrameTime = 0; + private ulong lastColorBodyIndexBufferTime = 0; + + // render textures used by the shaders + private RenderTexture colorTexture = null; + private RenderTexture vertexTexture = null; + private RenderTexture alphaTexture = null; + private RenderTexture foregroundTexture = null; + + // Materials used to apply the shaders + private Material medianFilterMat = null; + private Material erodeFilterMat = null; + private Material dilateFilterMat = null; + private Material gradientFilterMat = null; + private Material blurFilterMat = null; + private Material invertAlphaMat = null; + private Material foregroundMat = null; + + // reference to filter-by-distance component + private BackgroundRemovalByBodyBounds filterByBody = null; + private BackgroundRemovalByDist filterByDist = null; + private BackgroundRemovalByBodyIndex filterByBI = null; + private BackgroundRemovalByGreenScreen filterByGS = null; + + // whether the textures are created or not + private bool bColorTextureCreated = false; + private bool bVertexTextureCreated = false; + + + ///// + ///// Gets the single BackgroundRemovalManager instance. + ///// + ///// The BackgroundRemovalManager instance. + //public static BackgroundRemovalManager Instance + //{ + // get + // { + // return instance; + // } + //} + + /// + /// Determines whether the BackgroundRemovalManager was successfully initialized. + /// + /// true if the BackgroundRemovalManager was successfully initialized; otherwise, false. + public bool IsBackgroundRemovalInited() + { + return bBackgroundRemovalInited; + } + + /// + /// Gets the foreground image texture. + /// + /// The foreground image texture. + public Texture GetForegroundTex() + { + return foregroundTexture; + } + + /// + /// Gets the alpha texture. + /// + /// The alpha texture. + public Texture GetAlphaTex() + { + return alphaTexture; + } + + /// + /// Gets the color texture. + /// + /// The color texture. + public Texture GetColorTex() + { + return colorTexture; + } + + /// + /// Gets the last background removal frame time. + /// + /// The last background removal time. + public ulong GetLastBackgroundRemovalTime() + { + return lastDepth2SpaceFrameTime; + } + + + //----------------------------------- end of public functions --------------------------------------// + + + //void Awake() + //{ + // instance = this; + //} + + public void Start() + { + try + { + // get sensor data + kinectManager = KinectManager.Instance; + if (kinectManager && kinectManager.IsInitialized()) + { + sensorData = kinectManager.GetSensorData(sensorIndex); + } + + if (sensorData == null || sensorData.sensorInterface == null) + { + throw new Exception("Background removal cannot be started, because KinectManager is missing or not initialized."); + } + + if(foregroundImage == null) + { + // look for a foreground image + foregroundImage = GetComponent(); + } + + if (!foregroundCamera) + { + // by default - the main camera + foregroundCamera = Camera.main; + } + + // try to get reference to other filter components + filterByBody = GetComponent(); + if(filterByBody == null) + filterByDist = GetComponent(); + if (filterByBody == null && filterByDist == null) + filterByBI = GetComponent(); + if (filterByBody == null && filterByDist == null && filterByBI == null) + filterByGS = GetComponent(); + + if (filterByBody == null && filterByDist == null && filterByBI == null && filterByGS == null) + filterByBI = gameObject.AddComponent(); // fallback + + //// Initialize the background removal + //bBackgroundRemovalInited = InitBackgroundRemoval(sensorData); + + //if (bBackgroundRemovalInited) + //{ + // if (debugText != null) + // debugText.text = string.Empty; + //} + //else + //{ + // throw new Exception("Background removal could not be initialized."); + //} + + //bBackgroundRemovalInited = bSuccess; + } + catch (DllNotFoundException ex) + { + Debug.LogError(ex.ToString()); + if (debugText != null) + debugText.text = "Please check the SDK installations."; + } + catch (Exception ex) + { + Debug.LogException(ex); + if (debugText != null) + debugText.text = ex.Message; + } + } + + public void OnDestroy() + { + if (bBackgroundRemovalInited) + { + // finish background removal + FinishBackgroundRemoval(sensorData); + } + + bBackgroundRemovalInited = false; + //instance = null; + } + + void Update() + { + if (sensorData == null) + return; + + if(!bBackgroundRemovalInited || lastColorW != sensorData.colorImageWidth || lastColorH != sensorData.colorImageHeight) + { + lastColorW = sensorData.colorImageWidth; + lastColorH = sensorData.colorImageHeight; + + if (bBackgroundRemovalInited) + { + FinishBackgroundRemoval(sensorData); + if(foregroundImage != null) + foregroundImage.texture = null; + //bBackgroundRemovalInited = false; + + // dispose the used shaders & buffers, as well + if(sensorInt != null) + sensorInt.UpdateTransformedFrameTextures(sensorData, kinectManager); + } + + bBackgroundRemovalInited = InitBackgroundRemoval(sensorData); + + if (bBackgroundRemovalInited) + { + if (debugText != null) + debugText.text = string.Empty; + } + } + + if (bBackgroundRemovalInited) + { + // update the background removal + UpdateBackgroundRemoval(sensorData); + + // check for valid foreground image texture + if(foregroundImage != null && foregroundImage.texture == null) + { + foregroundImage.texture = foregroundTexture; + foregroundImage.rectTransform.localScale = kinectManager.GetColorImageScale(sensorIndex); + foregroundImage.color = Color.white; + } + } + } + + + // initializes background removal with shaders + private bool InitBackgroundRemoval(KinectInterop.SensorData sensorData) + { + if (sensorData != null && sensorData.sensorInterface != null && KinectInterop.IsDirectX11Available()) + { + if(filterByBody != null) + { + if (!filterByBody.InitBackgroundRemoval(sensorData, MAX_BODY_COUNT)) + { + Debug.LogError("Could not init the background removal by body bounds!"); + return false; + } + } + else if(filterByBI != null) + { + if(!filterByBI.InitBackgroundRemoval(sensorData)) + { + Debug.LogError("Could not init the background removal by body index!"); + return false; + } + } + else if (filterByGS != null) + { + if (!filterByGS.InitBackgroundRemoval(sensorData)) + { + Debug.LogError("Could not init the background removal by green screen!"); + return false; + } + } + + sensorInt = (DepthSensorBase)sensorData.sensorInterface; + + // set the texture resolution + if (sensorInt.pointCloudColorTexture == null && sensorInt.pointCloudVertexTexture == null) + { + sensorInt.pointCloudResolution = foregroundImageResolution; + } + + textureRes = sensorInt.GetPointCloudTexResolution(sensorData); + + if(sensorInt.pointCloudColorTexture == null) + { + colorTexture = KinectInterop.CreateRenderTexture(colorTexture, textureRes.x, textureRes.y, RenderTextureFormat.ARGB32); + sensorInt.pointCloudColorTexture = colorTexture; + bColorTextureCreated = true; + } + else + { + colorTexture = sensorInt.pointCloudColorTexture; + bColorTextureCreated = false; + } + + if (filterByBody != null || filterByDist != null) + { + if(sensorInt.pointCloudVertexTexture == null) + { + vertexTexture = KinectInterop.CreateRenderTexture(vertexTexture, textureRes.x, textureRes.y, RenderTextureFormat.ARGBHalf); + sensorInt.pointCloudVertexTexture = vertexTexture; + bVertexTextureCreated = true; + } + else + { + vertexTexture = sensorInt.pointCloudVertexTexture; + bVertexTextureCreated = false; + } + } + + alphaTexture = KinectInterop.CreateRenderTexture(alphaTexture, textureRes.x, textureRes.y, RenderTextureFormat.ARGB32); + foregroundTexture = KinectInterop.CreateRenderTexture(foregroundTexture, textureRes.x, textureRes.y, RenderTextureFormat.ARGB32); + + Shader erodeShader = Shader.Find("Kinect/ErodeShader"); + erodeFilterMat = new Material(erodeShader); + erodeFilterMat.SetFloat("_TexResX", (float)textureRes.x); + erodeFilterMat.SetFloat("_TexResY", (float)textureRes.y); + //sensorData.erodeBodyMaterial.SetTexture("_MainTex", sensorData.bodyIndexTexture); + + Shader dilateShader = Shader.Find("Kinect/DilateShader"); + dilateFilterMat = new Material(dilateShader); + dilateFilterMat.SetFloat("_TexResX", (float)textureRes.x); + dilateFilterMat.SetFloat("_TexResY", (float)textureRes.y); + //sensorData.dilateBodyMaterial.SetTexture("_MainTex", sensorData.bodyIndexTexture); + + Shader gradientShader = Shader.Find("Kinect/GradientShader"); + gradientFilterMat = new Material(gradientShader); + + Shader medianShader = Shader.Find("Kinect/MedianShader"); + medianFilterMat = new Material(medianShader); + //sensorData.medianBodyMaterial.SetFloat("_Amount", 1.0f); + + Shader blurShader = Shader.Find("Kinect/BlurShader"); + blurFilterMat = new Material(blurShader); + + Shader invertShader = Shader.Find("Kinect/InvertShader"); + invertAlphaMat = new Material(invertShader); + + Shader foregroundShader = Shader.Find("Kinect/ForegroundShader"); + foregroundMat = new Material(foregroundShader); + + return true; + } + + return false; + } + + + // releases background removal shader resources + private void FinishBackgroundRemoval(KinectInterop.SensorData sensorData) + { + if(filterByBody != null) + { + filterByBody.FinishBackgroundRemoval(sensorData); + } + else if(filterByBI != null) + { + filterByBI.FinishBackgroundRemoval(sensorData); + } + + if (sensorInt) + { + sensorInt.pointCloudColorTexture = null; + sensorInt.pointCloudVertexTexture = null; + } + + if (bColorTextureCreated && colorTexture) + { + colorTexture.Release(); + colorTexture = null; + } + + if (bVertexTextureCreated && vertexTexture) + { + vertexTexture.Release(); + vertexTexture = null; + } + + if (alphaTexture) + { + alphaTexture.Release(); + alphaTexture = null; + } + + if(foregroundTexture) + { + foregroundTexture.Release(); + foregroundTexture = null; + } + + erodeFilterMat = null; + dilateFilterMat = null; + medianFilterMat = null; + blurFilterMat = null; + invertAlphaMat = null; + foregroundMat = null; + } + + + // computes current background removal texture + private bool UpdateBackgroundRemoval(KinectInterop.SensorData sensorData) + { + if (bBackgroundRemovalInited && (lastDepth2SpaceFrameTime != sensorData.lastDepth2SpaceFrameTime || + lastColorBodyIndexBufferTime != sensorData.lastColorBodyIndexBufferTime || filterByGS != null)) + { + lastDepth2SpaceFrameTime = sensorData.lastDepth2SpaceFrameTime; + lastColorBodyIndexBufferTime = sensorData.lastColorBodyIndexBufferTime; + //Debug.Log("BR Depth2SpaceFrameTime: " + lastDepth2SpaceFrameTime + " ColorBodyIndexBufferTime: " + lastColorBodyIndexBufferTime); + + RenderTexture[] tempTextures = new RenderTexture[2]; + tempTextures[0] = RenderTexture.GetTemporary(textureRes.x, textureRes.y, 0); + tempTextures[1] = RenderTexture.GetTemporary(textureRes.x, textureRes.y, 0); + + RenderTexture[] tempGradTextures = null; + if (applyGradientFilter) + { + tempGradTextures = new RenderTexture[2]; + tempGradTextures[0] = RenderTexture.GetTemporary(textureRes.x, textureRes.y, 0); + tempGradTextures[1] = RenderTexture.GetTemporary(textureRes.x, textureRes.y, 0); + } + + // filter + if(filterByBody != null && sensorInt != null) + { + filterByBody.ApplyForegroundFilterByBody(vertexTexture, alphaTexture, playerIndex, sensorIndex, MAX_BODY_COUNT, + sensorInt.GetSensorToWorldMatrix(), kinectManager, foregroundCamera); + } + else if(filterByDist != null && sensorInt != null) + { + // filter by distance + filterByDist.ApplyVertexFilter(vertexTexture, alphaTexture, sensorInt.GetSensorToWorldMatrix()); + } + else if(filterByBI != null) + { + // filter by body index + filterByBI.ApplyForegroundFilterByBodyIndex(alphaTexture, sensorData, kinectManager, playerIndex, MAX_BODY_COUNT); + } + else if (filterByGS != null) + { + // filter by green screen + filterByGS.ApplyForegroundFilterByGreenScreen(alphaTexture, sensorData, kinectManager, colorTexture); + } + + //if(filterByBI == null) + //{ + // Graphics.Blit(vertexTexture, alphaTexture); + //} + + // median + if (applyMedianFilter) + { + ApplySimpleFilter(alphaTexture, alphaTexture, medianFilterMat, tempTextures); + } + //else + //{ + // Graphics.Blit(vertexTexture, alphaTexture); + //} + + // erode0 + ApplyIterableFilter(alphaTexture, alphaTexture, erodeFilterMat, erodeIterations0, tempTextures); + if(applyGradientFilter) + { + Graphics.CopyTexture(alphaTexture, tempGradTextures[0]); + } + + // dilate + ApplyIterableFilter(alphaTexture, alphaTexture, dilateFilterMat, dilateIterations, tempTextures); + if (applyGradientFilter) + { + //Graphics.Blit(alphaTexture, tempGradTextures[1]); + gradientFilterMat.SetTexture("_ErodeTex", tempGradTextures[0]); + ApplySimpleFilter(alphaTexture, tempGradTextures[1], gradientFilterMat, tempTextures); + } + + // erode + ApplyIterableFilter(alphaTexture, alphaTexture, erodeFilterMat, erodeIterations, tempTextures); + if (tempGradTextures != null) + { + Graphics.Blit(alphaTexture, tempGradTextures[0]); + } + + // blur + if(applyBlurFilter) + { + ApplySimpleFilter(alphaTexture, alphaTexture, blurFilterMat, tempTextures); + } + + if(invertAlphaMask) + { + ApplySimpleFilter(alphaTexture, alphaTexture, invertAlphaMat, tempTextures); + } + + if(!computeAlphaMaskOnly) + { + foregroundMat.SetTexture("_ColorTex", colorTexture); + foregroundMat.SetTexture("_GradientTex", tempGradTextures[1]); + + Color gradientColor = (erodeIterations0 != 0 || dilateIterations != 0 || erodeIterations != 0) ? bodyContourColor : Color.clear; + foregroundMat.SetColor("_GradientColor", gradientColor); + + ApplySimpleFilter(alphaTexture, foregroundTexture, foregroundMat, tempTextures); + } + else + { + Graphics.CopyTexture(alphaTexture, foregroundTexture); + } + + // cleanup + if (tempGradTextures != null) + { + RenderTexture.ReleaseTemporary(tempGradTextures[0]); + RenderTexture.ReleaseTemporary(tempGradTextures[1]); + } + + RenderTexture.ReleaseTemporary(tempTextures[0]); + RenderTexture.ReleaseTemporary(tempTextures[1]); + + //sensorData.usedColorBodyIndexBufferTime = sensorData.lastColorBodyIndexBufferTime; + } + + return true; + } + + // applies iterable filter to the source texture + private void ApplyIterableFilter(RenderTexture source, RenderTexture destination, Material filterMat, int numIterations, RenderTexture[] tempTextures) + { + if (!source || !destination || !filterMat || numIterations == 0) + return; + + Graphics.Blit(source, tempTextures[0]); + + for (int i = 0; i < numIterations; i++) + { + Graphics.Blit(tempTextures[i % 2], tempTextures[(i + 1) % 2], filterMat); + } + + if ((numIterations % 2) == 0) + { + Graphics.Blit(tempTextures[0], destination); + } + else + { + Graphics.Blit(tempTextures[1], destination); + } + } + + // applies simple filter to the source texture + private void ApplySimpleFilter(RenderTexture source, RenderTexture destination, Material filterMat, RenderTexture[] tempTextures) + { + if (!source || !destination || !filterMat) + return; + + Graphics.Blit(source, tempTextures[0], filterMat); + Graphics.Blit(tempTextures[0], destination); + } + + } +} diff --git a/Assets/Azure/KinectScripts/BackgroundRemovalManager.cs.meta b/Assets/Azure/KinectScripts/BackgroundRemovalManager.cs.meta new file mode 100644 index 0000000..5bf334a --- /dev/null +++ b/Assets/Azure/KinectScripts/BackgroundRemovalManager.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a559e12c3f373eb4c8d0e1096fec8a67 +timeCreated: 1426178739 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/BackgroundStaticImage.cs b/Assets/Azure/KinectScripts/BackgroundStaticImage.cs new file mode 100644 index 0000000..07705b7 --- /dev/null +++ b/Assets/Azure/KinectScripts/BackgroundStaticImage.cs @@ -0,0 +1,107 @@ +using UnityEngine; +using System.Collections; +using com.rfilkov.kinect; + + +namespace com.rfilkov.components +{ + /// + /// Background static image is component that displays the static image on RawImage texture, usually the scene background. + /// + public class BackgroundStaticImage : MonoBehaviour + { + [Tooltip("Image dimensions in pixels.")] + public Vector2Int imageSize = Vector2Int.zero; + + [Tooltip("Image scale in X and Y directions.")] + public Vector2 imageScale = Vector2.one; + + [Tooltip("RawImage used to display the color camera feed.")] + public UnityEngine.UI.RawImage backgroundImage; + + [Tooltip("Camera used to display the background image. Set it, if you'd like to allow background image to resize, to match the color image's aspect ratio.")] + public Camera backgroundCamera; + + + // last camera rect width & height + private float lastCamRectW = 0; + private float lastCamRectH = 0; + + private Vector2 initialAnchorPos = Vector2.zero; + + + void Start() + { + if (backgroundImage == null) + { + backgroundImage = GetComponent(); + } + + if(imageSize == Vector2.zero && backgroundImage != null && backgroundImage.texture != null) + { + imageSize = new Vector2Int(backgroundImage.texture.width, backgroundImage.texture.height); + } + } + + + void Update() + { + float cameraWidth = backgroundCamera ? backgroundCamera.pixelRect.width : 0f; + float cameraHeight = backgroundCamera ? backgroundCamera.pixelRect.height : 0f; + + if (backgroundImage && (lastCamRectW != cameraWidth || lastCamRectH != cameraHeight)) + { + lastCamRectW = cameraWidth; + lastCamRectH = cameraHeight; + + backgroundImage.rectTransform.localScale = new Vector3(imageScale.x, imageScale.y, 1f); + backgroundImage.color = Color.white; + + //Debug.Log("aPos: " + backgroundImage.rectTransform.anchoredPosition + ", aMin: " + backgroundImage.rectTransform.anchorMin + + // ", aMax:" + backgroundImage.rectTransform.anchorMax + ", pivot: " + backgroundImage.rectTransform.pivot + + // ", size: " + backgroundImage.rectTransform.sizeDelta); + + if (backgroundCamera != null) + { + // adjust image's size and position to match the stream aspect ratio + int imageWidth = imageSize.x; + int imageHeight = imageSize.y; + if (imageWidth == 0 || imageHeight == 0) + return; + + RectTransform rectImage = backgroundImage.rectTransform; + float rectWidth = (rectImage.anchorMin.x != rectImage.anchorMax.x) ? cameraWidth * (rectImage.anchorMax.x - rectImage.anchorMin.x) : rectImage.sizeDelta.x; + float rectHeight = (rectImage.anchorMin.y != rectImage.anchorMax.y) ? cameraHeight * (rectImage.anchorMax.y - rectImage.anchorMin.y) : rectImage.sizeDelta.y; + + if (imageWidth > imageHeight) + rectWidth = rectHeight * imageWidth / imageHeight; + else + rectHeight = rectWidth * imageHeight / imageWidth; + + Vector2 pivotOffset = (rectImage.pivot - new Vector2(0.5f, 0.5f)) * 2f; + //Vector2 imageScale = this.imageScale; + Vector2 anchorPos = rectImage.anchoredPosition + pivotOffset * imageScale * new Vector2(rectWidth, rectHeight); + + if (rectImage.anchorMin.x != rectImage.anchorMax.x) + { + rectWidth = -(cameraWidth - rectWidth); + } + + if (rectImage.anchorMin.y != rectImage.anchorMax.y) + { + rectHeight = -(cameraHeight - rectHeight); + } + + rectImage.sizeDelta = new Vector2(rectWidth, rectHeight); + rectImage.anchoredPosition = initialAnchorPos = anchorPos; + //Debug.Log("imgSize: " + imageSize + ", camW: " + cameraWidth + ", camH: " + cameraHeight + ", sizeDelta: " + rectImage.sizeDelta + ", anchoredPosition: " + rectImage.anchoredPosition); + } + } + + //RectTransform rectTransform = backgroundImage.rectTransform; + //Debug.Log("pivot: " + rectTransform.pivot + ", anchorPos: " + rectTransform.anchoredPosition + ", \nanchorMin: " + rectTransform.anchorMin + ", anchorMax: " + rectTransform.anchorMax); + } + + } +} + diff --git a/Assets/Azure/KinectScripts/BackgroundStaticImage.cs.meta b/Assets/Azure/KinectScripts/BackgroundStaticImage.cs.meta new file mode 100644 index 0000000..e6432b8 --- /dev/null +++ b/Assets/Azure/KinectScripts/BackgroundStaticImage.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d93e8d33f3227485e88a407ecc3a14b0 +timeCreated: 1481733120 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/BackgroundUserBodyImage.cs b/Assets/Azure/KinectScripts/BackgroundUserBodyImage.cs new file mode 100644 index 0000000..7f288d0 --- /dev/null +++ b/Assets/Azure/KinectScripts/BackgroundUserBodyImage.cs @@ -0,0 +1,300 @@ +using UnityEngine; +using System.Collections; +using com.rfilkov.kinect; +using System; + +namespace com.rfilkov.components +{ + /// + /// Background user-body image is component that displays the user-body image on RawImage texture, usually the scene background. + /// + public class BackgroundUserBodyImage : MonoBehaviour + { + [Tooltip("Depth sensor index - 0 is the 1st one, 1 - the 2nd one, etc.")] + public int sensorIndex = 0; + + [Tooltip("Index of the player, tracked by this component. -1 means all players, 0 - the 1st player, 1 - the 2nd one, 2 - the 3rd one, etc.")] + public int playerIndex = -1; + + [Tooltip("RawImage used to display the user-body image.")] + public UnityEngine.UI.RawImage backgroundImage; + + [Tooltip("Camera used to display the background image. Set it, if you'd like to allow background image to resize, to match the depth image's aspect ratio.")] + public Camera backgroundCamera; + + + // last camera rect width & height + private float lastCamRectW = 0; + private float lastCamRectH = 0; + + // references + private KinectManager kinectManager = null; + private KinectInterop.SensorData sensorData = null; + private Vector2 initialAnchorPos = Vector2.zero; + + // color-camera aligned frames + private ulong lastDepthFrameTime = 0; + private ulong lastBodyIndexFrameTime = 0; + + // color-camera aligned texture and buffers + private RenderTexture bodyImageTexture = null; + private Material bodyImageMaterial = null; + + private ComputeBuffer bodyIndexBuffer = null; + private ComputeBuffer depthImageBuffer = null; + private ComputeBuffer bodyHistBuffer = null; + + // body image hist data + protected int[] depthBodyBufferData = null; + protected int[] equalBodyBufferData = null; + protected int bodyHistTotalPoints = 0; + + + void Start() + { + if (backgroundImage == null) + { + backgroundImage = GetComponent(); + } + + kinectManager = KinectManager.Instance; + sensorData = kinectManager != null ? kinectManager.GetSensorData(sensorIndex) : null; + + if (sensorData != null) + { + // create the user texture and needed buffers + //bodyImageTexture = KinectInterop.CreateRenderTexture(bodyImageTexture, sensorData.depthImageWidth, sensorData.depthImageHeight); + bodyImageMaterial = new Material(Shader.Find("Kinect/UserHistImageShader")); + + bodyHistBuffer = KinectInterop.CreateComputeBuffer(bodyHistBuffer, DepthSensorBase.MAX_DEPTH_DISTANCE_MM + 1, sizeof(int)); + + depthBodyBufferData = new int[DepthSensorBase.MAX_DEPTH_DISTANCE_MM + 1]; + equalBodyBufferData = new int[DepthSensorBase.MAX_DEPTH_DISTANCE_MM + 1]; + } + } + + + void OnDestroy() + { + if (bodyImageTexture) + { + bodyImageTexture.Release(); + bodyImageTexture = null; + } + + if (bodyIndexBuffer != null) + { + bodyIndexBuffer.Dispose(); + bodyIndexBuffer = null; + } + + if (depthImageBuffer != null) + { + depthImageBuffer.Dispose(); + depthImageBuffer = null; + } + + if (bodyHistBuffer != null) + { + bodyHistBuffer.Dispose(); + bodyHistBuffer = null; + } + } + + + void Update() + { + if (kinectManager && kinectManager.IsInitialized() && sensorData != null) + { + float cameraWidth = backgroundCamera ? backgroundCamera.pixelRect.width : 0f; + float cameraHeight = backgroundCamera ? backgroundCamera.pixelRect.height : 0f; + + // check for new depth and body-index frames + UpdateTextureWithNewFrame(); + + //Texture bodyImageTexture = kinectManager.GetUsersImageTex(sensorIndex); + if (backgroundImage && bodyImageTexture != null && (backgroundImage.texture == null || + backgroundImage.texture.width != bodyImageTexture.width || backgroundImage.texture.height != bodyImageTexture.height || + lastCamRectW != cameraWidth || lastCamRectH != cameraHeight)) + { + lastCamRectW = cameraWidth; + lastCamRectH = cameraHeight; + + backgroundImage.texture = bodyImageTexture; + backgroundImage.rectTransform.localScale = sensorData.depthImageScale; // kinectManager.GetDepthImageScale(sensorIndex); + backgroundImage.color = Color.white; + + if (backgroundCamera != null) + { + // adjust image's size and position to match the stream aspect ratio + int depthImageWidth = sensorData.depthImageWidth; // kinectManager.GetDepthImageWidth(sensorIndex); + int depthImageHeight = sensorData.depthImageHeight; // kinectManager.GetDepthImageHeight(sensorIndex); + if (depthImageWidth == 0 || depthImageHeight == 0) + return; + + RectTransform rectImage = backgroundImage.rectTransform; + float rectWidth = (rectImage.anchorMin.x != rectImage.anchorMax.x) ? cameraWidth * (rectImage.anchorMax.x - rectImage.anchorMin.x) : rectImage.sizeDelta.x; + float rectHeight = (rectImage.anchorMin.y != rectImage.anchorMax.y) ? cameraHeight * (rectImage.anchorMax.y - rectImage.anchorMin.y) : rectImage.sizeDelta.y; + + if (depthImageWidth > depthImageHeight) + rectWidth = rectHeight * depthImageWidth / depthImageHeight; + else + rectHeight = rectWidth * depthImageHeight / depthImageWidth; + + Vector2 pivotOffset = (rectImage.pivot - new Vector2(0.5f, 0.5f)) * 2f; + Vector2 imageScale = sensorData.depthImageScale; // (Vector2)kinectManager.GetDepthImageScale(sensorIndex); + Vector2 anchorPos = rectImage.anchoredPosition + pivotOffset * imageScale * new Vector2(rectWidth, rectHeight); + + if (rectImage.anchorMin.x != rectImage.anchorMax.x) + { + rectWidth = -(cameraWidth - rectWidth); + } + + if (rectImage.anchorMin.y != rectImage.anchorMax.y) + { + rectHeight = -(cameraHeight - rectHeight); + } + + rectImage.sizeDelta = new Vector2(rectWidth, rectHeight); + rectImage.anchoredPosition = initialAnchorPos = anchorPos; + } + } + + //if (backgroundImage) + //{ + // // update the anchor position, if needed + // if (sensorData != null && sensorData.sensorInterface != null) + // { + // Vector2 updatedAnchorPos = initialAnchorPos + sensorData.sensorInterface.GetBackgroundImageAnchorPos(sensorData); + // if (backgroundImage.rectTransform.anchoredPosition != updatedAnchorPos) + // { + // backgroundImage.rectTransform.anchoredPosition = updatedAnchorPos; + // } + // } + //} + } + else + { + // reset the background texture, if needed + if (backgroundImage && backgroundImage.texture != null) + { + backgroundImage.texture = null; + } + } + + //RectTransform rectTransform = backgroundImage.rectTransform; + //Debug.Log("pivot: " + rectTransform.pivot + ", anchorPos: " + rectTransform.anchoredPosition + ", \nanchorMin: " + rectTransform.anchorMin + ", anchorMax: " + rectTransform.anchorMax); + } + + + // checks for new color-camera aligned frames, and composes an updated body-index texture, if needed + private void UpdateTextureWithNewFrame() + { + if (sensorData == null || sensorData.sensorInterface == null || sensorData.bodyIndexImage == null || sensorData.depthImage == null) + return; + if (sensorData.depthImageWidth == 0 || sensorData.depthImageHeight == 0 || sensorData.lastDepthFrameTime == 0 || sensorData.lastBodyIndexFrameTime == 0) + return; + + // get body index frame + if (lastDepthFrameTime != sensorData.lastDepthFrameTime || lastBodyIndexFrameTime != sensorData.lastBodyIndexFrameTime) + { + lastDepthFrameTime = sensorData.lastDepthFrameTime; + lastBodyIndexFrameTime = sensorData.lastBodyIndexFrameTime; + + if (bodyImageTexture == null || bodyImageTexture.width != sensorData.depthImageWidth || bodyImageTexture.height != sensorData.depthImageHeight) + { + bodyImageTexture = KinectInterop.CreateRenderTexture(bodyImageTexture, sensorData.depthImageWidth, sensorData.depthImageHeight); + } + + Array.Clear(depthBodyBufferData, 0, depthBodyBufferData.Length); + Array.Clear(equalBodyBufferData, 0, equalBodyBufferData.Length); + bodyHistTotalPoints = 0; + + // get configured min & max distances + float minDistance = ((DepthSensorBase)sensorData.sensorInterface).minDepthDistance; + float maxDistance = ((DepthSensorBase)sensorData.sensorInterface).maxDepthDistance; + + int depthMinDistance = (int)(minDistance * 1000f); + int depthMaxDistance = (int)(maxDistance * 1000f); + + int frameLen = sensorData.depthImage.Length; + for (int i = 0; i < frameLen; i++) + { + int depth = sensorData.depthImage[i]; + int limDepth = (depth >= depthMinDistance && depth <= depthMaxDistance) ? depth : 0; + + if (/**rawBodyIndexImage[i] != 255 &&*/ limDepth > 0) + { + depthBodyBufferData[limDepth]++; + bodyHistTotalPoints++; + } + } + + if (bodyHistTotalPoints > 0) + { + equalBodyBufferData[0] = depthBodyBufferData[0]; + for (int i = 1; i < depthBodyBufferData.Length; i++) + { + equalBodyBufferData[i] = equalBodyBufferData[i - 1] + depthBodyBufferData[i]; + } + } + + int bodyIndexBufferLength = sensorData.bodyIndexImage.Length >> 2; + if (bodyIndexBuffer == null || bodyIndexBuffer.count != bodyIndexBufferLength) + { + bodyIndexBuffer = KinectInterop.CreateComputeBuffer(bodyIndexBuffer, bodyIndexBufferLength, sizeof(uint)); + } + + KinectInterop.SetComputeBufferData(bodyIndexBuffer, sensorData.bodyIndexImage, bodyIndexBufferLength, sizeof(uint)); + + int depthBufferLength = sensorData.depthImage.Length >> 1; + if (depthImageBuffer == null || depthImageBuffer.count != depthBufferLength) + { + depthImageBuffer = KinectInterop.CreateComputeBuffer(depthImageBuffer, depthBufferLength, sizeof(uint)); + } + + KinectInterop.SetComputeBufferData(depthImageBuffer, sensorData.depthImage, depthBufferLength, sizeof(uint)); + + if (bodyHistBuffer != null) + { + KinectInterop.SetComputeBufferData(bodyHistBuffer, equalBodyBufferData, equalBodyBufferData.Length, sizeof(int)); + } + + float minDist = minDistance; // kinectManager.minUserDistance != 0f ? kinectManager.minUserDistance : minDistance; + float maxDist = maxDistance; // kinectManager.maxUserDistance != 0f ? kinectManager.maxUserDistance : maxDistance; + + bodyImageMaterial.SetInt("_TexResX", sensorData.depthImageWidth); + bodyImageMaterial.SetInt("_TexResY", sensorData.depthImageHeight); + bodyImageMaterial.SetInt("_MinDepth", (int)(minDist * 1000f)); + bodyImageMaterial.SetInt("_MaxDepth", (int)(maxDist * 1000f)); + + bodyImageMaterial.SetBuffer("_BodyIndexMap", bodyIndexBuffer); + bodyImageMaterial.SetBuffer("_DepthMap", depthImageBuffer); + bodyImageMaterial.SetBuffer("_HistMap", bodyHistBuffer); + bodyImageMaterial.SetInt("_TotalPoints", bodyHistTotalPoints); + + Color[] bodyIndexColors = kinectManager.GetBodyIndexColors(); + if (playerIndex >= 0) + { + ulong userId = kinectManager.GetUserIdByIndex(playerIndex); + int bodyIndex = kinectManager.GetBodyIndexByUserId(userId); + + int numBodyIndices = bodyIndexColors.Length; + Color clrNone = new Color(0f, 0f, 0f, 0f); + + for (int i = 0; i < numBodyIndices; i++) + { + if (i != bodyIndex) + bodyIndexColors[i] = clrNone; + } + } + + bodyImageMaterial.SetColorArray("_BodyIndexColors", bodyIndexColors); + + Graphics.Blit(null, bodyImageTexture, bodyImageMaterial); + } + } + + } +} + diff --git a/Assets/Azure/KinectScripts/BackgroundUserBodyImage.cs.meta b/Assets/Azure/KinectScripts/BackgroundUserBodyImage.cs.meta new file mode 100644 index 0000000..10f2f6d --- /dev/null +++ b/Assets/Azure/KinectScripts/BackgroundUserBodyImage.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: df3491a43e1ff0f4d84b03fdfd277aad +timeCreated: 1483707326 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/BodyDataRecorderPlayer.cs b/Assets/Azure/KinectScripts/BodyDataRecorderPlayer.cs new file mode 100644 index 0000000..f771159 --- /dev/null +++ b/Assets/Azure/KinectScripts/BodyDataRecorderPlayer.cs @@ -0,0 +1,408 @@ +using UnityEngine; +using System.Collections; +using System.IO; +using com.rfilkov.kinect; + + +namespace com.rfilkov.components +{ + /// + /// BodyDataRecorderPlayer is the component that can be used for recording and replaying of body-data files. + /// + public class BodyDataRecorderPlayer : MonoBehaviour + { + [Tooltip("Path to the file used to record or replay the recorded data.")] + public string filePath = "BodyRecording.txt"; + + [Tooltip("UI-Text to display information messages.")] + public UnityEngine.UI.Text infoText; + + [Tooltip("Whether to start playing the recorded data, right after the scene start.")] + public bool playAtStart = false; + + + // singleton instance of the class + private static BodyDataRecorderPlayer instance = null; + + // whether it is recording or playing saved data at the moment + private bool isRecording = false; + private bool isPlaying = false; + + // reference to the KM + private KinectManager kinectManager = null; + private KinectInterop.SensorData sensorData = null; + + // time variables used for recording and playing + private ulong liRelTime = 0; + private float fStartTime = 0f; + private float fCurrentTime = 0f; + private int fCurrentFrame = 0; + + // player variables + private StreamReader fileReader = null; + private float fPlayTime = 0f; + private string sPlayLine = string.Empty; + private Vector3 sensorSpaceScale = Vector3.one; + + + /// + /// Gets the singleton BodyDataRecorderPlayer instance. + /// + /// The KinectRecorderPlayer instance. + public static BodyDataRecorderPlayer Instance + { + get + { + return instance; + } + } + + + // starts recording + public void StartRecording() + { + if (isRecording) + return; + + isRecording = true; + + // avoid recording an playing at the same time + if (isPlaying && isRecording) + { + CloseFile(); + isPlaying = false; + + Debug.Log("Playing stopped."); + } + + // stop recording if there is no file name specified + if (filePath.Length == 0) + { + isRecording = false; + + Debug.LogError("No file to save."); + if (infoText != null) + { + infoText.text = "No file to save."; + } + } + else if(filePath.IndexOf('/') < 0 && filePath.IndexOf('\\') < 0) + { +#if UNITY_EDITOR || UNITY_STANDALONE + string saveFolder = "."; +#else + string saveFolder = Application.persistentDataPath; +#endif + if (saveFolder.Length > 0 && saveFolder[saveFolder.Length - 1] != '/' && saveFolder[saveFolder.Length - 1] != '\\') + { + saveFolder += "/"; + } + + filePath = saveFolder + filePath; + } + + if (isRecording) + { + Debug.Log("Recording started. File: " + filePath); + if (infoText != null) + { + infoText.text = "Recording..."; + } + + // delete the old csv file + if (filePath.Length > 0 && File.Exists(filePath)) + { + File.Delete(filePath); + } + + // initialize times + fStartTime = fCurrentTime = Time.time; + fCurrentFrame = 0; + } + + //return isRecording; + } + + + // starts playing + public void StartPlaying() + { + if (isPlaying) + return; + + isPlaying = true; + + // avoid recording an playing at the same time + if (isRecording && isPlaying) + { + isRecording = false; + Debug.Log("Recording stopped."); + } + + if (filePath.Length > 0 && filePath.IndexOf('/') < 0 && filePath.IndexOf('\\') < 0) + { +#if UNITY_EDITOR || UNITY_STANDALONE + string saveFolder = "."; +#else + string saveFolder = Application.persistentDataPath; +#endif + if (saveFolder.Length > 0 && saveFolder[saveFolder.Length - 1] != '/' && saveFolder[saveFolder.Length - 1] != '\\') + { + saveFolder += "/"; + } + + filePath = saveFolder + filePath; + } + + // stop playing if there is no file name specified + if (filePath.Length == 0 || !File.Exists(filePath)) + { + isPlaying = false; + Debug.LogError("File not found: " + filePath); + + if (infoText != null) + { + infoText.text = "File not found: " + filePath; + } + } + + if (isPlaying) + { + Debug.Log("Playing started. File: " + filePath); + if (infoText != null) + { + infoText.text = "Playing..."; + } + + // initialize times + fStartTime = fCurrentTime = Time.time; + fCurrentFrame = -1; + + // open the file and read a line +#if !UNITY_WSA + fileReader = new StreamReader(filePath); +#endif + ReadLineFromFile(); + + // enable the play mode + if (kinectManager) + { + kinectManager.EnablePlayMode(true); + } + } + + //return isPlaying; + } + + + // stops recording or playing + public void StopRecordingOrPlaying() + { + if (isRecording) + { + isRecording = false; + + string sSavedTimeAndFrames = string.Format("{0:F3}s., {1} frames.", (fCurrentTime - fStartTime), fCurrentFrame); + Debug.Log("Recording stopped @ " + sSavedTimeAndFrames); + + if (infoText != null) + { + infoText.text = "Recording stopped @ " + sSavedTimeAndFrames; + } + } + + if (isPlaying) + { + // restore the space scale + if(sensorData != null) + { + sensorData.sensorSpaceScale = sensorSpaceScale; + } + + // close the file, if it is playing + CloseFile(); + isPlaying = false; + + Debug.Log("Playing stopped."); + if (infoText != null) + { + infoText.text = "Playing stopped."; + } + } + + //if (infoText != null) + //{ + // infoText.text = "Say: 'Record' to start the recorder, or 'Play' to start the player."; + //} + } + + // returns if file recording is in progress at the moment + public bool IsRecording() + { + return isRecording; + } + + // returns if file-play is in progress at the moment + public bool IsPlaying() + { + return isPlaying; + } + + + // ----- end of public functions ----- + + + void Awake() + { + instance = this; + } + + void Start() + { + //if (infoText != null) + //{ + // infoText.text = "Say: 'Record' to start the recorder, or 'Play' to start the player."; + //} + + kinectManager = KinectManager.Instance; + sensorData = kinectManager ? kinectManager.GetSensorData(0) : null; + sensorSpaceScale = sensorData != null ? sensorData.sensorSpaceScale : Vector3.one; + + if (!kinectManager) + { + Debug.Log("KinectManager not found, probably not initialized."); + + if (infoText != null) + { + infoText.text = "KinectManager not found, probably not initialized."; + } + } + + if (playAtStart) + { + StartPlaying(); + } + } + + void Update() + { + if (isRecording) + { + // save the body frame, if any + if (kinectManager && kinectManager.IsInitialized() && liRelTime != kinectManager.GetBodyFrameTimestamp()) + { + liRelTime = kinectManager.GetBodyFrameTimestamp(); + string sBodyFrame = kinectManager.GetBodyFrameData(ref fCurrentTime, ';'); + + System.Globalization.CultureInfo invCulture = System.Globalization.CultureInfo.InvariantCulture; + + if (sBodyFrame.Length > 0) + { +#if !UNITY_WSA + using (StreamWriter writer = File.AppendText(filePath)) + { + string sRelTime = string.Format(invCulture, "{0:F3}", (fCurrentTime - fStartTime)); + writer.WriteLine(sRelTime + "|" + sBodyFrame); + + if (infoText != null) + { + infoText.text = string.Format("Recording @ {0}s., frame {1}.", sRelTime, fCurrentFrame); + } + + fCurrentFrame++; + } +#else + string sRelTime = string.Format(invCulture, "{0:F3}", (fCurrentTime - fStartTime)); + Debug.Log(sRelTime + "|" + sBodyFrame); +#endif + } + } + } + + if (isPlaying) + { + // wait for the right time + fCurrentTime = Time.time; + float fRelTime = fCurrentTime - fStartTime; + + if (sPlayLine != null && fRelTime >= fPlayTime) + { + // then play the line + if (kinectManager && sPlayLine.Length > 0) + { + kinectManager.SetBodyFrameData(sPlayLine); + } + + // and read the next line + ReadLineFromFile(); + } + + if (sPlayLine == null) + { + // finish playing, if we reached the EOF + StopRecordingOrPlaying(); + } + } + } + + void OnDestroy() + { + // don't forget to release the resources + CloseFile(); + isRecording = isPlaying = false; + } + + // reads a line from the file + private bool ReadLineFromFile() + { + if (fileReader == null) + return false; + + // read a line + sPlayLine = fileReader.ReadLine(); + if (sPlayLine == null) + return false; + + System.Globalization.CultureInfo invCulture = System.Globalization.CultureInfo.InvariantCulture; + System.Globalization.NumberStyles numFloat = System.Globalization.NumberStyles.Float; + + // extract the unity time and the body frame + char[] delimiters = { '|' }; + string[] sLineParts = sPlayLine.Split(delimiters); + + if (sLineParts.Length >= 2) + { + float.TryParse(sLineParts[0], numFloat, invCulture, out fPlayTime); + sPlayLine = sLineParts[1]; + fCurrentFrame++; + + if (infoText != null) + { + infoText.text = string.Format("Playing @ {0:F3}s., frame {1}.", fPlayTime, fCurrentFrame); + } + + return true; + } + + return false; + } + + // close the file and disable the play mode + private void CloseFile() + { + // close the file + if (fileReader != null) + { + fileReader.Dispose(); + fileReader = null; + } + + // disable the play mode + if (kinectManager) + { + kinectManager.EnablePlayMode(false); + } + } + + } +} diff --git a/Assets/Azure/KinectScripts/BodyDataRecorderPlayer.cs.meta b/Assets/Azure/KinectScripts/BodyDataRecorderPlayer.cs.meta new file mode 100644 index 0000000..314e079 --- /dev/null +++ b/Assets/Azure/KinectScripts/BodyDataRecorderPlayer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d8a2276ae0c75c9439e36365c3e7554d +timeCreated: 1438963698 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/BodySlicer.cs b/Assets/Azure/KinectScripts/BodySlicer.cs new file mode 100644 index 0000000..36c3f97 --- /dev/null +++ b/Assets/Azure/KinectScripts/BodySlicer.cs @@ -0,0 +1,655 @@ +using UnityEngine; +using com.rfilkov.kinect; + + +namespace com.rfilkov.components +{ + /// + /// Body slice enum. + /// + public enum BodySlice + { + HEIGHT = 0, + WIDTH = 1, + + TORSO_1 = 2, + TORSO_2 = 3, + TORSO_3 = 4, + TORSO_4 = 5, + TORSO_5 = 6, + + COUNT = 7 + } + + /// + /// Data structure used by the body slicer. + /// + public struct BodySliceData + { + public BodySlice sliceType; + public bool isSliceValid; + + public float diameter; + public int depthPointsLength; + public int colorPointsLength; + + // public ushort[] depths; + public Vector2 startDepthPoint; + public Vector2 endDepthPoint; + + public Vector2 startColorPoint; + public Vector2 endColorPoint; + + public Vector3 startKinectPoint; + public Vector3 endKinectPoint; + } + + + /// + /// Body slicer is component that estimates the user height from the depth data, as well as several other body sizes. + /// + public class BodySlicer : MonoBehaviour + { + [Tooltip("Depth sensor index - 0 is the 1st one, 1 - the 2nd one, etc.")] + public int sensorIndex = 0; + + [Tooltip("Index of the player, tracked by this component. 0 means the 1st player, 1 - the 2nd one, 2 - the 3rd one, etc.")] + public int playerIndex = 0; + + [Tooltip("Camera used to estimate the overlay positions of 3D-objects over the background. By default it is the main camera.")] + public Camera foregroundCamera; + + [Tooltip("Whether the sensor is in portrait mode or not.")] + public bool portraitMode = false; + + [Tooltip("Whether the body height should estimated or not.")] + public bool estimateBodyHeight = true; + + [Tooltip("Whether the body width should estimated or not.")] + public bool estimateBodyWidth = false; + + [Tooltip("Whether the body slices should estimated or not.")] + public bool estimateBodySlices = false; + + [Tooltip("Whether the slicing should be done on all updates, or only after the user calibration.")] + public bool continuousSlicing = false; + + [Tooltip("Whether the detected body slices should be displayed on the screen.")] + public bool displayBodySlices = false; + + + private ulong calibratedUserId; + private byte userBodyIndex; + + + // The singleton instance of BodySlicer + //private static BodySlicer instance = null; + private KinectManager kinectManager; + private KinectInterop.SensorData sensorData; + private ulong lastDepthFrameTime; + + // body slice data + private BodySliceData[] bodySlices = new BodySliceData[(int)BodySlice.COUNT]; + + // depth image resolution + private int depthImageWidth; + private int depthImageHeight; + + // depth scale + private Vector3 depthScale = Vector3.one; + + // screen rectangle taken by the foreground image (in pixels) + private Rect foregroundImgRect; + + + ///// + ///// Gets the singleton BodySlicer instance. + ///// + ///// The singleton BodySlicer instance. + //public static BodySlicer Instance + //{ + // get + // { + // return instance; + // } + //} + + + /// + /// Gets the height of the user. + /// + /// The user height. + public float getUserHeight() + { + return getSliceWidth(BodySlice.HEIGHT); + } + + + /// + /// Gets the slice width. + /// + /// The slice width. + /// Slice. + public float getSliceWidth(BodySlice slice) + { + int iSlice = (int)slice; + + if (bodySlices[iSlice].isSliceValid) + { + return bodySlices[iSlice].diameter; + } + + return 0f; + } + + + /// + /// Gets the body slice count. + /// + /// The body slice count. + public int getBodySliceCount() + { + return bodySlices != null ? bodySlices.Length : 0; + } + + + /// + /// Gets the body slice data. + /// + /// The body slice data. + /// Slice. + public BodySliceData getBodySliceData(BodySlice slice) + { + return bodySlices[(int)slice]; + } + + + /// + /// Gets the calibrated user ID. + /// + /// The calibrated user ID. + public ulong getCalibratedUserId() + { + return calibratedUserId; + } + + + /// + /// Gets the last frame time. + /// + /// The last frame time. + public ulong getLastFrameTime() + { + return lastDepthFrameTime; + } + + + //////////////////////////////////////////////////////////////////////// + + + void Awake() + { + //instance = this; + } + + void Start() + { + kinectManager = KinectManager.Instance; + sensorData = kinectManager ? kinectManager.GetSensorData(sensorIndex) : null; + + if(kinectManager && kinectManager.IsInitialized()) + { + depthImageWidth = kinectManager.GetDepthImageWidth(sensorIndex); + depthImageHeight = kinectManager.GetDepthImageHeight(sensorIndex); + + depthScale = kinectManager.GetDepthImageScale(sensorIndex); + } + + if (foregroundCamera == null) + { + // by default use the main camera + foregroundCamera = Camera.main; + } + } + + void Update() + { + if (!kinectManager || !kinectManager.IsInitialized() || sensorData == null) + return; + + // calculate the foreground rectangle + foregroundImgRect = kinectManager.GetForegroundRectDepth(sensorIndex, foregroundCamera); + + // get required player + ulong userId = kinectManager.GetUserIdByIndex(playerIndex); + + if (calibratedUserId == 0) + { + if (userId != 0) + { + OnCalibrationSuccess(userId); + } + } + else + { + if (calibratedUserId != userId) + { + OnUserLost(calibratedUserId); + } + else if (continuousSlicing) + { + EstimateBodySlices(calibratedUserId); + } + } + } + + void OnRenderObject() + { + if (displayBodySlices) + { + DrawBodySlice(bodySlices[(int)BodySlice.HEIGHT]); + + DrawBodySlice(bodySlices[(int)BodySlice.TORSO_1]); + DrawBodySlice(bodySlices[(int)BodySlice.TORSO_2]); + DrawBodySlice(bodySlices[(int)BodySlice.TORSO_3]); + DrawBodySlice(bodySlices[(int)BodySlice.TORSO_4]); + DrawBodySlice(bodySlices[(int)BodySlice.TORSO_5]); + } + } + + + // draws a body slice line + private void DrawBodySlice(BodySliceData bodySlice) + { + if (bodySlice.isSliceValid && bodySlice.startDepthPoint != Vector2.zero && bodySlice.endDepthPoint != Vector2.zero) + { + float rectX = foregroundImgRect.xMin; + float rectY = foregroundImgRect.yMin; + + float scaleX = foregroundImgRect.width / depthImageWidth; + float scaleY = foregroundImgRect.height / depthImageHeight; + + float x1 = rectX + (depthScale.x >= 0f ? bodySlice.startDepthPoint.x : depthImageWidth - bodySlice.startDepthPoint.x) * scaleX; + float y1 = rectY + (depthScale.y >= 0f ? bodySlice.startDepthPoint.y : depthImageHeight - bodySlice.startDepthPoint.y) * scaleY; + + float x2 = rectX + (depthScale.x >= 0f ? bodySlice.endDepthPoint.x : depthImageWidth - bodySlice.endDepthPoint.x) * scaleX; + float y2 = rectY + (depthScale.y >= 0f ? bodySlice.endDepthPoint.y : depthImageHeight - bodySlice.endDepthPoint.y) * scaleY; + + KinectInterop.DrawLine((int)x1, (int)y1, (int)x2, (int)y2, 2f, Color.red); + } + } + + + public void OnCalibrationSuccess(ulong userId) + { + calibratedUserId = userId; + + // estimate body slices + EstimateBodySlices(calibratedUserId); + } + + + void OnUserLost(ulong userId) + { + calibratedUserId = 0; + + // invalidate the body slice data + for (int i = 0; i < bodySlices.Length; i++) + { + bodySlices[i].isSliceValid = false; + } + } + + + // estimates the body slice data for the given user + public bool EstimateBodySlices(ulong userId) + { + if (userId <= 0) + userId = calibratedUserId; + + if (!kinectManager || userId == 0) + return false; + + userBodyIndex = (byte)kinectManager.GetBodyIndexByUserId(userId); + if (userBodyIndex == 255) + return false; + + bool bSliceSuccess = false; + + if (sensorData.bodyIndexImage != null && sensorData.depthImage != null && + sensorData.lastDepthFrameTime != lastDepthFrameTime) + { + lastDepthFrameTime = sensorData.lastDepthFrameTime; + bSliceSuccess = true; + + Vector2 pointPelvis = kinectManager.MapSpacePointToDepthCoords(sensorIndex, kinectManager.GetJointKinectPosition(userId, (int)KinectInterop.JointType.Pelvis, false)); + + if (estimateBodyHeight) + { + bodySlices[(int)BodySlice.HEIGHT] = !portraitMode ? GetUserHeightParams(pointPelvis) : GetUserWidthParams(pointPelvis); + } + + if (estimateBodyWidth) + { + bodySlices[(int)BodySlice.WIDTH] = !portraitMode ? GetUserWidthParams(pointPelvis) : GetUserHeightParams(pointPelvis); + } + + if (estimateBodySlices && kinectManager.IsJointTracked(userId, (int)KinectInterop.JointType.Pelvis) && kinectManager.IsJointTracked(userId, (int)KinectInterop.JointType.Neck)) + { + Vector2 point1 = pointPelvis; + Vector2 point2 = kinectManager.MapSpacePointToDepthCoords(sensorIndex, kinectManager.GetJointKinectPosition(userId, (int)KinectInterop.JointType.Neck, false)); + Vector2 sliceDir = (point2 - point1) / 4f; + + bool sliceOnX = !portraitMode ? true : false; + bool sliceOnY = !portraitMode ? false : true; + + Vector2 vSlicePoint = point1; + bodySlices[(int)BodySlice.TORSO_1] = GetBodySliceParams(BodySlice.TORSO_1, vSlicePoint, sliceOnX, sliceOnY, -1); + + vSlicePoint += sliceDir; + bodySlices[(int)BodySlice.TORSO_2] = GetBodySliceParams(BodySlice.TORSO_2, vSlicePoint, sliceOnX, sliceOnY, -1); + + vSlicePoint += sliceDir; + bodySlices[(int)BodySlice.TORSO_3] = GetBodySliceParams(BodySlice.TORSO_3, vSlicePoint, sliceOnX, sliceOnY, -1); + + vSlicePoint += sliceDir; + bodySlices[(int)BodySlice.TORSO_4] = GetBodySliceParams(BodySlice.TORSO_4, vSlicePoint, sliceOnX, sliceOnY, -1); + + vSlicePoint = point2; + bodySlices[(int)BodySlice.TORSO_5] = GetBodySliceParams(BodySlice.TORSO_5, vSlicePoint, sliceOnX, sliceOnY, -1); + } + } + + return bSliceSuccess; + } + + + // creates body slice data for user height + private BodySliceData GetUserHeightParams(Vector2 pointSpineBase) + { + int depthLength = sensorData.depthImage.Length; + int depthWidth = sensorData.depthImageWidth; + int depthHeight = sensorData.depthImageHeight; + + Vector2 posTop = new Vector2(0, depthHeight); + for (int i = 0, x = 0, y = 0; i < depthLength; i++) + { + if (sensorData.bodyIndexImage[i] == userBodyIndex) + { + //if (posTop.y > y) + posTop = new Vector2(x, y); + break; + } + + x++; + if (x >= depthWidth) + { + x = 0; + y++; + } + } + + Vector2 posBottom = new Vector2(0, -1); + for (int i = depthLength - 1, x = depthWidth - 1, y = depthHeight - 1; i >= 0; i--) + { + if (sensorData.bodyIndexImage[i] == userBodyIndex) + { + //if (posBottom.y < y) + posBottom = new Vector2(x, y); + break; + } + + x--; + if (x < 0) + { + x = depthWidth - 1; + y--; + } + } + + BodySliceData sliceData = new BodySliceData(); + sliceData.sliceType = BodySlice.HEIGHT; + sliceData.isSliceValid = false; + + if (posBottom.y >= 0) + { + sliceData.startDepthPoint = posTop; + sliceData.endDepthPoint = posBottom; + sliceData.depthPointsLength = (int)posBottom.y - (int)posTop.y + 1; + + int index1 = (int)posTop.y * depthWidth + (int)posTop.x; + ushort depth1 = sensorData.depthImage[index1]; + sliceData.startKinectPoint = kinectManager.MapDepthPointToSpaceCoords(sensorIndex, sliceData.startDepthPoint, depth1, true); + + int index2 = (int)posBottom.y * depthWidth + (int)posBottom.x; + ushort depth2 = sensorData.depthImage[index2]; + sliceData.endKinectPoint = kinectManager.MapDepthPointToSpaceCoords(sensorIndex, sliceData.endDepthPoint, depth2, true); + + sliceData.startColorPoint = kinectManager.MapDepthPointToColorCoords(sensorIndex, sliceData.startDepthPoint, depth1); + sliceData.endColorPoint = kinectManager.MapDepthPointToColorCoords(sensorIndex, sliceData.endDepthPoint, depth2); + + if (sliceData.startColorPoint.y < 0) + sliceData.startColorPoint.y = 0; + if (sliceData.endColorPoint.y >= sensorData.colorImageHeight) + sliceData.endColorPoint.y = sensorData.colorImageHeight - 1; + sliceData.colorPointsLength = (int)sliceData.endColorPoint.y - (int)sliceData.startColorPoint.y + 1; + + // correct x-positions of depth points + sliceData.startDepthPoint.x = pointSpineBase.x; + sliceData.endDepthPoint.x = pointSpineBase.x; + + sliceData.diameter = (sliceData.endKinectPoint - sliceData.startKinectPoint).magnitude; + sliceData.isSliceValid = true; + } + + return sliceData; + } + + // creates body slice data for user width + private BodySliceData GetUserWidthParams(Vector2 pointSpineBase) + { + int depthLength = sensorData.depthImage.Length; + int depthWidth = sensorData.depthImageWidth; + //int depthHeight = sensorData.depthImageHeight; + + Vector2 posLeft = new Vector2(depthWidth, 0); + Vector2 posRight = new Vector2(-1, 0); + + for (int i = 0, x = 0, y = 0; i < depthLength; i++) + { + if (sensorData.bodyIndexImage[i] == userBodyIndex) + { + if (posLeft.x > x) + posLeft = new Vector2(x, y); + if (posRight.x < x) + posRight = new Vector2(x, y); + } + + x++; + if (x >= depthWidth) + { + x = 0; + y++; + } + } + + BodySliceData sliceData = new BodySliceData(); + sliceData.sliceType = BodySlice.WIDTH; + sliceData.isSliceValid = false; + + if (posRight.x >= 0) + { + sliceData.startDepthPoint = posLeft; + sliceData.endDepthPoint = posRight; + sliceData.depthPointsLength = (int)posRight.x - (int)posLeft.x + 1; + + int index1 = (int)posLeft.y * depthWidth + (int)posLeft.x; + ushort depth1 = sensorData.depthImage[index1]; + sliceData.startKinectPoint = kinectManager.MapDepthPointToSpaceCoords(sensorIndex, sliceData.startDepthPoint, depth1, true); + + int index2 = (int)posRight.y * depthWidth + (int)posRight.x; + ushort depth2 = sensorData.depthImage[index2]; + sliceData.endKinectPoint = kinectManager.MapDepthPointToSpaceCoords(sensorIndex, sliceData.endDepthPoint, depth2, true); + + sliceData.startColorPoint = kinectManager.MapDepthPointToColorCoords(sensorIndex, sliceData.startDepthPoint, depth1); + sliceData.endColorPoint = kinectManager.MapDepthPointToColorCoords(sensorIndex, sliceData.endDepthPoint, depth2); + + if (sliceData.startColorPoint.x < 0) + sliceData.startColorPoint.x = 0; + if (sliceData.endColorPoint.x >= sensorData.colorImageWidth) + sliceData.endColorPoint.x = sensorData.colorImageWidth - 1; + sliceData.colorPointsLength = (int)sliceData.endColorPoint.x - (int)sliceData.startColorPoint.x + 1; + + // correct y-positions of depth points + sliceData.startDepthPoint.y = pointSpineBase.y; + sliceData.endDepthPoint.y = pointSpineBase.y; + + sliceData.diameter = (sliceData.endKinectPoint - sliceData.startKinectPoint).magnitude; + sliceData.isSliceValid = true; + } + + return sliceData; + } + + // creates body slice data for the given body slice + private BodySliceData GetBodySliceParams(BodySlice sliceType, Vector2 middlePoint, bool bSliceOnX, bool bSliceOnY, int maxDepthLength) + { + BodySliceData sliceData = new BodySliceData(); + sliceData.sliceType = sliceType; + + sliceData.isSliceValid = false; + sliceData.depthPointsLength = 0; + + if (!kinectManager || middlePoint == Vector2.zero) + return sliceData; + if (!bSliceOnX && !bSliceOnY) + return sliceData; + + middlePoint.x = Mathf.FloorToInt(middlePoint.x + 0.5f); + middlePoint.y = Mathf.FloorToInt(middlePoint.y + 0.5f); + + int depthWidth = sensorData.depthImageWidth; + int depthHeight = sensorData.depthImageHeight; + + int indexMid = (int)middlePoint.y * depthWidth + (int)middlePoint.x; + byte userIndex = sensorData.bodyIndexImage[indexMid]; + + if (userIndex != userBodyIndex) + return sliceData; + + sliceData.startDepthPoint = middlePoint; + sliceData.endDepthPoint = middlePoint; + + int indexDiff1 = 0; + int indexDiff2 = 0; + + if (bSliceOnX) + { + // min-max + int minIndex = (int)middlePoint.y * depthWidth; + int maxIndex = (int)(middlePoint.y + 1) * depthWidth; + + // horizontal left + int stepIndex = -1; + indexDiff1 = TrackSliceInDirection(indexMid, stepIndex, minIndex, maxIndex, userIndex); + + // horizontal right + stepIndex = 1; + indexDiff2 = TrackSliceInDirection(indexMid, stepIndex, minIndex, maxIndex, userIndex); + } + else if (bSliceOnY) + { + // min-max + int minIndex = 0; + int maxIndex = depthHeight * depthWidth; + + // vertical up + int stepIndex = -depthWidth; + indexDiff1 = TrackSliceInDirection(indexMid, stepIndex, minIndex, maxIndex, userIndex); + + // vertical down + stepIndex = depthWidth; + indexDiff2 = TrackSliceInDirection(indexMid, stepIndex, minIndex, maxIndex, userIndex); + } + + // calculate depth length + sliceData.depthPointsLength = indexDiff1 + indexDiff2 + 1; + + // check for max length (used by upper legs) + if (maxDepthLength > 0 && sliceData.depthPointsLength > maxDepthLength) + { + if (indexDiff1 > indexDiff2) + indexDiff1 = indexDiff2; + else + indexDiff2 = indexDiff1; + + sliceData.depthPointsLength = indexDiff1 + indexDiff2 + 1; + } + + // set start and end depth points + if (bSliceOnX) + { + sliceData.startDepthPoint.x -= indexDiff1; + sliceData.endDepthPoint.x += indexDiff2; + } + else if (bSliceOnY) + { + sliceData.startDepthPoint.y -= indexDiff1; + sliceData.endDepthPoint.y += indexDiff2; + } + + // start point + int index1 = (int)sliceData.startDepthPoint.y * depthWidth + (int)sliceData.startDepthPoint.x; + ushort depth1 = sensorData.depthImage[index1]; + sliceData.startKinectPoint = kinectManager.MapDepthPointToSpaceCoords(sensorIndex, sliceData.startDepthPoint, depth1, true); + + // end point + int index2 = (int)sliceData.endDepthPoint.y * depthWidth + (int)sliceData.endDepthPoint.x; + ushort depth2 = sensorData.depthImage[index2]; + sliceData.endKinectPoint = kinectManager.MapDepthPointToSpaceCoords(sensorIndex, sliceData.endDepthPoint, depth2, true); + + sliceData.startColorPoint = kinectManager.MapDepthPointToColorCoords(sensorIndex, sliceData.startDepthPoint, depth1); + sliceData.endColorPoint = kinectManager.MapDepthPointToColorCoords(sensorIndex, sliceData.endDepthPoint, depth2); + + if (sliceData.startColorPoint.x < 0) + sliceData.startColorPoint.x = 0; + if (sliceData.endColorPoint.x >= sensorData.colorImageWidth) + sliceData.endColorPoint.x = sensorData.colorImageWidth - 1; + sliceData.colorPointsLength = (int)sliceData.endColorPoint.x - (int)sliceData.startColorPoint.x + 1; + + // diameter + sliceData.diameter = (sliceData.endKinectPoint - sliceData.startKinectPoint).magnitude; + sliceData.isSliceValid = true; + + return sliceData; + } + + // determines the number of points in the given direction + private int TrackSliceInDirection(int index, int stepIndex, int minIndex, int maxIndex, byte userIndex) + { + int indexDiff = 0; + int errCount = 0; + + index += stepIndex; + while (index >= minIndex && index < maxIndex) + { + if (sensorData.bodyIndexImage[index] != userIndex) + { + errCount++; + if (errCount > 0) // allow 0 error(s) + break; + } + else + { + errCount = 0; + } + + index += stepIndex; + indexDiff++; + } + + return indexDiff; + } + + } +} diff --git a/Assets/Azure/KinectScripts/BodySlicer.cs.meta b/Assets/Azure/KinectScripts/BodySlicer.cs.meta new file mode 100644 index 0000000..ec1b81e --- /dev/null +++ b/Assets/Azure/KinectScripts/BodySlicer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ff0269bc02f81454bb8fbc41688637a4 +timeCreated: 1468761285 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/CubemanController.cs b/Assets/Azure/KinectScripts/CubemanController.cs new file mode 100644 index 0000000..c966003 --- /dev/null +++ b/Assets/Azure/KinectScripts/CubemanController.cs @@ -0,0 +1,328 @@ +using UnityEngine; +using System; +using System.Collections; +using com.rfilkov.kinect; +using static com.rfilkov.kinect.KinectInterop; + + +namespace com.rfilkov.components +{ + /// + /// Cubeman controller transfers the captured user motion to a cubeman model. + /// + public class CubemanController : MonoBehaviour + { + [Tooltip("Index of the player, tracked by this component. 0 means the 1st player, 1 - the 2nd one, 2 - the 3rd one, etc.")] + public int playerIndex = 0; + + [Tooltip("Whether the cubeman is allowed to move vertically or not.")] + public bool verticalMovement = true; + + [Tooltip("Whether the cubeman is facing the player or not.")] + public bool mirroredMovement = false; + + [Tooltip("Scene object that will be used to represent the sensor's position and rotation in the scene.")] + public Transform sensorTransform; + + [Tooltip("Rate at which the cubeman will move through the scene.")] + public float moveRate = 1f; + + public GameObject Pelvis; + public GameObject SpineNaval; + public GameObject SpineChest; + public GameObject Neck; + public GameObject Head; + + public GameObject ClavicleLeft; + public GameObject ShoulderLeft; + public GameObject ElbowLeft; + public GameObject WristLeft; + public GameObject HandLeft; + + public GameObject ClavicleRight; + public GameObject ShoulderRight; + public GameObject ElbowRight; + public GameObject WristRight; + public GameObject HandRight; + + public GameObject HipLeft; + public GameObject KneeLeft; + public GameObject AnkleLeft; + public GameObject FootLeft; + + public GameObject HipRight; + public GameObject KneeRight; + public GameObject AnkleRight; + public GameObject FootRight; + + public GameObject Nose; + public GameObject EyeLeft; + public GameObject EarLeft; + public GameObject EyeRight; + public GameObject EarRight; + + public GameObject HandtipLeft; + public GameObject ThumbLeft; + public GameObject HandtipRight; + public GameObject ThumbRight; + + [Tooltip("Line renderer to draw the skeleton lines.")] + public LineRenderer skeletonLine; + //public LineRenderer debugLine; + + [Tooltip("UI Text to display debug information.")] + public UnityEngine.UI.Text debugInfo; + + + private GameObject[] bones; + private LineRenderer[] lines; + + private LineRenderer lineTLeft; + private LineRenderer lineTRight; + private LineRenderer lineFLeft; + private LineRenderer lineFRight; + + private Vector3 initialPosition; + private Quaternion initialRotation; + + private Vector3 initialPosUser = Vector3.zero; + private Vector3 initialPosOffset = Vector3.zero; + private ulong initialPosUserID = 0; + private ulong lastBodyTimestamp = 0; + + + void Start() + { + //store bones in a list for easier access + bones = new GameObject[] + { + Pelvis, + SpineNaval, + SpineChest, + Neck, + Head, + + ClavicleLeft, + ShoulderLeft, + ElbowLeft, + WristLeft, + HandLeft, + + ClavicleRight, + ShoulderRight, + ElbowRight, + WristRight, + HandRight, + + HipLeft, + KneeLeft, + AnkleLeft, + FootLeft, + + HipRight, + KneeRight, + AnkleRight, + FootRight, + + Nose, + EyeLeft, + EarLeft, + EyeRight, + EarRight, + + HandtipLeft, + ThumbLeft, + HandtipRight, + ThumbRight + }; + + // array holding the skeleton lines + lines = new LineRenderer[bones.Length]; + + initialPosition = transform.position; + initialRotation = transform.rotation; + } + + + void Update() + { + KinectManager kinectManager = KinectManager.Instance; + + // get 1st player + ulong userID = kinectManager ? kinectManager.GetUserIdByIndex(playerIndex) : 0; + + if (userID == 0) + { + initialPosUserID = 0; + initialPosOffset = Vector3.zero; + initialPosUser = Vector3.zero; + + // reset the pointman position and rotation + if (transform.position != initialPosition) + { + transform.position = initialPosition; + } + + if (transform.rotation != initialRotation) + { + transform.rotation = initialRotation; + } + + for (int i = 0; i < bones.Length; i++) + { + bones[i].gameObject.SetActive(true); + + bones[i].transform.localPosition = Vector3.zero; + bones[i].transform.localRotation = Quaternion.identity; + + if (lines[i] != null) + { + lines[i].gameObject.SetActive(false); + } + } + + return; + } + + // set the position in space + Vector3 posPointMan = !sensorTransform ? kinectManager.GetUserPosition(userID) : kinectManager.GetUserKinectPosition(userID, true); + + if (sensorTransform) + { + posPointMan = sensorTransform.TransformPoint(posPointMan); + } + + Vector3 posPointManMP = new Vector3(posPointMan.x, posPointMan.y, !mirroredMovement ? -posPointMan.z : posPointMan.z); + + // store the initial position + if (initialPosUserID != userID) + { + initialPosUserID = userID; + //initialPosOffset = transform.position - (verticalMovement ? posPointMan * moveRate : new Vector3(posPointMan.x, 0, posPointMan.z) * moveRate); + initialPosOffset = posPointMan; + + initialPosUser = initialPosition; + if (verticalMovement) + initialPosUser.y = 0f; // posPointManMP.y provides the vertical position in this case + } + + Vector3 relPosUser = (posPointMan - initialPosOffset); + relPosUser.z = !mirroredMovement ? -relPosUser.z : relPosUser.z; + + transform.position = verticalMovement ? initialPosUser + posPointManMP * moveRate : + initialPosUser + new Vector3(posPointManMP.x, 0, posPointManMP.z) * moveRate; + + //Debug.Log (userID + ", pos: " + posPointMan + ", ipos: " + initialPosUser + ", rpos: " + posPointManMP + ", tpos: " + transform.position); + + //Vector3 rotPelvis = kinectManager.GetJointOrientation(userID, (int)KinectInterop.JointType.Pelvis, true).eulerAngles; + //if(rotPelvis.y > 90 && rotPelvis.y < 270) + // Debug.Log($"Time: {DateTime.Now.ToString("HH.mm.ss.fff")} - pelRot: {rotPelvis}"); + + ulong bodyTimestamp = kinectManager.GetBodyFrameTime(0); + if (lastBodyTimestamp != bodyTimestamp) + { + BodyData bodyData = kinectManager.GetUserBodyData(userID); + + JointData pelvis = bodyData.joint[(int)JointType.Pelvis]; + JointData neck = bodyData.joint[(int)JointType.Neck]; + + if (debugInfo != null) + { + debugInfo.text = $"Pelvis: {GetJointDataString(pelvis)}, Neck: {GetJointDataString(neck)}"; + } + + lastBodyTimestamp = bodyTimestamp; + } + + // update the local positions of the bones + for (int i = 0; i < bones.Length; i++) + { + if (bones[i] != null) + { + int joint = !mirroredMovement ? i : (int)KinectInterop.GetMirrorJoint((KinectInterop.JointType)i); + if (joint < 0) + continue; + + if (kinectManager.IsJointTracked(userID, joint)) + { + bones[i].gameObject.SetActive(true); + + Vector3 posJoint = !sensorTransform ? kinectManager.GetJointPosition(userID, joint) : kinectManager.GetJointKinectPosition(userID, joint, true); + + if (sensorTransform) + { + posJoint = sensorTransform.TransformPoint(posJoint); + } + + posJoint.z = !mirroredMovement ? -posJoint.z : posJoint.z; + + Quaternion rotJoint = kinectManager.GetJointOrientation(userID, joint, !mirroredMovement); + rotJoint = initialRotation * rotJoint; + + posJoint -= posPointManMP; + + if (mirroredMovement) + { + posJoint.x = -posJoint.x; + posJoint.z = -posJoint.z; + } + + bones[i].transform.localPosition = posJoint; + bones[i].transform.rotation = rotJoint; + + if (lines[i] == null && skeletonLine != null) + { + lines[i] = Instantiate(skeletonLine) as LineRenderer; + lines[i].transform.parent = transform; + } + + int parJoint = (int)kinectManager.GetParentJoint((KinectInterop.JointType)joint); + if (lines[i] != null) + { + lines[i].gameObject.SetActive(true); + Vector3 posJoint2 = bones[i].transform.position; + + parJoint = !mirroredMovement ? parJoint : (int)KinectInterop.GetMirrorJoint((KinectInterop.JointType)parJoint); + Vector3 posParent = bones[parJoint].transform.position; + + //Vector3 dirFromParent = kinectManager.GetJointDirection(userID, joint, false, false); + //dirFromParent.z = !mirroredMovement ? -dirFromParent.z : dirFromParent.z; + //Vector3 posParent = posJoint2 - dirFromParent; + + //Vector3 posParent = !sensorTransform ? kinectManager.GetJointPosition(userID, parJoint) : kinectManager.GetJointKinectPosition(userID, parJoint, true); + + //if (sensorTransform) + //{ + // posParent = sensorTransform.TransformPoint(posParent); + //} + + //posParent.z = !mirroredMovement ? -posParent.z : posParent.z; + + //lines[i].SetVertexCount(2); + lines[i].SetPosition(0, posParent); + lines[i].SetPosition(1, posJoint2); + } + + } + else + { + bones[i].gameObject.SetActive(false); + + if (lines[i] != null) + { + lines[i].gameObject.SetActive(false); + } + } + } + } + } + + + // returns the joint data string + private string GetJointDataString(JointData jd) + { + return $"{jd.trackingState.ToString()[0]} {jd.position.ToString("F2")}"; + } + + } +} diff --git a/Assets/Azure/KinectScripts/CubemanController.cs.meta b/Assets/Azure/KinectScripts/CubemanController.cs.meta new file mode 100644 index 0000000..d8d5ec5 --- /dev/null +++ b/Assets/Azure/KinectScripts/CubemanController.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9f828727d4cfb7a4b8984b4e0310ae67 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Azure/KinectScripts/DepthIrFilterImage.cs b/Assets/Azure/KinectScripts/DepthIrFilterImage.cs new file mode 100644 index 0000000..447bdf7 --- /dev/null +++ b/Assets/Azure/KinectScripts/DepthIrFilterImage.cs @@ -0,0 +1,202 @@ +using UnityEngine; +using System.Collections; +using com.rfilkov.kinect; + + +namespace com.rfilkov.components +{ + /// + /// DepthIrFilterImage filters the sensor's IR image with the raw depth. The resulting image is displayed on the given RawImage. + /// + public class DepthIrFilterImage : MonoBehaviour + { + [Tooltip("Index of the used depth sensor. 0 is the 1st one, 1 - the 2nd one, etc.")] + public int sensorIndex = 0; + + [Tooltip("RawImage used to display the depth filtered IR image.")] + public UnityEngine.UI.RawImage backgroundImage; + + [Tooltip("Camera used to display the background image. Set it, if you'd like to allow background image to resize, to match the depth image's aspect ratio.")] + public Camera backgroundCamera; + + private KinectManager kinectManager = null; + private KinectInterop.SensorData sensorData = null; + + private Material depthFilterMat = null; + private RenderTexture depthFilterTex = null; + private ComputeBuffer depthImageBuffer = null; + private ulong lastDepthFrameTime = 0; + + // last camera rect width & height + private float lastCamRectW = 0; + private float lastCamRectH = 0; + + + /// + /// Gets depth filtered IR texture. + /// + /// Depth filtered IR texture. + public Texture GetDepthFilterIrTex() + { + return depthFilterTex; + } + + /// + /// Gets depth filtered IR material. + /// + /// Depth filtered IR material. + public Material GetDepthFilterIrMat() + { + return depthFilterMat; + } + + + /// + /// Sets the maximum IR value, used to convert the raw IR values to texture. + /// + /// Max IR value. + public void SetMaxIrValue(float maxIrValue) + { + if(kinectManager) + { + kinectManager.SetSensorMinMaxIrValues(sensorIndex, 0, maxIrValue); + } + } + + + void Start() + { + kinectManager = KinectManager.Instance; + + if (kinectManager && kinectManager.IsInitialized()) + { + Shader depthFilterShader = Shader.Find("Kinect/DepthIrFilterShader"); + sensorData = kinectManager.GetSensorData(sensorIndex); + + if (depthFilterShader != null && sensorData != null) + { + depthFilterMat = new Material(depthFilterShader); + } + } + } + + void OnDestroy() + { + if (depthImageBuffer != null) + { + depthImageBuffer.Dispose(); + depthImageBuffer = null; + } + + if(depthFilterTex != null) + { + depthFilterTex.Release(); + depthFilterTex = null; + + if (backgroundImage) + { + backgroundImage.texture = null; + } + } + } + + void LateUpdate() + { + if (kinectManager && kinectManager.IsInitialized() && depthFilterMat != null) + { + if (sensorData != null && sensorData.infraredImageTexture != null && sensorData.depthImage != null && + lastDepthFrameTime != sensorData.lastDepthFrameTime) + { + lastDepthFrameTime = sensorData.lastDepthFrameTime; + + int depthBufferLength = (sensorData.depthImageWidth * sensorData.depthImageHeight) >> 1; + if (depthImageBuffer == null || depthImageBuffer.count != depthBufferLength) + { + depthImageBuffer = KinectInterop.CreateComputeBuffer(depthImageBuffer, depthBufferLength, sizeof(uint)); + } + + if (depthFilterTex == null || depthFilterTex.width != sensorData.depthImageWidth || depthFilterTex.height != sensorData.depthImageHeight) + { + depthFilterTex = KinectInterop.CreateRenderTexture(depthFilterTex, sensorData.depthImageWidth, sensorData.depthImageHeight); + + if (backgroundImage) + { + backgroundImage.texture = depthFilterTex; + backgroundImage.rectTransform.localScale = kinectManager.GetDepthImageScale(sensorIndex); + backgroundImage.color = Color.white; + } + } + + float minDistance = ((DepthSensorBase)sensorData.sensorInterface).minDepthDistance; + float maxDistance = ((DepthSensorBase)sensorData.sensorInterface).maxDepthDistance; + + depthFilterMat.SetInt("_TexResX", sensorData.depthImageWidth); + depthFilterMat.SetInt("_TexResY", sensorData.depthImageHeight); + depthFilterMat.SetInt("_MinDepth", (int)(minDistance * 1000f)); + depthFilterMat.SetInt("_MaxDepth", (int)(maxDistance * 1000f)); + + KinectInterop.SetComputeBufferData(depthImageBuffer, sensorData.depthImage, depthBufferLength, sizeof(uint)); + depthFilterMat.SetBuffer("_DepthMap", depthImageBuffer); + + depthFilterMat.SetTexture("_IrTex", sensorData.infraredImageTexture); + + Graphics.Blit(null, depthFilterTex, depthFilterMat); + } + + // check for resolution change + float cameraWidth = backgroundCamera ? backgroundCamera.pixelRect.width : 0f; + float cameraHeight = backgroundCamera ? backgroundCamera.pixelRect.height : 0f; + + if (backgroundImage && (lastCamRectW != cameraWidth || lastCamRectH != cameraHeight)) + { + SetImageResolution(cameraWidth, cameraHeight); + } + } + } + + // sets new image resolution + private void SetImageResolution(float cameraWidth, float cameraHeight) + { + lastCamRectW = cameraWidth; + lastCamRectH = cameraHeight; + + //Debug.Log("aPos: " + backgroundImage.rectTransform.anchoredPosition + ", aMin: " + backgroundImage.rectTransform.anchorMin + + // ", aMax:" + backgroundImage.rectTransform.anchorMax + ", pivot: " + backgroundImage.rectTransform.pivot + + // ", size: " + backgroundImage.rectTransform.sizeDelta); + + if (backgroundCamera != null) + { + // adjust image's size and position to match the stream aspect ratio + int depthImageWidth = kinectManager.GetDepthImageWidth(sensorIndex); + int depthImageHeight = kinectManager.GetDepthImageHeight(sensorIndex); + + RectTransform rectImage = backgroundImage.rectTransform; + float rectWidth = (rectImage.anchorMin.x != rectImage.anchorMax.x) ? cameraWidth * (rectImage.anchorMax.x - rectImage.anchorMin.x) : rectImage.sizeDelta.x; + float rectHeight = (rectImage.anchorMin.y != rectImage.anchorMax.y) ? cameraHeight * (rectImage.anchorMax.y - rectImage.anchorMin.y) : rectImage.sizeDelta.y; + + if (depthImageWidth > depthImageHeight) + rectWidth = rectHeight * depthImageWidth / depthImageHeight; + else + rectHeight = rectWidth * depthImageHeight / depthImageWidth; + + Vector2 pivotOffset = (rectImage.pivot - new Vector2(0.5f, 0.5f)) * 2f; + Vector2 imageScale = (Vector2)kinectManager.GetDepthImageScale(sensorIndex); + Vector2 anchorPos = rectImage.anchoredPosition + pivotOffset * imageScale * new Vector2(rectWidth, rectHeight); + + if (rectImage.anchorMin.x != rectImage.anchorMax.x) + { + rectWidth = -(cameraWidth - rectWidth); + } + + if (rectImage.anchorMin.y != rectImage.anchorMax.y) + { + rectHeight = -(cameraHeight - rectHeight); + } + + rectImage.sizeDelta = new Vector2(rectWidth, rectHeight); + rectImage.anchoredPosition = anchorPos; + } + } + + } +} diff --git a/Assets/Azure/KinectScripts/DepthIrFilterImage.cs.meta b/Assets/Azure/KinectScripts/DepthIrFilterImage.cs.meta new file mode 100644 index 0000000..cf6fe0d --- /dev/null +++ b/Assets/Azure/KinectScripts/DepthIrFilterImage.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f44231b5677b1c3488a66da7d3bd995c +timeCreated: 1463267447 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/Filters.meta b/Assets/Azure/KinectScripts/Filters.meta new file mode 100644 index 0000000..16dc12a --- /dev/null +++ b/Assets/Azure/KinectScripts/Filters.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 50bc3aae16556ef4da4f40d878f1e934 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/Filters/BodySpinFilter.cs b/Assets/Azure/KinectScripts/Filters/BodySpinFilter.cs new file mode 100644 index 0000000..6fe05b5 --- /dev/null +++ b/Assets/Azure/KinectScripts/Filters/BodySpinFilter.cs @@ -0,0 +1,593 @@ +using UnityEngine; + +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine.UIElements; + +namespace com.rfilkov.kinect +{ + + /// + /// Type of body-spin filter. + /// + public enum BodySpinType : int { None = 0, FixBodySpinAndLegCross = 1, FixBodySpinOnly = 2, FixLegCrossOnly = 3 } + + + /// + /// Detects and corrects body-spins caused by wrong body-part recognitions. + /// + public class BodySpinFilter + { + // criteria to block body spinning + public enum FACING_DIRECTION : int { FORWARD_AND_BACKWARD = 0, FORWARD_ONLY = 1, BACKWARD_ONLY = 2 }; + public FACING_DIRECTION isForwardFacing = FACING_DIRECTION.FORWARD_ONLY; // whether the user is always facing to/against the camera. otherwise uses MAX_SPIN_TIME + public bool tryRecoverPose = false; // whether to try to recover the correct pose, or restore the last correct pose + + public float maxSpinTime = 0.5f; // in seconds, in case it's not set as always-forward/backward-facing + private const float MIN_ANGLE_COS = 0f; // cos(a) used for spin detection + + private bool _fixBodySpin = true; // whether to fix the temporary body-spin issue + private bool _fixLegCross = true; // whether to fix the leg-cross issue + //private const bool FIX_JOINT_ANGLE = false; // whether to fix the incorrect angles at knee and ankle joints + + // history data + private BodyHistoryData[] history = null; + private Dictionary userRightDir = new Dictionary(); + + + // Initializes a new instance of the class. + public BodySpinFilter() + { + Reset(); + } + + // Initializes a new instance of the class. + public BodySpinFilter(BodySpinType bodySpinType) + { + switch(bodySpinType) + { + case BodySpinType.None: + _fixBodySpin = false; + _fixLegCross = false; + break; + + case BodySpinType.FixBodySpinAndLegCross: + _fixBodySpin = true; + _fixLegCross = true; + break; + + case BodySpinType.FixBodySpinOnly: + _fixBodySpin = true; + _fixLegCross = false; + break; + + case BodySpinType.FixLegCrossOnly: + _fixBodySpin = false; + _fixLegCross = true; + break; + } + + Reset(); + } + + // Resets the filter to default values. + public void Reset(ulong userId = 0) + { + KinectManager kinectManager = KinectManager.Instance; + int maxBodyCount = 10; // kinectManager.GetMaxBodyCount(); + int jointCount = kinectManager.GetJointCount(); + + if(userId == 0) + { + // create the history data + history = new BodyHistoryData[maxBodyCount]; + for (int i = 0; i < maxBodyCount; i++) + { + history[i] = new BodyHistoryData(jointCount); + } + + userRightDir.Clear(); + } + else + { + // clean the history of the given user only + if (userRightDir.ContainsKey(userId)) + { + userRightDir.Remove(userId); + } + + for (int i = 0; i < maxBodyCount; i++) + { + if (history[i].userId == userId) + { + history[i].userId = 0; + history[i].lastTimestamp = 0; + history[i].lastUpdateTime = 0; + history[i].frameCount = 0; + + //Debug.Log("Removed history for userId " + userId + ", index: " + i); + } + } + } + + } + + // Update the filter with a new frame of data and smooth. + public void UpdateFilter(ref KinectInterop.BodyData bodyData, long bodyTimestamp, Matrix4x4 s2wMatrix, Vector3 spaceScale) + { + if (bodyData.bIsTracked) + { + // get body index + int bodyIndex = GetUserIndex(bodyData.liTrackingID); + if (bodyIndex < 0) + { + bodyIndex = GetFreeIndex(); + if (bodyIndex >= 0) + history[bodyIndex].userId = bodyData.liTrackingID; + + Vector3 lShPos = bodyData.joint[(int)KinectInterop.JointType.ShoulderLeft].position; + Vector3 rShPos = bodyData.joint[(int)KinectInterop.JointType.ShoulderRight].position; + + Vector3 curDirLR = (rShPos - lShPos).normalized; + var dotRight = Vector3.Dot(curDirLR, Vector3.right); + userRightDir[bodyData.liTrackingID] = dotRight >= 0f ? Vector3.right : Vector3.left; + //Debug.Log($"Created history for userId: {history[bodyIndex].userId}, index: {bodyIndex}, time: {DateTime.UtcNow}, dotR: {dotRight:F3}, rDir: {userRightDir[bodyData.liTrackingID]}"); + } + + // filter + if (bodyIndex >= 0) + { + FilterBodyJoints(ref bodyData, bodyIndex, bodyTimestamp, s2wMatrix, spaceScale); + } + } + + // free unused history - moved to sensor-int + //CleanUpUserHistory(); + } + + // Update the filter for all body joints + private void FilterBodyJoints(ref KinectInterop.BodyData bodyData, int bodyIndex, long bodyTimestamp, Matrix4x4 s2wMatrix, Vector3 spaceScale) + { + //long nowTicks = DateTime.UtcNow.Ticks; + long deltaTicks = bodyTimestamp - history[bodyIndex].lastTimestamp; + float deltaTime = deltaTicks * 0.0000001f; + + // w2s matrix + Matrix4x4 w2sMatrix = s2wMatrix.inverse; + + if (_fixBodySpin) + { + bool isBodyOK = CheckJointPair(ref bodyData, bodyIndex, (int)KinectInterop.JointType.ShoulderLeft, (int)KinectInterop.JointType.ShoulderRight, deltaTime, bodyTimestamp); + + if(isBodyOK) + { + SaveAllJoints(ref bodyData, bodyIndex, bodyTimestamp); + } + else + { + if ((!tryRecoverPose) && history[bodyIndex].frameCount > 0) + { + RestoreAllJoints(ref bodyData, bodyIndex); + } + else + { + SwapAllJoints(ref bodyData, bodyIndex, bodyTimestamp); + SwapAllJointsZpos(ref bodyData, s2wMatrix, spaceScale, bodyTimestamp); + } + + } + } + + Vector3 hipPosL = bodyData.joint[(int)KinectInterop.JointType.HipLeft].position; + Vector3 hipPosR = bodyData.joint[(int)KinectInterop.JointType.HipRight].position; + Vector3 hipsDir = hipPosR - hipPosL; + + // check and fix leg-crossing issues + if (_fixLegCross) + { + // check for and fix invalid l-r directions between legs + CheckAndFixLegPair(ref bodyData, bodyIndex, (int)KinectInterop.JointType.HipLeft, (int)KinectInterop.JointType.HipRight, bodyTimestamp); + CheckAndFixLegPair(ref bodyData, bodyIndex, (int)KinectInterop.JointType.KneeLeft, (int)KinectInterop.JointType.KneeRight, bodyTimestamp); + CheckAndFixLegPair(ref bodyData, bodyIndex, (int)KinectInterop.JointType.AnkleLeft, (int)KinectInterop.JointType.AnkleRight, bodyTimestamp); + CheckAndFixLegPair(ref bodyData, bodyIndex, (int)KinectInterop.JointType.FootLeft, (int)KinectInterop.JointType.FootRight, bodyTimestamp); + + CheckAndFixLegInwardDir(ref bodyData, (int)KinectInterop.JointType.KneeLeft, hipsDir, w2sMatrix, spaceScale, bodyTimestamp); + CheckAndFixLegInwardDir(ref bodyData, (int)KinectInterop.JointType.KneeRight, -hipsDir, w2sMatrix, spaceScale, bodyTimestamp); + //CheckAndFixLegInwardDir(ref bodyData, (int)KinectInterop.JointType.AnkleLeft, hipsDir, w2sMatrix, spaceScale, bodyTimestamp); + //CheckAndFixLegInwardDir(ref bodyData, (int)KinectInterop.JointType.AnkleRight, -hipsDir, w2sMatrix, spaceScale, bodyTimestamp); + } + + ////check and fix knee &ankle angles + //if (FIX_JOINT_ANGLE) + //{ + // CheckAndFixLegJointAngle(ref bodyData, (int)KinectInterop.JointType.KneeLeft, -hipsDir, 35f, 180f, w2sMatrix, spaceScale, bodyTimestamp); + // CheckAndFixLegJointAngle(ref bodyData, (int)KinectInterop.JointType.KneeRight, -hipsDir, 35f, 180f, w2sMatrix, spaceScale, bodyTimestamp); + // CheckAndFixLegJointAngle(ref bodyData, (int)KinectInterop.JointType.AnkleLeft, hipsDir, 45f, 135f, w2sMatrix, spaceScale, bodyTimestamp); + // CheckAndFixLegJointAngle(ref bodyData, (int)KinectInterop.JointType.AnkleRight, hipsDir, 45f, 135f, w2sMatrix, spaceScale, bodyTimestamp); + //} + + // update body root positions + bodyData.position = bodyData.joint[0].position; + bodyData.kinectPos = bodyData.joint[0].kinectPos; + + ////if (!isBodyOK) + //{ + // string sSwap = (!isBodyOK ? "1" : "0") + (isHipsSwap ? "1" : "0") + + // (isKneesSwap ? "1" : "0") + (isAnklesSwap ? "1" : "0") + (isFeetSwap ? "1" : "0"); + + // Vector3 shL = bodyData.joint[(int)KinectInterop.JointType.ShoulderLeft].position; + // Vector3 shR = bodyData.joint[(int)KinectInterop.JointType.ShoulderRight].position; + // Vector3 hipL = bodyData.joint[(int)KinectInterop.JointType.HipLeft].position; + // Vector3 hipR = bodyData.joint[(int)KinectInterop.JointType.HipRight].position; + // Vector3 kneeL = bodyData.joint[(int)KinectInterop.JointType.KneeLeft].position; + // Vector3 kneeR = bodyData.joint[(int)KinectInterop.JointType.KneeRight].position; + // Vector3 ankleL = bodyData.joint[(int)KinectInterop.JointType.AnkleLeft].position; + // Vector3 ankleR = bodyData.joint[(int)KinectInterop.JointType.AnkleRight].position; + // Vector3 footL = bodyData.joint[(int)KinectInterop.JointType.FootLeft].position; + // Vector3 footR = bodyData.joint[(int)KinectInterop.JointType.FootRight].position; + + // Vector3 neck = bodyData.joint[(int)KinectInterop.JointType.Neck].position; + // Vector3 head = bodyData.joint[(int)KinectInterop.JointType.Head].position; + // Vector3 nose = bodyData.joint[(int)KinectInterop.JointType.Nose].position; + + // Debug.Log($" ts: {bodyTimestamp}, dt: {deltaTime:F6}, swap: {sSwap}, shL: {shL}, shR: {shR}, hipL: {hipL}, hipR: {hipR}, kneeL: {kneeL}, kneeR: {kneeR}, ankleL: {ankleL}, ankleR: {ankleR}, footL: {footL}, footR: {footR}, neck: {neck}, head: {head}, nose: {nose}\n"); + //} + } + + // check the given joint pair for spinning rotation + private bool CheckJointPair(ref KinectInterop.BodyData bodyData, int bodyIndex, int jointL, int jointR, float deltaTime, long bodyTimestamp) + { + bool isPairOK = true; + + Vector3 curPosL = bodyData.joint[jointL].position; + Vector3 curPosR = bodyData.joint[jointR].position; + + Vector3 curDirLR = curPosR - curPosL; + //curDirLR.z = -curDirLR.z; + + // update the saved right-dir, if needed + if (isForwardFacing == FACING_DIRECTION.FORWARD_AND_BACKWARD && deltaTime > maxSpinTime) + { + var dotRight = Vector3.Dot(curDirLR, Vector3.right); + userRightDir[bodyData.liTrackingID] = dotRight >= 0f ? Vector3.right : Vector3.left; + //Debug.Log($"Updated r-dir for userId: {bodyData.liTrackingID}, dotR: {dotRight:F3}, rDir: {userRightDir[bodyData.liTrackingID]}"); + } + + // right direction + Vector3 prevDirLR = Vector3.right; + switch (isForwardFacing) + { + case FACING_DIRECTION.FORWARD_AND_BACKWARD: + if(userRightDir.ContainsKey(bodyData.liTrackingID)) + prevDirLR = userRightDir[bodyData.liTrackingID]; + break; + case FACING_DIRECTION.FORWARD_ONLY: + prevDirLR = Vector3.right; + break; + case FACING_DIRECTION.BACKWARD_ONLY: + prevDirLR = Vector3.left; + break; + default: + Debug.LogWarning($"Unknown value for IS_FORWARD_FACING: {isForwardFacing}"); + break; + } + + // check for different directions + float dotPrevCur = Vector3.Dot(prevDirLR, curDirLR.normalized); + if (curDirLR != Vector3.zero && prevDirLR != Vector3.zero && dotPrevCur < MIN_ANGLE_COS && + (isForwardFacing != FACING_DIRECTION.FORWARD_AND_BACKWARD || deltaTime <= maxSpinTime)) + { + isPairOK = false; + } + + //if(!isPairOK) + //{ + // string curTime = DateTime.Now.ToString("HH:mm:ss.fff"); + // Debug.Log($"check LR for uID: {bodyData.liTrackingID} - {isPairOK}, dot: {dotPrevCur:F3}, dt: {deltaTime:F3}, time: {curTime}, ts: {bodyTimestamp}, cpL: {curPosL}, cpR: {curPosR}, cDir: {curDirLR:F2}, pDir: {prevDirLR:F2}\n"); // System.IO.File.AppendAllText(logFilename, + //} + + return isPairOK; + } + + // saves all joints to history + private void SaveAllJoints(ref KinectInterop.BodyData bodyData, int bodyIndex, long bodyTimestamp) + { + int jointCount = bodyData.joint.Length; + + for(int j = 0; j < jointCount; j++) + { + history[bodyIndex].jointHistory[j].lastPosition = bodyData.joint[j].position; + history[bodyIndex].jointHistory[j].lastKinectPos = bodyData.joint[j].kinectPos; + history[bodyIndex].jointHistory[j].lastTrackingState = bodyData.joint[j].trackingState; + } + + history[bodyIndex].lastTimestamp = (long)bodyData.bodyTimestamp; + history[bodyIndex].lastUpdateTime = DateTime.UtcNow.Ticks; + history[bodyIndex].frameCount++; + + //string curTime = DateTime.Now.ToString("HH:mm:ss.fff"); + //Debug.Log($" saved joints - uID: {bodyData.liTrackingID} time: {curTime}, ts: {bodyTimestamp}\n"); // System.IO.File.AppendAllText(logFilename, + } + + // restores all joints from history + private void RestoreAllJoints(ref KinectInterop.BodyData bodyData, int bodyIndex) + { + int jointCount = bodyData.joint.Length; + + for (int j = 0; j < jointCount; j++) + { + bodyData.joint[j].position = history[bodyIndex].jointHistory[j].lastPosition; + bodyData.joint[j].kinectPos = history[bodyIndex].jointHistory[j].lastKinectPos; + bodyData.joint[j].trackingState = history[bodyIndex].jointHistory[j].lastTrackingState; + } + + // restore body timestamp + bodyData.bodyTimestamp = (ulong)history[bodyIndex].lastTimestamp; + + // prevent history clean ups + history[bodyIndex].lastUpdateTime = DateTime.UtcNow.Ticks; + + //string curTime = DateTime.Now.ToString("HH:mm:ss.fff"); + //Debug.Log($" restored joints - uID: {bodyData.liTrackingID}, ts: {history[bodyIndex].lastTimestamp}, time: {curTime}\n"); // System.IO.File.AppendAllText(logFilename, + } + + // swaps all left & right joints + private void SwapAllJoints(ref KinectInterop.BodyData bodyData, int bodyIndex, long bodyTimestamp) + { + SwapJointsData(ref bodyData, (int)KinectInterop.JointType.ClavicleLeft, (int)KinectInterop.JointType.ClavicleRight, bodyIndex); + SwapJointsData(ref bodyData, (int)KinectInterop.JointType.ShoulderLeft, (int)KinectInterop.JointType.ShoulderRight, bodyIndex); + SwapJointsData(ref bodyData, (int)KinectInterop.JointType.ElbowLeft, (int)KinectInterop.JointType.ElbowRight, bodyIndex); + SwapJointsData(ref bodyData, (int)KinectInterop.JointType.WristLeft, (int)KinectInterop.JointType.WristRight, bodyIndex); + SwapJointsData(ref bodyData, (int)KinectInterop.JointType.HandLeft, (int)KinectInterop.JointType.HandRight, bodyIndex); + SwapJointsData(ref bodyData, (int)KinectInterop.JointType.HandtipLeft, (int)KinectInterop.JointType.HandtipRight, bodyIndex); + SwapJointsData(ref bodyData, (int)KinectInterop.JointType.ThumbLeft, (int)KinectInterop.JointType.ThumbRight, bodyIndex); + + SwapJointsData(ref bodyData, (int)KinectInterop.JointType.HipLeft, (int)KinectInterop.JointType.HipRight, bodyIndex); + SwapJointsData(ref bodyData, (int)KinectInterop.JointType.KneeLeft, (int)KinectInterop.JointType.KneeRight, bodyIndex); + SwapJointsData(ref bodyData, (int)KinectInterop.JointType.AnkleLeft, (int)KinectInterop.JointType.AnkleRight, bodyIndex); + SwapJointsData(ref bodyData, (int)KinectInterop.JointType.FootLeft, (int)KinectInterop.JointType.FootRight, bodyIndex); + + SwapJointsData(ref bodyData, (int)KinectInterop.JointType.EyeLeft, (int)KinectInterop.JointType.EyeRight, bodyIndex); + SwapJointsData(ref bodyData, (int)KinectInterop.JointType.EarLeft, (int)KinectInterop.JointType.EarRight, bodyIndex); + + //string curTime = DateTime.Now.ToString("HH:mm:ss.fff"); + //Debug.Log($" swapped joints - uID: {bodyData.liTrackingID}, ts: {bodyData.bodyTimestamp}, time: {curTime}\n"); // System.IO.File.AppendAllText(logFilename, + } + + // restores all joints from history + private void SwapAllJointsZpos(ref KinectInterop.BodyData bodyData, Matrix4x4 s2wMatrix, Vector3 spaceScale, long bodyTimestamp) + { + float pelPosZ = bodyData.joint[(int)KinectInterop.JointType.Pelvis].kinectPos.z; + int jointCount = bodyData.joint.Length; + + for (int j = 1; j < jointCount; j++) + { + int joint = j; + + Vector3 kinectPos = bodyData.joint[joint].kinectPos; + float jointDiffZ = kinectPos.z - pelPosZ; + kinectPos.z -= 2 * jointDiffZ; + + bodyData.joint[joint].kinectPos = kinectPos; + bodyData.joint[joint].position = s2wMatrix.MultiplyPoint3x4(new Vector3(kinectPos.x * spaceScale.x, kinectPos.y * spaceScale.y, kinectPos.z)); + } + + //string curTime = DateTime.Now.ToString("HH:mm:ss.fff"); + //Debug.Log($" swapZpos joints - uID: {bodyData.liTrackingID}, ts: {bodyTimestamp}, time: {curTime}\n"); // System.IO.File.AppendAllText(logFilename, + } + + // checks the given leg pair for incorrect direction, and fixes it if needed + private void CheckAndFixLegPair(ref KinectInterop.BodyData bodyData, int bodyIndex, int jointL, int jointR, long bodyTimestamp) + { + bool isPairOK = true; + + Vector3 legPosL = bodyData.joint[jointL].position; + Vector3 legPosR = bodyData.joint[jointR].position; + Vector3 legDirLR = legPosR - legPosL; + legDirLR.z = -legDirLR.z; + + Vector3 shPosL = bodyData.joint[(int)KinectInterop.JointType.ShoulderLeft].position; + Vector3 shPosR = bodyData.joint[(int)KinectInterop.JointType.ShoulderRight].position; + Vector3 shDirLR = shPosR - shPosL; + shDirLR.z = -shDirLR.z; + + // check for different directions + float dotShLeg = Vector3.Dot(shDirLR.normalized, legDirLR.normalized); + if (legDirLR != Vector3.zero && shDirLR != Vector3.zero && dotShLeg < 0f) + { + isPairOK = false; + } + + //if (jointL == (int)KinectInterop.JointType.KneeLeft) + //{ + // string curTime = DateTime.Now.ToString("HH:mm:ss.fff"); + // Debug.Log($"time: {curTime}, dot: {dotPrevCur:F3}, lpL: {legPosL}, lpR: {legPosR}, lDir: {legDirLR}, pDir: {hipDirLR}\n"); // System.IO.File.AppendAllText(logFilename, + //} + + if (!isPairOK) + { + // fix the issue + SwapJointsData(ref bodyData, jointL, jointR, bodyIndex); + //Debug.Log($" swapping {(KinectInterop.JointType)jointL}-{(KinectInterop.JointType)jointR} for uID: {bodyData.liTrackingID}, ts: {bodyTimestamp}, shDir: {shDirLR}, legDir: {legDirLR}, dot: {dotShLeg:F3}\n"); // System.IO.File.AppendAllText(logFilename, + } + } + + // swaps the positional data of two joints + private void SwapJointsData(ref KinectInterop.BodyData bodyData, int jointL, int jointR, int bodyIndex) + { + KinectInterop.TrackingState trackingStateL = bodyData.joint[jointL].trackingState; + Vector3 kinectPosL = bodyData.joint[jointL].kinectPos; + Vector3 positionL = bodyData.joint[jointL].position; + + KinectInterop.TrackingState trackingStateR = bodyData.joint[jointR].trackingState; + Vector3 kinectPosR = bodyData.joint[jointR].kinectPos; + Vector3 positionR = bodyData.joint[jointR].position; + + bodyData.joint[jointL].trackingState = trackingStateR; + bodyData.joint[jointL].kinectPos = kinectPosR; + bodyData.joint[jointL].position = positionR; + + bodyData.joint[jointR].trackingState = trackingStateL; + bodyData.joint[jointR].kinectPos = kinectPosL; + bodyData.joint[jointR].position = positionL; + } + + //// checks the given leg joint for incorrect angle, and fixes it if needed + //private void CheckAndFixLegJointAngle(ref KinectInterop.BodyData bodyData, int midJoint, Vector3 hipsDir, float minAngle, float maxAngle, + // Matrix4x4 w2sMatrix, Vector3 spaceScale, long bodyTimestamp) + //{ + // int parJoint = (int)KinectInterop.GetParentJoint((KinectInterop.JointType)midJoint); + // int nextJoint = (int)KinectInterop.GetNextJoint((KinectInterop.JointType)midJoint); + + // if(bodyData.joint[midJoint].trackingState == KinectInterop.TrackingState.NotTracked || + // bodyData.joint[parJoint].trackingState == KinectInterop.TrackingState.NotTracked || + // bodyData.joint[nextJoint].trackingState == KinectInterop.TrackingState.NotTracked) + // { + // return; + // } + + // Vector3 midJointPos = bodyData.joint[midJoint].position; + // Vector3 parJointPos = bodyData.joint[parJoint].position; + // Vector3 nextJointPos = bodyData.joint[nextJoint].position; + + // Vector3 parJointDir = parJointPos - midJointPos; + // Vector3 nextJointDir = nextJointPos - midJointPos; + + // // check the angle + // float dirAngle = Vector3.SignedAngle(parJointDir.normalized, nextJointDir.normalized, hipsDir.normalized); + // //Debug.Log($" {(KinectInterop.JointType)midJoint} for uID {bodyData.liTrackingID} - dirs-angle: {dirAngle:F1}, parDir: {parJointDir}, nextDir: {nextJointDir}, hipsDir: {hipsDir}, min: {minAngle}, max: {maxAngle}"); + + // if (parJointDir != Vector3.zero && nextJointDir != Vector3.zero && hipsDir != Vector3.zero && + // (dirAngle < minAngle || dirAngle > maxAngle)) + // { + // Vector3 crossDir = Vector3.Cross(parJointDir.normalized, nextJointDir.normalized); + // float turnAngle = Mathf.Abs(Mathf.DeltaAngle(dirAngle, minAngle)) < Mathf.Abs(Mathf.DeltaAngle(dirAngle, maxAngle)) ? minAngle : maxAngle; + // Quaternion turnRotation = Quaternion.AngleAxis(turnAngle, crossDir.normalized); + + // Vector3 newJointDir = turnRotation * parJointDir; + // newJointDir *= nextJointDir.magnitude / parJointDir.magnitude; // scale + + // Vector3 newJointPos = midJointPos + newJointDir; + // bodyData.joint[nextJoint].position = newJointPos; + + // Vector3 newKinectPos = w2sMatrix.MultiplyPoint3x4(newJointPos); + // bodyData.joint[nextJoint].kinectPos = new Vector3(newKinectPos.x * spaceScale.x, newKinectPos.y * spaceScale.y, newKinectPos.z); + + // Debug.Log($" fix angle @ {(KinectInterop.JointType)midJoint} for uID {bodyData.liTrackingID} - old: {dirAngle:F1} new: {turnAngle:F1}, ts: {bodyTimestamp}, newDir: {newJointDir}, newPos: {newJointPos}\n"); // System.IO.File.AppendAllText(logFilename, + // } + //} + + // checks the given leg joint for incorrect (inward) direction, and fixes it if needed + private void CheckAndFixLegInwardDir(ref KinectInterop.BodyData bodyData, int midJoint, Vector3 hipsDir, Matrix4x4 w2sMatrix, Vector3 spaceScale, long bodyTimestamp) + { + int parJoint = (int)KinectInterop.GetParentJoint((KinectInterop.JointType)midJoint); + + if (bodyData.joint[midJoint].trackingState == KinectInterop.TrackingState.NotTracked || + bodyData.joint[parJoint].trackingState == KinectInterop.TrackingState.NotTracked) + { + return; + } + + Vector3 midJointPos = bodyData.joint[midJoint].position; + Vector3 parJointPos = bodyData.joint[parJoint].position; + Vector3 parJointDir = midJointPos - parJointPos; + + Vector3 hipsBackDir = Vector3.Cross(hipsDir.normalized, parJointDir.normalized); + float dotJointDir = Vector3.Dot(hipsDir.normalized, parJointDir.normalized); + + if(dotJointDir > 0f) + { + // fix the joint position + Vector3 newJointDir = Vector3.Cross(hipsBackDir.normalized, hipsDir.normalized); + newJointDir *= parJointDir.magnitude; + + Vector3 newJointPos = parJointPos + newJointDir; + bodyData.joint[midJoint].position = newJointPos; + Vector3 newKinectPos = w2sMatrix.MultiplyPoint3x4(newJointPos); + bodyData.joint[midJoint].kinectPos = new Vector3(newKinectPos.x * spaceScale.x, newKinectPos.y * spaceScale.y, newKinectPos.z); + + //Debug.Log($" fix inward @ {(KinectInterop.JointType)midJoint} for uID {bodyData.liTrackingID} - dot: {dotJointDir:F3} ts: {bodyTimestamp}, oldDir: {parJointDir}, newDir: {newJointDir}, newPos: {newJointPos}\n"); // System.IO.File.AppendAllText(logFilename, + } + } + + // returns the history index for the given user, or -1 if not found + private int GetUserIndex(ulong userId) + { + for (int i = 0; i < history.Length; i++) + { + if (history[i].userId == userId) + return i; + } + + return -1; + } + + // returns the 1st free history index, or -1 if not found + private int GetFreeIndex() + { + for (int i = 0; i < history.Length; i++) + { + if (history[i].userId == 0) + return i; + } + + return -1; + } + + // frees history indices that were unused for long time + public void CleanUpUserHistory() + { + DateTime dtNow = DateTime.UtcNow; + long timeNow = dtNow.Ticks; + + for (int i = 0; i < history.Length; i++) + { + if (history[i].userId != 0 && history[i].lastUpdateTime != 0 && (timeNow - history[i].lastUpdateTime) >= 10000000) + { + //Debug.Log("Removing history for userId " + history[i].userId + ", index: " + i + ", time: " + dtNow + ", not used since: " + (timeNow - history[i].lastUpdateTime) + " ticks"); + history[i].userId = 0; + history[i].lastTimestamp = 0; + history[i].lastUpdateTime = 0; + history[i].frameCount = 0; + } + } + } + + + // body history data used by the filter + private struct BodyHistoryData + { + public ulong userId; + public long lastTimestamp; + public long lastUpdateTime; + public JointHistoryData[] jointHistory; + public uint frameCount; + + + public BodyHistoryData(int jointCount) + { + userId = 0; + lastTimestamp = 0; + lastUpdateTime = 0; + jointHistory = new JointHistoryData[jointCount]; + frameCount = 0; + } + } + + // joint history data used by the filter + private struct JointHistoryData + { + // last joint position + public Vector3 lastPosition; + + // last sensor position + public Vector3 lastKinectPos; + + // last tracking state + public KinectInterop.TrackingState lastTrackingState; + } + + } +} + diff --git a/Assets/Azure/KinectScripts/Filters/BodySpinFilter.cs.meta b/Assets/Azure/KinectScripts/Filters/BodySpinFilter.cs.meta new file mode 100644 index 0000000..6619dd5 --- /dev/null +++ b/Assets/Azure/KinectScripts/Filters/BodySpinFilter.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 017113e2f305e944e9954ff2c290c874 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/Filters/BoneOrientationConstraints.cs b/Assets/Azure/KinectScripts/Filters/BoneOrientationConstraints.cs new file mode 100644 index 0000000..d226f99 --- /dev/null +++ b/Assets/Azure/KinectScripts/Filters/BoneOrientationConstraints.cs @@ -0,0 +1,336 @@ +using UnityEngine; +using System; +using System.Collections; +using System.Collections.Generic; + + +namespace com.rfilkov.kinect +{ + /// + /// Filter to correct the joint orientations to constraint to the range of plausible human motion. + /// + public class BoneOrientationConstraints + { + // constraint types + public enum CT { None = 0, LimA = 1, LimST = 2, LimH = 3 } + + // list of joint constraints + private readonly List jointConstraints = new List(); + + private UnityEngine.UI.Text debugText; + + private long frameNum = 0; + //private float currentTime = 0f; + + + // Initializes a new instance of the BoneOrientationConstraints class. + public BoneOrientationConstraints() + { + } + + public void SetDebugText(UnityEngine.UI.Text debugText) + { + this.debugText = debugText; + } + + // AddDefaultConstraints - Adds a set of default joint constraints for normal human poses. + // This is a reasonable set of constraints for plausible human bio-mechanics. + public void AddDefaultConstraints() + { + // SpineNaval + AddBoneOrientationConstraint((int)KinectInterop.JointType.SpineNaval, CT.LimST, Vector3.up, 5f, 0f); + + // SpineChest + AddBoneOrientationConstraint((int)KinectInterop.JointType.SpineChest, CT.LimST, Vector3.up, 5f, 0f); + + // Neck + AddBoneOrientationConstraint((int)KinectInterop.JointType.Neck, CT.LimST, Vector3.up, 10f, 10f); + + // Head + AddBoneOrientationConstraint((int)KinectInterop.JointType.Head, CT.LimST, Vector3.up, 50f, 80f); + + // ShoulderLeft, ShoulderRight + AddBoneOrientationConstraint((int)KinectInterop.JointType.ShoulderLeft, CT.LimST, Vector3.left, 180f, 180f); + AddBoneOrientationConstraint((int)KinectInterop.JointType.ShoulderRight, CT.LimST, Vector3.right, 180f, 180f); + + // ElbowLeft, ElbowRight + AddBoneOrientationConstraint((int)KinectInterop.JointType.ElbowLeft, CT.LimST, Vector3.left, 180f, 180f); + AddBoneOrientationConstraint((int)KinectInterop.JointType.ElbowRight, CT.LimST, Vector3.right, 180f, 180f); + + // WristLeft, WristRight + AddBoneOrientationConstraint((int)KinectInterop.JointType.WristLeft, CT.LimST, Vector3.left, 60f, 40f); + AddBoneOrientationConstraint((int)KinectInterop.JointType.WristRight, CT.LimST, Vector3.right, 60f, 40f); + + // HandLeft, HandRight + AddBoneOrientationConstraint((int)KinectInterop.JointType.HandLeft, CT.LimH, Vector3.forward, -5f, -80f); + AddBoneOrientationConstraint((int)KinectInterop.JointType.HandRight, CT.LimH, Vector3.forward, 5f, 80f); + + // HipLeft, HipRight + AddBoneOrientationConstraint((int)KinectInterop.JointType.HipLeft, CT.LimST, Vector3.down, 120f, 0f); + AddBoneOrientationConstraint((int)KinectInterop.JointType.HipRight, CT.LimST, Vector3.down, 120f, 0f); + + // KneeLeft, KneeRight + AddBoneOrientationConstraint((int)KinectInterop.JointType.KneeLeft, CT.LimH, Vector3.right, 0f, 150f); + AddBoneOrientationConstraint((int)KinectInterop.JointType.KneeRight, CT.LimH, Vector3.right, 0f, 150f); + + //// AnkleLeft, AnkleRight + ////AddBoneOrientationConstraint((int)KinectInterop.JointType.AnkleLeft, CT.LimST, Vector3.forward, 30f, 0f); + ////AddBoneOrientationConstraint((int)KinectInterop.JointType.AnkleRight, CT.LimST, Vector3.forward, 30f, 0f); + //AddBoneOrientationConstraint((int)KinectInterop.JointType.AnkleLeft, CT.LimA, Vector3.forward, -5f, 5f); // lat + //AddBoneOrientationConstraint((int)KinectInterop.JointType.AnkleLeft, CT.LimA, Vector3.right, -10f, 10f); // sag + //AddBoneOrientationConstraint((int)KinectInterop.JointType.AnkleLeft, CT.LimA, Vector3.up, -30f, 30f); // rot + //AddBoneOrientationConstraint((int)KinectInterop.JointType.AnkleRight, CT.LimA, Vector3.forward, -5f, 5f); // lat + //AddBoneOrientationConstraint((int)KinectInterop.JointType.AnkleRight, CT.LimA, Vector3.right, -10f, 10f); // sag + //AddBoneOrientationConstraint((int)KinectInterop.JointType.AnkleRight, CT.LimA, Vector3.up, -30f, 30f); // rot + } + + // Apply the orientation constraints + public void Constrain(ref KinectInterop.BodyData bodyData) + { + KinectManager kinectManager = KinectManager.Instance; + frameNum++; + + for (int i = 0; i < jointConstraints.Count; i++) + { + BoneOrientationConstraint jc = this.jointConstraints[i]; + + if (jc.thisJoint == (int)KinectInterop.JointType.Pelvis || bodyData.joint[jc.thisJoint].normalRotation == Quaternion.identity) + continue; + if (kinectManager.ignoreZCoordinates && (jc.thisJoint == (int)KinectInterop.JointType.KneeLeft || jc.thisJoint == (int)KinectInterop.JointType.KneeRight)) + continue; + if (bodyData.joint[jc.thisJoint].trackingState == KinectInterop.TrackingState.NotTracked) + continue; + + int prevJoint = (int)KinectInterop.GetParentJoint((KinectInterop.JointType)jc.thisJoint); + if (bodyData.joint[prevJoint].trackingState == KinectInterop.TrackingState.NotTracked) + continue; + + Quaternion rotParentN = bodyData.joint[prevJoint].normalRotation; + //Quaternion rotDefaultN = Quaternion.identity; // Quaternion.FromToRotation(KinectInterop.JointBaseDir[prevJoint], KinectInterop.JointBaseDir[jc.thisJoint]); + //rotParentN = rotParentN * rotDefaultN; + + Quaternion rotJointN = bodyData.joint[jc.thisJoint].normalRotation; + Quaternion rotLocalN = Quaternion.Inverse(rotParentN) * rotJointN; + Vector3 eulerAnglesN = rotLocalN.eulerAngles; + + bool isConstrained = false; + //string sDebug = string.Empty; + + for (int a = 0; a < jc.axisConstrainrs.Count; a++) + { + AxisOrientationConstraint ac = jc.axisConstrainrs[a]; + Quaternion rotLimited = rotLocalN; + + switch (ac.consType) + { + case 0: + break; + + case CT.LimA: + eulerAnglesN = LimitAngles(eulerAnglesN, ac.axis, ac.angleMin, ac.angleMax); + rotLimited = Quaternion.Euler(eulerAnglesN); + break; + + case CT.LimST: + rotLimited = LimitSwing(rotLocalN, ac.axis, ac.angleMin); + rotLimited = LimitTwist(rotLimited, ac.axis, ac.angleMax); + break; + + case CT.LimH: + float lastAngle = bodyData.joint[jc.thisJoint].lastAngle; + rotLimited = LimitHinge(rotLocalN, ac.axis, ac.angleMin, ac.angleMax, ref lastAngle); + bodyData.joint[jc.thisJoint].lastAngle = lastAngle; + break; + + default: + throw new Exception("Undefined constraint type found: " + (int)ac.consType); + } + + if (rotLimited != rotLocalN) + { + rotLocalN = rotLimited; + isConstrained = true; + } + } + + //if (sDebug.Length > 0) + //{ + // if (debugText != null && jc.thisJoint == (int)KinectInterop.JointType.ElbowLeft) + // { + // // debugText.text = sDebug; + // } + + // Debug.Log(sDebug); + //} + + if (isConstrained) + { + rotJointN = rotParentN * rotLocalN; + + Vector3 eulerJoint = rotJointN.eulerAngles; + Vector3 eulerJointM = new Vector3(eulerJoint.x, -eulerJoint.y, -eulerJoint.z); + Quaternion rotJointM = Quaternion.Euler(eulerJointM); + + // put it back into the bone orientations + bodyData.joint[jc.thisJoint].normalRotation = rotJointN; + bodyData.joint[jc.thisJoint].mirroredRotation = rotJointM; + } + + } + } + + // find the bone constraint structure for given joint + // returns the structure index in the list, or -1 if the bone structure is not found + private int FindBoneOrientationConstraint(int thisJoint) + { + for (int i = 0; i < jointConstraints.Count; i++) + { + if (jointConstraints[i].thisJoint == thisJoint) + return i; + } + + return -1; + } + + // AddJointConstraint - Adds a joint constraint to the system. + private void AddBoneOrientationConstraint(int thisJoint, CT consType, Vector3 axis, float angleMin, float angleMax) + { + int index = FindBoneOrientationConstraint(thisJoint); + + BoneOrientationConstraint jc = index >= 0 ? jointConstraints[index] : new BoneOrientationConstraint(thisJoint); + + if (index < 0) + { + index = jointConstraints.Count; + jointConstraints.Add(jc); + } + + AxisOrientationConstraint constraint = new AxisOrientationConstraint(consType, axis, angleMin, angleMax); + jc.axisConstrainrs.Add(constraint); + + jointConstraints[index] = jc; + } + + private Vector3 LimitAngles(Vector3 eulerAngles, Vector3 axis, float limitMin, float limitMax) + { + int iAxis = (axis.x != 0f) ? 0 : (axis.y != 0f) ? 1 : (axis.z != 0f) ? 2 : -1; + + if (iAxis >= 0) + { + float angle = eulerAngles[iAxis]; + if (angle > 180f) + { + angle = angle - 360f; + } + + float newAngle = Mathf.Clamp(angle, limitMin, limitMax); + if (newAngle < 0f) + { + newAngle += 360f; + } + + eulerAngles[iAxis] = newAngle; + } + + return eulerAngles; + } + + private Quaternion LimitSwing(Quaternion rotation, Vector3 axis, float limit) + { + if (rotation == Quaternion.identity) + return rotation; + if (limit >= 180f) + return rotation; + + Vector3 swingAxis = rotation * axis; + + Quaternion swingRot = Quaternion.FromToRotation(axis, swingAxis); + Quaternion limSwingRot = Quaternion.RotateTowards(Quaternion.identity, swingRot, limit); + Quaternion backRot = Quaternion.FromToRotation(swingAxis, limSwingRot * axis); + + return backRot * rotation; + } + + private Quaternion LimitTwist(Quaternion rotation, Vector3 axis, float limit) + { + limit = Mathf.Clamp(limit, 0f, 180f); + if (limit >= 180f) + return rotation; + + Vector3 orthoAxis = new Vector3(axis.y, axis.z, axis.x); + Vector3 orthoTangent = orthoAxis; + + Vector3 normal = rotation * axis; + Vector3.OrthoNormalize(ref normal, ref orthoTangent); + + Vector3 rotOrthoTangent = rotation * orthoAxis; + Vector3.OrthoNormalize(ref normal, ref rotOrthoTangent); + + Quaternion fixedRot = Quaternion.FromToRotation(rotOrthoTangent, orthoTangent) * rotation; + + if (limit <= 0f) + return fixedRot; + + return Quaternion.RotateTowards(fixedRot, rotation, limit); + } + + private Quaternion LimitHinge(Quaternion rotation, Vector3 axis, float limitMin, float limitMax, ref float lastAngle) + { + if (limitMin == 0f && limitMax == 0f) + return Quaternion.AngleAxis(0, axis); + + Quaternion rotOnAxis = Quaternion.FromToRotation(rotation * axis, axis) * rotation; // limit-1 + Quaternion lastRotation = Quaternion.AngleAxis(lastAngle, axis); + + Quaternion rotAdded = rotOnAxis * Quaternion.Inverse(lastRotation); + float rotAngle = Quaternion.Angle(Quaternion.identity, rotAdded); + + Vector3 secAxis = new Vector3(axis.z, axis.x, axis.y); + Vector3 cross = Vector3.Cross(secAxis, axis); + + if (Vector3.Dot(rotAdded * secAxis, cross) > 0f) + { + rotAngle = -rotAngle; + } + + rotAngle = Mathf.Clamp(lastAngle + rotAngle, limitMin, limitMax); + + return Quaternion.AngleAxis(rotAngle, axis); + } + + private struct BoneOrientationConstraint + { + public int thisJoint; + public List axisConstrainrs; + + + public BoneOrientationConstraint(int thisJoint) + { + this.thisJoint = thisJoint; + axisConstrainrs = new List(); + } + } + + + private struct AxisOrientationConstraint + { + public CT consType; + public Vector3 axis; + + public float angleMin; + public float angleMax; + + + public AxisOrientationConstraint(CT consType, Vector3 axis, float angleMin, float angleMax) + { + this.consType = consType; + this.axis = axis; + + // Set the min and max rotations in degrees + this.angleMin = angleMin; + this.angleMax = angleMax; + } + } + + } +} diff --git a/Assets/Azure/KinectScripts/Filters/BoneOrientationConstraints.cs.meta b/Assets/Azure/KinectScripts/Filters/BoneOrientationConstraints.cs.meta new file mode 100644 index 0000000..7a62034 --- /dev/null +++ b/Assets/Azure/KinectScripts/Filters/BoneOrientationConstraints.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 24a68b3ab03e9e24d8fb673f4f8d107a +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Azure/KinectScripts/Filters/JointPositionsFilter.cs b/Assets/Azure/KinectScripts/Filters/JointPositionsFilter.cs new file mode 100644 index 0000000..822164b --- /dev/null +++ b/Assets/Azure/KinectScripts/Filters/JointPositionsFilter.cs @@ -0,0 +1,447 @@ +using UnityEngine; + +using System; +using System.Collections; +using System.Collections.Generic; + + +namespace com.rfilkov.kinect +{ + // predefined smoothing types + public enum SmoothingType : int { None, Default, Light, Medium, Aggressive } + + + /// + /// Parameters used for smoothing of the body-joint positions between frames. + /// + public class SmoothParameters + { + public float smoothing; + public float correction; + public float prediction; + public float jitterRadius; + public float maxDeviationRadius; + } + + + /// + /// Implementation of a Holt Double Exponential Smoothing filter. The double exponential + /// smooths the curve and predicts. There is also noise jitter removal. And maximum + /// prediction bounds. The parameters are commented in the Init function. + /// + public class JointPositionsFilter + { + // The history data. + //private JointHistoryData[,] history; + private BodyHistoryData[] history; + + // The smoothing parameters for this filter. + private SmoothParameters smoothParameters; + private SmoothingType smoothingType = SmoothingType.Default; + + // True when the filter parameters are initialized. + private bool init; + + // userId to index + private Dictionary dictUserIdToIndex = new Dictionary(); + + + /// Initializes a new instance of the class. + public JointPositionsFilter() + { + init = false; + } + + // Initialize the filter with a default set of TransformSmoothParameters. + public void Init() + { + // Specify some defaults + Init(0.5f, 0.5f, 0.5f, 0.05f, 0.04f); + } + + /// + /// Initialize the filter with a set of manually specified TransformSmoothParameters. + /// + /// Smoothing = [0..1], lower values is closer to the raw data and more noisy. + /// Correction = [0..1], higher values correct faster and feel more responsive. + /// Prediction = [0..n], how many frames into the future we want to predict. + /// JitterRadius = The deviation distance in m that defines jitter. + /// MaxDeviation = The maximum distance in m that filtered positions are allowed to deviate from raw data. + public void Init(float smoothingValue, float correctionValue, float predictionValue, float jitterRadiusValue, float maxDeviationRadiusValue) + { + this.smoothingType = SmoothingType.Default; + smoothParameters = new SmoothParameters(); + + smoothParameters.smoothing = smoothingValue; // How much soothing will occur. Will lag when too high + smoothParameters.correction = correctionValue; // How much to correct back from prediction. Can make things springy + smoothParameters.prediction = predictionValue; // Amount of prediction into the future to use. Can over shoot when too high + smoothParameters.jitterRadius = jitterRadiusValue; // Size of the radius where jitter is removed. Can do too much smoothing when too high + smoothParameters.maxDeviationRadius = maxDeviationRadiusValue; // Size of the max prediction radius Can snap back to noisy data when too high + + // Check for divide by zero. Use an epsilon of a 10th of a millimeter + smoothParameters.jitterRadius = Math.Max(0.0001f, this.smoothParameters.jitterRadius); + + Reset(); + init = true; + } + + // Initialize the filter with a set of SmoothParameters. + public void Init(SmoothParameters smoothParameters) + { + this.smoothingType = SmoothingType.Default; + this.smoothParameters = smoothParameters; + + Reset(); + init = true; + } + + // Initialize the filter with a set of SmoothParameters. + public void Init(SmoothingType smoothingType) + { + this.smoothingType = smoothingType; + smoothParameters = new SmoothParameters(); + + switch (smoothingType) + { + case SmoothingType.Light: + smoothParameters.smoothing = 0.3f; + smoothParameters.correction = 0.35f; + smoothParameters.prediction = 0.35f; + smoothParameters.jitterRadius = 0.15f; + smoothParameters.maxDeviationRadius = 0.15f; + break; + case SmoothingType.Medium: + smoothParameters.smoothing = 0.5f; + smoothParameters.correction = 0.1f; + smoothParameters.prediction = 0.5f; + smoothParameters.jitterRadius = 0.1f; + smoothParameters.maxDeviationRadius = 0.1f; + break; + case SmoothingType.Aggressive: + smoothParameters.smoothing = 0.7f; + smoothParameters.correction = 0.3f; + smoothParameters.prediction = 1.0f; + smoothParameters.jitterRadius = 1.0f; + smoothParameters.maxDeviationRadius = 1.0f; + break; + + //case SmoothingType.Default: + default: + smoothParameters.smoothing = 0.5f; + smoothParameters.correction = 0.5f; + smoothParameters.prediction = 0.5f; + smoothParameters.jitterRadius = 0.05f; + smoothParameters.maxDeviationRadius = 0.04f; + break; + } + + Reset(); + init = true; + } + + // Resets the filter to default values. + public void Reset(ulong userId = 0) + { + KinectManager kinectManager = KinectManager.Instance; + int maxBodyCount = 10; // kinectManager.GetMaxBodyCount(); + int jointCount = kinectManager.GetJointCount(); + + if (userId == 0) + { + //history = new JointHistoryData[kinectManager.GetMaxBodyCount(), kinectManager.GetJointCount()]; + history = new BodyHistoryData[maxBodyCount]; + for (int i = 0; i < maxBodyCount; i++) + { + history[i] = new BodyHistoryData(jointCount); + } + } + else + { + // clean the history of the given user only + for (int i = 0; i < maxBodyCount; i++) + { + if (history[i].userId == userId) + { + history[i].userId = 0; + history[i].lastUpdateTime = 0; + + for (int j = 0; j < history[i].jointHistory.Length; j++) + { + history[i].jointHistory[j].frameCount = 0; + } + + //Debug.Log("Removed pos history for userId " + userId + ", index: " + i); + } + } + } + + //Debug.Log("BodyCount: " + kinectManager.GetMaxBodyCount() + ", JointCount: " + kinectManager.GetJointCount()); + } + + //// Update the filter with a new frame of data and smooth. + //public void UpdateFilter(ref KinectInterop.BodyData[] alTrackedBodies) + //{ + // if (!init) + // { + // // initialize with by-default parameters + // Init(); + // } + + // if (smoothingType == SmoothingType.None) + // return; + + // SmoothParameters tempSmoothingParams = new SmoothParameters(); + // tempSmoothingParams.smoothing = this.smoothParameters.smoothing; + // tempSmoothingParams.correction = this.smoothParameters.correction; + // tempSmoothingParams.prediction = this.smoothParameters.prediction; + + // int bodyCount = alTrackedBodies != null ? alTrackedBodies.Length : 0; + // for (int bodyIndex = 0; bodyIndex < bodyCount; bodyIndex++) + // { + // if (alTrackedBodies[bodyIndex].bIsTracked) + // { + // FilterBodyJoints(ref alTrackedBodies[bodyIndex], /**bodyIndex*/ alTrackedBodies[bodyIndex].iBodyIndex, tempSmoothingParams); + // } + // } + //} + + // Update the filter with a new frame of data and smooth. + public void UpdateFilter(ref KinectInterop.BodyData bodyData) + { + if (!init) + { + // initialize with by-default parameters + Init(); + } + + if (smoothingType == SmoothingType.None) + return; + + SmoothParameters tempSmoothingParams = new SmoothParameters(); + tempSmoothingParams.smoothing = smoothParameters.smoothing; + tempSmoothingParams.correction = smoothParameters.correction; + tempSmoothingParams.prediction = smoothParameters.prediction; + + if (bodyData.bIsTracked) + { + // get body index + int bodyIndex = GetUserIndex(bodyData.liTrackingID); + if (bodyIndex < 0) + { + bodyIndex = GetFreeIndex(); + if (bodyIndex >= 0) + history[bodyIndex].userId = bodyData.liTrackingID; + //Debug.Log("Created history for userId: " + history[bodyIndex].userId + ", index: " + bodyIndex + ", time: " + DateTime.UtcNow); + } + + // filter + if (bodyIndex >= 0) + { + FilterBodyJoints(ref bodyData, bodyIndex, tempSmoothingParams); + } + } + + // free unused history + //CleanUpUserHistory(); + } + + // Update the filter for all body joints + private void FilterBodyJoints(ref KinectInterop.BodyData bodyData, int bodyIndex, SmoothParameters tempSmoothingParams) + { + KinectManager kinectManager = KinectManager.Instance; + int jointCount = kinectManager.GetJointCount(); + long lastUpdateTime = history[bodyIndex].lastUpdateTime; + + for (int jointIndex = 0; jointIndex < jointCount; jointIndex++) + { + //// If not tracked, we smooth a bit more by using a bigger jitter radius + //// Always filter end joints highly as they are more noisy + //if (bodyData.joint[jointIndex].trackingState != KinectInterop.TrackingState.Tracked || + // jointIndex == (int)KinectInterop.JointType.FootLeft || jointIndex == (int)KinectInterop.JointType.FootRight || + // jointIndex == (int)KinectInterop.JointType.HandLeft || jointIndex == (int)KinectInterop.JointType.HandRight || + // jointIndex == (int)KinectInterop.JointType.HandtipLeft || jointIndex == (int)KinectInterop.JointType.HandtipRight || + // jointIndex == (int)KinectInterop.JointType.ThumbLeft || jointIndex == (int)KinectInterop.JointType.ThumbRight) + ////|| jointIndex == (int)KinectInterop.JointType.Head) + //{ + // tempSmoothingParams.jitterRadius = smoothParameters.jitterRadius * 2.0f; + // tempSmoothingParams.maxDeviationRadius = smoothParameters.maxDeviationRadius * 2.0f; + //} + //else + { + tempSmoothingParams.jitterRadius = smoothParameters.jitterRadius; + tempSmoothingParams.maxDeviationRadius = smoothParameters.maxDeviationRadius; + } + + bodyData.joint[jointIndex].position = FilterJoint(bodyData.joint[jointIndex].position, bodyIndex, jointIndex, tempSmoothingParams); + } + + bodyData.position = bodyData.joint[0].position; + //Debug.Log(" updated pos history for userId: " + history[bodyIndex].userId + ", index: " + bodyIndex + ", time: " + history[bodyIndex].lastUpdateTime + " (" + lastUpdateTime + ")"); + } + + // Update the filter for one joint + private Vector3 FilterJoint(Vector3 rawPosition, int bodyIndex, int jointIndex, SmoothParameters smoothingParameters) + { + Vector3 filteredPosition; + Vector3 diffVec; + Vector3 trend; + + float diffVal; + float diffFactor; + + Vector3 prevFilteredPosition = history[bodyIndex].jointHistory[jointIndex].filteredPosition; + Vector3 prevTrend = history[bodyIndex].jointHistory[jointIndex].trend; + Vector3 prevRawPosition = history[bodyIndex].jointHistory[jointIndex].rawPosition; + bool jointIsValid = (rawPosition != Vector3.zero); + + // If joint is invalid, reset the filter + if (!jointIsValid) + { + history[bodyIndex].jointHistory[jointIndex].frameCount = 0; + } + + // Initial start values + if (history[bodyIndex].jointHistory[jointIndex].frameCount == 0) + { + filteredPosition = rawPosition; + trend = Vector3.zero; + } + else if (history[bodyIndex].jointHistory[jointIndex].frameCount == 1) + { + filteredPosition = (rawPosition + prevRawPosition) * 0.5f; + diffVec = filteredPosition - prevFilteredPosition; + trend = (diffVec * smoothingParameters.correction) + (prevTrend * (1.0f - smoothingParameters.correction)); + } + else + { + // First apply jitter filter + diffVec = rawPosition - prevFilteredPosition; + diffVal = Math.Abs(diffVec.magnitude); + diffFactor = diffVal / smoothingParameters.jitterRadius; + + if (diffVal <= smoothingParameters.jitterRadius) + { + filteredPosition = (rawPosition * diffFactor) + (prevFilteredPosition * (1.0f - diffFactor)); + } + else + { + filteredPosition = rawPosition; + } + + // Now the double exponential smoothing filter + filteredPosition = (filteredPosition * (1.0f - smoothingParameters.smoothing)) + ((prevFilteredPosition + prevTrend) * smoothingParameters.smoothing); + + diffVec = filteredPosition - prevFilteredPosition; + trend = (diffVec * smoothingParameters.correction) + (prevTrend * (1.0f - smoothingParameters.correction)); + } + + // Predict into the future to reduce latency + Vector3 predictedPosition = filteredPosition + (trend * smoothingParameters.prediction); + + // Check that we are not too far away from raw data + diffVec = predictedPosition - rawPosition; + diffVal = Mathf.Abs(diffVec.magnitude); + diffFactor = smoothingParameters.maxDeviationRadius / diffVal; + + if (diffVal > smoothingParameters.maxDeviationRadius) + { + predictedPosition = (predictedPosition * diffFactor) + (rawPosition * (1.0f - diffFactor)); + } + + // Save the data from this frame + history[bodyIndex].jointHistory[jointIndex].rawPosition = rawPosition; + history[bodyIndex].jointHistory[jointIndex].filteredPosition = filteredPosition; + history[bodyIndex].jointHistory[jointIndex].trend = trend; + history[bodyIndex].jointHistory[jointIndex].frameCount++; + + DateTime dtNow = DateTime.UtcNow; + history[bodyIndex].lastUpdateTime = dtNow.Ticks; + + return predictedPosition; + } + + + // returns the history index for the given user, or -1 if not found + private int GetUserIndex(ulong userId) + { + for (int i = 0; i < history.Length; i++) + { + if (history[i].userId == userId) + return i; + } + + return -1; + } + + // returns the 1st free history index, or -1 if not found + private int GetFreeIndex() + { + for (int i = 0; i < history.Length; i++) + { + if (history[i].userId == 0) + return i; + } + + return -1; + } + + // frees history indices that were unused for long time + public void CleanUpUserHistory() + { + DateTime dtNow = DateTime.UtcNow; + long timeNow = dtNow.Ticks; + + for (int i = 0; i < history.Length; i++) + { + if (history[i].userId != 0 && (timeNow - history[i].lastUpdateTime) >= 10000000) + { + //Debug.Log("Removed pos history for userId " + history[i].userId + ", index: " + i + ", time: " + dtNow + ", not used since: " + (timeNow - history[i].lastUpdateTime) + " ticks"); + + history[i].userId = 0; + history[i].lastUpdateTime = 0; + + for (int j = 0; j < history[i].jointHistory.Length; j++) + { + history[i].jointHistory[j].frameCount = 0; + } + } + } + } + + + // body history data used by the filter + private struct BodyHistoryData + { + public ulong userId; + + public long lastUpdateTime; + + public JointHistoryData[] jointHistory; + + + public BodyHistoryData(int jointCount) + { + userId = 0; + lastUpdateTime = 0; + jointHistory = new JointHistoryData[jointCount]; + } + } + + // joint history data used by the filter + private struct JointHistoryData + { + // Gets or sets Historical Position. + public Vector3 rawPosition; + + // Gets or sets Historical Filtered Position. + public Vector3 filteredPosition; + + // Gets or sets Historical Trend. + public Vector3 trend; + + // Gets or sets Historical FrameCount. + public uint frameCount; + } + } +} + diff --git a/Assets/Azure/KinectScripts/Filters/JointPositionsFilter.cs.meta b/Assets/Azure/KinectScripts/Filters/JointPositionsFilter.cs.meta new file mode 100644 index 0000000..97cf12b --- /dev/null +++ b/Assets/Azure/KinectScripts/Filters/JointPositionsFilter.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 31507b0aadcf2ce48bbb4b902f62ada7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/Filters/JointVelocitiesFilter.cs b/Assets/Azure/KinectScripts/Filters/JointVelocitiesFilter.cs new file mode 100644 index 0000000..11a76b8 --- /dev/null +++ b/Assets/Azure/KinectScripts/Filters/JointVelocitiesFilter.cs @@ -0,0 +1,398 @@ +using UnityEngine; + +using System; +using System.Collections; +using System.Collections.Generic; + + +namespace com.rfilkov.kinect +{ + /// + /// Implementation of a Holt Double Exponential Smoothing filter. The double exponential + /// smooths the curve and predicts. There is also noise jitter removal. And maximum + /// prediction bounds. The parameters are commented in the Init function. + /// + public class JointVelocitiesFilter + { + // The history data. + //private VelocityHistoryData[,] history; + private BodyHistoryData[] history; + + // The smoothing parameters for this filter. + private SmoothParameters smoothParameters; + private SmoothingType smoothingType = SmoothingType.Default; + + // True when the filter parameters are initialized. + private bool init; + + // userId to index + private Dictionary dictUserIdToIndex = new Dictionary(); + + + /// Initializes a new instance of the class. + public JointVelocitiesFilter() + { + init = false; + } + + // Initialize the filter with a default set of TransformSmoothParameters. + public void Init() + { + // Specify some defaults + Init(0.5f, 0.5f, 0.5f, 0.05f, 0.04f); + } + + /// + /// Initialize the filter with a set of manually specified TransformSmoothParameters. + /// + /// Smoothing = [0..1], lower values is closer to the raw data and more noisy. + /// Correction = [0..1], higher values correct faster and feel more responsive. + /// Prediction = [0..n], how many frames into the future we want to predict. + /// JitterRadius = The deviation distance in m that defines jitter. + /// MaxDeviation = The maximum distance in m that filtered positions are allowed to deviate from raw data. + public void Init(float smoothingValue, float correctionValue, float predictionValue, float jitterRadiusValue, float maxDeviationRadiusValue) + { + smoothParameters = new SmoothParameters(); + + smoothParameters.smoothing = smoothingValue; // How much soothing will occur. Will lag when too high + smoothParameters.correction = correctionValue; // How much to correct back from prediction. Can make things springy + smoothParameters.prediction = predictionValue; // Amount of prediction into the future to use. Can over shoot when too high + smoothParameters.jitterRadius = jitterRadiusValue; // Size of the radius where jitter is removed. Can do too much smoothing when too high + smoothParameters.maxDeviationRadius = maxDeviationRadiusValue; // Size of the max prediction radius Can snap back to noisy data when too high + + // Check for divide by zero. Use an epsilon of a 10th of a millimeter + smoothParameters.jitterRadius = Math.Max(0.0001f, smoothParameters.jitterRadius); + + Reset(); + init = true; + } + + // Initialize the filter with a set of TransformSmoothParameters. + public void Init(SmoothParameters smoothParameters) + { + this.smoothingType = SmoothingType.Default; + this.smoothParameters = smoothParameters; + + Reset(); + init = true; + } + + // Initialize the filter with a set of SmoothParameters. + public void Init(SmoothingType smoothingType) + { + this.smoothingType = smoothingType; + smoothParameters = new SmoothParameters(); + + switch (smoothingType) + { + case SmoothingType.Light: + smoothParameters.smoothing = 0.3f; + smoothParameters.correction = 0.35f; + smoothParameters.prediction = 0.35f; + smoothParameters.jitterRadius = 0.15f; + smoothParameters.maxDeviationRadius = 0.15f; + break; + case SmoothingType.Medium: + smoothParameters.smoothing = 0.5f; + smoothParameters.correction = 0.1f; + smoothParameters.prediction = 0.5f; + smoothParameters.jitterRadius = 0.1f; + smoothParameters.maxDeviationRadius = 0.1f; + break; + case SmoothingType.Aggressive: + smoothParameters.smoothing = 0.7f; + smoothParameters.correction = 0.3f; + smoothParameters.prediction = 1.0f; + smoothParameters.jitterRadius = 1.0f; + smoothParameters.maxDeviationRadius = 1.0f; + break; + + //case SmoothingType.Default: + default: + smoothParameters.smoothing = 0.5f; + smoothParameters.correction = 0.5f; + smoothParameters.prediction = 0.5f; + smoothParameters.jitterRadius = 0.05f; + smoothParameters.maxDeviationRadius = 0.04f; + break; + } + + Reset(); + init = true; + } + + // Resets the filter to default values. + public void Reset() + { + KinectManager kinectManager = KinectManager.Instance; + int maxBodyCount = 10; // kinectManager.GetMaxBodyCount(); + int jointCount = kinectManager.GetJointCount(); + + //history = new JointHistoryData[kinectManager.GetMaxBodyCount(), kinectManager.GetJointCount()]; + history = new BodyHistoryData[maxBodyCount]; + for (int i = 0; i < maxBodyCount; i++) + { + history[i] = new BodyHistoryData(jointCount); + } + + //Debug.Log("BodyCount: " + kinectManager.GetMaxBodyCount() + ", JointCount: " + kinectManager.GetJointCount()); + } + + //// Update the filter with a new frame of data and smooth. + //public void UpdateFilter(ref KinectInterop.BodyData[] alTrackedBodies) + //{ + // if (init == false) + // { + // Init(); // initialize with default parameters + // } + + // SmoothParameters tempSmoothingParams = new SmoothParameters(); + + // tempSmoothingParams.smoothing = smoothParameters.smoothing; + // tempSmoothingParams.correction = smoothParameters.correction; + // tempSmoothingParams.prediction = smoothParameters.prediction; + + // int bodyCount = alTrackedBodies != null ? alTrackedBodies.Length : 0; + // for (int bodyIndex = 0; bodyIndex < bodyCount; bodyIndex++) + // { + // if (alTrackedBodies[bodyIndex].bIsTracked) + // { + // FilterBodyJoints(ref alTrackedBodies[bodyIndex], /**bodyIndex*/ alTrackedBodies[bodyIndex].iBodyIndex, tempSmoothingParams); + // } + // } + //} + + // Update the filter with a new frame of data and smooth. + public void UpdateFilter(ref KinectInterop.BodyData bodyData) + { + if (!init) + { + // initialize with by-default parameters + Init(); + } + + if (smoothingType == SmoothingType.None) + return; + + SmoothParameters tempSmoothingParams = new SmoothParameters(); + tempSmoothingParams.smoothing = smoothParameters.smoothing; + tempSmoothingParams.correction = smoothParameters.correction; + tempSmoothingParams.prediction = smoothParameters.prediction; + + if (bodyData.bIsTracked) + { + // get body index + int bodyIndex = GetUserIndex(bodyData.liTrackingID); + if (bodyIndex < 0) + { + bodyIndex = GetFreeIndex(); + if (bodyIndex >= 0) + history[bodyIndex].userId = bodyData.liTrackingID; + //Debug.Log("Created history for userId: " + history[bodyIndex].userId + ", index: " + bodyIndex + ", time: " + DateTime.UtcNow); + } + + // filter + if (bodyIndex >= 0) + { + FilterBodyJoints(ref bodyData, bodyIndex, tempSmoothingParams); + } + } + + // free unused history + //CleanUpUserHistory(); + } + + // Update the filter for all body joints + private void FilterBodyJoints(ref KinectInterop.BodyData bodyData, int bodyIndex, SmoothParameters tempSmoothingParams) + { + KinectManager kinectManager = KinectManager.Instance; + int jointCount = kinectManager.GetJointCount(); + long lastUpdateTime = history[bodyIndex].lastUpdateTime; + + for (int jointIndex = 0; jointIndex < jointCount; jointIndex++) + { + //// If not tracked, we smooth a bit more by using a bigger jitter radius + //// Always filter end joints highly as they are more noisy + //if (bodyData.joint[jointIndex].trackingState != KinectInterop.TrackingState.Tracked || + // jointIndex == (int)KinectInterop.JointType.FootLeft || jointIndex == (int)KinectInterop.JointType.FootRight || + // jointIndex == (int)KinectInterop.JointType.HandLeft || jointIndex == (int)KinectInterop.JointType.HandRight || + // jointIndex == (int)KinectInterop.JointType.HandtipLeft || jointIndex == (int)KinectInterop.JointType.HandtipRight || + // jointIndex == (int)KinectInterop.JointType.ThumbLeft || jointIndex == (int)KinectInterop.JointType.ThumbRight) + ////|| jointIndex == (int)KinectInterop.JointType.Head) + //{ + // tempSmoothingParams.jitterRadius = smoothParameters.jitterRadius * 2.0f; + // tempSmoothingParams.maxDeviationRadius = smoothParameters.maxDeviationRadius * 2.0f; + //} + //else + { + tempSmoothingParams.jitterRadius = smoothParameters.jitterRadius; + tempSmoothingParams.maxDeviationRadius = smoothParameters.maxDeviationRadius; + } + + bodyData.joint[jointIndex].posVel = FilterJoint(bodyData.joint[jointIndex].posVel, bodyIndex, jointIndex, tempSmoothingParams); + } + + //Debug.Log(" updated vel history for userId: " + history[bodyIndex].userId + ", index: " + bodyIndex + ", time: " + history[bodyIndex].lastUpdateTime + " (" + lastUpdateTime + ")"); + } + + // Update the filter for one joint + private Vector3 FilterJoint(Vector3 rawVelocity, int bodyIndex, int jointIndex, SmoothParameters smoothingParameters) + { + Vector3 filteredVelocity; + Vector3 diffVec; + Vector3 trend; + float diffVal; + + Vector3 prevFilteredVelocity = history[bodyIndex].jointHistory[jointIndex].filteredVelocity; + Vector3 prevTrend = history[bodyIndex].jointHistory[jointIndex].trend; + Vector3 prevRawVelocity = history[bodyIndex].jointHistory[jointIndex].rawVelocity; + bool jointIsValid = (rawVelocity != Vector3.zero); + + // If joint is invalid, reset the filter + if (!jointIsValid) + { + history[bodyIndex].jointHistory[jointIndex].frameCount = 0; + } + + // Initial start values + if (history[bodyIndex].jointHistory[jointIndex].frameCount == 0) + { + filteredVelocity = rawVelocity; + trend = Vector3.zero; + } + else if (history[bodyIndex].jointHistory[jointIndex].frameCount == 1) + { + filteredVelocity = (rawVelocity + prevRawVelocity) * 0.5f; + diffVec = filteredVelocity - prevFilteredVelocity; + trend = (diffVec * smoothingParameters.correction) + (prevTrend * (1.0f - smoothingParameters.correction)); + } + else + { + // First apply jitter filter + diffVec = rawVelocity - prevFilteredVelocity; + diffVal = Math.Abs(diffVec.magnitude); + + if (diffVal <= smoothingParameters.jitterRadius) + { + filteredVelocity = (rawVelocity * (diffVal / smoothingParameters.jitterRadius)) + (prevFilteredVelocity * (1.0f - (diffVal / smoothingParameters.jitterRadius))); + } + else + { + filteredVelocity = rawVelocity; + } + + // Now the double exponential smoothing filter + filteredVelocity = (filteredVelocity * (1.0f - smoothingParameters.smoothing)) + ((prevFilteredVelocity + prevTrend) * smoothingParameters.smoothing); + + diffVec = filteredVelocity - prevFilteredVelocity; + trend = (diffVec * smoothingParameters.correction) + (prevTrend * (1.0f - smoothingParameters.correction)); + } + + // Predict into the future to reduce latency + Vector3 predictedVelocity = filteredVelocity + (trend * smoothingParameters.prediction); + + // Check that we are not too far away from raw data + diffVec = predictedVelocity - rawVelocity; + diffVal = Mathf.Abs(diffVec.magnitude); + + if (diffVal > smoothingParameters.maxDeviationRadius) + { + predictedVelocity = (predictedVelocity * (smoothingParameters.maxDeviationRadius / diffVal)) + (rawVelocity * (1.0f - (smoothingParameters.maxDeviationRadius / diffVal))); + } + + // Save the data from this frame + history[bodyIndex].jointHistory[jointIndex].rawVelocity = rawVelocity; + history[bodyIndex].jointHistory[jointIndex].filteredVelocity = filteredVelocity; + history[bodyIndex].jointHistory[jointIndex].trend = trend; + history[bodyIndex].jointHistory[jointIndex].frameCount++; + + DateTime dtNow = DateTime.UtcNow; + history[bodyIndex].lastUpdateTime = dtNow.Ticks; + + return predictedVelocity; + } + + + // returns the history index for the given user, or -1 if not found + private int GetUserIndex(ulong userId) + { + for (int i = 0; i < history.Length; i++) + { + if (history[i].userId == userId) + return i; + } + + return -1; + } + + // returns the 1st free history index, or -1 if not found + private int GetFreeIndex() + { + for (int i = 0; i < history.Length; i++) + { + if (history[i].userId == 0) + return i; + } + + return -1; + } + + // frees history indices that were unused for long time + public void CleanUpUserHistory() + { + DateTime dtNow = DateTime.UtcNow; + long timeNow = dtNow.Ticks; + + for (int i = 0; i < history.Length; i++) + { + if (history[i].userId != 0 && (timeNow - history[i].lastUpdateTime) >= 10000000) + { + //Debug.Log("Removed vel history for userId " + history[i].userId + ", index: " + i + ", time: " + dtNow + ", not used since: " + (timeNow - history[i].lastUpdateTime) + " ticks"); + + history[i].userId = 0; + history[i].lastUpdateTime = 0; + + for (int j = 0; j < history[i].jointHistory.Length; j++) + { + history[i].jointHistory[j].frameCount = 0; + } + } + } + } + + + // body history data used by the filter + private struct BodyHistoryData + { + public ulong userId; + + public long lastUpdateTime; + + public VelocityHistoryData[] jointHistory; + + + public BodyHistoryData(int jointCount) + { + userId = 0; + lastUpdateTime = 0; + jointHistory = new VelocityHistoryData[jointCount]; + } + } + + // velocity history data used by the filter + private struct VelocityHistoryData + { + // Gets or sets Historical Velocity. + public Vector3 rawVelocity; + + // Gets or sets Historical Filtered Velocity. + public Vector3 filteredVelocity; + + // Gets or sets Historical Trend. + public Vector3 trend; + + // Gets or sets Historical FrameCount. + public uint frameCount; + } + } +} diff --git a/Assets/Azure/KinectScripts/Filters/JointVelocitiesFilter.cs.meta b/Assets/Azure/KinectScripts/Filters/JointVelocitiesFilter.cs.meta new file mode 100644 index 0000000..0285ef2 --- /dev/null +++ b/Assets/Azure/KinectScripts/Filters/JointVelocitiesFilter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 732d87a0d677e4845a26771e56b5c7d6 +timeCreated: 1491826911 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/Filters/MahonyAHRS.cs b/Assets/Azure/KinectScripts/Filters/MahonyAHRS.cs new file mode 100644 index 0000000..20bcdba --- /dev/null +++ b/Assets/Azure/KinectScripts/Filters/MahonyAHRS.cs @@ -0,0 +1,302 @@ +using System; + +namespace AHRS +{ + /// + /// MahonyAHRS class. Madgwick's implementation of Mayhony's AHRS algorithm. + /// + /// + /// See: http://www.x-io.co.uk/node/8#open_source_ahrs_and_imu_algorithms + /// + public class MahonyAHRS + { + /// + /// Gets or sets the sample period. + /// + public float SamplePeriod { get; set; } + + /// + /// Gets or sets the algorithm proportional gain. + /// + public float Kp { get; set; } + + /// + /// Gets or sets the algorithm integral gain. + /// + public float Ki { get; set; } + + /// + /// Gets or sets the Quaternion output. + /// + public float[] Quaternion { get; set; } + + /// + /// Error squared. + /// + public float E2 { get; set; } + + /// + /// Gets or sets the integral error. + /// + private float[] eInt { get; set; } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Sample period. + /// + public MahonyAHRS(float samplePeriod) + : this(samplePeriod, 1f, 0f) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Sample period. + /// + /// + /// Algorithm proportional gain. + /// + public MahonyAHRS(float samplePeriod, float kp) + : this(samplePeriod, kp, 0f) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Sample period. + /// + /// + /// Algorithm proportional gain. + /// + /// + /// Algorithm integral gain. + /// + public MahonyAHRS(float samplePeriod, float kp, float ki) + { + SamplePeriod = samplePeriod; + Kp = kp; + Ki = ki; + Quaternion = new float[] { 1f, 0f, 0f, 0f }; + eInt = new float[] { 0f, 0f, 0f }; + } + + /// + /// Algorithm AHRS update method. Requires only gyroscope and accelerometer data. + /// + /// + /// Gyroscope x axis measurement in radians/s. + /// + /// + /// Gyroscope y axis measurement in radians/s. + /// + /// + /// Gyroscope z axis measurement in radians/s. + /// + /// + /// Accelerometer x axis measurement in any calibrated units. + /// + /// + /// Accelerometer y axis measurement in any calibrated units. + /// + /// + /// Accelerometer z axis measurement in any calibrated units. + /// + /// + /// Magnetometer x axis measurement in any calibrated units. + /// + /// + /// Magnetometer y axis measurement in any calibrated units. + /// + /// + /// Magnetometer z axis measurement in any calibrated units. + /// + /// + /// Optimised for minimal arithmetic. + /// + public void Update(float gx, float gy, float gz, float ax, float ay, float az, float mx, float my, float mz) + { + float q1 = Quaternion[0], q2 = Quaternion[1], q3 = Quaternion[2], q4 = Quaternion[3]; // short name local variable for readability + float norm; + float hx, hy, bx, bz; + float vx, vy, vz, wx, wy, wz; + float ex, ey, ez; + float pa, pb, pc; + + // Auxiliary variables to avoid repeated arithmetic + float q1q1 = q1 * q1; + float q1q2 = q1 * q2; + float q1q3 = q1 * q3; + float q1q4 = q1 * q4; + float q2q2 = q2 * q2; + float q2q3 = q2 * q3; + float q2q4 = q2 * q4; + float q3q3 = q3 * q3; + float q3q4 = q3 * q4; + float q4q4 = q4 * q4; + + // Normalise accelerometer measurement + norm = (float)Math.Sqrt(ax * ax + ay * ay + az * az); + if (norm == 0f) return; // handle NaN + norm = 1 / norm; // use reciprocal for division + ax *= norm; + ay *= norm; + az *= norm; + + // Normalise magnetometer measurement + norm = (float)Math.Sqrt(mx * mx + my * my + mz * mz); + if (norm == 0f) return; // handle NaN + norm = 1 / norm; // use reciprocal for division + mx *= norm; + my *= norm; + mz *= norm; + + // Reference direction of Earth's magnetic field + hx = 2f * mx * (0.5f - q3q3 - q4q4) + 2f * my * (q2q3 - q1q4) + 2f * mz * (q2q4 + q1q3); + hy = 2f * mx * (q2q3 + q1q4) + 2f * my * (0.5f - q2q2 - q4q4) + 2f * mz * (q3q4 - q1q2); + bx = (float)Math.Sqrt((hx * hx) + (hy * hy)); + bz = 2f * mx * (q2q4 - q1q3) + 2f * my * (q3q4 + q1q2) + 2f * mz * (0.5f - q2q2 - q3q3); + + // Estimated direction of gravity and magnetic field + vx = 2f * (q2q4 - q1q3); + vy = 2f * (q1q2 + q3q4); + vz = q1q1 - q2q2 - q3q3 + q4q4; + wx = 2f * bx * (0.5f - q3q3 - q4q4) + 2f * bz * (q2q4 - q1q3); + wy = 2f * bx * (q2q3 - q1q4) + 2f * bz * (q1q2 + q3q4); + wz = 2f * bx * (q1q3 + q2q4) + 2f * bz * (0.5f - q2q2 - q3q3); + + // Error is cross product between estimated direction and measured direction of gravity + ex = (ay * vz - az * vy) + (my * wz - mz * wy); + ey = (az * vx - ax * vz) + (mz * wx - mx * wz); + ez = (ax * vy - ay * vx) + (mx * wy - my * wx); + if (Ki > 0f) + { + eInt[0] += ex; // accumulate integral error + eInt[1] += ey; + eInt[2] += ez; + } + else + { + eInt[0] = 0.0f; // prevent integral wind up + eInt[1] = 0.0f; + eInt[2] = 0.0f; + } + + // error squared + E2 = ex * ex + ey * ey + ez * ez; + + // Apply feedback terms + gx = gx + Kp * ex + Ki * eInt[0]; + gy = gy + Kp * ey + Ki * eInt[1]; + gz = gz + Kp * ez + Ki * eInt[2]; + + // Integrate rate of change of quaternion + pa = q2; + pb = q3; + pc = q4; + q1 = q1 + (-q2 * gx - q3 * gy - q4 * gz) * (0.5f * SamplePeriod); + q2 = pa + (q1 * gx + pb * gz - pc * gy) * (0.5f * SamplePeriod); + q3 = pb + (q1 * gy - pa * gz + pc * gx) * (0.5f * SamplePeriod); + q4 = pc + (q1 * gz + pa * gy - pb * gx) * (0.5f * SamplePeriod); + + // Normalise quaternion + norm = (float)Math.Sqrt(q1 * q1 + q2 * q2 + q3 * q3 + q4 * q4); + norm = 1.0f / norm; + Quaternion[0] = q1 * norm; + Quaternion[1] = q2 * norm; + Quaternion[2] = q3 * norm; + Quaternion[3] = q4 * norm; + } + + /// + /// Algorithm IMU update method. Requires only gyroscope and accelerometer data. + /// + /// + /// Gyroscope x axis measurement in radians/s. + /// + /// + /// Gyroscope y axis measurement in radians/s. + /// + /// + /// Gyroscope z axis measurement in radians/s. + /// + /// + /// Accelerometer x axis measurement in any calibrated units. + /// + /// + /// Accelerometer y axis measurement in any calibrated units. + /// + /// + /// Accelerometer z axis measurement in any calibrated units. + /// + public void Update(float gx, float gy, float gz, float ax, float ay, float az) + { + float q1 = Quaternion[0], q2 = Quaternion[1], q3 = Quaternion[2], q4 = Quaternion[3]; // short name local variable for readability + float norm; + float vx, vy, vz; + float ex, ey, ez; + float pa, pb, pc; + + // Normalise accelerometer measurement + norm = (float)Math.Sqrt(ax * ax + ay * ay + az * az); + if (norm == 0f) return; // handle NaN + norm = 1 / norm; // use reciprocal for division + ax *= norm; + ay *= norm; + az *= norm; + + // Estimated direction of gravity + vx = 2.0f * (q2 * q4 - q1 * q3); + vy = 2.0f * (q1 * q2 + q3 * q4); + vz = q1 * q1 - q2 * q2 - q3 * q3 + q4 * q4; + + // Error is cross product between estimated direction and measured direction of gravity + ex = (ay * vz - az * vy); + ey = (az * vx - ax * vz); + ez = (ax * vy - ay * vx); + if (Ki > 0f) + { + eInt[0] += ex; // accumulate integral error + eInt[1] += ey; + eInt[2] += ez; + } + else + { + eInt[0] = 0.0f; // prevent integral wind up + eInt[1] = 0.0f; + eInt[2] = 0.0f; + } + + // error squared + E2 = ex * ex + ey * ey + ez * ez; + + // Apply feedback terms + gx = gx + Kp * ex + Ki * eInt[0]; + gy = gy + Kp * ey + Ki * eInt[1]; + gz = gz + Kp * ez + Ki * eInt[2]; + + // Integrate rate of change of quaternion + pa = q2; + pb = q3; + pc = q4; + q1 = q1 + (-q2 * gx - q3 * gy - q4 * gz) * (0.5f * SamplePeriod); + q2 = pa + (q1 * gx + pb * gz - pc * gy) * (0.5f * SamplePeriod); + q3 = pb + (q1 * gy - pa * gz + pc * gx) * (0.5f * SamplePeriod); + q4 = pc + (q1 * gz + pa * gy - pb * gx) * (0.5f * SamplePeriod); + + // Normalise quaternion + norm = (float)Math.Sqrt(q1 * q1 + q2 * q2 + q3 * q3 + q4 * q4); + norm = 1.0f / norm; + Quaternion[0] = q1 * norm; + Quaternion[1] = q2 * norm; + Quaternion[2] = q3 * norm; + Quaternion[3] = q4 * norm; + } + } +} + diff --git a/Assets/Azure/KinectScripts/Filters/MahonyAHRS.cs.meta b/Assets/Azure/KinectScripts/Filters/MahonyAHRS.cs.meta new file mode 100644 index 0000000..cc58dec --- /dev/null +++ b/Assets/Azure/KinectScripts/Filters/MahonyAHRS.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 75a75a12bb874514596c7fc355cd0c3f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/FollowSensorTransform.cs b/Assets/Azure/KinectScripts/FollowSensorTransform.cs new file mode 100644 index 0000000..b8e67e2 --- /dev/null +++ b/Assets/Azure/KinectScripts/FollowSensorTransform.cs @@ -0,0 +1,80 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using com.rfilkov.kinect; + + +namespace com.rfilkov.components +{ + /// + /// This component makes the game object follow the position and rotation of the sensor. + /// + public class FollowSensorTransform : MonoBehaviour + { + [Tooltip("Depth sensor index - 0 is the 1st one, 1 - the 2nd one, etc.")] + public int sensorIndex = 0; + + [Tooltip("Smooth factor used for the game object movement and rotation.")] + public float smoothFactor = 0f; + + [Tooltip("Whether to follow the sensor's depth or color camera pose.")] + public ReferencePose referencePose = ReferencePose.DepthCameraPose; + public enum ReferencePose : int { DepthCameraPose = 0, ColorCameraPose = 1 }; + + + // reference to the KinectManager + private KinectManager kinectManager = null; + private KinectInterop.SensorData sensorData = null; + + // sensor position and rotation + Vector3 sensorWorldPos = Vector3.zero; + Quaternion sensorWorldRot = Quaternion.identity; + + + void Start() + { + // get reference to KinectManager + kinectManager = KinectManager.Instance; + sensorData = kinectManager ? kinectManager.GetSensorData(sensorIndex) : null; + } + + void Update() + { + if(kinectManager && kinectManager.IsInitialized()) + { + Transform sensorTrans = kinectManager.GetSensorTransform(sensorIndex); + + if(sensorTrans != null) + { + sensorWorldPos = sensorTrans.position; + sensorWorldRot = sensorTrans.rotation; + + if (referencePose != ReferencePose.DepthCameraPose && sensorData != null && sensorData.sensorInterface != null) + { + Matrix4x4 sensorTransMat = Matrix4x4.identity; + sensorTransMat.SetTRS(sensorTrans.position, sensorTrans.rotation, Vector3.one); + + Matrix4x4 sensorToRefMat = sensorData.sensorInterface.GetDepthToColorCameraMatrix(); + + sensorTransMat = sensorTransMat * sensorToRefMat; + sensorWorldPos = sensorTransMat.GetColumn(3); + sensorWorldRot = sensorTransMat.rotation; + } + + } + + if (smoothFactor != 0f) + { + transform.position = Vector3.Lerp(transform.position, sensorWorldPos, smoothFactor * Time.deltaTime); + transform.rotation = Quaternion.Slerp(transform.rotation, sensorWorldRot, smoothFactor * Time.deltaTime); + } + else + { + transform.position = sensorWorldPos; + transform.rotation = sensorWorldRot; + } + } + } + + } +} diff --git a/Assets/Azure/KinectScripts/FollowSensorTransform.cs.meta b/Assets/Azure/KinectScripts/FollowSensorTransform.cs.meta new file mode 100644 index 0000000..b050024 --- /dev/null +++ b/Assets/Azure/KinectScripts/FollowSensorTransform.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9a17e9eb7ba629243bfc955c820d04a1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/FollowUserJointPose.cs b/Assets/Azure/KinectScripts/FollowUserJointPose.cs new file mode 100644 index 0000000..984028f --- /dev/null +++ b/Assets/Azure/KinectScripts/FollowUserJointPose.cs @@ -0,0 +1,140 @@ +using UnityEngine; +using System.Collections; +using com.rfilkov.kinect; + + +namespace com.rfilkov.components +{ + /// + /// FollowUserJointPose makes the game object's transform follow the given user's joint pose. + /// + public class FollowUserJointPose : MonoBehaviour + { + [Tooltip("Depth sensor index - 0 is the 1st one, 1 - the 2nd one, etc. -1 means the sensor doesn't matter")] + private int sensorIndex = -1; + + [Tooltip("Index of the player, tracked by this component. 0 means the 1st player, 1 - the 2nd one, 2 - the 3rd one, etc.")] + public int playerIndex = 0; + + [Tooltip("The sensor's joint we want to follow.")] + public KinectInterop.JointType followJoint = KinectInterop.JointType.Head; + + [Tooltip("Whether the joint view is mirrored or not.")] + public bool mirroredView = false; + + [Tooltip("Whether to move the object's transform.")] + public bool moveTransform = true; + + [Tooltip("Whether to rotate the object's transform.")] + public bool rotateTransform = true; + + [Tooltip("Scene object that will be used to represent the sensor's position and rotation in the scene.")] + public Transform sensorTransform; + + [Tooltip("Offset of the object to the joint's position.")] + public Vector3 positionOffset = Vector3.zero; + + [Tooltip("Scale factor of the joint position.")] + public Vector3 motionScale = Vector3.one; + + [Tooltip("Scale factor of the joint rotation.")] + private Vector3 rotationFactor = Vector3.zero; + + [Tooltip("Smooth factor used for object's position and rotation smoothing.")] + public float smoothFactor = 10f; + + + private KinectManager kinectManager = null; + private Quaternion initialRotation = Quaternion.identity; + + private Vector3 vPosJoint = Vector3.zero; + private Quaternion qRotJoint = Quaternion.identity; + + + void Start() + { + kinectManager = KinectManager.Instance; + + initialRotation = transform.rotation; + //initialRotation = mirroredView ? Quaternion.Euler(0f, 180f, 0f) : Quaternion.identity; + } + + void Update() + { + if (kinectManager && kinectManager.IsInitialized()) + { + if (sensorIndex >= 0 || kinectManager.IsUserDetected(playerIndex)) + { + ulong userId = sensorIndex < 0 ? kinectManager.GetUserIdByIndex(playerIndex) : (ulong)playerIndex; + + if (sensorIndex >= 0 || kinectManager.IsJointTracked(userId, followJoint)) + { + if (sensorTransform != null) + { + if (sensorIndex < 0) + vPosJoint = kinectManager.GetJointKinectPosition(userId, followJoint, true); + else + vPosJoint = kinectManager.GetSensorJointKinectPosition(sensorIndex, (int)userId, followJoint, true); + } + else + { + if (sensorIndex < 0) + vPosJoint = kinectManager.GetJointPosition(userId, followJoint); + else + vPosJoint = kinectManager.GetSensorJointPosition(sensorIndex, (int)userId, followJoint); + } + + if (positionOffset != Vector3.zero) + { + vPosJoint += positionOffset; + } + + if (sensorTransform) + { + vPosJoint = sensorTransform.TransformPoint(vPosJoint); + } + + if(motionScale != Vector3.one) + { + vPosJoint = new Vector3(vPosJoint.x * motionScale.x, vPosJoint.y * motionScale.y, vPosJoint.z * motionScale.z); + } + + if (sensorIndex < 0) + qRotJoint = kinectManager.GetJointOrientation(userId, followJoint, !mirroredView); + else + qRotJoint = kinectManager.GetSensorJointOrientation(sensorIndex, (int)userId, followJoint, !mirroredView); + + qRotJoint = initialRotation * qRotJoint; + + if(rotationFactor != Vector3.zero) + { + qRotJoint = Quaternion.Euler(rotationFactor) * qRotJoint; + } + + if (moveTransform || rotateTransform) + { + if (smoothFactor != 0f) + { + if(moveTransform) + transform.position = Vector3.Lerp(transform.position, vPosJoint, smoothFactor * Time.deltaTime); + if(rotateTransform) + transform.rotation = Quaternion.Slerp(transform.rotation, qRotJoint, smoothFactor * Time.deltaTime); + } + else + { + if(moveTransform) + transform.position = vPosJoint; + if(rotateTransform) + transform.rotation = qRotJoint; + } + + } + } + + } + } + } + + } +} + diff --git a/Assets/Azure/KinectScripts/FollowUserJointPose.cs.meta b/Assets/Azure/KinectScripts/FollowUserJointPose.cs.meta new file mode 100644 index 0000000..5cff961 --- /dev/null +++ b/Assets/Azure/KinectScripts/FollowUserJointPose.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c98460a12114096448a40a69ef6b30e8 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Azure/KinectScripts/ForegroundBlendRenderer.cs b/Assets/Azure/KinectScripts/ForegroundBlendRenderer.cs new file mode 100644 index 0000000..7427968 --- /dev/null +++ b/Assets/Azure/KinectScripts/ForegroundBlendRenderer.cs @@ -0,0 +1,311 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using com.rfilkov.kinect; + + +namespace com.rfilkov.components +{ + /// + /// ForegroundBlendRenderer provides volumetric rendering and lighting of the real environment, filtered by the background-removal manager. + /// + public class ForegroundBlendRenderer : MonoBehaviour + { + [Tooltip("Reference to background removal manager. If left to None, it looks up the first available BR-manager in the scene.")] + public BackgroundRemovalManager backgroundRemovalManager = null; + + [Tooltip("Depth value in meters, used for invalid depth points.")] + public float invalidDepthValue = 0f; + + [Tooltip("Whether to maximize the rendered object on the screen, or not.")] + public bool maximizeOnScreen = true; + + [Tooltip("Whether to apply per-pixel lighting on the foreground, or not.")] + public bool applyLighting = false; + + [Tooltip("Camera used to scale the mesh, to fill the camera's background. If left empty, it will default to the main camera in the scene.")] + public Camera foregroundCamera; + + [Tooltip("Background image (if any) that needs to be overlayed by this blend renderer.")] + public UnityEngine.UI.RawImage backgroundImage; + + + // references to KM and data + private KinectManager kinectManager = null; + private KinectInterop.SensorData sensorData = null; + private DepthSensorBase sensorInt = null; + private Material matRenderer = null; + + // depth image buffer (in depth camera resolution) + private ComputeBuffer depthImageBuffer = null; + + // textures + private Texture alphaTex = null; + private Texture colorTex = null; + + // lighting + private FragmentLighting lighting = new FragmentLighting(); + + // saved screen width & height + private int lastScreenW = 0; + private int lastScreenH = 0; + private int lastColorW = 0; + private int lastColorH = 0; + private float lastAnchorPos = 0f; + private Vector3 initialScale = Vector3.one; + + // distances + private float distToBackImage = 0f; + private float distToTransform = 0f; + + + void Start() + { + kinectManager = KinectManager.Instance; + initialScale = transform.localScale; + + if (backgroundRemovalManager == null) + { + backgroundRemovalManager = FindObjectOfType(); + } + + // get distance to back image + if(backgroundImage) + { + Canvas canvas = backgroundImage.canvas; + + if (canvas.renderMode == RenderMode.ScreenSpaceCamera) + distToBackImage = canvas.planeDistance; + else + distToBackImage = 0f; + } + + // get distance to transform + distToTransform = transform.localPosition.z; + + // set renderer material + Renderer meshRenderer = GetComponent(); + if (meshRenderer) + { + Shader blendShader = Shader.Find("Kinect/ForegroundBlendShader"); + if(blendShader != null) + { + matRenderer = new Material(blendShader); + meshRenderer.material = matRenderer; + } + } + + // get sensor data + if (kinectManager && kinectManager.IsInitialized() && backgroundRemovalManager && backgroundRemovalManager.enabled) + { + sensorData = kinectManager.GetSensorData(backgroundRemovalManager.sensorIndex); + sensorInt = sensorData != null ? (DepthSensorBase)sensorData.sensorInterface : null; + } + + if (foregroundCamera == null) + { + foregroundCamera = Camera.main; + } + + // find scene lights + Light[] sceneLights = GameObject.FindObjectsOfType(); + lighting.SetLightsAndBounds(sceneLights, transform.position, new Vector3(20f, 20f, 20f)); + + //Debug.Log("sceneLights: " + sceneLights.Length); + //for(int i = 0; i < sceneLights.Length; i++) + //{ + // Debug.Log(i.ToString() + " - " + sceneLights[i].name + " - " + sceneLights[i].type); + //} + } + + + void OnDestroy() + { + if (sensorData != null && sensorData.colorDepthBuffer != null) + { + sensorData.colorDepthBuffer.Release(); + sensorData.colorDepthBuffer = null; + } + + if (depthImageBuffer != null) + { + //depthImageCopy = null; + + depthImageBuffer.Release(); + depthImageBuffer = null; + } + + // release lighting resources + lighting.ReleaseResources(); + } + + + void Update() + { + if (matRenderer == null || sensorData == null || sensorInt == null) + return; + + if(alphaTex == null || alphaTex.width != sensorData.colorImageWidth || alphaTex.height != sensorData.colorImageHeight) + { + // alpha texture + alphaTex = backgroundRemovalManager.GetAlphaTex(); + + if(alphaTex != null) + { + matRenderer.SetTexture("_AlphaTex", alphaTex); + } + } + + if(colorTex == null || colorTex.width != sensorData.colorImageWidth || colorTex.height != sensorData.colorImageHeight) + { + // color texture + colorTex = !backgroundRemovalManager.computeAlphaMaskOnly ? backgroundRemovalManager.GetForegroundTex() : alphaTex; // sensorInt.pointCloudColorTexture + + if (colorTex != null) + { + matRenderer.SetInt("_TexResX", colorTex.width); + matRenderer.SetInt("_TexResY", colorTex.height); + + matRenderer.SetTexture("_ColorTex", colorTex); + } + } + + if (colorTex == null || alphaTex == null /**|| foregroundCamera == null*/) + return; + + if (sensorInt.pointCloudResolution == DepthSensorBase.PointCloudResolution.DepthCameraResolution) + { + int depthBufferLength = sensorData.depthImageWidth * sensorData.depthImageHeight / 2; + if (depthImageBuffer == null || depthImageBuffer.count != depthBufferLength) + { + //int depthImageLength = sensorData.depthImageWidth * sensorData.depthImageHeight; + //depthImageCopy = new ushort[depthImageLength]; + + depthImageBuffer = KinectInterop.CreateComputeBuffer(depthImageBuffer, depthBufferLength, sizeof(uint)); + matRenderer.SetBuffer("_DepthMap", depthImageBuffer); + //Debug.Log("Created depthImageBuffer with len: " + depthBufferLength); + } + + if (depthImageBuffer != null && sensorData.depthImage != null) + { + //KinectInterop.CopyBytes(sensorData.depthImage, sizeof(ushort), depthImageCopy, sizeof(ushort)); + KinectInterop.SetComputeBufferData(depthImageBuffer, sensorData.depthImage, depthBufferLength, sizeof(uint)); + } + + //Debug.Log("ForegroundBlendRenderer DepthFrameTime: " + lastDepthFrameTime); + } + else + { + int bufferLength = sensorData.colorImageWidth * sensorData.colorImageHeight / 2; + if (sensorData.colorDepthBuffer == null || sensorData.colorDepthBuffer.count != bufferLength) + { + sensorData.colorDepthBuffer = new ComputeBuffer(bufferLength, sizeof(uint)); + matRenderer.SetBuffer("_DepthMap", sensorData.colorDepthBuffer); + //Debug.Log("Created colorDepthBuffer with len: " + bufferLength); + } + + //Debug.Log("ForegroundBlendRenderer ColorDepthBufferTime: " + sensorData.lastColorDepthBufferTime); + } + + matRenderer.SetFloat("_DepthDistance", 0f); + matRenderer.SetFloat("_InvDepthVal", invalidDepthValue); + + int curScreenW = foregroundCamera ? foregroundCamera.pixelWidth : Screen.width; + int curScreenH = foregroundCamera ? foregroundCamera.pixelHeight : Screen.height; + if (lastScreenW != curScreenW || lastScreenH != curScreenH || lastColorW != sensorData.colorImageWidth || lastColorH != sensorData.colorImageHeight) + { + ScaleRendererTransform(curScreenW, curScreenH); + } + + Vector2 anchorPos = backgroundImage ? backgroundImage.rectTransform.anchoredPosition : Vector2.zero; + float curAnchorPos = anchorPos.x + anchorPos.y; // Mathf.Abs(anchorPos.x) + Mathf.Abs(anchorPos.y); + if (Mathf.Abs(curAnchorPos - lastAnchorPos) >= 20f) + { + //Debug.Log("anchorPos: " + anchorPos + ", curAnchorPos: " + curAnchorPos + ", lastAnchorPos: " + lastAnchorPos + ", diff: " + Mathf.Abs(curAnchorPos - lastAnchorPos)); + CenterRendererTransform(anchorPos, curAnchorPos); + } + + // update lighting parameters + lighting.UpdateLighting(matRenderer, applyLighting); + } + + // scales the renderer's transform properly + private void ScaleRendererTransform(int curScreenW, int curScreenH) + { + lastScreenW = curScreenW; + lastScreenH = curScreenH; + lastColorW = sensorData.colorImageWidth; + lastColorH = sensorData.colorImageHeight; + + Vector3 localScale = Vector3.one; // transform.localScale; + + if (maximizeOnScreen && foregroundCamera) + { + float objectZ = distToTransform; // transform.localPosition.z; // the transform should be a child of the camera + float screenW = foregroundCamera.pixelWidth; + float screenH = foregroundCamera.pixelHeight; + + if (backgroundImage) + { + PortraitBackground portraitBack = backgroundImage.gameObject.GetComponent(); + + if (portraitBack != null) + { + Rect backRect = portraitBack.GetBackgroundRect(); + screenW = backRect.width; + screenH = backRect.height; + } + } + + Vector3 vLeft = foregroundCamera.ScreenToWorldPoint(new Vector3(0f, screenH / 2f, objectZ)); + Vector3 vRight = foregroundCamera.ScreenToWorldPoint(new Vector3(screenW, screenH / 2f, objectZ)); + float distLeftRight = (vRight - vLeft).magnitude; + + Vector3 vBottom = foregroundCamera.ScreenToWorldPoint(new Vector3(screenW / 2f, 0f, objectZ)); + Vector3 vTop = foregroundCamera.ScreenToWorldPoint(new Vector3(screenW / 2f, screenH, objectZ)); + float distBottomTop = (vTop - vBottom).magnitude; + + localScale.x = distLeftRight / initialScale.x; + localScale.y = distBottomTop / initialScale.y; + //Debug.Log("ForegroundRenderer scale: " + localScale + ", screenW: " + screenW + ", screenH: " + screenH + ", objZ: " + objectZ + + // "\nleft: " + vLeft + ", right: " + vRight + ", bottom: " + vBottom + ", vTop: " + vTop + + // "\ndH: " + distLeftRight + ", dV: " + distBottomTop + ", initialScale: " + initialScale); + } + + // scale according to color-tex resolution + //localScale.y = localScale.x * colorTex.height / colorTex.width; + + // apply color image scale + Vector3 colorImageScale = kinectManager.GetColorImageScale(backgroundRemovalManager.sensorIndex); + if (colorImageScale.x < 0f) + localScale.x = -localScale.x; + if (colorImageScale.y < 0f) + localScale.y = -localScale.y; + + transform.localScale = localScale; + } + + // centers the renderer's transform, according to the background image + private void CenterRendererTransform(Vector2 anchorPos, float curAnchorPos) + { + lastAnchorPos = curAnchorPos; + + if (foregroundCamera && distToBackImage > 0f) + { + float objectZ = distToTransform; // transform.localPosition.z; // the transform should be a child of the camera + float screenW = sensorData.colorImageWidth; // foregroundCamera.pixelWidth; + float screenH = sensorData.colorImageHeight; // foregroundCamera.pixelHeight; + + Vector2 screenCenter = new Vector2(screenW / 2f, screenH / 2f); + Vector2 anchorScaled = new Vector2(anchorPos.x * distToTransform / distToBackImage, anchorPos.y * distToTransform / distToBackImage); + Vector3 vCenter = foregroundCamera.ScreenToWorldPoint(new Vector3(screenCenter.x + anchorScaled.x, screenCenter.y + anchorScaled.y, objectZ)); + transform.position = vCenter; + + //Vector3 vLocalPos = transform.localPosition; + //string sLocalPos = string.Format("({0:F3}, {1:F3}, {2:F3})", vLocalPos.x, vLocalPos.y, vLocalPos.z); + //Debug.Log("ForegroundRenderer anchor: " + anchorPos + ", screenW: " + screenW + ", screenH: " + screenH + ", objZ: " + objectZ + ", localPos: " + sLocalPos); + } + } + + } +} diff --git a/Assets/Azure/KinectScripts/ForegroundBlendRenderer.cs.meta b/Assets/Azure/KinectScripts/ForegroundBlendRenderer.cs.meta new file mode 100644 index 0000000..443fa02 --- /dev/null +++ b/Assets/Azure/KinectScripts/ForegroundBlendRenderer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fd5b5453b69e67b43b1c57c4d95ccada +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/ForegroundToRawImage.cs b/Assets/Azure/KinectScripts/ForegroundToRawImage.cs new file mode 100644 index 0000000..e619773 --- /dev/null +++ b/Assets/Azure/KinectScripts/ForegroundToRawImage.cs @@ -0,0 +1,62 @@ +using UnityEngine; +using System.Collections; +using UnityEngine.UI; +using com.rfilkov.kinect; + + +namespace com.rfilkov.components +{ + /// + /// ForegroundToRawImage sets the texture of the RawImage-component to be the BRM's foreground texture. + /// + public class ForegroundToRawImage : MonoBehaviour + { + private RawImage rawImage; + private KinectManager kinectManager = null; + private BackgroundRemovalManager backManager = null; + + + void Start() + { + rawImage = GetComponent(); + + kinectManager = KinectManager.Instance; + backManager = FindObjectOfType(); + } + + + void Update() + { + if (rawImage && rawImage.texture == null) + { + if (kinectManager && backManager && backManager.enabled /**&& backManager.IsBackgroundRemovalInitialized()*/) + { + rawImage.texture = backManager.GetForegroundTex(); // user's foreground texture + rawImage.rectTransform.localScale = kinectManager.GetColorImageScale(backManager.sensorIndex); + rawImage.color = Color.white; + + } + } + //else if (rawImage && rawImage.texture != null) + //{ + // if (KinectManager.Instance == null) + // { + // rawImage.texture = null; + // rawImage.color = Color.clear; + // } + //} + } + + + void OnApplicationPause(bool isPaused) + { + // fix for app pause & restore (UWP) + if (isPaused && rawImage && rawImage.texture != null) + { + rawImage.texture = null; + rawImage.color = Color.clear; + } + } + + } +} diff --git a/Assets/Azure/KinectScripts/ForegroundToRawImage.cs.meta b/Assets/Azure/KinectScripts/ForegroundToRawImage.cs.meta new file mode 100644 index 0000000..90f4bde --- /dev/null +++ b/Assets/Azure/KinectScripts/ForegroundToRawImage.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0ca948b232bd1ce48b254bb84048cbab +timeCreated: 1505645515 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/ForegroundToRenderer.cs b/Assets/Azure/KinectScripts/ForegroundToRenderer.cs new file mode 100644 index 0000000..a618124 --- /dev/null +++ b/Assets/Azure/KinectScripts/ForegroundToRenderer.cs @@ -0,0 +1,80 @@ +using UnityEngine; +using System.Collections; +using com.rfilkov.kinect; + + +namespace com.rfilkov.components +{ + /// + /// ForegroundToRenderer sets the texture of the Renderer-component to be the BRM's foreground texture. + /// + public class ForegroundToRenderer : MonoBehaviour + { + [Tooltip("Reference to background removal manager. If left to None, it looks up the first available BR-manager in the scene.")] + public BackgroundRemovalManager backgroundRemovalManager = null; + + + // component references + private Renderer thisRenderer = null; + private KinectManager kinectManager = null; + + + void Start() + { + thisRenderer = GetComponent(); + kinectManager = KinectManager.Instance; + + if(backgroundRemovalManager == null) + { + backgroundRemovalManager = FindObjectOfType(); + } + + if (kinectManager && kinectManager.IsInitialized() && backgroundRemovalManager && backgroundRemovalManager.enabled) + { + Vector3 localScale = transform.localScale; + localScale.z = localScale.x * kinectManager.GetColorImageHeight(backgroundRemovalManager.sensorIndex) / kinectManager.GetColorImageWidth(backgroundRemovalManager.sensorIndex); + //localScale.x = -localScale.x; + + // apply color image scale + Vector3 colorImageScale = kinectManager.GetColorImageScale(backgroundRemovalManager.sensorIndex); + if (colorImageScale.x > 0f) + localScale.x = -localScale.x; + if (colorImageScale.y > 0f) + localScale.z = -localScale.z; + + transform.localScale = localScale; + } + } + + + void Update() + { + if (thisRenderer && thisRenderer.material.mainTexture == null) + { + if (kinectManager && backgroundRemovalManager && backgroundRemovalManager.enabled /**&& backManager.IsBackgroundRemovalInitialized()*/) + { + thisRenderer.material.mainTexture = backgroundRemovalManager.GetForegroundTex(); + //Debug.Log("BR-manager: " + backroundRemovalManager + ", user index: " + backroundRemovalManager.playerIndex); + } + } + //else if (thisRenderer && thisRenderer.material.mainTexture != null) + //{ + // if (KinectManager.Instance == null) + // { + // thisRenderer.sharedMaterial.mainTexture = null; + // } + //} + } + + + void OnApplicationPause(bool isPaused) + { + // fix for app pause & restore (UWP) + if (isPaused && thisRenderer && thisRenderer.material.mainTexture != null) + { + thisRenderer.sharedMaterial.mainTexture = null; + } + } + + } +} diff --git a/Assets/Azure/KinectScripts/ForegroundToRenderer.cs.meta b/Assets/Azure/KinectScripts/ForegroundToRenderer.cs.meta new file mode 100644 index 0000000..27dfe59 --- /dev/null +++ b/Assets/Azure/KinectScripts/ForegroundToRenderer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1516a5d945302e546a218c0c7a3f048c +timeCreated: 1478884175 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/FragmentLighting.cs b/Assets/Azure/KinectScripts/FragmentLighting.cs new file mode 100644 index 0000000..fd16218 --- /dev/null +++ b/Assets/Azure/KinectScripts/FragmentLighting.cs @@ -0,0 +1,184 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace com.rfilkov.components +{ + public class FragmentLighting + { + // lighting structures + private Light[] sceneLights = null; + private Bounds lightBounds; + + private Vector4[] dirLightData = new Vector4[2]; + + [SerializeField] + public struct PointLight + { + public Vector4 color; + public float range; + public Vector3 pos; + } + + private const int SIZE_POINT_LIGHT = 32; + private const int MAX_POINT_LIGHTS = 8; + + [SerializeField] + private PointLight[] pointLights = new PointLight[MAX_POINT_LIGHTS]; + private ComputeBuffer pointLightsBuffer = null; + private int pointLightsNumber = 0; + + [SerializeField] + public struct SpotLight + { + public Vector4 color; + public Vector3 pos; + public Vector4 dir; + public Vector4 pars; + } + + private const int SIZE_SPOT_LIGHT = 60; + private const int MAX_SPOT_LIGHTS = 8; + + [SerializeField] + public SpotLight[] spotLights = new SpotLight[MAX_SPOT_LIGHTS]; + private ComputeBuffer spotLightsBuffer = null; + private int spotLightsNumber = 0; + + const int NUMBER_LIGHTS_MAX = MAX_POINT_LIGHTS / 2 + MAX_SPOT_LIGHTS / 2; + + + /// + /// Sets the scene lights and lighted volume bounds. + /// + public void SetLightsAndBounds(Light[] sceneLights, Vector3 centerPos, Vector3 sizeBounds) + { + this.sceneLights = sceneLights; + this.lightBounds = new Bounds(centerPos, sizeBounds); + } + + + /// + /// Releases the used native resources. + /// + public void ReleaseResources() + { + if (pointLightsBuffer != null) + { + pointLightsBuffer.Release(); + pointLightsBuffer = null; + } + + if (spotLightsBuffer != null) + { + spotLightsBuffer.Release(); + spotLightsBuffer = null; + } + } + + + /// + /// Updates the lighting parameters of the material. + /// + public void UpdateLighting(Material matRenderer, bool bApplyLighting) + { + matRenderer.SetInt("_ApplyLights", bApplyLighting ? 1 : 0); + matRenderer.SetInt("_ApplyShadows", 0); + matRenderer.SetFloat("_Metallic", 0); + + ApplyLighting(matRenderer, bApplyLighting); + } + + // applies the current lights + private void ApplyLighting(Material matRenderer, bool bApplyLighting) + { + const float interiorCone = 0.1f; // interior cone of the spotlight + dirLightData[1] = Vector4.zero; + + int pi = 0; + int si = 0; + + if(bApplyLighting) + { + foreach (Light light in sceneLights) + { + if (!light.gameObject.activeInHierarchy || !light.enabled) + continue; + + if (light.type == LightType.Directional || Vector3.Distance(lightBounds.center, light.transform.position) < (light.range + lightBounds.extents.x)) + { + if (light.type != LightType.Directional && light.shadows != LightShadows.None) + { + light.shadows = LightShadows.None; + } + + if (light.type == LightType.Point) + { + if (pi < MAX_POINT_LIGHTS) + { + pointLights[pi].color = light.color * light.intensity; + pointLights[pi].pos = light.gameObject.transform.position; + pointLights[pi].range = light.range; + + pi++; + } + } + else if (light.type == LightType.Spot) + { + if (si < MAX_SPOT_LIGHTS) + { + Vector3 vLightFwd = light.gameObject.transform.forward.normalized; + + spotLights[si].color = light.color * light.intensity; + spotLights[si].pos = light.gameObject.transform.position; + spotLights[si].dir = new Vector4(vLightFwd.x, vLightFwd.y, vLightFwd.z, Mathf.Cos((light.spotAngle / 2.0f) * Mathf.Deg2Rad)); + spotLights[si].pars = new Vector4(light.spotAngle, light.intensity, 1.0f / light.range, interiorCone); + + si++; + } + } + else if (light.type == LightType.Directional) + { + Vector3 vLightFwd = light.gameObject.transform.forward.normalized; + dirLightData[0] = new Vector4(vLightFwd.x, vLightFwd.y, vLightFwd.z, 0); + dirLightData[1] = light.color * light.intensity; + } + + } + } + } + + if (pointLightsBuffer == null) + { + pointLightsBuffer = new ComputeBuffer(MAX_POINT_LIGHTS, SIZE_POINT_LIGHT); + pointLightsBuffer.SetData(pointLights); + + matRenderer.SetBuffer("_PointLights", pointLightsBuffer); + } + else + { + pointLightsBuffer.SetData(pointLights); + } + + if (spotLightsBuffer == null) + { + spotLightsBuffer = new ComputeBuffer(MAX_SPOT_LIGHTS, SIZE_SPOT_LIGHT); + spotLightsBuffer.SetData(spotLights); + matRenderer.SetBuffer("_SpotLights", spotLightsBuffer); + } + else + { + spotLightsBuffer.SetData(spotLights); + } + + pointLightsNumber = pi; + spotLightsNumber = si; + + matRenderer.SetInt("_PointLightsNumber", pointLightsNumber); + matRenderer.SetInt("_SpotLightsNumber", spotLightsNumber); + + matRenderer.SetVectorArray("_DirectionalLights", dirLightData); + } + + } +} diff --git a/Assets/Azure/KinectScripts/FragmentLighting.cs.meta b/Assets/Azure/KinectScripts/FragmentLighting.cs.meta new file mode 100644 index 0000000..5697a71 --- /dev/null +++ b/Assets/Azure/KinectScripts/FragmentLighting.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fe7f7748efd77d2498b7b6f26646756d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/HmdHeadMover.cs b/Assets/Azure/KinectScripts/HmdHeadMover.cs new file mode 100644 index 0000000..bd23e35 --- /dev/null +++ b/Assets/Azure/KinectScripts/HmdHeadMover.cs @@ -0,0 +1,184 @@ +using UnityEngine; +using System.Collections; + + +namespace com.rfilkov.components +{ + /// + /// HmdHeadMover moves the avatar model, according to the camera position reported by the HMD tracker. + /// Don't forget to enable the 'External root motion'-setting of the AvatarController-component in this case. + /// + public class HmdHeadMover : MonoBehaviour + { + [Tooltip("The transform that needs to be followed by the avatar's head, usually the eye-camera position reported by the HMD tracker. When left empty, it defaults to the main camera's position.")] + public Transform targetTransform; + + [Tooltip("The transform of the avatar's head. When left empty, it defaults to the head position, as reported by Animator-component.")] + private Transform headTransform; + + [Tooltip("Whether the avatar's feet must stick to the ground.")] + public bool groundedFeet = false; + + [Tooltip("The transform of the avatar's left toes, if grounding is enabled.")] + private Transform leftToes; + + [Tooltip("The transform of the avatar's right toes, if grounding is enabled.")] + private Transform rightToes; + + + // grounder constants and variables + //private const int raycastLayers = ~2; // Ignore Raycast + private const float maxFootDistanceGround = 0.02f; // maximum distance from lower foot to the ground + private const float maxFootDistanceTime = 0.02f; // 0.2f; // maximum allowed time, the lower foot to be distant from the ground + //private Transform leftFoot, rightFoot; + + private float fFootDistanceInitial = 0f; + private float fFootDistance = 0f; + private float fFootDistanceTime = 0f; + + + void Start() + { + // if the target transform is not set, use the camera transform + if (targetTransform == null && Camera.main != null) + { + targetTransform = Camera.main.transform; + } + } + + + void LateUpdate() + { + // move the head and body to the target + MoveHeadToTarget(); + } + + + // moves the avatar's head to the target, and the rest of its body too + private void MoveHeadToTarget() + { + if (headTransform == null) + { + Animator animatorComponent = GetComponent(); + headTransform = animatorComponent ? animatorComponent.GetBoneTransform(HumanBodyBones.Head) : null; + } + + if (!targetTransform || !headTransform) + return; + + Transform trans = headTransform.transform; + Vector3 posTrans = targetTransform.position; + + while (trans.parent != null) + { + Transform transParent = trans.parent; + + Vector3 dirParent = transParent.position - trans.position; + posTrans += dirParent; + + trans = transParent; + } + + if (groundedFeet) + { + // keep the current correction + float fLastTgtY = posTrans.y; + posTrans.y += fFootDistance; + + float fNewDistance = GetDistanceToGround(); + float fNewDistanceTime = Time.time; + + // Debug.Log(string.Format("PosY: {0:F2}, LastY: {1:F2}, TgrY: {2:F2}, NewDist: {3:F2}, Corr: {4:F2}, Time: {5:F2}", bodyRoot != null ? bodyRoot.position.y : transform.position.y, + // fLastTgtY, targetPos.y, fNewDistance, fFootDistance, fNewDistanceTime)); + + if (Mathf.Abs(fNewDistance) >= 0.01f && Mathf.Abs(fNewDistance - fFootDistanceInitial) >= maxFootDistanceGround) + { + if ((fNewDistanceTime - fFootDistanceTime) >= maxFootDistanceTime) + { + fFootDistance += (fNewDistance - fFootDistanceInitial); + fFootDistanceTime = fNewDistanceTime; + + posTrans.y = fLastTgtY + fFootDistance; + + // Debug.Log(string.Format(" >> change({0:F2})! - Corr: {1:F2}, LastY: {2:F2}, TgrY: {3:F2} at time {4:F2}", + // (fNewDistance - fFootDistanceInitial), fFootDistance, fLastTgtY, targetPos.y, fFootDistanceTime)); + } + } + else + { + fFootDistanceTime = fNewDistanceTime; + } + } + + // set root transform position + if (trans) + { + trans.position = posTrans; + } + + // Vector3 posDiff = targetTransform.position - headTransform.position; + // transform.position += posDiff; + + //Debug.Log("PosTrans: " + posTrans + ", Transofrm: " + transform.position); + } + + + // returns the lower distance distance from left or right foot to the ground, or 1000f if no LF/RF transforms are found + private float GetDistanceToGround() + { + if (leftToes == null && rightToes == null) + { + Animator animatorComponent = GetComponent(); + + if (animatorComponent) + { + leftToes = animatorComponent.GetBoneTransform(HumanBodyBones.LeftToes); + rightToes = animatorComponent.GetBoneTransform(HumanBodyBones.RightToes); + } + } + + float fDistMin = 1000f; + float fDistLeft = leftToes ? GetTransformDistanceToGround(leftToes) : fDistMin; + float fDistRight = rightToes ? GetTransformDistanceToGround(rightToes) : fDistMin; + fDistMin = Mathf.Abs(fDistLeft) < Mathf.Abs(fDistRight) ? fDistLeft : fDistRight; + + if (fDistMin == 1000f) + { + fDistMin = 0f; // fFootDistanceInitial; + } + + // Debug.Log (string.Format ("LFootY: {0:F2}, Dist: {1:F2}, RFootY: {2:F2}, Dist: {3:F2}, Min: {4:F2}", leftToes ? leftToes.position.y : 0f, fDistLeft, + // rightToes ? rightToes.position.y : 0f, fDistRight, fDistMin)); + + return fDistMin; + } + + + // returns distance from the given transform to the underlying object. + private float GetTransformDistanceToGround(Transform trans) + { + if (!trans) + return 0f; + + // RaycastHit hit; + // if(Physics.Raycast(trans.position, Vector3.down, out hit, 2f, raycastLayers)) + // { + // return -hit.distance; + // } + // else if(Physics.Raycast(trans.position, Vector3.up, out hit, 2f, raycastLayers)) + // { + // return hit.distance; + // } + // else + // { + // if (trans.position.y < 0) + // return -trans.position.y; + // else + // return 1000f; + // } + + return -trans.position.y; + } + + } +} diff --git a/Assets/Azure/KinectScripts/HmdHeadMover.cs.meta b/Assets/Azure/KinectScripts/HmdHeadMover.cs.meta new file mode 100644 index 0000000..32a50cb --- /dev/null +++ b/Assets/Azure/KinectScripts/HmdHeadMover.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 7dcb1ccbe48396140817168afcabd300 +timeCreated: 1505201861 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/InteractionInputModule.cs b/Assets/Azure/KinectScripts/InteractionInputModule.cs new file mode 100644 index 0000000..3650062 --- /dev/null +++ b/Assets/Azure/KinectScripts/InteractionInputModule.cs @@ -0,0 +1,390 @@ +using System; +using System.Collections; +using UnityEngine; +using UnityEngine.Serialization; +using UnityEngine.EventSystems; + + +namespace com.rfilkov.components +{ + /// + /// InteractionInputModule is the input module that can be used as component of the Unity-UI EventSystem. + /// + public class InteractionInputModule : PointerInputModule, InteractionListenerInterface + { + [Tooltip("Index of the player, tracked by the respective InteractionManager. 0 means the 1st player, 1 - the 2nd one, 2 - the 3rd one, etc.")] + public int playerIndex = 0; + + [Tooltip("Whether the left hand interaction is allowed by the respective InteractionManager.")] + public bool leftHandInteraction = true; + + [Tooltip("Whether the right hand interaction is allowed by the respective InteractionManager.")] + public bool rightHandInteraction = true; + + [Tooltip("Whether to process the hand cursor movements (i.e for hovering ui-elements), or not.")] + public bool processCursorMovement = false; + + + //private bool m_isLeftHand = false; + private bool m_leftHandGrip = false; + private bool m_rightHandGrip = false; + private Vector3 m_handCursorPos = Vector3.zero; + private Vector2 m_lastCursorPos = Vector2.zero; + + private PointerEventData.FramePressState m_framePressState = PointerEventData.FramePressState.NotChanged; + private readonly MouseState m_MouseState = new MouseState(); + + // interaction manager for the same player + private InteractionManager intManager; + + // The single instance of InteractionInputModule + //private static InteractionInputModule instance; + + + ///// + ///// Gets the single InteractionInputModule instance. + ///// + ///// The InteractionInputModule instance. + //public static InteractionInputModule Instance + //{ + // get + // { + // return instance; + // } + //} + + //protected InteractionInputModule() + //{ + // instance = this; + //} + + + protected override void Awake() + { + base.Awake(); + + intManager = InteractionManager.GetInstance(playerIndex, leftHandInteraction, rightHandInteraction); + } + + + [SerializeField] + [FormerlySerializedAs("m_AllowActivationOnMobileDevice")] + private bool m_ForceModuleActive; + + + public bool forceModuleActive + { + get { return m_ForceModuleActive; } + set { m_ForceModuleActive = value; } + } + + public override bool IsModuleSupported() + { + return m_ForceModuleActive || intManager != null; + } + + public override bool ShouldActivateModule() + { + if (!base.ShouldActivateModule()) + return false; + + if (intManager == null) + { + intManager = InteractionManager.GetInstance(playerIndex, leftHandInteraction, rightHandInteraction); + } + + //bool shouldActivate |= (InteractionManager.Instance != null && InteractionManager.Instance.IsInteractionInited()); + bool shouldActivate = m_ForceModuleActive || (m_framePressState != PointerEventData.FramePressState.NotChanged); + + if (!shouldActivate && processCursorMovement && intManager && + (intManager.IsLeftHandPrimary() || intManager.IsRightHandPrimary())) + { + bool bIsLeftHand = intManager.IsLeftHandPrimary(); + + // check for cursor pos change + Vector2 handCursorPos = bIsLeftHand ? intManager.GetLeftHandScreenPos() : intManager.GetRightHandScreenPos(); + + if (handCursorPos != m_lastCursorPos) + { + m_lastCursorPos = handCursorPos; + shouldActivate = true; + } + } + + return shouldActivate; + } + + // public override void ActivateModule() + // { + // base.ActivateModule(); + // + // var toSelect = eventSystem.currentSelectedGameObject; + // if (toSelect == null) + // toSelect = eventSystem.firstSelectedGameObject; + // + // eventSystem.SetSelectedGameObject(toSelect, GetBaseEventData()); + // } + + // public override void DeactivateModule() + // { + // base.DeactivateModule(); + // ClearSelection(); + // } + + public override void Process() + { + if (intManager == null) + { + intManager = InteractionManager.GetInstance(playerIndex, leftHandInteraction, rightHandInteraction); + } + + CheckGrippedCursorPosition(); + ProcessInteractionEvent(); + } + + private void CheckGrippedCursorPosition() + { + if (intManager) + { + bool bIsLeftHand = intManager.IsLeftHandPrimary(); + + // check for gripped hand + bool bHandGrip = bIsLeftHand ? m_leftHandGrip : m_rightHandGrip; + + // check for cursor pos change + Vector2 handCursorPos = bIsLeftHand ? intManager.GetLeftHandScreenPos() : intManager.GetRightHandScreenPos(); + + if (bHandGrip && handCursorPos != (Vector2)m_handCursorPos) + { + // emulate new press + m_framePressState = PointerEventData.FramePressState.Pressed; + m_handCursorPos = handCursorPos; + } + else if (processCursorMovement) + { + m_handCursorPos = handCursorPos; + } + } + } + + protected void ProcessInteractionEvent() + { + // Emulate mouse data + var mouseData = GetMousePointerEventData(0); + var leftButtonData = mouseData.GetButtonState(PointerEventData.InputButton.Left).eventData; + + // Process the interaction data + ProcessHandPressRelease(leftButtonData); + ProcessMove(leftButtonData.buttonData); + ProcessDrag(leftButtonData.buttonData); + } + + protected override MouseState GetMousePointerEventData(int id) + { + // Populate the left button... + PointerEventData leftData; + var created = GetPointerData(kMouseLeftId, out leftData, true); + + leftData.Reset(); + + Vector2 handPos = new Vector2(m_handCursorPos.x * Screen.width, m_handCursorPos.y * Screen.height); + + if (created) + { + leftData.position = handPos; + } + + leftData.delta = handPos - leftData.position; + leftData.position = handPos; + //leftData.scrollDelta = 0f; + leftData.button = PointerEventData.InputButton.Left; + + eventSystem.RaycastAll(leftData, m_RaycastResultCache); + var raycast = FindFirstRaycast(m_RaycastResultCache); + leftData.pointerCurrentRaycast = raycast; + m_RaycastResultCache.Clear(); + + m_MouseState.SetButtonState(PointerEventData.InputButton.Left, m_framePressState, leftData); + m_framePressState = PointerEventData.FramePressState.NotChanged; + + return m_MouseState; + } + + /// + /// Process the current hand press or release event. + /// + protected void ProcessHandPressRelease(MouseButtonEventData data) + { + var pointerEvent = data.buttonData; + var currentOverGo = pointerEvent.pointerCurrentRaycast.gameObject; + + // PointerDown notification + if (data.PressedThisFrame()) + { + pointerEvent.eligibleForClick = true; + pointerEvent.delta = Vector2.zero; + pointerEvent.dragging = false; + pointerEvent.useDragThreshold = true; + pointerEvent.pressPosition = pointerEvent.position; + pointerEvent.pointerPressRaycast = pointerEvent.pointerCurrentRaycast; + + DeselectIfSelectionChanged(currentOverGo, pointerEvent); + + // search for the control that will receive the press + // if we can't find a press handler set the press + // handler to be what would receive a click. + var newPressed = ExecuteEvents.ExecuteHierarchy(currentOverGo, pointerEvent, ExecuteEvents.pointerDownHandler); + + // didnt find a press handler... search for a click handler + if (newPressed == null) + newPressed = ExecuteEvents.GetEventHandler(currentOverGo); + + //Debug.Log("Pressed: " + newPressed); + + float time = Time.unscaledTime; + + if (newPressed == pointerEvent.lastPress) + { + var diffTime = time - pointerEvent.clickTime; + if (diffTime < 0.3f) + ++pointerEvent.clickCount; + else + pointerEvent.clickCount = 1; + + pointerEvent.clickTime = time; + } + else + { + pointerEvent.clickCount = 1; + } + + pointerEvent.pointerPress = newPressed; + pointerEvent.rawPointerPress = currentOverGo; + + pointerEvent.clickTime = time; + + // Save the drag handler as well + pointerEvent.pointerDrag = ExecuteEvents.GetEventHandler(currentOverGo); + + if (pointerEvent.pointerDrag != null) + ExecuteEvents.Execute(pointerEvent.pointerDrag, pointerEvent, ExecuteEvents.initializePotentialDrag); + } + + // PointerUp notification + if (data.ReleasedThisFrame()) + { + // Debug.Log("Executing pressup on: " + pointer.pointerPress); + ExecuteEvents.Execute(pointerEvent.pointerPress, pointerEvent, ExecuteEvents.pointerUpHandler); + + // see if we mouse up on the same element that we clicked on... + var pointerUpHandler = ExecuteEvents.GetEventHandler(currentOverGo); + + // PointerClick and Drop events + if (pointerEvent.pointerPress != null && pointerEvent.pointerPress == pointerUpHandler && pointerEvent.eligibleForClick) + { + ExecuteEvents.Execute(pointerEvent.pointerPress, pointerEvent, ExecuteEvents.pointerClickHandler); + } + else if (pointerEvent.pointerDrag != null && pointerEvent.dragging) + { + ExecuteEvents.ExecuteHierarchy(currentOverGo, pointerEvent, ExecuteEvents.dropHandler); + } + + pointerEvent.eligibleForClick = false; + pointerEvent.pointerPress = null; + pointerEvent.rawPointerPress = null; + + if (pointerEvent.pointerDrag != null && pointerEvent.dragging) + ExecuteEvents.Execute(pointerEvent.pointerDrag, pointerEvent, ExecuteEvents.endDragHandler); + + pointerEvent.dragging = false; + pointerEvent.pointerDrag = null; + + // redo pointer enter / exit to refresh state + // so that if we moused over somethign that ignored it before + // due to having pressed on something else + // it now gets it. + if (currentOverGo != pointerEvent.pointerEnter) + { + HandlePointerExitAndEnter(pointerEvent, null); + HandlePointerExitAndEnter(pointerEvent, currentOverGo); + } + } + } + + + public void HandGripDetected(ulong userId, int userIndex, bool isRightHand, bool isHandInteracting, Vector3 handScreenPos) + { + if (userIndex != playerIndex || !isHandInteracting) + return; + + bool bHandValid = (leftHandInteraction && !isRightHand) || (rightHandInteraction && isRightHand); + if (!bHandValid) + return; + + //Debug.Log("HandGripDetected"); + + m_framePressState = PointerEventData.FramePressState.Pressed; + //m_isLeftHand = !isRightHand; + m_handCursorPos = handScreenPos; + + if (!isRightHand) + m_leftHandGrip = true; + else + m_rightHandGrip = true; + } + + public void HandReleaseDetected(ulong userId, int userIndex, bool isRightHand, bool isHandInteracting, Vector3 handScreenPos) + { + if (userIndex != playerIndex || !isHandInteracting) + return; + + bool bHandValid = (leftHandInteraction && !isRightHand) || (rightHandInteraction && isRightHand); + if (!bHandValid) + return; + + //Debug.Log("HandReleaseDetected"); + + m_framePressState = PointerEventData.FramePressState.Released; + //m_isLeftHand = !isRightHand; + m_handCursorPos = handScreenPos; + + if (!isRightHand) + m_leftHandGrip = false; + else + m_rightHandGrip = false; + } + + public bool HandClickDetected(ulong userId, int userIndex, bool isRightHand, Vector3 handScreenPos) + { + if (userIndex != playerIndex) + return false; + + bool bHandValid = (leftHandInteraction && !isRightHand) || (rightHandInteraction && isRightHand); + if (!bHandValid) + return false; + + //Debug.Log("HandClickDetected"); + + StartCoroutine(EmulateMouseClick(isRightHand, handScreenPos)); + return true; + } + + + private IEnumerator EmulateMouseClick(bool isRightHand, Vector3 handScreenPos) + { + m_framePressState = PointerEventData.FramePressState.Pressed; + //m_isLeftHand = !isRightHand; + m_handCursorPos = handScreenPos; + + yield return new WaitForSeconds(0.2f); + + m_framePressState = PointerEventData.FramePressState.Released; + //m_isLeftHand = !isRightHand; + m_handCursorPos = handScreenPos; + + yield return null; + } + + + } +} diff --git a/Assets/Azure/KinectScripts/InteractionInputModule.cs.meta b/Assets/Azure/KinectScripts/InteractionInputModule.cs.meta new file mode 100644 index 0000000..e974cef --- /dev/null +++ b/Assets/Azure/KinectScripts/InteractionInputModule.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 243c3bcf7560250429841bbe09055f45 +timeCreated: 1475044533 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/InteractionManager.cs b/Assets/Azure/KinectScripts/InteractionManager.cs new file mode 100644 index 0000000..b17c364 --- /dev/null +++ b/Assets/Azure/KinectScripts/InteractionManager.cs @@ -0,0 +1,1123 @@ +using UnityEngine; +using UnityEngine.UI; +using System.Collections; +using System.Collections.Generic; +using com.rfilkov.kinect; + + +namespace com.rfilkov.components +{ + /// + /// This interface has to be implemented by all interaction listeners. + /// + public interface InteractionListenerInterface + { + /// + /// Invoked when hand grip is detected. + /// + /// User ID + /// User index + /// Whether it is the right hand or not + /// Whether this hand is the interacting one or not + /// Hand screen position, including depth (Z) + void HandGripDetected(ulong userId, int userIndex, bool isRightHand, bool isHandInteracting, Vector3 handScreenPos); + + /// + /// Invoked when hand release is detected. + /// + /// User ID + /// User index + /// Whether it is the right hand or not + /// Whether this hand is the interacting one or not + /// Hand screen position, including depth (Z) + void HandReleaseDetected(ulong userId, int userIndex, bool isRightHand, bool isHandInteracting, Vector3 handScreenPos); + + /// + /// Invoked when hand click is detected. + /// + /// true, if the click detection must be restarted, false otherwise. + /// User ID + /// User index + /// Whether it is the right hand or not + /// Hand screen position, including depth (Z) + bool HandClickDetected(ulong userId, int userIndex, bool isRightHand, Vector3 handScreenPos); + } + + + /// + /// InteractionManager is the component that controls the hand cursor and manages the hand interactions. + /// + public class InteractionManager : MonoBehaviour + { + /// + /// The hand event types. + /// + public enum HandEventType : int + { + None = 0, + Grip = 1, + Release = 2 + } + + [Tooltip("Index of the player, tracked by this component. 0 means the 1st player, 1 - the 2nd one, 2 - the 3rd one, etc.")] + public int playerIndex = 0; + + [Tooltip("Whether the left hand interaction is allowed.")] + public bool leftHandInteraction = true; + + [Tooltip("Whether the right hand interaction is allowed.")] + public bool rightHandInteraction = true; + + [Tooltip("The image that may be used to show the hand-moved cursor on the screen or not. The sprite textures below need to be set too.")] + public Image guiHandCursor; + + [Tooltip("Hand-cursor sprite texture, for the hand-grip state.")] + public Sprite gripHandTexture; + [Tooltip("Hand-cursor sprite texture, for the hand-release state.")] + public Sprite releaseHandTexture; + [Tooltip("Hand-cursor sprite texture, for the non-tracked state.")] + public Sprite normalHandTexture; + + [Tooltip("Whether the hand cursor should overlay user's hand on color camera image, or not.")] + public bool handOverlayCursor = false; + + [Tooltip("Depth sensor index used for color camera overlay - 0 is the 1st one, 1 - the 2nd one, etc.")] + public int sensorIndex = 0; + + [Tooltip("Smooth factor for cursor movement.")] + public float smoothFactor = 10f; + + [Tooltip("Whether the hand clicks (i.e. hand staying in place for ~2 seconds) are enabled or not.")] + public bool allowHandClicks = true; + + [Tooltip("Whether the hand pushes need to be considered as clicks or not.")] + public bool allowPushToClick = true; + + [Tooltip("Whether the hand cursor and interactions control the mouse cursor or not.")] + public bool controlMouseCursor = false; + + [Tooltip("Whether the hand grips and releases control mouse dragging or not.")] + public bool controlMouseDrag = false; + + // Bool to specify whether to convert Unity screen coordinates to full screen mouse coordinates + //public bool convertMouseToFullScreen = false; + + [Tooltip("List of the interaction listeners in the scene. If the list is empty, the available interaction listeners will be detected at scene start up.")] + public List interactionListeners; + + [Tooltip("UI-Text to display the interaction-manager debug messages.")] + public Text debugText; + + // tracked userId + private ulong playerUserID = 0; + private ulong lastUserID = 0; + + // hand press properties + private bool isLeftHandPrimary = false; + private bool isRightHandPrimary = false; + + private bool isLeftHandPress = false; + private bool isRightHandPress = false; + + private float lastLeftHandPressTime = 0f; + private float lastRightHandPressTime = 0f; + + private float leftHandPressProgress = 0f; + private float rightHandPressProgress = 0f; + + // cursor properties + private Vector3 cursorScreenPos = Vector3.zero; + private bool dragInProgress = false; + + private Image cursorProgressBar; + private float cursorClickProgress = 0f; + + // hand states + private KinectInterop.HandState leftHandState = KinectInterop.HandState.Unknown; + private KinectInterop.HandState rightHandState = KinectInterop.HandState.Unknown; + + // left hand properties + private HandEventType leftHandEvent = HandEventType.None; + private HandEventType lastLeftHandEvent = HandEventType.Release; + + private Vector3 leftHandPos = Vector3.zero; + private Vector3 leftHandScreenPos = Vector3.zero; + private Vector3 leftIboxLeftBotBack = Vector3.zero; + private Vector3 leftIboxRightTopFront = Vector3.zero; + private bool isleftIboxValid = false; + private bool isLeftHandInteracting = false; + private float leftHandInteractingSince = 0f; + + // left hand click properties + private Vector3 lastLeftHandPos = Vector3.zero; + private float lastLeftHandClickTime = 0f; + private bool isLeftHandClick = false; + private float leftHandClickProgress = 0f; + + // left hand properties + private HandEventType rightHandEvent = HandEventType.None; + private HandEventType lastRightHandEvent = HandEventType.Release; + + private Vector3 rightHandPos = Vector3.zero; + private Vector3 rightHandScreenPos = Vector3.zero; + private Vector3 rightIboxLeftBotBack = Vector3.zero; + private Vector3 rightIboxRightTopFront = Vector3.zero; + private bool isRightIboxValid = false; + private bool isRightHandInteracting = false; + private float rightHandInteractingSince = 0f; + + // right hand click properties + private Vector3 lastRightHandPos = Vector3.zero; + private float lastRightHandClickTime = 0f; + private bool isRightHandClick = false; + private float rightHandClickProgress = 0f; + + // Bool to keep track whether Kinect and Interaction library have been initialized + private bool interactionInited = false; + + // The single instance of FacetrackingManager + //private static InteractionManager instance; + + // hand states + private float lHandState = 0f; + private float rHandState = 0f; + + + ///// + ///// Gets the single InteractionManager instance. + ///// + ///// The InteractionManager instance. + //public static InteractionManager Instance + //{ + // get + // { + // return instance; + // } + //} + + /// + /// Gets the proper instance of InteractionManager, or null if no proper IM is found. + /// + /// Player index, tracked by the IM. + /// Whether the IM tracks left-hand interactions or not. + /// Whether the IM tracks right-hand interactions or not. + /// + public static InteractionManager GetInstance(int playerIndex, bool leftHandInteraction, bool rightHandInteraction) + { + // find the proper interaction manager + MonoBehaviour[] monoScripts = FindObjectsOfType(typeof(MonoBehaviour)) as MonoBehaviour[]; + + foreach (MonoBehaviour monoScript in monoScripts) + { + if ((monoScript is InteractionManager) && monoScript.enabled) + { + InteractionManager intManager = (InteractionManager)monoScript; + + if (intManager.playerIndex == playerIndex && + (!leftHandInteraction || intManager.leftHandInteraction) && + (!rightHandInteraction || intManager.rightHandInteraction)) + { + return intManager; + } + } + } + + // not found + return null; + } + + /// + /// Determines whether the InteractionManager was successfully initialized. + /// + /// true if InteractionManager was successfully initialized; otherwise, false. + public bool IsInteractionInited() + { + return interactionInited; + } + + /// + /// Gets the current user ID, or 0 if no user is currently tracked. + /// + /// The user ID + public ulong GetUserID() + { + return playerUserID; + } + + /// + /// Gets the current left hand event (none, grip or release). + /// + /// The current left hand event. + public HandEventType GetLeftHandEvent() + { + return leftHandEvent; + } + + /// + /// Gets the last detected left hand event (grip or release). + /// + /// The last left hand event. + public HandEventType GetLastLeftHandEvent() + { + return lastLeftHandEvent; + } + + /// + /// Gets the current normalized viewport position of the left hand, in range [0, 1]. + /// + /// The left hand viewport position. + public Vector3 GetLeftHandScreenPos() + { + return leftHandScreenPos; + } + + /// + /// Determines whether the left hand is primary for the user. + /// + /// true if the left hand is primary for the user; otherwise, false. + public bool IsLeftHandPrimary() + { + return isLeftHandPrimary; + } + + /// + /// Determines whether the left hand is pressing. + /// + /// true if the left hand is pressing; otherwise, false. + public bool IsLeftHandPress() + { + return isLeftHandPress; + } + + /// + /// Determines whether a left hand click is detected, false otherwise. + /// + /// true if a left hand click is detected; otherwise, false. + public bool IsLeftHandClickDetected() + { + if (isLeftHandClick) + { + isLeftHandClick = false; + cursorClickProgress = leftHandClickProgress = 0f; + lastLeftHandPos = Vector3.zero; + + lastLeftHandClickTime = Time.realtimeSinceStartup; + lastLeftHandPressTime = Time.realtimeSinceStartup; + + return true; + } + + return false; + } + + /// + /// Gets the left hand click progress, in range [0, 1]. + /// + /// The left hand click progress. + public float GetLeftHandClickProgress() + { + return leftHandClickProgress; + } + + /// + /// Gets the current right hand event (none, grip or release). + /// + /// The current right hand event. + public HandEventType GetRightHandEvent() + { + return rightHandEvent; + } + + /// + /// Gets the last detected right hand event (grip or release). + /// + /// The last right hand event. + public HandEventType GetLastRightHandEvent() + { + return lastRightHandEvent; + } + + /// + /// Gets the current normalized viewport position of the right hand, in range [0, 1]. + /// + /// The right hand viewport position. + public Vector3 GetRightHandScreenPos() + { + return rightHandScreenPos; + } + + /// + /// Determines whether the right hand is primary for the user. + /// + /// true if the right hand is primary for the user; otherwise, false. + public bool IsRightHandPrimary() + { + return isRightHandPrimary; + } + + /// + /// Determines whether the right hand is pressing. + /// + /// true if the right hand is pressing; otherwise, false. + public bool IsRightHandPress() + { + return isRightHandPress; + } + + /// + /// Determines whether a right hand click is detected, false otherwise. + /// + /// true if a right hand click is detected; otherwise, false. + public bool IsRightHandClickDetected() + { + if (isRightHandClick) + { + isRightHandClick = false; + cursorClickProgress = rightHandClickProgress = 0f; + lastRightHandPos = Vector3.zero; + + lastRightHandClickTime = Time.realtimeSinceStartup; + lastRightHandPressTime = Time.realtimeSinceStartup; + + return true; + } + + return false; + } + + /// + /// Gets the right hand click progress, in range [0, 1]. + /// + /// The right hand click progress. + public float GetRightHandClickProgress() + { + return rightHandClickProgress; + } + + /// + /// Gets the current cursor normalized viewport position. + /// + /// The cursor viewport position. + public Vector3 GetCursorPosition() + { + return cursorScreenPos; + } + + /// + /// Gets the cursor click progress, in range [0, 1]. + /// + /// The right hand click progress. + public float GetCursorClickProgress() + { + return cursorClickProgress; + } + + + //----------------------------------- end of public functions --------------------------------------// + + void Awake() + { + //instance = this; + } + + + void Start() + { + // get the progress bar reference if any + GameObject objProgressBar = guiHandCursor && guiHandCursor.gameObject.transform.childCount > 0 ? guiHandCursor.transform.GetChild(0).gameObject : null; + cursorProgressBar = objProgressBar ? objProgressBar.GetComponent() : null; + + interactionInited = true; + + // try to automatically detect the available interaction listeners in the scene + if (interactionListeners.Count == 0) + { + MonoBehaviour[] monoScripts = FindObjectsOfType(typeof(MonoBehaviour)) as MonoBehaviour[]; + + foreach (MonoBehaviour monoScript in monoScripts) + { + //if (typeof(InteractionListenerInterface).IsAssignableFrom(monoScript.GetType()) && + // monoScript.enabled) + if ((monoScript is InteractionListenerInterface) && monoScript.enabled) + { + interactionListeners.Add(monoScript); + } + } + } + + } + + void OnDestroy() + { + interactionInited = false; + //instance = null; + } + + void Update() + { + KinectManager kinectManager = KinectManager.Instance; + + // update Kinect interaction + if (kinectManager && kinectManager.IsInitialized()) + { + playerUserID = kinectManager.GetUserIdByIndex(playerIndex); + + if (playerUserID != 0) + { + lastUserID = playerUserID; + HandEventType handEvent = HandEventType.None; + float fTimeSmooth = 10f * Time.deltaTime; + + // get the left hand state + int handState = (int)kinectManager.GetLeftHandState(playerUserID); + lHandState = Mathf.Lerp(lHandState, handState, fTimeSmooth); + leftHandState = (KinectInterop.HandState)Mathf.RoundToInt(lHandState); // (KinectInterop.HandState)handState; // + + // check if the left hand is interacting + isleftIboxValid = kinectManager.GetLeftHandInteractionBox(playerUserID, ref leftIboxLeftBotBack, ref leftIboxRightTopFront, isleftIboxValid); + //bool bLeftHandPrimaryNow = false; + + // was the left hand interacting till now + bool wasLeftHandInteracting = isLeftHandInteracting; + + if (isleftIboxValid && leftHandInteraction && //bLeftHandPrimaryNow && + kinectManager.GetJointTrackingState(playerUserID, (int)KinectInterop.JointType.HandLeft) != KinectInterop.TrackingState.NotTracked) + { + leftHandPos = kinectManager.GetJointPosition(playerUserID, (int)KinectInterop.JointType.HandLeft); + leftHandScreenPos.z = Mathf.Clamp01((leftIboxLeftBotBack.z - leftHandPos.z) / (leftIboxLeftBotBack.z - leftIboxRightTopFront.z)); + + if (!handOverlayCursor) + { + leftHandScreenPos.x = Mathf.Clamp01((leftHandPos.x - leftIboxLeftBotBack.x) / (leftIboxRightTopFront.x - leftIboxLeftBotBack.x)); + leftHandScreenPos.y = Mathf.Clamp01((leftHandPos.y - leftIboxLeftBotBack.y) / (leftIboxRightTopFront.y - leftIboxLeftBotBack.y)); + + isLeftHandInteracting = (leftHandPos.x >= (leftIboxLeftBotBack.x - 1.0f)) && (leftHandPos.x <= (leftIboxRightTopFront.x + 0.5f)) && + (leftHandPos.y >= (leftIboxLeftBotBack.y - 0.1f)) && (leftHandPos.y <= (leftIboxRightTopFront.y + 0.7f)) && + (leftIboxLeftBotBack.z >= leftHandPos.z) && (leftIboxRightTopFront.z * 0.8f <= leftHandPos.z); + } + else + { + isLeftHandInteracting = GetHandOverlayScreenPos(kinectManager, (int)KinectInterop.JointType.HandLeft, ref leftHandScreenPos) && + (leftHandPos.y >= (leftIboxLeftBotBack.y - 0.15f)) && (leftHandPos.y <= (leftIboxRightTopFront.y + 0.7f)) && + (leftIboxLeftBotBack.z >= leftHandPos.z) && (leftIboxRightTopFront.z * 0.8f <= leftHandPos.z); + } + + //bLeftHandPrimaryNow = isLeftHandInteracting; + // start interacting? + if (!wasLeftHandInteracting && isLeftHandInteracting) + { + leftHandInteractingSince = Time.realtimeSinceStartup; + } + + // check for left press + isLeftHandPress = leftHandScreenPos.z > 0.99f; // ((leftIboxRightTopFront.z - 0.1f) >= leftHandPos.z); + leftHandPressProgress = (Time.realtimeSinceStartup - lastLeftHandPressTime) >= KinectInterop.Constants.ClickStayDuration && + leftHandScreenPos.z >= 0.7f ? (leftHandScreenPos.z - 0.7f) / 0.3f : 0f; + + // check for left hand click + if (!dragInProgress && isLeftHandInteracting && + ((allowHandClicks && ((leftHandPos - lastLeftHandPos).magnitude < KinectInterop.Constants.ClickMaxDistance)) || + (allowPushToClick && leftHandPressProgress > 0f))) + { + if ((allowHandClicks && (Time.realtimeSinceStartup - lastLeftHandClickTime) >= KinectInterop.Constants.ClickStayDuration) || + (allowPushToClick && leftHandPressProgress > 0.99f && isLeftHandPress)) + { + if (!isLeftHandClick) + { + isLeftHandClick = true; + cursorClickProgress = leftHandClickProgress = 1f; + + foreach (InteractionListenerInterface listener in interactionListeners) + { + if (listener.HandClickDetected(playerUserID, playerIndex, false, leftHandScreenPos)) + { + isLeftHandClick = false; + cursorClickProgress = leftHandClickProgress = 0f; + lastLeftHandPos = Vector3.zero; + + lastLeftHandClickTime = Time.realtimeSinceStartup; + lastLeftHandPressTime = Time.realtimeSinceStartup; + } + } + + if (controlMouseCursor) + { + MouseControl.MouseClick(); + + isLeftHandClick = false; + cursorClickProgress = leftHandClickProgress = 0f; + lastLeftHandPos = Vector3.zero; + + lastLeftHandClickTime = Time.realtimeSinceStartup; + lastLeftHandPressTime = Time.realtimeSinceStartup; + } + } + } + else + { + // show progress after the 1st half of the needed duration + float leftHandTimeProgress = allowHandClicks && (Time.realtimeSinceStartup - lastLeftHandClickTime) >= (KinectInterop.Constants.ClickStayDuration / 2f) ? + ((Time.realtimeSinceStartup - lastLeftHandClickTime - (KinectInterop.Constants.ClickStayDuration / 2f)) * 2f / KinectInterop.Constants.ClickStayDuration) : 0f; + cursorClickProgress = leftHandClickProgress = allowPushToClick && leftHandScreenPos.z >= 0.7f ? leftHandPressProgress : leftHandTimeProgress; + } + } + else + { + isLeftHandClick = false; + leftHandClickProgress = 0f; + lastLeftHandPos = leftHandPos; + lastLeftHandClickTime = Time.realtimeSinceStartup; + } + } + else + { + isLeftHandInteracting = false; + isLeftHandPress = false; + leftHandPressProgress = 0f; + } + + // get the right hand state + handState = (int)kinectManager.GetRightHandState(playerUserID); + rHandState = Mathf.Lerp(rHandState, handState, fTimeSmooth); + rightHandState = (KinectInterop.HandState)Mathf.RoundToInt(rHandState); + + // check if the right hand is interacting + isRightIboxValid = kinectManager.GetRightHandInteractionBox(playerUserID, ref rightIboxLeftBotBack, ref rightIboxRightTopFront, isRightIboxValid); + //bool bRightHandPrimaryNow = false; + + // was the right hand interacting till now + bool wasRightHandInteracting = isRightHandInteracting; + + if (isRightIboxValid && rightHandInteraction && //bRightHandPrimaryNow && + kinectManager.GetJointTrackingState(playerUserID, (int)KinectInterop.JointType.HandRight) != KinectInterop.TrackingState.NotTracked) + { + rightHandPos = kinectManager.GetJointPosition(playerUserID, (int)KinectInterop.JointType.HandRight); + rightHandScreenPos.z = Mathf.Clamp01((rightIboxLeftBotBack.z - rightHandPos.z) / (rightIboxLeftBotBack.z - rightIboxRightTopFront.z)); + + if (!handOverlayCursor) + { + rightHandScreenPos.x = Mathf.Clamp01((rightHandPos.x - rightIboxLeftBotBack.x) / (rightIboxRightTopFront.x - rightIboxLeftBotBack.x)); + rightHandScreenPos.y = Mathf.Clamp01((rightHandPos.y - rightIboxLeftBotBack.y) / (rightIboxRightTopFront.y - rightIboxLeftBotBack.y)); + + isRightHandInteracting = (rightHandPos.x >= (rightIboxLeftBotBack.x - 0.5f)) && (rightHandPos.x <= (rightIboxRightTopFront.x + 1.0f)) && + (rightHandPos.y >= (rightIboxLeftBotBack.y - 0.1f)) && (rightHandPos.y <= (rightIboxRightTopFront.y + 0.7f)) && + (rightIboxLeftBotBack.z >= rightHandPos.z) && (rightIboxRightTopFront.z * 0.8f <= rightHandPos.z); + } + else + { + isRightHandInteracting = GetHandOverlayScreenPos(kinectManager, (int)KinectInterop.JointType.HandRight, ref rightHandScreenPos) && + (rightHandPos.y >= (rightIboxLeftBotBack.y - 0.15f)) && (rightHandPos.y <= (rightIboxRightTopFront.y + 0.7f)) && + (rightIboxLeftBotBack.z >= rightHandPos.z) && (rightIboxRightTopFront.z * 0.8f <= rightHandPos.z); + } + + //bRightHandPrimaryNow = isRightHandInteracting; + if (!wasRightHandInteracting && isRightHandInteracting) + { + rightHandInteractingSince = Time.realtimeSinceStartup; + } + + // check for right press + isRightHandPress = rightHandScreenPos.z > 0.99f; // ((rightIboxRightTopFront.z - 0.1f) >= rightHandPos.z); + rightHandPressProgress = (Time.realtimeSinceStartup - lastRightHandPressTime) >= KinectInterop.Constants.ClickStayDuration && + rightHandScreenPos.z >= 0.7f ? (rightHandScreenPos.z - 0.7f) / 0.3f : 0f; + + // check for right hand click + if (!dragInProgress && isRightHandInteracting && + ((allowHandClicks && ((rightHandPos - lastRightHandPos).magnitude < KinectInterop.Constants.ClickMaxDistance)) || + (allowPushToClick && rightHandPressProgress > 0f))) + { + if ((allowHandClicks && (Time.realtimeSinceStartup - lastRightHandClickTime) >= KinectInterop.Constants.ClickStayDuration) || + (allowPushToClick && rightHandPressProgress > 0.99f && isRightHandPress)) + { + if (!isRightHandClick) + { + isRightHandClick = true; + cursorClickProgress = rightHandClickProgress = 1f; + + foreach (InteractionListenerInterface listener in interactionListeners) + { + if (listener.HandClickDetected(playerUserID, playerIndex, true, rightHandScreenPos)) + { + isRightHandClick = false; + cursorClickProgress = rightHandClickProgress = 0f; + lastRightHandPos = Vector3.zero; + + lastRightHandClickTime = Time.realtimeSinceStartup; + lastRightHandPressTime = Time.realtimeSinceStartup; + } + } + + if (controlMouseCursor) + { + MouseControl.MouseClick(); + + isRightHandClick = false; + cursorClickProgress = rightHandClickProgress = 0f; + lastRightHandPos = Vector3.zero; + + lastRightHandClickTime = Time.realtimeSinceStartup; + lastRightHandPressTime = Time.realtimeSinceStartup; + } + } + } + else + { + // show progress after the 1st half of the needed duration + float rightHandTimeProgress = allowHandClicks && (Time.realtimeSinceStartup - lastRightHandClickTime) >= (KinectInterop.Constants.ClickStayDuration / 2f) ? + ((Time.realtimeSinceStartup - lastRightHandClickTime - (KinectInterop.Constants.ClickStayDuration / 2f)) * 2f / KinectInterop.Constants.ClickStayDuration) : 0f; + cursorClickProgress = rightHandClickProgress = allowPushToClick && rightHandScreenPos.z >= 0.7f ? rightHandPressProgress : rightHandTimeProgress; + } + } + else + { + isRightHandClick = false; + rightHandClickProgress = 0f; + lastRightHandPos = rightHandPos; + lastRightHandClickTime = Time.realtimeSinceStartup; + } + } + else + { + isRightHandInteracting = false; + isRightHandPress = false; + rightHandPressProgress = 0f; + } + + // stop the cursor click progress, if both left and right hand are not clicking + if (leftHandClickProgress == 0f && rightHandClickProgress == 0f && cursorClickProgress > 0f) + { + cursorClickProgress = 0f; + } + + // if both hands are interacting, check which one interacts longer than the other + if (isLeftHandInteracting && isRightHandInteracting) + { + if (rightHandInteractingSince <= leftHandInteractingSince) + isLeftHandInteracting = false; + else + isRightHandInteracting = false; + } + + // if left hand just stopped interacting, send extra non-interaction event + if (wasLeftHandInteracting && !isLeftHandInteracting) + { + foreach (InteractionListenerInterface listener in interactionListeners) + { + if (lastLeftHandEvent == HandEventType.Grip) + listener.HandReleaseDetected(playerUserID, playerIndex, false, true, leftHandScreenPos); + } + + lastLeftHandEvent = HandEventType.Release; + } + + + // if right hand just stopped interacting, send extra non-interaction event + if (wasRightHandInteracting && !isRightHandInteracting) + { + foreach (InteractionListenerInterface listener in interactionListeners) + { + if (lastRightHandEvent == HandEventType.Grip) + listener.HandReleaseDetected(playerUserID, playerIndex, true, true, rightHandScreenPos); + } + + lastRightHandEvent = HandEventType.Release; + } + + + // process left hand + handEvent = HandStateToEvent(leftHandState, lastLeftHandEvent); + + if ((isLeftHandInteracting != isLeftHandPrimary) || (isRightHandInteracting != isRightHandPrimary)) + { + if (controlMouseCursor && dragInProgress) + { + MouseControl.MouseRelease(); + dragInProgress = false; + } + + lastLeftHandEvent = HandEventType.Release; + lastRightHandEvent = HandEventType.Release; + } + + if (controlMouseCursor && (handEvent != lastLeftHandEvent)) + { + if (controlMouseDrag && !dragInProgress && (handEvent == HandEventType.Grip)) + { + dragInProgress = true; + MouseControl.MouseDrag(); + } + else if (dragInProgress && (handEvent == HandEventType.Release)) + { + MouseControl.MouseRelease(); + dragInProgress = false; + } + } + + leftHandEvent = handEvent; + if (handEvent != HandEventType.None) + { + // no clicks, while hand grip is detected + if (leftHandEvent == HandEventType.Grip && leftHandClickProgress > 0f) + { + cursorClickProgress = leftHandClickProgress = 0f; + lastLeftHandClickTime = Time.realtimeSinceStartup; + } + + if (leftHandEvent != lastLeftHandEvent) + { + // invoke interaction listeners + foreach (InteractionListenerInterface listener in interactionListeners) + { + if (leftHandEvent == HandEventType.Grip) + listener.HandGripDetected(playerUserID, playerIndex, false, isLeftHandInteracting, leftHandScreenPos); + else if (leftHandEvent == HandEventType.Release) + listener.HandReleaseDetected(playerUserID, playerIndex, false, isLeftHandInteracting, leftHandScreenPos); + } + } + + lastLeftHandEvent = handEvent; + } + + // if the hand is primary, set the cursor position + if (isLeftHandInteracting) + { + isLeftHandPrimary = true; + + if (leftHandClickProgress < 0.8f) // stop the cursor after 80% click progress + { + float smooth = smoothFactor * Time.deltaTime; + if (smooth == 0f) smooth = 1f; + + cursorScreenPos = Vector3.Lerp(cursorScreenPos, leftHandScreenPos, smooth); + } + + // move mouse-only if there is no cursor texture + if (controlMouseCursor && + (!guiHandCursor || (!gripHandTexture && !releaseHandTexture && !normalHandTexture))) + { + MouseControl.MouseMove(cursorScreenPos, debugText); + } + } + else + { + isLeftHandPrimary = false; + } + + + // process right hand + handEvent = HandStateToEvent(rightHandState, lastRightHandEvent); + + if (controlMouseCursor && (handEvent != lastRightHandEvent)) + { + if (controlMouseDrag && !dragInProgress && (handEvent == HandEventType.Grip)) + { + dragInProgress = true; + MouseControl.MouseDrag(); + } + else if (dragInProgress && (handEvent == HandEventType.Release)) + { + MouseControl.MouseRelease(); + dragInProgress = false; + } + } + + rightHandEvent = handEvent; + if (handEvent != HandEventType.None) + { + // no clicks, while hand grip is detected + if (rightHandEvent == HandEventType.Grip && rightHandClickProgress > 0f) + { + cursorClickProgress = rightHandClickProgress = 0f; + lastRightHandClickTime = Time.realtimeSinceStartup; + } + + if (rightHandEvent != lastRightHandEvent) + { + // invoke interaction listeners + foreach (InteractionListenerInterface listener in interactionListeners) + { + if (rightHandEvent == HandEventType.Grip) + listener.HandGripDetected(playerUserID, playerIndex, true, isRightHandInteracting, rightHandScreenPos); + else if (rightHandEvent == HandEventType.Release) + listener.HandReleaseDetected(playerUserID, playerIndex, true, isRightHandInteracting, rightHandScreenPos); + } + } + + lastRightHandEvent = handEvent; + } + + // if the hand is primary, set the cursor position + if (isRightHandInteracting) + { + isRightHandPrimary = true; + + if (rightHandClickProgress < 0.8f) // stop the cursor after 80% click progress + { + float smooth = smoothFactor * Time.deltaTime; + if (smooth == 0f) smooth = 1f; + + cursorScreenPos = Vector3.Lerp(cursorScreenPos, rightHandScreenPos, smooth); + } + + // move mouse-only if there is no cursor texture + if (controlMouseCursor && + (!guiHandCursor || (!gripHandTexture && !releaseHandTexture && !normalHandTexture))) + { + MouseControl.MouseMove(cursorScreenPos, debugText); + } + } + else + { + isRightHandPrimary = false; + } + + } + else + { + // send release events + if (lastLeftHandEvent == HandEventType.Grip || lastRightHandEvent == HandEventType.Grip) + { + foreach (InteractionListenerInterface listener in interactionListeners) + { + if (lastLeftHandEvent == HandEventType.Grip) + listener.HandReleaseDetected(lastUserID, playerIndex, false, true, leftHandScreenPos); + if (lastRightHandEvent == HandEventType.Grip) + listener.HandReleaseDetected(lastUserID, playerIndex, true, true, leftHandScreenPos); + } + } + + leftHandState = KinectInterop.HandState.NotTracked; + rightHandState = KinectInterop.HandState.NotTracked; + + isLeftHandPrimary = isRightHandPrimary = false; + isLeftHandInteracting = isRightHandInteracting = false; + leftHandInteractingSince = rightHandInteractingSince = 0f; + + isLeftHandClick = isRightHandClick = false; + cursorClickProgress = leftHandClickProgress = rightHandClickProgress = 0f; + lastLeftHandClickTime = lastRightHandClickTime = Time.realtimeSinceStartup; + lastLeftHandPressTime = lastRightHandPressTime = Time.realtimeSinceStartup; + + isLeftHandPress = false; + isRightHandPress = false; + + leftHandPressProgress = 0f; + rightHandPressProgress = 0f; + + leftHandEvent = HandEventType.None; + rightHandEvent = HandEventType.None; + + lastLeftHandEvent = HandEventType.Release; + lastRightHandEvent = HandEventType.Release; + + if (controlMouseCursor && dragInProgress) + { + MouseControl.MouseRelease(); + dragInProgress = false; + } + } + + // update cursor texture and position + UpdateGUI(); + } + + } + + + // updates cursor texture and position + private void UpdateGUI() + { + if (!interactionInited) + return; + + // display debug information + if (debugText) + { + string sGuiText = string.Empty; + + //if(isLeftHandPrimary) + { + sGuiText += "L.Hand" + (isLeftHandInteracting ? "*: " : " : ") + leftHandScreenPos.ToString(); + + if (lastLeftHandEvent == HandEventType.Grip) + { + sGuiText += " LeftGrip"; + } + else if (lastLeftHandEvent == HandEventType.Release) + { + sGuiText += " LeftRelease"; + } + + if (isLeftHandClick) + { + sGuiText += " LeftClick"; + } + //else if (leftHandClickProgress > 0.5f) + //{ + // sGuiText += String.Format(" {0:F0}%", leftHandClickProgress * 100); + //} + + if (isLeftHandPress) + { + sGuiText += " LeftPress"; + } + + //sGuiText += " " + leftHandClickProgress; + } + + //if(isRightHandPrimary) + { + sGuiText += "\nR.Hand" + (isRightHandInteracting ? "*: " : " : ") + rightHandScreenPos.ToString(); + + if (lastRightHandEvent == HandEventType.Grip) + { + sGuiText += " RightGrip"; + } + else if (lastRightHandEvent == HandEventType.Release) + { + sGuiText += " RightRelease"; + } + + if (isRightHandClick) + { + sGuiText += " RightClick"; + } + //else if (rightHandClickProgress > 0.5f) + //{ + // sGuiText += String.Format(" {0:F0}%", rightHandClickProgress * 100); + //} + + if (isRightHandPress) + { + sGuiText += " RightPress"; + } + + //sGuiText += " " + rightHandClickProgress; + } + + debugText.text = sGuiText; + } + + // display the cursor status and position + if (guiHandCursor) + { + Sprite cursorTexture = null; + + if (isLeftHandPrimary) + { + if (lastLeftHandEvent == HandEventType.Grip) + cursorTexture = gripHandTexture; + else if (lastLeftHandEvent == HandEventType.Release) + cursorTexture = releaseHandTexture; + } + else if (isRightHandPrimary) + { + if (lastRightHandEvent == HandEventType.Grip) + cursorTexture = gripHandTexture; + else if (lastRightHandEvent == HandEventType.Release) + cursorTexture = releaseHandTexture; + } + + if (cursorTexture == null) + { + cursorTexture = normalHandTexture; + } + + if ((cursorTexture != null) /**&& (isLeftHandPrimary || isRightHandPrimary)*/) + { + Vector2 posSprite; + + if (controlMouseCursor) + { + MouseControl.MouseMove(cursorScreenPos, debugText); + posSprite = new Vector2(Input.mousePosition.x, Input.mousePosition.y); + } + else + { + Rect rectCanvas = guiHandCursor.canvas.pixelRect; + float canvasScale = guiHandCursor.canvas.scaleFactor; + + posSprite = new Vector2(cursorScreenPos.x * rectCanvas.width / canvasScale, cursorScreenPos.y * rectCanvas.height / canvasScale); + //Debug.Log("PosCursor: " + posSprite + ", Rect: " + rectCanvas + ", Scale: " + canvasScale); + } + + guiHandCursor.sprite = cursorTexture; + guiHandCursor.rectTransform.anchoredPosition = posSprite; + + if (cursorProgressBar) + { + cursorProgressBar.fillAmount = cursorClickProgress; + } + } + } + } + + + // estimates screen cursor overlay position for the given hand + private bool GetHandOverlayScreenPos(KinectManager kinectManager, int iHandJointIndex, ref Vector3 handScreenPos) + { + Vector3 posJointRaw = kinectManager.GetJointKinectPosition(playerUserID, iHandJointIndex, false); + + if (posJointRaw != Vector3.zero) + { + Vector2 posDepth = kinectManager.MapSpacePointToDepthCoords(sensorIndex, posJointRaw); + ushort depthValue = kinectManager.GetDepthForPixel(sensorIndex, posDepth); + + if (posDepth != Vector2.zero && depthValue > 0) + { + // depth pos to color pos + Vector2 posColor = kinectManager.MapDepthPointToColorCoords(sensorIndex, posDepth, depthValue); + + if (posColor.x != 0f && !float.IsInfinity(posColor.x)) + { + float clrImageW = kinectManager.GetColorImageWidth(sensorIndex); + float clrImageH = kinectManager.GetColorImageHeight(sensorIndex); + + // get the color image x-offset and width (use the portrait background, if available) + float colorWidth = clrImageW; + float colorOfsX = 0f; + + PortraitBackground portraitBack = PortraitBackground.Instance; + if (portraitBack && portraitBack.enabled) + { + colorWidth = clrImageH * clrImageH / clrImageW; + colorOfsX = (clrImageW - colorWidth) / 2f; + } + + float xScaled = (posColor.x - colorOfsX) / colorWidth; + float yScaled = posColor.y / clrImageH; + + handScreenPos.x = xScaled; + handScreenPos.y = 1f - yScaled; + + return true; + } + } + } + + return false; + } + + + // converts hand state to hand event type + public static HandEventType HandStateToEvent(KinectInterop.HandState handState, HandEventType lastEventType) + { + switch (handState) + { + case KinectInterop.HandState.Open: + return HandEventType.Release; + + case KinectInterop.HandState.Closed: + case KinectInterop.HandState.Lasso: + return HandEventType.Grip; + + case KinectInterop.HandState.Unknown: + return lastEventType; + } + + return HandEventType.None; + } + + + } +} diff --git a/Assets/Azure/KinectScripts/InteractionManager.cs.meta b/Assets/Azure/KinectScripts/InteractionManager.cs.meta new file mode 100644 index 0000000..2ab17ce --- /dev/null +++ b/Assets/Azure/KinectScripts/InteractionManager.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a669d15f0035bbf4889c8092b5bcd201 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Azure/KinectScripts/Interfaces.meta b/Assets/Azure/KinectScripts/Interfaces.meta new file mode 100644 index 0000000..832910f --- /dev/null +++ b/Assets/Azure/KinectScripts/Interfaces.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9170a0cec4179764c9b1bf2a9a9c38f6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/Interfaces/DepthSensorBase.cs b/Assets/Azure/KinectScripts/Interfaces/DepthSensorBase.cs new file mode 100644 index 0000000..7236b6c --- /dev/null +++ b/Assets/Azure/KinectScripts/Interfaces/DepthSensorBase.cs @@ -0,0 +1,3689 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using static com.rfilkov.kinect.KinectInterop; +using Windows.Kinect; + +namespace com.rfilkov.kinect +{ + /// + /// DepthSensorBase is the base class of all sensor interface implementations. + /// + public abstract class DepthSensorBase : MonoBehaviour, DepthSensorInterface + { + // whether to get and process all possible sensor frames (true), or get new frames after the previous ones have been moved to sensor-data (false) + protected bool getAllSensorFrames = false; + + // max depth distance in mm, used for initializing data arrays and compute buffers + public const int MAX_DEPTH_DISTANCE_MM = 10000; + + [Tooltip("Device streaming mode, in means of connected sensor, recording or disabled.")] + public KinectInterop.DeviceStreamingMode deviceStreamingMode = KinectInterop.DeviceStreamingMode.ConnectedSensor; + + [Tooltip("Index of the depth sensor in the list of currently connected sensors.")] + public int deviceIndex = 0; + + [Tooltip("Path to the recording file, if the streaming mode is PlayRecording.")] + public string recordingFile = string.Empty; + + //[Tooltip("Sensor position in space.")] + //public Vector3 devicePosition = new Vector3(0f, 1f, 0f); + + //[Tooltip("Sensor rotation in space.")] + //public Vector3 deviceRotation = new Vector3(0f, 0f, 0f); + + //[Tooltip("Whether the body tracking for this sensor is enabled or not.")] + //internal bool bodyTrackingEnabled = false; + + [Tooltip("Minimum distance in meters, used for creating the depth-related images.")] + [Range(0f, 10f)] + public float minDepthDistance = 0.5f; + + [Tooltip("Maximum distance in meters, used for creating the depth-related images.")] + [Range(0f, 10f)] + public float maxDepthDistance = 10f; + + [Tooltip("Resolution of the generated point-cloud textures.")] + public PointCloudResolution pointCloudResolution = PointCloudResolution.DepthCameraResolution; + public enum PointCloudResolution : int { DepthCameraResolution = 0, ColorCameraResolution = 1 } + + [Tooltip("Render texture, used for point-cloud vertex mapping. The texture resolution should match the depth or color image resolution.")] + public RenderTexture pointCloudVertexTexture = null; + + [Tooltip("Render texture, used for point-cloud color mapping. The texture resolution should match the depth or color image resolution.")] + public RenderTexture pointCloudColorTexture = null; + + [Tooltip("List of comma-separated player indices to be included in the point cloud. Use -1 for all players, or empty list for full point cloud.")] + public string pointCloudPlayerList = string.Empty; + + + // initial parameters + [HideInInspector] + public KinectInterop.FrameSource frameSourceFlags; + protected bool isSyncDepthAndColor = false; + protected bool isSyncBodyAndDepth = false; + protected bool consoleLogMessages = false; + + // sensor device-id & platform type + protected string sensorDeviceId = null; + protected KinectInterop.DepthSensorPlatform sensorPlatform = KinectInterop.DepthSensorPlatform.None; + + // initial pose parameters + protected Vector3 initialPosePosition = Vector3.zero; + protected Quaternion initialPoseRotation = Quaternion.identity; + protected Matrix4x4 matTransformPose = Matrix4x4.identity; + protected Matrix4x4 matLocalPose = Matrix4x4.identity; + + // frame numbers + //protected ulong colorFrameNumber = 0; + //protected ulong depthFrameNumber = 0; + //protected ulong infraredFrameNumber = 0; + //protected ulong poseFrameNumber = 0; + + // raw color data + protected byte[] rawColorImage = null; + protected ulong rawColorTimestamp = 0; + protected ulong currentColorTimestamp = 0; + public object colorFrameLock = new object(); + + // raw depth data + protected ushort[] rawDepthImage = null; + protected ulong rawDepthTimestamp = 0; + protected ulong currentDepthTimestamp = 0; + public object depthFrameLock = new object(); + + // raw infrared data + protected ushort[] rawInfraredImage = null; + protected ulong rawInfraredTimestamp = 0; + protected ulong currentInfraredTimestamp = 0; + public object infraredFrameLock = new object(); + + // raw pose data + protected Vector3 rawPosePosition = Vector3.zero; + protected Quaternion rawPoseRotation = Quaternion.identity; + protected ulong rawPoseTimestamp = 0; + protected ulong currentPoseTimestamp = 0; + public object poseFrameLock = new object(); + + // sensor pose data + protected Vector3 sensorPosePosition; + protected Quaternion sensorPoseRotation; + + [HideInInspector] + public Matrix4x4 depth2colorCamMat = Matrix4x4.identity; + + protected Vector3 sensorRotOffset = Vector3.zero; + protected bool sensorRotFlipZ = false; + protected bool sensorRotIgnoreY = false; + [HideInInspector] + public float sensorRotValueY = 0f; + + // body tracker + protected bool bIgnoreZCoordinates = false; + protected bool bIgnoreInferredJoints = false; + + // raw body data + protected byte[] rawBodyIndexImage = null; + protected uint trackedBodiesCount = 0; + protected List alTrackedBodies = null; + protected ulong rawBodyTimestamp = 0; + protected ulong rawBodyIndexTimestamp = 0; + protected ulong currentBodyTimestamp = 0; + protected ulong currentBodyIndexTimestamp = 0; + public object bodyTrackerLock = new object(); + + + // depth image data + protected int[] depthHistBufferData = null; + protected int[] equalHistBufferData = null; + protected int depthHistTotalPoints = 0; + //protected ulong lastDepthImageTimestamp = 0; + //protected object depthImageDataLock = new object(); + + // infrared image data + protected float minInfraredValue = 0f; + protected float maxInfraredValue = 0f; + + // body image data + protected int[] depthBodyBufferData = null; + protected int[] equalBodyBufferData = null; + protected int bodyHistTotalPoints = 0; + //protected ulong lastBodyImageTimestamp = 0; + //protected object bodyImageDataLock = new object(); + + // last updated depth coord-frame time + protected ulong lastDepthCoordFrameTime = 0; + + // point cloud vertex shader + protected ComputeShader pointCloudVertexShader = null; + protected int pointCloudVertexKernel = -1; + + protected Vector2Int pointCloudVertexRes = Vector2Int.zero; + protected int[] pointCloudPlayerIndices = null; + protected int[] pointCloudBodyIndices = null; + + protected RenderTexture pointCloudVertexRT = null; + protected ComputeBuffer pointCloudSpaceBuffer = null; + protected ComputeBuffer pointCloudDepthBuffer = null; + protected ComputeBuffer pointCloudInfraredBuffer = null; + protected ComputeBuffer pointCloudBodyIndexBuffer = null; + + // point cloud color shader + protected ComputeShader pointCloudColorShader = null; + protected int pointCloudColorKernel = -1; + protected Vector2Int pointCloudColorRes = Vector2Int.zero; + protected RenderTexture pointCloudColorRT = null; + protected ComputeBuffer pointCloudCoordBuffer = null; + protected Texture pointCloudAlignedColorTex = null; + + //// depth2space coords frame + //protected Vector3[] depth2SpaceCoordFrame = null; + //protected ulong lastDepth2SpaceFrameTime = 0; + //protected object depth2SpaceFrameLock = new object(); + + // space tables + protected Vector3[] depth2SpaceTable = null; + protected int depth2SpaceWidth = 0, depth2SpaceHeight = 0; + protected Vector3[] color2SpaceTable = null; + protected int color2SpaceWidth = 0, color2SpaceHeight = 0; + //protected ushort[] lastDepthDataBuf = null; + + // depth cam color frame + protected byte[] depthCamColorDataFrame = null; + protected Vector2[] depthCamColorCoordFrame = null; + protected ulong lastDepthCamColorFrameTime = 0; + protected object depthCamColorFrameLock = new object(); + + // color cam depth frame + protected ushort[] colorCamDepthDataFrame = null; + protected Vector2[] colorCamDepthCoordFrame = null; + protected ulong lastColorCamDepthFrameTime = 0; + protected object colorCamDepthFrameLock = new object(); + + // color cam body index frame + protected byte[] colorCamBodyIndexFrame = null; + protected ulong lastColorCamBodyIndexFrameTime = 0; + protected object colorCamBodyIndexFrameLock = new object(); + + // color cam infrared frame + protected ushort[] colorCamInfraredDataFrame = null; + protected ulong lastColorCamInfraredFrameTime = 0; + protected object colorCamInfraredFrameLock = new object(); + + // color cam depth shader + protected ComputeShader colorDepthShader = null; + protected int colorDepthKernel = -1; + protected bool colorDepthShaderInited = false; + + // color cam infrared shader + protected ComputeShader colorInfraredShader = null; + protected int colorInfraredKernel = -1; + protected bool colorInfraredShaderInited = false; + + // color cam body index shader + protected ComputeShader colorBodyIndexShader = null; + protected int colorBodyIndexKernel = -1; + protected bool colorBodyIndexShaderInited = false; + protected ComputeBuffer bodyIndexBuffer = null; + + // user body merger + protected KinectUserBodyMerger userBodyMerger = null; + protected bool userBodyMergerInited = false; + + // joint position filter + public JointPositionsFilter jointPositionFilter = null; + public BodySpinFilter bodySpinFilter = null; + + + // base depth sensor settings + [System.Serializable] + public class BaseSensorSettings + { + public int deviceStreamingMode; + public int deviceIndex; + public string recordingFile = string.Empty; + public float minDistance = 0.5f; + public float maxDistance = 10f; + } + + + protected virtual void Awake() + { + // init raw sensor pose + rawPosePosition = Vector3.zero; + rawPoseRotation = Quaternion.identity; + rawPoseTimestamp = (ulong)DateTime.Now.Ticks; + //Debug.Log($"{this.GetType()} - rawPosePos: {rawPosePosition}, rawPoseRot: {rawPoseRotation.eulerAngles}, ts: {rawPoseTimestamp}"); + + sensorPosePosition = transform.position; + sensorPoseRotation = transform.rotation; + + // initial pose params + initialPosePosition = transform.position; + initialPoseRotation = transform.rotation; + + matTransformPose.SetTRS(initialPosePosition, initialPoseRotation, Vector3.one); + } + + + + public abstract KinectInterop.DepthSensorPlatform GetSensorPlatform(); + + //public virtual bool InitSensorInterface(bool bCopyLibs, ref bool bNeedRestart) + //{ + // bNeedRestart = false; + // return true; + //} + + //public virtual void FreeSensorInterface(bool bDeleteLibs) + //{ + //} + + public virtual string GetSensorDeviceId() + { + return sensorDeviceId; + } + + + public virtual System.Type GetSensorSettingsType() + { + return typeof(BaseSensorSettings); + } + + + public virtual BaseSensorSettings GetSensorSettings(BaseSensorSettings settings) + { + if (settings == null) + { + settings = new BaseSensorSettings(); + } + + settings.deviceStreamingMode = (int)deviceStreamingMode; + settings.deviceIndex = deviceIndex; + settings.recordingFile = recordingFile; + settings.minDistance = minDepthDistance; + settings.maxDistance = maxDepthDistance; + + return settings; + } + + + public virtual void SetSensorSettings(BaseSensorSettings settings) + { + if (settings == null) + return; + + deviceStreamingMode = (KinectInterop.DeviceStreamingMode)settings.deviceStreamingMode; + deviceIndex = settings.deviceIndex; + recordingFile = settings.recordingFile; + minDepthDistance = settings.minDistance; + maxDepthDistance = settings.maxDistance; + } + + + public abstract List GetAvailableSensors(); + + public virtual KinectInterop.SensorData OpenSensor(KinectManager kinectManager, KinectInterop.FrameSource dwFlags, bool bSyncDepthAndColor, bool bSyncBodyAndDepth) + { + // save the parameters for later + frameSourceFlags = dwFlags; + isSyncDepthAndColor = bSyncDepthAndColor && ((dwFlags & KinectInterop.FrameSource.TypeColor) != 0) && ((dwFlags & KinectInterop.FrameSource.TypeDepth) != 0); + isSyncBodyAndDepth = bSyncBodyAndDepth && ((dwFlags & (KinectInterop.FrameSource.TypeBody | KinectInterop.FrameSource.TypeBodyIndex)) != 0) && ((dwFlags & KinectInterop.FrameSource.TypeDepth) != 0); + + consoleLogMessages = kinectManager ? kinectManager.consoleLogMessages : false; + + if (kinectManager && kinectManager.jointPositionSmoothing != SmoothingType.None) + { + // joint position filter + jointPositionFilter = new JointPositionsFilter(); + jointPositionFilter.Init(kinectManager.jointPositionSmoothing); + } + + if (kinectManager && kinectManager.bodySpinFilter != BodySpinType.None) + { + // body spin filter + bodySpinFilter = new BodySpinFilter(kinectManager.bodySpinFilter); + } + + if ((dwFlags & KinectInterop.FrameSource.TypePose) != 0) + { + // clear sensor pose + SetSensorToWorldMatrix(Vector3.zero, Quaternion.identity, true); + } + + return null; + } + + + public virtual void CloseSensor(KinectInterop.SensorData sensorData) + { + // clear basic timestamps + rawColorTimestamp = rawDepthTimestamp = rawInfraredTimestamp = 0; + rawBodyTimestamp = rawBodyIndexTimestamp = 0; + rawPoseTimestamp = 0; + + // stop body tracking, if needed + StopBodyTracking(sensorData); + + // dispose coord mapping shaders + DisposePointCloudVertexShader(sensorData); + DisposePointCloudColorShader(sensorData); + + DisposeColorDepthShader(sensorData); + DisposeColorInfraredShader(sensorData); + DisposeColorBodyIndexShader(sensorData); + + DisposeDepthTexShader(sensorData); + DisposeInfraredTexShader(sensorData); + } + + + public virtual void EnablePoseStream(KinectInterop.SensorData sensorData, bool bEnable) + { + if (bEnable) + { + frameSourceFlags |= KinectInterop.FrameSource.TypePose; + + // clear sensor pose + SetSensorToWorldMatrix(Vector3.zero, Quaternion.identity, true); + } + else + { + frameSourceFlags &= ~KinectInterop.FrameSource.TypePose; + } + } + + + public virtual bool EnableSensorSync(KinectInterop.SensorData sensorData, bool bEnable) + { + return false; + } + + public virtual bool IsSensorMaster() + { + return false; + } + + public virtual bool IsSensorFrameSynched(ulong frameTime, ulong masterTime) + { + return false; + } + + + public virtual float GetMinInfraredValue() + { + return minInfraredValue; + } + + public virtual float GetMaxInfraredValue() + { + return maxInfraredValue; + } + + public virtual void SetMinMaxInfraredValues(float minValue, float maxValue) + { + minInfraredValue = minValue; + maxInfraredValue = maxValue; + } + + + public virtual bool IsSensorDataValid() + { + return true; + } + + public virtual float GetBodyTrackerOrientationAngle() + { + return 0f; + } + + public virtual void InitSensorData(KinectInterop.SensorData sensorData, KinectManager kinectManager) + { + //if (sensorData.depthImage != null) + //{ + // depthImageBufferData = new int[sensorData.depthImage.Length]; + //} + + // depth image data + if (kinectManager.getDepthFrames == KinectManager.DepthTextureType.DepthTexture) + { + depthHistBufferData = new int[MAX_DEPTH_DISTANCE_MM + 1]; + equalHistBufferData = new int[MAX_DEPTH_DISTANCE_MM + 1]; + //sensorData.depthHistBufferData = new int[equalHistBufferData.Length]; + } + else + { + depthHistBufferData = null; + equalHistBufferData = null; + //sensorData.depthHistBufferData = null; + } + + // body image data + if (kinectManager.getBodyFrames == KinectManager.BodyTextureType.UserTexture) + { + depthBodyBufferData = new int[MAX_DEPTH_DISTANCE_MM + 1]; + equalBodyBufferData = new int[MAX_DEPTH_DISTANCE_MM + 1]; + //sensorData.bodyHistBufferData = new int[equalBodyBufferData.Length]; + } + else + { + depthBodyBufferData = null; + equalBodyBufferData = null; + //sensorData.bodyHistBufferData = null; + } + + lock (bodyTrackerLock) + { + // save the needed KM settings + bIgnoreZCoordinates = kinectManager.ignoreZCoordinates; + bIgnoreInferredJoints = kinectManager.ignoreInferredJoints; + } + } + + public virtual void PollSensorFrames(KinectInterop.SensorData sensorData) + { + } + + + public virtual void PollCoordTransformFrames(KinectInterop.SensorData sensorData) + { + } + + + public virtual void PollSensorFrameTimes(KinectInterop.SensorData sensorData) + { + //// depth-image data + //if (lastDepthImageTimestamp != rawDepthTimestamp && rawDepthImage != null && depthHistBufferData != null) + //{ + // lock (depthImageDataLock) + // { + // Array.Clear(depthHistBufferData, 0, depthHistBufferData.Length); + // Array.Clear(equalHistBufferData, 0, equalHistBufferData.Length); + // histDataTotalPoints = 0; + + // //int depthMinDistance = (int)(minDistance * 1000f); + // //int depthMaxDistance = (int)(maxDistance * 1000f); + + // for (int i = 0; i < rawDepthImage.Length; i++) + // { + // int depth = rawDepthImage[i]; + // int limDepth = (depth <= MAX_DEPTH_DISTANCE_MM) ? depth : 0; + + // if (limDepth > 0) + // { + // depthHistBufferData[limDepth]++; + // histDataTotalPoints++; + // } + // } + + // equalHistBufferData[0] = depthHistBufferData[0]; + // for (int i = 1; i < depthHistBufferData.Length; i++) + // { + // equalHistBufferData[i] = equalHistBufferData[i - 1] + depthHistBufferData[i]; + // } + + // // make depth 0 equal to the max-depth + // equalHistBufferData[0] = equalHistBufferData[equalHistBufferData.Length - 1]; + + // lastDepthImageTimestamp = rawDepthTimestamp; + // //Debug.Log("lastDepthImageTimestamp: " + lastDepthImageTimestamp); + // } + //} + + //// body-image data + //if (lastBodyImageTimestamp != rawBodyIndexTimestamp && rawDepthImage != null && depthBodyBufferData != null) + //{ + // lock (bodyImageDataLock) + // { + // Array.Clear(depthBodyBufferData, 0, depthBodyBufferData.Length); + // Array.Clear(equalBodyBufferData, 0, equalBodyBufferData.Length); + // histBodyTotalPoints = 0; + + // int depthMinDistance = (int)(minDistance * 1000f); + // int depthMaxDistance = (int)(maxDistance * 1000f); + + // for (int i = 0; i < rawDepthImage.Length; i++) + // { + // int depth = rawDepthImage[i]; + // //int limDepth = (depth <= MAX_DEPTH_DISTANCE_MM) ? depth : 0; + // int limDepth = (depth >= depthMinDistance && depth <= depthMaxDistance) ? depth : 0; + + // if (/**rawBodyIndexImage[i] != 255 &&*/ limDepth > 0) + // { + // depthBodyBufferData[limDepth]++; + // histBodyTotalPoints++; + // } + // } + + // if(histBodyTotalPoints > 0) + // { + // equalBodyBufferData[0] = depthBodyBufferData[0]; + // for (int i = 1; i < depthBodyBufferData.Length; i++) + // { + // equalBodyBufferData[i] = equalBodyBufferData[i - 1] + depthBodyBufferData[i]; + // } + // } + + // lastBodyImageTimestamp = rawBodyIndexTimestamp; + // //Debug.Log("lastBodyImageTimestamp: " + lastBodyImageTimestamp); + // } + //} + + // ... + + + // set the frame timestamps + if (currentColorTimestamp != rawColorTimestamp) + { + // new color frame + currentColorTimestamp = rawColorTimestamp; + } + + if (currentDepthTimestamp != rawDepthTimestamp) + { + // new depth frame + currentDepthTimestamp = rawDepthTimestamp; + } + + if (currentInfraredTimestamp != rawInfraredTimestamp) + { + // new depth frame + currentInfraredTimestamp = rawInfraredTimestamp; + } + + if (currentPoseTimestamp != rawPoseTimestamp) + { + // new pose frame + currentPoseTimestamp = rawPoseTimestamp; + } + + if (currentBodyTimestamp != rawBodyTimestamp) + { + // new body frame + currentBodyTimestamp = rawBodyTimestamp; + } + + if (currentBodyIndexTimestamp != rawBodyIndexTimestamp) + { + // new body index frame + currentBodyIndexTimestamp = rawBodyIndexTimestamp; + } + } + + + public virtual bool UpdateSensorData(KinectInterop.SensorData sensorData, KinectManager kinectManager, bool isPlayMode) + { + // color frame + if (rawColorImage != null && sensorData.lastColorFrameTime != currentColorTimestamp && !isPlayMode) + { + lock (colorFrameLock) + { + Texture2D colorImageTex2D = sensorData.colorImageTexture as Texture2D; + if (colorImageTex2D != null) + { + colorImageTex2D.LoadRawTextureData(rawColorImage); + colorImageTex2D.Apply(); + } + + sensorData.lastColorFrameTime = currentColorTimestamp; + //Debug.Log("D" + deviceIndex + " UpdateColorTimestamp: " + currentColorTimestamp + ", Now: " + DateTime.Now.ToString("HH:mm:ss.fff")); + } + } + + // depth frame + if (rawDepthImage != null && sensorData.lastDepthFrameTime != currentDepthTimestamp && !isPlayMode) + { + lock (depthFrameLock) + { + // depth image + if (sensorData.depthImage != null) + { + //Buffer.BlockCopy(rawDepthImage, 0, sensorData.depthImage, 0, rawDepthImage.Length * sizeof(ushort)); + KinectInterop.CopyBytes(rawDepthImage, sizeof(ushort), sensorData.depthImage, sizeof(ushort)); + } + + sensorData.lastDepthFrameTime = currentDepthTimestamp; + //Debug.Log("D" + deviceIndex + " UpdateDepthTimestamp: " + currentDepthTimestamp + ", Now: " + DateTime.Now.ToString("HH:mm:ss.fff")); + } + } + + //// depth hist frame + //if (equalHistBufferData != null && sensorData.lastDepthHistTime != lastDepthImageTimestamp && !isPlayMode) + //{ + // lock (depthImageDataLock) + // { + // if (sensorData.depthHistBufferData != null) + // { + // KinectInterop.CopyBytes(equalHistBufferData, sizeof(int), sensorData.depthHistBufferData, sizeof(int)); + // } + + // sensorData.depthHistTotalPoints = histDataTotalPoints; + // sensorData.lastDepthHistTime = lastDepthImageTimestamp; + // //Debug.Log("D" + deviceIndex + " UpdateDepthHistTimestamp: " + lastDepthImageTimestamp); + // } + //} + + // infrared frame + if (rawInfraredImage != null && sensorData.lastInfraredFrameTime != currentInfraredTimestamp && !isPlayMode) + { + lock (infraredFrameLock) + { + if (sensorData.infraredImage != null) + { + //Buffer.BlockCopy(rawInfraredImage, 0, sensorData.infraredImage, 0, rawInfraredImage.Length * sizeof(ushort)); + KinectInterop.CopyBytes(rawInfraredImage, sizeof(ushort), sensorData.infraredImage, sizeof(ushort)); + } + + sensorData.lastInfraredFrameTime = currentInfraredTimestamp; + //Debug.Log("D" + deviceIndex + " UpdateInfraredTimestamp: " + currentInfraredTimestamp + ", Now: " + DateTime.Now.ToString("HH:mm:ss.fff")); + } + } + + // save the current pose frame time + ulong lastSensorPoseFrameTime = sensorData.lastSensorPoseFrameTime; + + // pose frame + if (sensorData.lastSensorPoseFrameTime != currentPoseTimestamp && !isPlayMode) + { + lock (poseFrameLock) + { + Quaternion localPoseRot = rawPoseRotation; + if (sensorRotIgnoreY) + { + Vector3 localPoseRotEuler = localPoseRot.eulerAngles; + localPoseRotEuler.y = sensorRotValueY; + localPoseRot = Quaternion.Euler(localPoseRotEuler); + } + + Quaternion corrPoseRotation = Quaternion.Euler(sensorRotOffset) * localPoseRot; + if(sensorRotFlipZ) + { + Vector3 corrPoseRotEuler = corrPoseRotation.eulerAngles; + corrPoseRotEuler.z = -corrPoseRotEuler.z; + corrPoseRotation = Quaternion.Euler(corrPoseRotEuler); + } + + matLocalPose.SetTRS(rawPosePosition, corrPoseRotation, Vector3.one); + Matrix4x4 matTransform = matTransformPose * matLocalPose; + + sensorPosePosition = matTransform.GetColumn(3); + sensorPoseRotation = matTransform.rotation; + + sensorData.sensorPosePosition = sensorPosePosition; + sensorData.sensorPoseRotation = sensorPoseRotation; + + sensorData.lastSensorPoseFrameTime = currentPoseTimestamp; + //Debug.Log("D" + deviceIndex + " UpdatePoseTimestamp: " + currentPoseTimestamp + ", Now: " + DateTime.Now.ToString("HH:mm:ss.fff")); + } + } + + // check if the pose data has changed + if (lastSensorPoseFrameTime != sensorData.lastSensorPoseFrameTime) + { + ApplySensorPoseUpdate(kinectManager); + } + + // body frame + if(sensorData.lastBodyFrameTime != currentBodyTimestamp) + { + lock (bodyTrackerLock) + { + // number of bodies + sensorData.trackedBodiesCount = trackedBodiesCount; + + // create the needed slots + if (sensorData.alTrackedBodies.Length < trackedBodiesCount) + { + //sensorData.alTrackedBodies.Add(new KinectInterop.BodyData((int)KinectInterop.JointType.Count)); + Array.Resize(ref sensorData.alTrackedBodies, (int)trackedBodiesCount); + + for (int i = 0; i < trackedBodiesCount; i++) + { + sensorData.alTrackedBodies[i] = new KinectInterop.BodyData((int)KinectInterop.JointType.Count); + } + } + + //alTrackedBodies.CopyTo(sensorData.alTrackedBodies); + for (int i = 0; i < trackedBodiesCount; i++) + { + //sensorData.alTrackedBodies[i] = alTrackedBodies[i]; + //KinectInterop.CopyBytes(alTrackedBodies[i], ref sensorData.alTrackedBodies[i]); + alTrackedBodies[i].CopyTo(ref sensorData.alTrackedBodies[i]); + + //KinectInterop.BodyData bodyData = sensorData.alTrackedBodies[i]; + //Debug.Log(" (U)User ID: " + bodyData.liTrackingID + ", body: " + i + ", bi: " + bodyData.iBodyIndex + ", pos: " + bodyData.joint[0].kinectPos + ", rot: " + bodyData.joint[0].normalRotation.eulerAngles); + } + + sensorData.lastBodyFrameTime = currentBodyTimestamp; + //Debug.Log("D" + deviceIndex + " UpdateBodyTimestamp: " + currentBodyTimestamp + ", BodyCount: " + trackedBodiesCount + ", Now: " + DateTime.Now.Ticks /*.ToString("HH:mm:ss.fff")*/); + } + } + + // body index frame + if (sensorData.lastBodyIndexFrameTime != currentBodyIndexTimestamp) + { + lock (bodyTrackerLock) + { + // body index image + if (rawBodyIndexImage != null && sensorData.bodyIndexImage != null) + { + KinectInterop.CopyBytes(rawBodyIndexImage, sizeof(byte), sensorData.bodyIndexImage, sizeof(byte)); + } + + sensorData.lastBodyIndexFrameTime = currentBodyIndexTimestamp; + //Debug.Log("D" + deviceIndex + " UpdateBodyIndexTimestamp: " + currentBodyIndexTimestamp + ", Now: " + DateTime.Now.ToString("HH:mm:ss.fff")); + } + } + + //// body hist frame + //if (equalBodyBufferData != null && sensorData.lastBodyHistTime != lastBodyImageTimestamp && !isPlayMode) + //{ + // lock (bodyImageDataLock) + // { + // if (sensorData.bodyHistBufferData != null) + // { + // KinectInterop.CopyBytes(equalBodyBufferData, sizeof(int), sensorData.bodyHistBufferData, sizeof(int)); + // } + + // sensorData.bodyHistTotalPoints = histBodyTotalPoints; + // sensorData.lastBodyHistTime = lastBodyImageTimestamp; + // //Debug.Log("D" + deviceIndex + " UpdateBodyHistTimestamp: " + lastBodyImageTimestamp); + // } + //} + + return true; + } + + + // applies the sensor-pose update to transform position & rotation, if needed + protected void ApplySensorPoseUpdate(KinectManager kinectManager) + { + if (kinectManager.getPoseFrames != KinectManager.PoseUsageType.RawPoseData) + { + switch (kinectManager.getPoseFrames) + { + case KinectManager.PoseUsageType.DisplayInfo: + if (kinectManager.statusInfoText != null) + { + kinectManager.statusInfoText.text = string.Format("Sensor position: ({0:F2}, {1:F2}, {2:F2}), rotation: {3}", + sensorPosePosition.x, sensorPosePosition.y, sensorPosePosition.z, sensorPoseRotation.eulerAngles); + } + break; + + case KinectManager.PoseUsageType.UpdateTransform: + transform.position = sensorPosePosition; // sensorData.sensorPosePosition; + transform.rotation = sensorPoseRotation; // sensorData.sensorPoseRotation; + //sensorData.sensorTransformUpdated = true; + break; + } + } + } + + + // returns the anchor position of the background raw image + public virtual Vector2 GetBackgroundImageAnchorPos(KinectInterop.SensorData sensorData) + { + return Vector2.zero; + } + + + // returns the point cloud texture resolution + public virtual Vector2Int GetPointCloudTexResolution(KinectInterop.SensorData sensorData) + { + Vector2Int texRes = Vector2Int.zero; + + switch (pointCloudResolution) + { + case PointCloudResolution.DepthCameraResolution: + texRes = new Vector2Int(sensorData.depthImageWidth, sensorData.depthImageHeight); + break; + + case PointCloudResolution.ColorCameraResolution: + texRes = new Vector2Int(sensorData.colorImageWidth, sensorData.colorImageHeight); + break; + } + + if(texRes == Vector2Int.zero) + { + throw new Exception("Unsupported point cloud resolution: " + pointCloudResolution + " or the respective image is not available."); + } + + return texRes; + } + + + // returns the list of point-cloud player indices, or null if the list is empty + public virtual int[] GetPointCloudPlayerIndices() + { + if (string.IsNullOrEmpty(pointCloudPlayerList)) + return null; + + string[] asPlayerIndices = pointCloudPlayerList.Split(",".ToCharArray()); + int[] aiPlayerIndices = new int[asPlayerIndices.Length]; + + for(int i = 0; i < asPlayerIndices.Length; i++) + { + if (!int.TryParse(asPlayerIndices[i].Trim(), out aiPlayerIndices[i])) + aiPlayerIndices[i] = -1; + } + + return aiPlayerIndices; + } + + + // creates the point-cloud vertex shader and its respective buffers, as needed + protected virtual bool CreatePointCloudVertexShader(KinectInterop.SensorData sensorData) + { + if (sensorData.depthCamIntr == null || sensorData.depthCamIntr.distType == KinectInterop.DistortionType.None) + return false; + + pointCloudVertexRes = GetPointCloudTexResolution(sensorData); + pointCloudPlayerIndices = GetPointCloudPlayerIndices(); + + if (pointCloudVertexRT == null) + { + pointCloudVertexRT = KinectInterop.CreateRenderTexture(pointCloudVertexRT, pointCloudVertexRes.x, pointCloudVertexRes.y, RenderTextureFormat.ARGBHalf); + //pointCloudVertexRT.enableRandomWrite = true; + pointCloudVertexRT.Create(); + } + + if (pointCloudVertexShader == null) + { + if(pointCloudPlayerIndices == null) + pointCloudVertexShader = Resources.Load("PointCloudVertexShaderAll") as ComputeShader; + else + pointCloudVertexShader = Resources.Load("PointCloudBodyVertexShaderAll") as ComputeShader; + + pointCloudVertexKernel = pointCloudVertexShader != null ? pointCloudVertexShader.FindKernel("BakeVertexTex") : -1; + } + + if (pointCloudSpaceBuffer == null) + { + int spaceBufferLength = pointCloudVertexRes.x * pointCloudVertexRes.y * 3; + pointCloudSpaceBuffer = new ComputeBuffer(spaceBufferLength, sizeof(float)); + + // depth2space table + //Debug.Log("Started creating space tables..."); + //float fTimeStart = Time.realtimeSinceStartup; + + //int depthImageLength = pointCloudVertexRes.x * pointCloudVertexRes.y; + //Vector3[] depth2SpaceTable = new Vector3[depthImageLength]; + + //for (int dy = 0, di = 0; dy < pointCloudVertexRes.y; dy++) + //{ + // for (int dx = 0; dx < pointCloudVertexRes.x; dx++, di++) + // { + // Vector2 depthPos = new Vector2(dx, dy); + // depth2SpaceTable[di] = pointCloudResolution == PointCloudResolution.ColorCameraResolution ? + // MapColorPointToSpaceCoords(sensorData, depthPos, 1000) : MapDepthPointToSpaceCoords(sensorData, depthPos, 1000); + // } + //} + + depth2SpaceTable = pointCloudResolution == PointCloudResolution.ColorCameraResolution ? + GetColorCameraSpaceTable(sensorData) : GetDepthCameraSpaceTable(sensorData); + + //// parallelize for gaining time + //System.Threading.Tasks.Parallel.For(0, pointCloudVertexRes.y, dy => + //{ + // int di = dy * pointCloudVertexRes.x; + + // for (var dx = 0; dx < pointCloudVertexRes.x; dx++, di++) + // { + // Vector2 depthPos = new Vector2(dx, dy); + // depth2SpaceTable[di] = pointCloudResolution == PointCloudResolution.ColorCameraResolution ? + // MapColorPointToSpaceCoords(sensorData, depthPos, 1000) : MapDepthPointToSpaceCoords(sensorData, depthPos, 1000); + // } + //}); + + //Debug.Log("depth2SpaceTable: " + depth2SpaceTable); + pointCloudSpaceBuffer.SetData(depth2SpaceTable); + depth2SpaceTable = null; + //Debug.Log("Finished creating space tables in " + (Time.realtimeSinceStartup - fTimeStart) + "s"); + } + + if (pointCloudDepthBuffer == null) + { + int depthBufferLength = pointCloudVertexRes.x * pointCloudVertexRes.y / 2; + pointCloudDepthBuffer = new ComputeBuffer(depthBufferLength, sizeof(uint)); + } + + if (pointCloudResolution == PointCloudResolution.ColorCameraResolution && colorCamDepthDataFrame == null) + { + colorCamDepthDataFrame = new ushort[sensorData.colorImageWidth * sensorData.colorImageHeight]; + } + + if (pointCloudPlayerIndices != null) + { + // body index buffer + int biBufferLength = pointCloudVertexRes.x * pointCloudVertexRes.y / 4; + + if (pointCloudResolution == PointCloudResolution.ColorCameraResolution && sensorData.colorBodyIndexBuffer == null) + sensorData.colorBodyIndexBuffer = new ComputeBuffer(biBufferLength, sizeof(uint)); + else if(pointCloudResolution == PointCloudResolution.DepthCameraResolution && pointCloudBodyIndexBuffer == null) + pointCloudBodyIndexBuffer = new ComputeBuffer(biBufferLength, sizeof(uint)); + } + + return true; + } + + + // disposes the point-cloud vertex shader and its respective buffers + protected virtual void DisposePointCloudVertexShader(KinectInterop.SensorData sensorData) + { + if (pointCloudSpaceBuffer != null) + { + pointCloudSpaceBuffer.Dispose(); + pointCloudSpaceBuffer = null; + } + + if (pointCloudDepthBuffer != null) + { + pointCloudDepthBuffer.Dispose(); + pointCloudDepthBuffer = null; + } + + if (pointCloudResolution == PointCloudResolution.ColorCameraResolution && sensorData.colorBodyIndexBuffer != null) + { + sensorData.colorBodyIndexBuffer.Dispose(); + sensorData.colorBodyIndexBuffer = null; + } + + if (pointCloudBodyIndexBuffer != null) + { + pointCloudBodyIndexBuffer.Dispose(); + pointCloudBodyIndexBuffer = null; + } + + if (pointCloudCoordBuffer != null) + { + // K2 color camera resolution + pointCloudCoordBuffer.Dispose(); + pointCloudCoordBuffer = null; + } + + if (pointCloudVertexRT != null) + { + pointCloudVertexRT.Release(); + pointCloudVertexRT = null; + } + + if (colorCamDepthDataFrame != null) + { + colorCamDepthDataFrame = null; + } + + if (colorCamDepthCoordFrame != null) + { + colorCamDepthCoordFrame = null; + } + + if (pointCloudVertexShader != null) + { + pointCloudVertexShader = null; + } + } + + + // converts player indices to body indices. Returns true on successful conversion. Returns false, if the playerIndices array is null. + protected bool GetPointCloudBodyIndices(KinectInterop.SensorData sensorData, KinectManager kinectManager, int[] playerIndices, ref int[] bodyIndices) + { + if (playerIndices == null || kinectManager == null || kinectManager.userManager == null) + return false; + + if(bodyIndices == null || bodyIndices.Length != playerIndices.Length) + { + bodyIndices = new int[playerIndices.Length]; + } + + if (!userBodyMergerInited && KinectManager.Instance != null && KinectManager.Instance.IsInitialized()) + { + userBodyMerger = KinectManager.Instance.GetUserBodyMerger(); + userBodyMergerInited = true; + } + + for (int i = 0; i < playerIndices.Length; i++) + { + int iPlayer = playerIndices[i]; + ulong userId = iPlayer >= 0 && iPlayer < KinectInterop.Constants.MaxBodyCount ? kinectManager.userManager.aUserIndexIds[iPlayer] : 0; + + if(userBodyMerger != null && userId > 0) + { + userId = userBodyMerger.GetSensorTrackingId(sensorData.sensorIndex, userId); + } + + bodyIndices[i] = -1; + for (int b = 0; b < sensorData.trackedBodiesCount; b++) + { + if (sensorData.alTrackedBodies[b].bIsTracked && sensorData.alTrackedBodies[b].liTrackingID == userId) + { + bodyIndices[i] = sensorData.alTrackedBodies[b].iBodyIndex; + break; + } + } + + //Debug.Log("playerIndex: " + iPlayer + ", userId: " + userId + ", bodyIndex: " + bodyIndices[i]); + } + + return true; + } + + // updates the point-cloud vertex shader with the actual data + protected virtual bool UpdatePointCloudVertexShader(KinectInterop.SensorData sensorData, KinectManager kinectManager) + { + if (pointCloudVertexShader != null && pointCloudVertexRT != null && + ((sensorData.lastDepth2SpaceFrameTime != sensorData.lastDepthFrameTime) || + (sensorData.lastDepth2SpaceFrameTime != lastColorCamDepthFrameTime))) + { + if (pointCloudResolution == PointCloudResolution.ColorCameraResolution) + { + if(colorCamDepthDataFrame != null) + { + lock (colorCamDepthFrameLock) + { + int bufLength = colorCamDepthDataFrame.Length >> 1; + if(pointCloudDepthBuffer == null || pointCloudDepthBuffer.count != bufLength) + { + pointCloudDepthBuffer = KinectInterop.CreateComputeBuffer(pointCloudDepthBuffer, bufLength, sizeof(uint)); + //Debug.Log("Created pointCloudDepthBuffer with len: " + bufLength); + } + + KinectInterop.SetComputeBufferData(pointCloudDepthBuffer, colorCamDepthDataFrame, bufLength, sizeof(uint)); + } + } + + sensorData.lastDepth2SpaceFrameTime = lastColorCamDepthFrameTime; + } + else + { + if(sensorData.depthImage != null) + { + int bufLength = sensorData.depthImage.Length >> 1; + if (pointCloudDepthBuffer == null || pointCloudDepthBuffer.count != bufLength) + { + pointCloudDepthBuffer = KinectInterop.CreateComputeBuffer(pointCloudDepthBuffer, bufLength, sizeof(uint)); + //Debug.Log("Created pointCloudDepthBuffer with len: " + bufLength); + } + + KinectInterop.SetComputeBufferData(pointCloudDepthBuffer, sensorData.depthImage, bufLength, sizeof(uint)); + } + + sensorData.lastDepth2SpaceFrameTime = sensorData.lastDepthFrameTime; + } + + if (GetPointCloudBodyIndices(sensorData, kinectManager, pointCloudPlayerIndices, ref pointCloudBodyIndices)) + { + // body index + if (pointCloudResolution == PointCloudResolution.ColorCameraResolution && sensorData.colorBodyIndexBuffer != null) + { + pointCloudVertexShader.SetBuffer(pointCloudVertexKernel, "BodyIndexMap", sensorData.colorBodyIndexBuffer); + } + else if (pointCloudResolution == PointCloudResolution.DepthCameraResolution && pointCloudBodyIndexBuffer != null && sensorData.bodyIndexImage != null) + { + int bufLength = sensorData.bodyIndexImage.Length >> 2; + if (pointCloudBodyIndexBuffer == null || pointCloudBodyIndexBuffer.count != bufLength) + { + pointCloudBodyIndexBuffer = KinectInterop.CreateComputeBuffer(pointCloudBodyIndexBuffer, bufLength, sizeof(uint)); + //Debug.Log("Created pointCloudBodyIndexBuffer with len: " + bufLength); + } + + KinectInterop.SetComputeBufferData(pointCloudBodyIndexBuffer, sensorData.bodyIndexImage, bufLength, sizeof(uint)); + pointCloudVertexShader.SetBuffer(pointCloudVertexKernel, "BodyIndexMap", pointCloudBodyIndexBuffer); + } + + // body params + int uCount = pointCloudBodyIndices.Length; + pointCloudVertexShader.SetInt("BodyIndexAll", uCount == 1 && pointCloudPlayerIndices[0] == -1 ? 1 : 0); + + pointCloudVertexShader.SetInt("BodyIndex0", uCount > 0 ? pointCloudBodyIndices[0] : -1); + pointCloudVertexShader.SetInt("BodyIndex1", uCount > 1 ? pointCloudBodyIndices[1] : -1); + pointCloudVertexShader.SetInt("BodyIndex2", uCount > 2 ? pointCloudBodyIndices[2] : -1); + pointCloudVertexShader.SetInt("BodyIndex3", uCount > 3 ? pointCloudBodyIndices[3] : -1); + pointCloudVertexShader.SetInt("BodyIndex4", uCount > 4 ? pointCloudBodyIndices[4] : -1); + + //Debug.Log("All: " + (pointCloudPlayerIndices[0] == -1 ? 1 : 0) + ", Ind: " + + // (uCount > 0 ? pointCloudBodyIndices[0] : -1) + " " + + // (uCount > 1 ? pointCloudBodyIndices[1] : -1) + " " + + // (uCount > 2 ? pointCloudBodyIndices[2] : -1) + " " + + // (uCount > 3 ? pointCloudBodyIndices[3] : -1) + " " + + // (uCount > 4 ? pointCloudBodyIndices[4] : -1)); + } + + if (pointCloudResolution == PointCloudResolution.ColorCameraResolution) + { + if (color2SpaceWidth != sensorData.colorImageWidth || color2SpaceHeight != sensorData.colorImageHeight) + { + depth2SpaceTable = GetColorCameraSpaceTable(sensorData); + pointCloudSpaceBuffer.SetData(depth2SpaceTable); + depth2SpaceTable = null; + + //Debug.Log("Updated color-cam space table to w: " + color2SpaceWidth + "x" + color2SpaceHeight + ", cw: " + sensorData.colorImageWidth + ", ch: " + sensorData.colorImageHeight); + } + } + else + { + if (depth2SpaceWidth != sensorData.depthImageWidth || depth2SpaceHeight != sensorData.depthImageHeight) + { + depth2SpaceTable = GetDepthCameraSpaceTable(sensorData); + pointCloudSpaceBuffer.SetData(depth2SpaceTable); + depth2SpaceTable = null; + + //Debug.Log("Updated depth-cam space table to w: " + depth2SpaceWidth + "x" + depth2SpaceHeight + ", dw: " + sensorData.depthImageWidth + ", dh: " + sensorData.depthImageHeight); + } + } + + pointCloudVertexRes = GetPointCloudTexResolution(sensorData); + if (pointCloudVertexRT == null || pointCloudVertexRT.width != pointCloudVertexRes.x || pointCloudVertexRT.height != pointCloudVertexRes.y) + { + pointCloudVertexRT = KinectInterop.CreateRenderTexture(pointCloudVertexRT, pointCloudVertexRes.x, pointCloudVertexRes.y, RenderTextureFormat.ARGBHalf); + pointCloudVertexRT.Create(); + } + + KinectInterop.SetComputeShaderInt2(pointCloudVertexShader, "PointCloudRes", pointCloudVertexRes.x, pointCloudVertexRes.y); + KinectInterop.SetComputeShaderFloat2(pointCloudVertexShader, "SpaceScale", sensorData.sensorSpaceScale.x, sensorData.sensorSpaceScale.y); + pointCloudVertexShader.SetInt("MinDepth", (int)(minDepthDistance * 1000f)); + pointCloudVertexShader.SetInt("MaxDepth", (int)(maxDepthDistance * 1000f)); + pointCloudVertexShader.SetBuffer(pointCloudVertexKernel, "SpaceTable", pointCloudSpaceBuffer); + pointCloudVertexShader.SetBuffer(pointCloudVertexKernel, "DepthMap", pointCloudDepthBuffer); + pointCloudVertexShader.SetTexture(pointCloudVertexKernel, "PointCloudVertexTex", pointCloudVertexRT); + pointCloudVertexShader.Dispatch(pointCloudVertexKernel, pointCloudVertexRes.x / 8, pointCloudVertexRes.y / 8, 1); + + if (pointCloudVertexTexture != null) + { + Graphics.Blit(pointCloudVertexRT, pointCloudVertexTexture); + } + + return true; + } + + return false; + } + + + // creates the point-cloud color shader and its respective buffers, as needed + protected virtual bool CreatePointCloudColorShader(KinectInterop.SensorData sensorData) + { + //renderDepthAlignedColorTexture.enableRandomWrite = true; + + //if (pointCloudColorRT == null) + //{ + // pointCloudColorRT = new RenderTexture(sensorData.depthImageWidth, sensorData.depthImageHeight, 0, RenderTextureFormat.ARGB32); + // pointCloudColorRT.enableRandomWrite = true; + // pointCloudColorRT.Create(); + //} + + pointCloudColorRes = GetPointCloudTexResolution(sensorData); + + if(pointCloudResolution == PointCloudResolution.DepthCameraResolution) + { + if (pointCloudAlignedColorTex == null) + { + pointCloudAlignedColorTex = new Texture2D(sensorData.depthImageWidth, sensorData.depthImageHeight, sensorData.colorImageFormat, false); + } + + if (depthCamColorDataFrame == null) + { + depthCamColorDataFrame = new byte[sensorData.depthImageWidth * sensorData.depthImageHeight * sensorData.colorImageStride]; + } + } + + return true; + } + + + // disposes the point-cloud color shader and its respective buffers + protected virtual void DisposePointCloudColorShader(KinectInterop.SensorData sensorData) + { + if (pointCloudCoordBuffer != null) + { + // K2 depth camera resolution + pointCloudCoordBuffer.Dispose(); + pointCloudCoordBuffer = null; + } + + if (pointCloudColorRT) + { + pointCloudColorRT.Release(); + pointCloudColorRT = null; + } + + if (pointCloudAlignedColorTex != null) + { + Destroy(pointCloudAlignedColorTex); + pointCloudAlignedColorTex = null; + } + + if (depthCamColorDataFrame != null) + { + depthCamColorDataFrame = null; + } + + if (depthCamColorCoordFrame != null) + { + depthCamColorCoordFrame = null; + } + + if (pointCloudColorShader != null) + { + pointCloudColorShader = null; + } + } + + + // updates the point-cloud color shader with the actual data + protected virtual bool UpdatePointCloudColorShader(KinectInterop.SensorData sensorData) + { + Texture texColor = null; + + if (pointCloudResolution == PointCloudResolution.DepthCameraResolution) + { + if (pointCloudAlignedColorTex != null && depthCamColorDataFrame != null && sensorData.lastDepthCamColorFrameTime != lastDepthCamColorFrameTime) + { + lock (depthCamColorFrameLock) + { + sensorData.lastDepthCamColorFrameTime = lastDepthCamColorFrameTime; + + ((Texture2D)pointCloudAlignedColorTex).LoadRawTextureData(depthCamColorDataFrame); + ((Texture2D)pointCloudAlignedColorTex).Apply(); + + if(sensorData.depthCamColorImageTexture != null) + { + Graphics.CopyTexture(pointCloudAlignedColorTex, sensorData.depthCamColorImageTexture); + } + } + + if (pointCloudColorRT != null) + { + Graphics.CopyTexture(pointCloudAlignedColorTex, pointCloudColorRT); + } + + texColor = pointCloudAlignedColorTex; + } + } + else + { + texColor = sensorData.colorImageTexture; + } + + if(texColor != null) + { + if(pointCloudColorTexture != null) + { + Graphics.Blit(texColor, pointCloudColorTexture); + } + + return true; + } + + return false; + } + + + // creates the color-depth shader and its respective buffers, as needed + protected virtual bool CreateColorDepthShader(KinectInterop.SensorData sensorData) + { + if (colorCamDepthDataFrame == null) + { + colorCamDepthDataFrame = new ushort[sensorData.colorImageWidth * sensorData.colorImageHeight]; + } + + if (sensorData.colorDepthTexture == null) + { + sensorData.colorDepthTexture = KinectInterop.CreateRenderTexture(sensorData.colorDepthTexture, sensorData.colorImageWidth, sensorData.colorImageHeight, RenderTextureFormat.ARGB32); + //sensorData.colorDepthTexture.enableRandomWrite = true; + sensorData.colorDepthTexture.Create(); + } + + colorDepthShaderInited = true; + + return true; + } + + + // disposes the color-depth shader and its respective buffers + protected virtual void DisposeColorDepthShader(KinectInterop.SensorData sensorData) + { + if (colorCamDepthDataFrame != null) + { + colorCamDepthDataFrame = null; + } + + if (sensorData.colorDepthTexture != null) + { + sensorData.colorDepthTexture.Release(); + sensorData.colorDepthTexture = null; + } + + if (pointCloudDepthBuffer != null) + { + pointCloudDepthBuffer.Dispose(); + pointCloudDepthBuffer = null; + } + + if (pointCloudCoordBuffer != null) + { + pointCloudCoordBuffer.Dispose(); + pointCloudCoordBuffer = null; + } + + if (colorCamDepthCoordFrame != null) + { + colorCamDepthCoordFrame = null; + } + + if (colorDepthShader != null) + { + colorDepthShader = null; + } + + colorDepthShaderInited = false; + } + + + // updates the color-depth shader with the actual data + protected virtual bool UpdateColorDepthShader(KinectInterop.SensorData sensorData) + { + if (colorCamDepthDataFrame != null) + { + if(/**sensorData.usedColorDepthBufferTime == sensorData.lastColorDepthBufferTime && */ + sensorData.lastColorDepthBufferTime != lastColorCamDepthFrameTime) + { + lock(colorCamDepthFrameLock) + { + sensorData.lastColorDepthBufferTime = lastColorCamDepthFrameTime; + + if (sensorData.colorImageTexture != null) + { + if(sensorData.colorDepthTexture == null || sensorData.colorDepthTexture.width != sensorData.colorImageWidth || sensorData.colorDepthTexture.height != sensorData.colorImageHeight) + { + sensorData.colorDepthTexture = KinectInterop.CreateRenderTexture(sensorData.colorDepthTexture, sensorData.colorImageWidth, sensorData.colorImageHeight, RenderTextureFormat.ARGB32); + sensorData.colorDepthTexture.Create(); + } + + Graphics.Blit(sensorData.colorImageTexture, sensorData.colorDepthTexture); + } + + if(sensorData.colorDepthBuffer != null) + { + int bufferLength = sensorData.colorImageWidth * sensorData.colorImageHeight >> 1; + if(sensorData.colorDepthBuffer.count != bufferLength) + { + sensorData.colorDepthBuffer = KinectInterop.CreateComputeBuffer(sensorData.colorDepthBuffer, bufferLength, sizeof(uint)); + } + + KinectInterop.SetComputeBufferData(sensorData.colorDepthBuffer, colorCamDepthDataFrame, bufferLength, sizeof(uint)); + } + + if(sensorData.colorCamDepthImage != null) + { + if(sensorData.colorCamDepthImage.Length != colorCamDepthDataFrame.Length) + { + sensorData.colorCamDepthImage = new ushort[colorCamDepthDataFrame.Length]; + } + + KinectInterop.CopyBytes(colorCamDepthDataFrame, sizeof(ushort), sensorData.colorCamDepthImage, sizeof(ushort)); + sensorData.lastColorCamDepthFrameTime = lastColorCamDepthFrameTime; + } + } + } + + return true; + } + + return false; + } + + + // creates the color-infrared shader and its respective buffers, as needed + protected virtual bool CreateColorInfraredShader(KinectInterop.SensorData sensorData) + { + if (colorCamInfraredDataFrame == null) + { + colorCamInfraredDataFrame = new ushort[sensorData.colorImageWidth * sensorData.colorImageHeight]; + } + + if (sensorData.colorInfraredTexture == null) + { + sensorData.colorInfraredTexture = KinectInterop.CreateRenderTexture(sensorData.colorInfraredTexture, sensorData.colorImageWidth, sensorData.colorImageHeight, RenderTextureFormat.ARGB32); + //sensorData.colorInfraredTexture.enableRandomWrite = true; + sensorData.colorInfraredTexture.Create(); + } + + Shader infraredImageShader = Shader.Find("Kinect/InfraredImageShader"); + if(infraredImageShader) + { + sensorData.colorInfraredMaterial = new Material(infraredImageShader); + } + + colorInfraredShaderInited = true; + + return true; + } + + + // disposes the color-infrared shader and its respective buffers + protected virtual void DisposeColorInfraredShader(KinectInterop.SensorData sensorData) + { + if (colorCamInfraredDataFrame != null) + { + colorCamInfraredDataFrame = null; + } + + if (sensorData.colorInfraredTexture != null) + { + sensorData.colorInfraredTexture.Release(); + sensorData.colorInfraredTexture = null; + } + + if(sensorData.colorInfraredMaterial != null) + { + sensorData.colorInfraredMaterial = null; + } + + if (pointCloudInfraredBuffer != null) + { + pointCloudInfraredBuffer.Dispose(); + pointCloudInfraredBuffer = null; + } + + if (pointCloudCoordBuffer != null) + { + pointCloudCoordBuffer.Dispose(); + pointCloudCoordBuffer = null; + } + + if (colorCamDepthCoordFrame != null) + { + colorCamDepthCoordFrame = null; + } + + if (colorInfraredShader != null) + { + colorInfraredShader = null; + } + + colorInfraredShaderInited = false; + } + + + // updates the color-infrared shader with the actual data + protected virtual bool UpdateColorInfraredShader(KinectInterop.SensorData sensorData) + { + if (colorCamInfraredDataFrame != null) + { + if (/**sensorData.usedColorInfraredBufferTime == sensorData.lastColorInfraredBufferTime && */ + sensorData.lastColorInfraredBufferTime != lastColorCamInfraredFrameTime) + { + lock (colorCamInfraredFrameLock) + { + sensorData.lastColorInfraredBufferTime = lastColorCamInfraredFrameTime; + + //if (sensorData.colorImageTexture != null) + //{ + // Graphics.Blit(sensorData.colorImageTexture, sensorData.colorInfraredTexture); + //} + + if (sensorData.colorInfraredBuffer != null) + { + int bufferLength = sensorData.colorImageWidth * sensorData.colorImageHeight >> 1; + if(sensorData.colorInfraredBuffer.count != bufferLength) + { + sensorData.colorInfraredBuffer = KinectInterop.CreateComputeBuffer(sensorData.colorInfraredBuffer, bufferLength, sizeof(uint)); + } + + KinectInterop.SetComputeBufferData(sensorData.colorInfraredBuffer, colorCamInfraredDataFrame, bufferLength, sizeof(uint)); + } + + if (sensorData.colorCamInfraredImage != null) + { + if(sensorData.colorCamInfraredImage.Length != colorCamInfraredDataFrame.Length) + { + sensorData.colorCamInfraredImage = new ushort[colorCamInfraredDataFrame.Length]; + } + + KinectInterop.CopyBytes(colorCamInfraredDataFrame, sizeof(ushort), sensorData.colorCamInfraredImage, sizeof(ushort)); + sensorData.lastColorCamInfraredFrameTime = lastColorCamInfraredFrameTime; + } + } + } + + return true; + } + + return false; + } + + + // creates the color-camera body index shader and its respective buffers, as needed + protected virtual bool CreateColorBodyIndexShader(KinectInterop.SensorData sensorData) + { + if (colorCamBodyIndexFrame == null) + { + colorCamBodyIndexFrame = new byte[sensorData.colorImageWidth * sensorData.colorImageHeight]; + } + + if (sensorData.colorBodyIndexTexture == null) + { + sensorData.colorBodyIndexTexture = KinectInterop.CreateRenderTexture(sensorData.colorBodyIndexTexture, sensorData.colorImageWidth, sensorData.colorImageHeight, RenderTextureFormat.ARGB32); + //sensorData.colorBodyIndexTexture.enableRandomWrite = true; + sensorData.colorBodyIndexTexture.Create(); + } + + colorBodyIndexShaderInited = true; + + return true; + } + + + // disposes the color-camera body index shader and its respective buffers + protected virtual void DisposeColorBodyIndexShader(KinectInterop.SensorData sensorData) + { + if (colorCamBodyIndexFrame != null) + { + colorCamBodyIndexFrame = null; + } + + if (sensorData.colorBodyIndexTexture != null) + { + sensorData.colorBodyIndexTexture.Release(); + sensorData.colorBodyIndexTexture = null; + } + + if (bodyIndexBuffer != null) + { + bodyIndexBuffer.Dispose(); + bodyIndexBuffer = null; + } + + if (pointCloudCoordBuffer != null) + { + pointCloudCoordBuffer.Dispose(); + pointCloudCoordBuffer = null; + } + + if (colorCamDepthCoordFrame != null) + { + colorCamDepthCoordFrame = null; + } + + if (colorBodyIndexShader != null) + { + colorBodyIndexShader = null; + } + + colorBodyIndexShaderInited = false; + } + + + // updates the color-camera body index shader with the actual data + protected virtual bool UpdateColorBodyIndexShader(KinectInterop.SensorData sensorData) + { + if (colorCamBodyIndexFrame != null) + { + if (/**sensorData.usedColorBodyIndexBufferTime == sensorData.lastColorBodyIndexBufferTime && */ + sensorData.lastColorBodyIndexBufferTime != lastColorCamBodyIndexFrameTime) + { + lock (colorCamBodyIndexFrameLock) + { + sensorData.lastColorBodyIndexBufferTime = lastColorCamBodyIndexFrameTime; + + if (sensorData.colorImageTexture != null) + { + if(sensorData.colorBodyIndexTexture == null || sensorData.colorBodyIndexTexture.width != sensorData.colorImageWidth || sensorData.colorBodyIndexTexture.height != sensorData.colorImageHeight) + { + sensorData.colorBodyIndexTexture = KinectInterop.CreateRenderTexture(sensorData.colorBodyIndexTexture, sensorData.colorImageWidth, sensorData.colorImageHeight, RenderTextureFormat.ARGB32); + sensorData.colorBodyIndexTexture.Create(); + } + + Graphics.Blit(sensorData.colorImageTexture, sensorData.colorBodyIndexTexture); + } + + if(sensorData.colorBodyIndexBuffer != null) + { + int bufferLength = sensorData.colorImageWidth * sensorData.colorImageHeight >> 2; + if(sensorData.colorBodyIndexBuffer.count != bufferLength) + { + sensorData.colorBodyIndexBuffer = KinectInterop.CreateComputeBuffer(sensorData.colorBodyIndexBuffer, bufferLength, sizeof(uint)); + } + + KinectInterop.SetComputeBufferData(sensorData.colorBodyIndexBuffer, colorCamBodyIndexFrame, bufferLength, sizeof(uint)); + } + + if (sensorData.colorCamBodyIndexImage != null) + { + if(sensorData.colorCamBodyIndexImage.Length != colorCamBodyIndexFrame.Length) + { + sensorData.colorCamBodyIndexImage = new byte[colorCamBodyIndexFrame.Length]; + } + + KinectInterop.CopyBytes(colorCamBodyIndexFrame, sizeof(byte), sensorData.colorCamBodyIndexImage, sizeof(byte)); + sensorData.lastColorCamBodyIndexFrameTime = lastColorCamBodyIndexFrameTime; + } + } + } + + return true; + } + + return false; + } + + + // creates the depth-tex shader and its respective buffers, as needed + protected virtual bool CreateDepthTexShader(KinectInterop.SensorData sensorData) + { + Shader depthTexShader = Shader.Find("Kinect/DepthTexShader"); + if (depthTexShader != null) + { + sensorData.depthTexMaterial = new Material(depthTexShader); + + if (sensorData.depthImageBuffer == null) + { + int depthBufferLength = sensorData.depthImageWidth * sensorData.depthImageHeight / 2; + sensorData.depthImageBuffer = KinectInterop.CreateComputeBuffer(sensorData.depthImageBuffer, depthBufferLength, sizeof(uint)); + } + } + + return true; + } + + + // disposes the depth-tex shader and its respective buffers + protected virtual void DisposeDepthTexShader(KinectInterop.SensorData sensorData) + { + if (sensorData.depthTexTexture != null) + { + sensorData.depthTexTexture.Release(); + sensorData.depthTexTexture = null; + } + + if (sensorData.depthImageBuffer != null) + { + sensorData.depthImageBuffer.Dispose(); + sensorData.depthImageBuffer = null; + } + + sensorData.depthTexMaterial = null; + } + + + // creates the infrared-tex shader and its respective buffers, as needed + protected virtual bool CreateInfraredTexShader(KinectInterop.SensorData sensorData) + { + Shader infraredTexShader = Shader.Find("Kinect/DepthTexShader"); + if (infraredTexShader != null) + { + sensorData.infraredTexMaterial = new Material(infraredTexShader); + + if (sensorData.infraredImageBuffer == null) + { + int depthBufferLength = sensorData.depthImageWidth * sensorData.depthImageHeight / 2; + sensorData.infraredImageBuffer = KinectInterop.CreateComputeBuffer(sensorData.infraredImageBuffer, depthBufferLength, sizeof(uint)); + } + } + + return true; + } + + + // disposes the infrared-tex shader and its respective buffers + protected virtual void DisposeInfraredTexShader(KinectInterop.SensorData sensorData) + { + if (sensorData.infraredTexTexture != null) + { + sensorData.infraredTexTexture.Release(); + sensorData.infraredTexTexture = null; + } + + if (sensorData.infraredImageBuffer != null) + { + sensorData.infraredImageBuffer.Dispose(); + sensorData.infraredImageBuffer = null; + } + + sensorData.infraredTexMaterial = null; + } + + + // updates transformed frame textures, if needed + public virtual bool UpdateTransformedFrameTextures(KinectInterop.SensorData sensorData, KinectManager kinectManager) + { + // depth cam space frame + if (pointCloudVertexTexture != null) + { + if (pointCloudVertexShader != null || CreatePointCloudVertexShader(sensorData)) + { + UpdatePointCloudVertexShader(sensorData, kinectManager); + } + } + else + { + if (pointCloudVertexShader != null) + { + DisposePointCloudVertexShader(sensorData); + } + } + + // depth cam color frame + if (pointCloudColorTexture != null || sensorData.depthCamColorImageTexture != null) + { + if (pointCloudColorShader != null || pointCloudAlignedColorTex != null || CreatePointCloudColorShader(sensorData)) + { + UpdatePointCloudColorShader(sensorData); + } + } + else + { + if (pointCloudColorShader != null || pointCloudAlignedColorTex != null) + { + DisposePointCloudColorShader(sensorData); + } + } + + // color cam depth frame + if (sensorData.colorDepthBuffer != null || sensorData.colorCamDepthImage != null) + { + if(colorDepthShaderInited || CreateColorDepthShader(sensorData)) + { + UpdateColorDepthShader(sensorData); + } + } + else + { + if(colorDepthShaderInited) + { + DisposeColorDepthShader(sensorData); + } + } + + // color cam infrared frame + if (sensorData.colorInfraredBuffer != null || sensorData.colorCamInfraredImage != null) + { + if (colorInfraredShaderInited || CreateColorInfraredShader(sensorData)) + { + UpdateColorInfraredShader(sensorData); + } + } + else + { + if (colorInfraredShaderInited) + { + DisposeColorInfraredShader(sensorData); + } + } + + // color cam body index frame + if (sensorData.colorBodyIndexBuffer != null || sensorData.colorCamBodyIndexImage != null) + { + if (colorBodyIndexShaderInited || CreateColorBodyIndexShader(sensorData)) + { + UpdateColorBodyIndexShader(sensorData); + } + } + else + { + if (colorBodyIndexShaderInited) + { + DisposeColorBodyIndexShader(sensorData); + } + } + + // depth-tex + if (sensorData.depthTexTexture != null) + { + if (sensorData.depthTexMaterial != null || CreateDepthTexShader(sensorData)) + { + //UpdateDepthTexShader(sensorData); // code moved to UpdateSensorTextures() + } + } + else + { + if (sensorData.depthTexMaterial != null) + { + DisposeDepthTexShader(sensorData); + } + } + + // infrared-tex + if (sensorData.infraredTexTexture != null) + { + if (sensorData.infraredTexMaterial != null || CreateInfraredTexShader(sensorData)) + { + //UpdateInfraredTexShader(sensorData); // code moved to UpdateSensorTextures() + } + } + else + { + if (sensorData.infraredTexMaterial != null) + { + DisposeInfraredTexShader(sensorData); + } + } + + return true; + } + + + public virtual bool UpdateSensorTextures(KinectInterop.SensorData sensorData, KinectManager kinectManager, ulong prevDepthFrameTime, ulong prevIrFrameTime) + { + // check if the depth data has changed + if (prevDepthFrameTime != sensorData.lastDepthFrameTime || prevIrFrameTime != sensorData.lastInfraredFrameTime) + { + // depth texture + if (sensorData.depthImageTexture != null && sensorData.depthImageMaterial != null && + sensorData.depthImage != null && sensorData.lastDepthImageTime != sensorData.lastDepthFrameTime) + { + UpdateSensorTexDepthImg(sensorData, kinectManager); + + sensorData.lastDepthImageTime = sensorData.lastDepthFrameTime; + //Debug.Log("D" + deviceIndex + " DepthTextureTimestamp: " + sensorData.lastDepthImageTime); + } + + // infrared texture + if (((sensorData.infraredImageTexture != null && sensorData.infraredImageMaterial != null) || (sensorData.colorInfraredTexture != null && sensorData.colorInfraredMaterial != null)) && + sensorData.infraredImage != null && sensorData.lastInfraredImageTime != sensorData.lastInfraredFrameTime) + { + UpdateSensorTexInfraredImg(sensorData, kinectManager); + + sensorData.lastInfraredImageTime = sensorData.lastInfraredFrameTime; + //Debug.Log("D" + deviceIndex + " InfraredTextureTimestamp: " + sensorData.lastInfraredImageTime); + } + + // user texture & body texture + if (sensorData.bodyImageTexture != null && sensorData.bodyImageMaterial != null && + sensorData.lastBodyImageTime != sensorData.lastBodyIndexFrameTime) + { + UpdateSensorTexBodyIndexImg(sensorData, kinectManager); + + sensorData.lastBodyImageTime = sensorData.lastBodyIndexFrameTime; + //Debug.Log("D" + deviceIndex + " BodyTextureTimestamp: " + sensorData.lastBodyImageTime); + } + + // depth-hsv + if (sensorData.depthTexMaterial != null && sensorData.depthImage != null && + sensorData.lastDepthTexTime != sensorData.lastDepthFrameTime) + { + UpdateSensorTexDepthHsv(sensorData, kinectManager); + + sensorData.lastDepthTexTime = sensorData.lastDepthFrameTime; + //Debug.Log("D" + deviceIndex + " DepthTexTimestamp: " + sensorData.lastDepthTexTime); + } + + // infrared-hsv + if (sensorData.infraredTexMaterial != null && sensorData.infraredImage != null && + sensorData.lastInfraredTexTime != sensorData.lastInfraredFrameTime) + { + UpdateSensorTexInfraredHsv(sensorData, kinectManager); + + sensorData.lastInfraredTexTime = sensorData.lastInfraredFrameTime; + //Debug.Log("D" + deviceIndex + " InfraredTexTimestamp: " + sensorData.lastInfraredTexTime); + } + } + + return true; + } + + // updates sensor depth image + private void UpdateSensorTexDepthImg(KinectInterop.SensorData sensorData, KinectManager kinectManager) + { + // depth-image hist data + Array.Clear(depthHistBufferData, 0, depthHistBufferData.Length); + Array.Clear(equalHistBufferData, 0, equalHistBufferData.Length); + depthHistTotalPoints = 0; + + //int depthMinDistance = (int)(minDistance * 1000f); + //int depthMaxDistance = (int)(maxDistance * 1000f); + + int frameLen = sensorData.depthImage.Length; + for (int i = 0; i < frameLen; i++) + { + int depth = sensorData.depthImage[i]; + int limDepth = (depth <= MAX_DEPTH_DISTANCE_MM) ? depth : 0; + + if (limDepth > 0) + { + depthHistBufferData[limDepth]++; + depthHistTotalPoints++; + } + } + + equalHistBufferData[0] = depthHistBufferData[0]; + for (int i = 1; i < depthHistBufferData.Length; i++) + { + equalHistBufferData[i] = equalHistBufferData[i - 1] + depthHistBufferData[i]; + } + + // make depth 0 equal to the max-depth + equalHistBufferData[0] = equalHistBufferData[equalHistBufferData.Length - 1]; + + if (sensorData.depthImageBuffer != null && sensorData.depthImage != null) + { + int depthBufferLength = sensorData.depthImageWidth * sensorData.depthImageHeight / 2; + KinectInterop.SetComputeBufferData(sensorData.depthImageBuffer, sensorData.depthImage, depthBufferLength, sizeof(uint)); + } + + if (sensorData.depthHistBuffer != null) + { + //sensorData.depthHistBuffer.SetData(equalHistBufferData); + KinectInterop.SetComputeBufferData(sensorData.depthHistBuffer, equalHistBufferData, equalHistBufferData.Length, sizeof(int)); + } + + sensorData.depthImageMaterial.SetInt("_TexResX", sensorData.depthImageWidth); + sensorData.depthImageMaterial.SetInt("_TexResY", sensorData.depthImageHeight); + sensorData.depthImageMaterial.SetInt("_MinDepth", (int)(minDepthDistance * 1000f)); + sensorData.depthImageMaterial.SetInt("_MaxDepth", (int)(maxDepthDistance * 1000f)); + sensorData.depthImageMaterial.SetInt("_TotalPoints", depthHistTotalPoints); + sensorData.depthImageMaterial.SetBuffer("_DepthMap", sensorData.depthImageBuffer); + sensorData.depthImageMaterial.SetBuffer("_HistMap", sensorData.depthHistBuffer); + + Graphics.Blit(null, sensorData.depthImageTexture, sensorData.depthImageMaterial); + //Debug.Log(" UpdateSensorTexDepthImg: " + depthHistTotalPoints + " pts"); + } + + // updates sensor infrared image + private void UpdateSensorTexInfraredImg(KinectInterop.SensorData sensorData, KinectManager kinectManager) + { + if(sensorData.infraredImageTexture != null && sensorData.infraredImageMaterial != null) + { + if (sensorData.infraredImageBuffer != null && sensorData.infraredImage != null) + { + int infraredBufferLength = sensorData.depthImageWidth * sensorData.depthImageHeight / 2; + KinectInterop.SetComputeBufferData(sensorData.infraredImageBuffer, sensorData.infraredImage, infraredBufferLength, sizeof(uint)); + } + + sensorData.infraredImageMaterial.SetInt("_TexResX", sensorData.depthImageWidth); + sensorData.infraredImageMaterial.SetInt("_TexResY", sensorData.depthImageHeight); + sensorData.infraredImageMaterial.SetFloat("_MinValue", minInfraredValue); + sensorData.infraredImageMaterial.SetFloat("_MaxValue", maxInfraredValue); + sensorData.infraredImageMaterial.SetBuffer("_InfraredMap", sensorData.infraredImageBuffer); + + Graphics.Blit(null, sensorData.infraredImageTexture, sensorData.infraredImageMaterial); + } + + if (sensorData.colorInfraredBuffer != null && sensorData.colorInfraredMaterial != null) + { + sensorData.colorInfraredMaterial.SetInt("_TexResX", sensorData.colorImageWidth); + sensorData.colorInfraredMaterial.SetInt("_TexResY", sensorData.colorImageHeight); + sensorData.colorInfraredMaterial.SetFloat("_MinValue", minInfraredValue); + sensorData.colorInfraredMaterial.SetFloat("_MaxValue", maxInfraredValue); + sensorData.colorInfraredMaterial.SetBuffer("_InfraredMap", sensorData.colorInfraredBuffer); + + Graphics.Blit(null, sensorData.colorInfraredTexture, sensorData.colorInfraredMaterial); + } + } + + // updates sensor body-index image + private void UpdateSensorTexBodyIndexImg(KinectInterop.SensorData sensorData, KinectManager kinectManager) + { + if (kinectManager.getBodyFrames == KinectManager.BodyTextureType.UserTexture) + { + // body-image hist data + Array.Clear(depthBodyBufferData, 0, depthBodyBufferData.Length); + Array.Clear(equalBodyBufferData, 0, equalBodyBufferData.Length); + bodyHistTotalPoints = 0; + + int depthMinDistance = (int)(minDepthDistance * 1000f); + int depthMaxDistance = (int)(maxDepthDistance * 1000f); + + int frameLen = sensorData.depthImage.Length; + for (int i = 0; i < frameLen; i++) + { + int depth = sensorData.depthImage[i]; + //int limDepth = (depth <= MAX_DEPTH_DISTANCE_MM) ? depth : 0; + int limDepth = (depth >= depthMinDistance && depth <= depthMaxDistance) ? depth : 0; + + if (/**rawBodyIndexImage[i] != 255 &&*/ limDepth > 0) + { + depthBodyBufferData[limDepth]++; + bodyHistTotalPoints++; + } + } + + if (bodyHistTotalPoints > 0) + { + equalBodyBufferData[0] = depthBodyBufferData[0]; + for (int i = 1; i < depthBodyBufferData.Length; i++) + { + equalBodyBufferData[i] = equalBodyBufferData[i - 1] + depthBodyBufferData[i]; + } + } + + if (sensorData.bodyHistBuffer != null) + { + //sensorData.depthHistBuffer.SetData(equalBodyBufferData); + KinectInterop.SetComputeBufferData(sensorData.bodyHistBuffer, equalBodyBufferData, equalBodyBufferData.Length, sizeof(int)); + } + } + + if (sensorData.bodyIndexBuffer != null && sensorData.bodyIndexImage != null) + { + int bodyIndexBufferLength = sensorData.depthImageWidth * sensorData.depthImageHeight / 4; + KinectInterop.SetComputeBufferData(sensorData.bodyIndexBuffer, sensorData.bodyIndexImage, bodyIndexBufferLength, sizeof(uint)); + } + + float minDist = minDepthDistance; // kinectManager.minUserDistance != 0f ? kinectManager.minUserDistance : minDepthDistance; + float maxDist = maxDepthDistance; // kinectManager.maxUserDistance != 0f ? kinectManager.maxUserDistance : maxDepthDistance; + + sensorData.bodyImageMaterial.SetInt("_TexResX", sensorData.depthImageWidth); + sensorData.bodyImageMaterial.SetInt("_TexResY", sensorData.depthImageHeight); + sensorData.bodyImageMaterial.SetInt("_MinDepth", (int)(minDist * 1000f)); + sensorData.bodyImageMaterial.SetInt("_MaxDepth", (int)(maxDist * 1000f)); + + sensorData.bodyImageMaterial.SetBuffer("_BodyIndexMap", sensorData.bodyIndexBuffer); + + if (kinectManager.getBodyFrames == KinectManager.BodyTextureType.UserTexture) + { + if (sensorData.depthImageBuffer != null && sensorData.depthImage != null) + { + int depthBufferLength = sensorData.depthImageWidth * sensorData.depthImageHeight / 2; + KinectInterop.SetComputeBufferData(sensorData.depthImageBuffer, sensorData.depthImage, depthBufferLength, sizeof(uint)); + } + + sensorData.bodyImageMaterial.SetBuffer("_DepthMap", sensorData.depthImageBuffer); + sensorData.bodyImageMaterial.SetBuffer("_HistMap", sensorData.bodyHistBuffer); + sensorData.bodyImageMaterial.SetInt("_TotalPoints", bodyHistTotalPoints); + //sensorData.bodyImageMaterial.SetInt("_FirstUserIndex", kinectManager.GetBodyIndexByUserId(kinectManager.userManager.liPrimaryUserId)); + + Color[] bodyIndexColors = kinectManager.GetBodyIndexColors(); + sensorData.bodyImageMaterial.SetColorArray("_BodyIndexColors", bodyIndexColors); + } + + Graphics.Blit(null, sensorData.bodyImageTexture, sensorData.bodyImageMaterial); + } + + // updates sensor depth-hsv image + private void UpdateSensorTexDepthHsv(KinectInterop.SensorData sensorData, KinectManager kinectManager) + { + if (sensorData.depthImageBuffer != null && sensorData.depthImage != null) + { + int depthBufferLength = sensorData.depthImageWidth * sensorData.depthImageHeight / 2; + KinectInterop.SetComputeBufferData(sensorData.depthImageBuffer, sensorData.depthImage, depthBufferLength, sizeof(uint)); + } + + sensorData.depthTexMaterial.SetBuffer("_DepthMap", sensorData.depthImageBuffer); + sensorData.depthTexMaterial.SetInt("_TexResX", sensorData.depthImageWidth); + sensorData.depthTexMaterial.SetInt("_TexResY", sensorData.depthImageHeight); + sensorData.depthTexMaterial.SetInt("_MinDepth", (int)(minDepthDistance * 1000f)); + sensorData.depthTexMaterial.SetInt("_MaxDepth", (int)(maxDepthDistance * 1000f)); + + Graphics.Blit(null, sensorData.depthTexTexture, sensorData.depthTexMaterial); + } + + // updates sensor infrared-hsv image + private void UpdateSensorTexInfraredHsv(KinectInterop.SensorData sensorData, KinectManager kinectManager) + { + if (sensorData.infraredImageBuffer != null && sensorData.infraredImage != null) + { + int depthBufferLength = sensorData.depthImageWidth * sensorData.depthImageHeight / 2; + KinectInterop.SetComputeBufferData(sensorData.infraredImageBuffer, sensorData.infraredImage, depthBufferLength, sizeof(uint)); + } + + sensorData.infraredTexMaterial.SetBuffer("_DepthMap", sensorData.infraredImageBuffer); + sensorData.infraredTexMaterial.SetInt("_TexResX", sensorData.depthImageWidth); + sensorData.infraredTexMaterial.SetInt("_TexResY", sensorData.depthImageHeight); + sensorData.infraredTexMaterial.SetInt("_MinDepth", (int)minInfraredValue); + sensorData.infraredTexMaterial.SetInt("_MaxDepth", (int)maxInfraredValue); + + Graphics.Blit(null, sensorData.infraredTexTexture, sensorData.infraredTexMaterial); + } + + + // returns depth-to-color-camera matrix + public virtual Matrix4x4 GetDepthToColorCameraMatrix() + { + return depth2colorCamMat; + } + + + // returns sensor-to-world matrix + public virtual Matrix4x4 GetSensorToWorldMatrix() + { + Matrix4x4 mSensor = Matrix4x4.identity; + mSensor.SetTRS(sensorPosePosition, sensorPoseRotation, Vector3.one); + + return mSensor; + } + + + // sets sensor-to-world matrix + public virtual void SetSensorToWorldMatrix(Matrix4x4 mSensor2World, bool isUpdateTransform) + { + Vector3 sensorWorldPosition = mSensor2World.GetColumn(3); + Quaternion sensorWorldRotation = mSensor2World.rotation; + + SetSensorToWorldMatrix(sensorWorldPosition, sensorWorldRotation, isUpdateTransform); + } + + // sets sensor-to-world matrix + public virtual void SetSensorToWorldMatrix(Vector3 sensorWorldPosition, Quaternion sensorWorldRotation, bool isUpdateTransform) + { + initialPosePosition = sensorPosePosition = sensorWorldPosition; + initialPoseRotation = sensorPoseRotation = sensorWorldRotation; + matTransformPose.SetTRS(initialPosePosition, initialPoseRotation, Vector3.one); + + if (isUpdateTransform) + { + transform.position = sensorPosePosition; + transform.rotation = sensorPoseRotation; + } + } + + + // returns sensor rotation, properly adjusted for body tracking + protected Quaternion GetSensorRotationNotZFlipped(bool bInverted) + { + Vector3 sensorRotEuler = sensorPoseRotation.eulerAngles; + + if (sensorRotFlipZ) + { + sensorRotEuler.z = -sensorRotEuler.z; + } + + Quaternion sensorRot = Quaternion.Euler(sensorRotEuler); + return bInverted ? Quaternion.Inverse(sensorRot) : sensorRot; + } + + + // returns sensor transform. Please note transform updates depend on the getPoseFrames-KM setting. + public virtual Transform GetSensorTransform() + { + return transform; + } + + + // unprojects plane point into the space + public virtual Vector3 UnprojectPoint(KinectInterop.CameraIntrinsics intr, Vector2 pixel, float depth) + { + return Vector3.zero; + } + + + // projects space point onto a plane + public virtual Vector2 ProjectPoint(KinectInterop.CameraIntrinsics intr, Vector3 point) + { + return Vector2.zero; + } + + + // transforms a point from one space to another + public virtual Vector3 TransformPoint(KinectInterop.CameraExtrinsics extr, Vector3 point) + { + return Vector3.zero; + } + + + public virtual Vector3[] GetDepthCameraSpaceTable(KinectInterop.SensorData sensorData) + { + if (sensorData == null || sensorPlatform == KinectInterop.DepthSensorPlatform.None || string.IsNullOrEmpty(sensorDeviceId)) + return null; + + if (depth2SpaceTable == null || depth2SpaceWidth != sensorData.depthImageWidth || depth2SpaceHeight != sensorData.depthImageHeight) + { + depth2SpaceTable = KinectInterop.LoadSpaceTable(sensorPlatform, sensorDeviceId, "depth", sensorData.depthImageWidth, sensorData.depthImageHeight); + } + + depth2SpaceWidth = sensorData.depthImageWidth; + depth2SpaceHeight = sensorData.depthImageHeight; + + // depth2space table + int depthImageLength = sensorData.depthImageWidth * sensorData.depthImageHeight; + if (depth2SpaceTable == null || depth2SpaceTable.Length != depthImageLength) + { + depth2SpaceTable = new Vector3[depthImageLength]; + + for (int dy = 0, di = 0; dy < sensorData.depthImageHeight; dy++) + { + for (int dx = 0; dx < sensorData.depthImageWidth; dx++, di++) + { + Vector2 depthPos = new Vector2(dx, dy); + depth2SpaceTable[di] = MapDepthPointToSpaceCoords(sensorData, depthPos, 1000); + } + } + + KinectInterop.SaveSpaceTable(depth2SpaceTable, sensorPlatform, sensorDeviceId, "depth", sensorData.depthImageWidth, sensorData.depthImageHeight); + } + + return depth2SpaceTable; + } + + + public virtual Vector3[] GetColorCameraSpaceTable(KinectInterop.SensorData sensorData) + { + if (sensorData == null || sensorPlatform == KinectInterop.DepthSensorPlatform.None || string.IsNullOrEmpty(sensorDeviceId)) + return null; + + if(color2SpaceTable == null || color2SpaceWidth != sensorData.colorImageWidth || color2SpaceHeight != sensorData.colorImageHeight) + { + color2SpaceTable = KinectInterop.LoadSpaceTable(sensorPlatform, sensorDeviceId, "color", sensorData.colorImageWidth, sensorData.colorImageHeight); + } + + color2SpaceWidth = sensorData.colorImageWidth; + color2SpaceHeight = sensorData.colorImageHeight; + + // color2space + int colorImageLength = sensorData.colorImageWidth * sensorData.colorImageHeight; + if (color2SpaceTable == null || color2SpaceTable.Length != colorImageLength) + { + color2SpaceTable = new Vector3[colorImageLength]; + + for (int cy = 0, ci = 0; cy < sensorData.colorImageHeight; cy++) + { + for (int cx = 0; cx < sensorData.colorImageWidth; cx++, ci++) + { + Vector2 colorPos = new Vector2(cx, cy); + color2SpaceTable[ci] = MapColorPointToSpaceCoords(sensorData, colorPos, 1000); + } + } + + KinectInterop.SaveSpaceTable(color2SpaceTable, sensorPlatform, sensorDeviceId, "color", sensorData.colorImageWidth, sensorData.colorImageHeight); + } + + return color2SpaceTable; + } + + + public virtual Vector3 MapDepthPointToSpaceCoords(KinectInterop.SensorData sensorData, Vector2 depthPos, ushort depthVal) + { + if (sensorData.depthCamIntr != null) + { + return UnprojectPoint(sensorData.depthCamIntr, depthPos, (float)depthVal * 0.001f); + } + + return Vector3.zero; + } + + + public virtual Vector2 MapSpacePointToDepthCoords(KinectInterop.SensorData sensorData, Vector3 spacePos) + { + if (sensorData.depthCamIntr != null) + { + return ProjectPoint(sensorData.depthCamIntr, spacePos); + } + + return Vector2.zero; + } + + + public virtual Vector3 MapColorPointToSpaceCoords(KinectInterop.SensorData sensorData, Vector2 colorPos, ushort depthVal) + { + if (sensorData.colorCamIntr != null) + { + return UnprojectPoint(sensorData.colorCamIntr, colorPos, (float)depthVal * 0.001f); + } + + return Vector3.zero; + } + + + public virtual Vector2 MapSpacePointToColorCoords(KinectInterop.SensorData sensorData, Vector3 spacePos) + { + if (sensorData.colorCamIntr != null) + { + return ProjectPoint(sensorData.colorCamIntr, spacePos); + } + + return Vector2.zero; + } + + + public virtual Vector2 MapDepthPointToColorCoords(KinectInterop.SensorData sensorData, Vector2 depthPos, ushort depthVal) + { + if (sensorData.depthCamIntr != null && sensorData.colorCamIntr != null && sensorData.depth2ColorExtr != null) + { + Vector3 depthSpacePos = UnprojectPoint(sensorData.depthCamIntr, depthPos, (float)depthVal * 0.001f); + Vector3 colorSpacePos = TransformPoint(sensorData.depth2ColorExtr, depthSpacePos); + Vector2 colorPos = ProjectPoint(sensorData.colorCamIntr, colorSpacePos); + + return colorPos; + } + + return Vector2.zero; + } + + + public virtual Vector2 MapColorPointToDepthCoords(KinectInterop.SensorData sensorData, Vector2 colorPos, int minDist, int maxDist) + { + if (sensorData.depthCamIntr != null && sensorData.colorCamIntr != null && sensorData.color2DepthExtr != null && sensorData.depthImage != null) + { + Vector3 colorSpacePos1 = UnprojectPoint(sensorData.colorCamIntr, colorPos, 1f); + + if(minDist <= 0) + minDist = (int)(minDepthDistance * 1000f); + if(maxDist <= 0) + maxDist = (int)(maxDepthDistance * 1000f); + + int depthImageW = sensorData.depthImageWidth; + int depthImageL = sensorData.depthImage.Length; + + Vector2 depthPos = Vector2.zero; + bool bFound = false; + + for (int d = minDist; d < maxDist; d++) + { + Vector3 colorSpacePos = colorSpacePos1 * (d * 0.001f); + Vector3 depthSpacePos = TransformPoint(sensorData.color2DepthExtr, colorSpacePos); + depthPos = ProjectPoint(sensorData.depthCamIntr, depthSpacePos); + + int di = (int)(depthPos.y + 0.5f) * depthImageW + (int)(depthPos.x + 0.5f); + + if (di >= 0 && di < depthImageL) + { + int z = sensorData.depthImage[di]; + if ((z != 0) && (z <= d)) + { + bFound = true; + break; + } + } + } + + return bFound ? depthPos : Vector2.zero; + } + + return Vector2.zero; + } + + + //public virtual bool MapDepthFrameToSpaceCoords(KinectInterop.SensorData sensorData, ref Vector3[] vSpaceCoords) + //{ + // if (vSpaceCoords == null) + // { + // vSpaceCoords = new Vector3[sensorData.depthImageWidth * sensorData.depthImageHeight]; + // } + + // if (InitCoordMapperSpaceTables(sensorData, true, false)) + // { + // for (int dy = 0, di = 0; dy < sensorData.depthImageHeight; dy++) + // { + // for (int dx = 0; dx < sensorData.depthImageWidth; dx++, di++) + // { + // if (sensorData.depthImage[di] != 0) + // { + // float depthVal = (float)sensorData.depthImage[di] / 1000f; + // vSpaceCoords[di] = depth2SpaceTable[di] * depthVal; + // } + // else + // { + // vSpaceCoords[di] = Vector3.zero; + // } + // } + // } + + // return true; + // } + + // return false; + //} + + + //public virtual bool MapDepthFrameToColorData(KinectInterop.SensorData sensorData, ref byte[] vColorFrameData) + //{ + // return false; + //} + + + //public virtual bool MapColorFrameToDepthData(KinectInterop.SensorData sensorData, ref ushort[] vDepthFrameData) + //{ + // return false; + //} + + + //public virtual bool MapDepthFrameToColorCoords(KinectInterop.SensorData sensorData, ref Vector2[] vColorCoords) + //{ + // if (sensorData.depthCamIntr != null && sensorData.colorCamIntr != null && sensorData.depth2ColorExtr != null) + // { + // int depthImageW = sensorData.depthImageWidth; + // int depthImageH = sensorData.depthImageHeight; + + // int mapImageLen = depthImageW * depthImageH; + // if (vColorCoords == null || vColorCoords.Length != mapImageLen) + // { + // vColorCoords = new Vector2[mapImageLen]; + // } + + // for (int dy = 0, dIndex = 0; dy < depthImageH; dy++) + // { + // for (int dx = 0; dx < depthImageW; dx++, dIndex++) + // { + // ushort depthVal = sensorData.depthImage[dIndex]; + + // if (depthVal != 0) + // { + // Vector2 depthPos = new Vector2(dx, dy); + + // Vector3 depthSpacePos = UnprojectPoint(sensorData.depthCamIntr, depthPos, (float)depthVal / 1000f); + // Vector3 colorSpacePos = TransformPoint(sensorData.depth2ColorExtr, depthSpacePos); + // vColorCoords[dIndex] = ProjectPoint(sensorData.colorCamIntr, colorSpacePos); + // } + // else + // { + // vColorCoords[dIndex] = new Vector2(float.NegativeInfinity, float.NegativeInfinity); + // } + // } + // } + + // return true; + // } + + // return false; + //} + + //public virtual bool MapColorFrameToDepthCoords(KinectInterop.SensorData sensorData, ref Vector2[] vDepthCoords) + //{ + // if (sensorData.depthCamIntr != null && sensorData.colorCamIntr != null && sensorData.depth2ColorExtr != null) + // { + // int depthImageW = sensorData.depthImageWidth; + // int depthImageH = sensorData.depthImageHeight; + + // int mapImageLen = sensorData.colorImageWidth * sensorData.colorImageHeight; + // if (vDepthCoords == null || vDepthCoords.Length != mapImageLen) + // { + // vDepthCoords = new Vector2[mapImageLen]; + // } + + // int colorWidth = sensorData.colorCamIntr.width; + // int colorHeight = sensorData.colorCamIntr.height; + + // for (int dy = 0, dIndex = 0; dy < depthImageH; dy++) + // { + // for (int dx = 0; dx < depthImageW; dx++, dIndex++) + // { + // ushort depthVal = sensorData.depthImage[dIndex]; + + // if (depthVal != 0) + // { + // float depth = (float)depthVal / 1000f; + + // Vector2 depthPos1 = new Vector2(dx - 0.5f, dy - 0.5f); + // Vector3 depthSpacePos1 = UnprojectPoint(sensorData.depthCamIntr, depthPos1, depth); + // Vector3 colorSpacePos1 = TransformPoint(sensorData.depth2ColorExtr, depthSpacePos1); + // Vector2 colorPos1 = ProjectPoint(sensorData.colorCamIntr, colorSpacePos1); + + // int colorPos1X = Mathf.RoundToInt(colorPos1.x); + // int colorPos1Y = Mathf.RoundToInt(colorPos1.y); + + // Vector2 depthPos2 = new Vector2(dx + 0.5f, dy + 0.5f); + // Vector3 depthSpacePos2 = UnprojectPoint(sensorData.depthCamIntr, depthPos2, depth); + // Vector3 colorSpacePos2 = TransformPoint(sensorData.depth2ColorExtr, depthSpacePos2); + // Vector2 colorPos2 = ProjectPoint(sensorData.colorCamIntr, colorSpacePos2); + + // int colorPos2X = (int)(colorPos2.x + 0.5f); + // int colorPos2Y = (int)(colorPos2.y + 0.5f); + + // if (colorPos1X < 0 || colorPos1Y < 0 || colorPos2X >= colorWidth || colorPos2Y >= colorHeight) + // continue; + + // // Transfer between the depth pixels and the pixels inside the rectangle on the other image + // for (int y = colorPos1Y; y <= colorPos2Y; y++) + // { + // int cIndex = y * colorWidth + colorPos1X; + + // for (int x = colorPos1X; x <= colorPos2X; x++, cIndex++) + // { + // vDepthCoords[cIndex] = new Vector2(dx, dy); + // } + // } + // } + // else + // { + // //vDepthCoords[cIndex] = new Vector2(float.NegativeInfinity, float.NegativeInfinity); + // } + // } + // } + + // return true; + // } + + // return false; + //} + + + // estimates horizontal and vertical FOV + protected void EstimateFOV(KinectInterop.CameraIntrinsics intr) + { + //intr.hFOV = (Mathf.Atan2(intr.ppx + 0.5f, intr.fx) + Mathf.Atan2(intr.width - (intr.ppx + 0.5f), intr.fx)) * 57.2957795f; + //intr.vFOV = (Mathf.Atan2(intr.ppy + 0.5f, intr.fy) + Mathf.Atan2(intr.height - (intr.ppy + 0.5f), intr.fy)) * 57.2957795f; + intr.hFOV = 2f * Mathf.Atan2((float)intr.width * 0.5f, intr.fx) * Mathf.Rad2Deg; + intr.vFOV = 2f * Mathf.Atan2((float)intr.height * 0.5f, intr.fy) * Mathf.Rad2Deg; + } + + + // initializes the body-data structures and start the body tracking + public virtual bool InitBodyTracking(KinectInterop.FrameSource dwFlags, KinectInterop.SensorData sensorData) + { + if ((dwFlags & KinectInterop.FrameSource.TypeBodyIndex) != 0) + { + rawBodyIndexImage = new byte[sensorData.depthImageWidth * sensorData.depthImageHeight]; + sensorData.bodyIndexImage = new byte[sensorData.depthImageWidth * sensorData.depthImageHeight]; + } + + if ((dwFlags & KinectInterop.FrameSource.TypeBody) != 0) // check for body stream + { + alTrackedBodies = new List(); + sensorData.alTrackedBodies = new KinectInterop.BodyData[0]; // new List(); + + trackedBodiesCount = 0; + sensorData.trackedBodiesCount = 0; + } + + return true; + } + + // stops the body tracker and releases its data + public virtual void StopBodyTracking(KinectInterop.SensorData sensorData) + { + } + + // estimates additional joints for the given body + protected virtual void CalcBodySpecialJoints(ref KinectInterop.BodyData bodyData) + { + // hand left + int w = (int)KinectInterop.JointType.WristLeft; + int h = (int)KinectInterop.JointType.HandLeft; + + if (bodyData.joint[h].trackingState == KinectInterop.TrackingState.Inferred && + bodyData.joint[w].trackingState < KinectInterop.TrackingState.Inferred) + { + bodyData.joint[h].trackingState = KinectInterop.TrackingState.NotTracked; + } + + int e = (int)KinectInterop.JointType.ElbowLeft; + //if (bodyData.joint[h].trackingState == KinectInterop.TrackingState.Inferred) + //{ + // bodyData.joint[h].trackingState = KinectInterop.TrackingState.Tracked; + //} + //else + if (bodyData.joint[h].trackingState == KinectInterop.TrackingState.NotTracked && + bodyData.joint[w].trackingState >= KinectInterop.TrackingState.Inferred) + { + KinectInterop.JointData jointData = bodyData.joint[h]; + jointData.trackingState = bodyData.joint[w].trackingState; + jointData.orientation = bodyData.joint[w].orientation; + + Vector3 posWrist = bodyData.joint[w].kinectPos; + Vector3 posElbow = bodyData.joint[e].kinectPos; + jointData.kinectPos = posWrist + (posWrist - posElbow) * 0.42f; + + posWrist = bodyData.joint[w].position; + posElbow = bodyData.joint[e].position; + jointData.position = posWrist + (posWrist - posElbow) * 0.42f; + + bodyData.joint[h] = jointData; + } + + int f = (int)KinectInterop.JointType.HandtipLeft; + if (bodyData.joint[f].trackingState == KinectInterop.TrackingState.Inferred && + bodyData.joint[w].trackingState <= KinectInterop.TrackingState.Inferred) + { + bodyData.joint[f].trackingState = KinectInterop.TrackingState.NotTracked; + } + + f = (int)KinectInterop.JointType.ThumbLeft; + if (bodyData.joint[f].trackingState == KinectInterop.TrackingState.Inferred && + bodyData.joint[w].trackingState <= KinectInterop.TrackingState.Inferred) + { + bodyData.joint[f].trackingState = KinectInterop.TrackingState.NotTracked; + } + + // hand right + w = (int)KinectInterop.JointType.WristRight; + h = (int)KinectInterop.JointType.HandRight; + + if (bodyData.joint[h].trackingState == KinectInterop.TrackingState.Inferred && + bodyData.joint[w].trackingState < KinectInterop.TrackingState.Inferred) + { + bodyData.joint[h].trackingState = KinectInterop.TrackingState.NotTracked; + } + + e = (int)KinectInterop.JointType.ElbowRight; + //if (bodyData.joint[h].trackingState == KinectInterop.TrackingState.Inferred) + //{ + // bodyData.joint[h].trackingState = KinectInterop.TrackingState.Tracked; + //} + //else + if (bodyData.joint[h].trackingState == KinectInterop.TrackingState.NotTracked && + bodyData.joint[w].trackingState >= KinectInterop.TrackingState.Inferred) + { + KinectInterop.JointData jointData = bodyData.joint[h]; + jointData.trackingState = bodyData.joint[w].trackingState; + jointData.orientation = bodyData.joint[w].orientation; + + Vector3 posWrist = bodyData.joint[w].kinectPos; + Vector3 posElbow = bodyData.joint[e].kinectPos; + jointData.kinectPos = posWrist + (posWrist - posElbow) * 0.42f; + + posWrist = bodyData.joint[w].position; + posElbow = bodyData.joint[e].position; + jointData.position = posWrist + (posWrist - posElbow) * 0.42f; + + bodyData.joint[h] = jointData; + } + + f = (int)KinectInterop.JointType.HandtipRight; + if (bodyData.joint[f].trackingState == KinectInterop.TrackingState.Inferred && + bodyData.joint[w].trackingState <= KinectInterop.TrackingState.Inferred) + { + bodyData.joint[f].trackingState = KinectInterop.TrackingState.NotTracked; + } + + f = (int)KinectInterop.JointType.ThumbRight; + if (bodyData.joint[f].trackingState == KinectInterop.TrackingState.Inferred && + bodyData.joint[w].trackingState <= KinectInterop.TrackingState.Inferred) + { + bodyData.joint[f].trackingState = KinectInterop.TrackingState.NotTracked; + } + + //// ankle left + //int knee = (int)KinectInterop.JointType.KneeLeft; + //int ank = (int)KinectInterop.JointType.AnkleLeft; + //int foot = (int)KinectInterop.JointType.FootLeft; + + //if (bodyData.joint[knee].trackingState != KinectInterop.TrackingState.NotTracked && + // bodyData.joint[ank].trackingState != KinectInterop.TrackingState.NotTracked && + // bodyData.joint[foot].trackingState != KinectInterop.TrackingState.NotTracked) + //{ + // Vector3 vAnkDir = bodyData.joint[ank].kinectPos - bodyData.joint[knee].kinectPos; + // Vector3 vFootDir = bodyData.joint[foot].kinectPos - bodyData.joint[ank].kinectPos; + + // Vector3 vFootProj = Vector3.Project(vFootDir, vAnkDir); + // bodyData.joint[ank].kinectPos += vFootProj; + + // vAnkDir = bodyData.joint[ank].position - bodyData.joint[knee].position; + // vFootDir = bodyData.joint[foot].position - bodyData.joint[ank].position; + + // vFootProj = Vector3.Project(vFootDir, vAnkDir); + // bodyData.joint[ank].position += vFootProj; + //} + + //// ankle right + //knee = (int)KinectInterop.JointType.KneeRight; + //ank = (int)KinectInterop.JointType.AnkleRight; + //foot = (int)KinectInterop.JointType.FootRight; + + //if (bodyData.joint[knee].trackingState != KinectInterop.TrackingState.NotTracked && + // bodyData.joint[ank].trackingState != KinectInterop.TrackingState.NotTracked && + // bodyData.joint[foot].trackingState != KinectInterop.TrackingState.NotTracked) + //{ + // Vector3 vAnkDir = bodyData.joint[ank].kinectPos - bodyData.joint[knee].kinectPos; + // Vector3 vFootDir = bodyData.joint[foot].kinectPos - bodyData.joint[ank].kinectPos; + + // Vector3 vFootProj = Vector3.Project(vFootDir, vAnkDir); + // bodyData.joint[ank].kinectPos += vFootProj; + + // vAnkDir = bodyData.joint[ank].position - bodyData.joint[knee].position; + // vFootDir = bodyData.joint[foot].position - bodyData.joint[ank].position; + + // vFootProj = Vector3.Project(vFootDir, vAnkDir); + // bodyData.joint[ank].position += vFootProj; + //} + } + + + //// calculates all bone directions for the given body + //protected virtual void CalcBodyJointDirs(ref KinectInterop.BodyData bodyData) + //{ + // if (bodyData.bIsTracked) + // { + // for (int j = 0; j < (int)KinectInterop.JointType.Count; j++) + // { + // if (j == 0) + // { + // bodyData.joint[j].direction = Vector3.zero; + // } + // else + // { + // int jParent = (int)KinectInterop.GetParentJoint((KinectInterop.JointType)j); + + // if (bodyData.joint[j].trackingState != KinectInterop.TrackingState.NotTracked && + // bodyData.joint[jParent].trackingState != KinectInterop.TrackingState.NotTracked) + // { + // bodyData.joint[j].direction = (bodyData.joint[j].position - bodyData.joint[jParent].position); //.normalized; + // } + // } + // } + // } + //} + + // calculates all joint orientations for the given body + protected virtual void CalcBodyJointOrients(ref KinectInterop.BodyData bodyData) + { + if(bIgnoreZCoordinates) + { + DoCalcBodyJointOrients2D(ref bodyData, bIgnoreInferredJoints); + } + else + { + DoCalcBodyJointOrients(ref bodyData, bIgnoreInferredJoints); + } + } + + // calculates all joint orientations for the given body in 2D + public static void DoCalcBodyJointOrients2D(ref KinectInterop.BodyData bodyData, bool bIgnoreInferredJoints) + { + int jointCount = bodyData.joint.Length; + for (int j = 0; j < jointCount; j++) + { + int joint = j; + + KinectInterop.JointData jointData = bodyData.joint[joint]; + bool bJointValid = bIgnoreInferredJoints ? jointData.trackingState == KinectInterop.TrackingState.Tracked : jointData.trackingState != KinectInterop.TrackingState.NotTracked; + + if (bJointValid) + { + int nextJoint = (int)KinectInterop.GetNextJoint((KinectInterop.JointType)joint); + if (nextJoint != joint && joint != (int)KinectInterop.JointType.AnkleLeft && joint != (int)KinectInterop.JointType.AnkleRight && + joint != (int)KinectInterop.JointType.Nose && joint != (int)KinectInterop.JointType.WristLeft && joint != (int)KinectInterop.JointType.WristRight) + { + KinectInterop.JointData nextJointData = bodyData.joint[nextJoint]; + bool bNextJointValid = bIgnoreInferredJoints ? nextJointData.trackingState == KinectInterop.TrackingState.Tracked : nextJointData.trackingState != KinectInterop.TrackingState.NotTracked; + + Vector3 baseDir = KinectJointBaseDir[nextJoint]; + Vector3 jointDir = nextJointData.direction.normalized; + jointDir = new Vector3(jointDir.x, jointDir.y, 0f).normalized; + + Quaternion jointOrientNormal = jointData.normalRotation; + if (bNextJointValid) + { + jointOrientNormal = Quaternion.FromToRotation(baseDir, jointDir); + + if (joint == (int)KinectInterop.JointType.Head) + { + if (bodyData.joint[(int)KinectInterop.JointType.EarRight].trackingState != KinectInterop.TrackingState.NotTracked && + bodyData.joint[(int)KinectInterop.JointType.EarLeft].trackingState != KinectInterop.TrackingState.NotTracked) + { + Vector3 posREar = bodyData.joint[(int)KinectInterop.JointType.EarRight].position; + Vector3 posLEar = bodyData.joint[(int)KinectInterop.JointType.EarLeft].position; + + Vector3 earsDir = posREar - posLEar; + earsDir = new Vector3(earsDir.x, earsDir.y, 0f).normalized; + jointOrientNormal = Quaternion.FromToRotation(Vector3.right, earsDir); + + //Debug.Log($"head - ears: {earsDir}, rot: {jointOrientNormal.eulerAngles}"); + } + } + + jointData.normalRotation = jointOrientNormal; + } + + Vector3 mirroredAngles = jointData.normalRotation.eulerAngles; + mirroredAngles.y = -mirroredAngles.y; + mirroredAngles.z = -mirroredAngles.z; + + jointData.mirroredRotation = Quaternion.Euler(mirroredAngles); + } + else + { + // get the orientation of the parent joint + int prevJoint = (int)KinectInterop.GetParentJoint((KinectInterop.JointType)joint); + if (prevJoint != joint) + { + jointData.normalRotation = bodyData.joint[prevJoint].normalRotation; + jointData.mirroredRotation = bodyData.joint[prevJoint].mirroredRotation; + } + else + { + jointData.normalRotation = Quaternion.identity; + jointData.mirroredRotation = Quaternion.identity; + } + } + + bodyData.joint[joint] = jointData; + } + + if (joint == (int)KinectInterop.JointType.Pelvis) + { + bodyData.normalRotation = jointData.normalRotation; + bodyData.mirroredRotation = jointData.mirroredRotation; + } + } + + } + + // calculates all joint orientations for the given body (static method) + public static void DoCalcBodyJointOrients(ref KinectInterop.BodyData bodyData, bool bIgnoreInferredJoints) + { + int jointCount = bodyData.joint.Length; + + Vector3 posRShoulder = bodyData.joint[(int)KinectInterop.JointType.ShoulderRight].position; + Vector3 posLShoulder = bodyData.joint[(int)KinectInterop.JointType.ShoulderLeft].position; + Vector3 shouldersDirection = posRShoulder - posLShoulder; + shouldersDirection -= Vector3.Project(shouldersDirection, Vector3.up); + + Vector3 posRHip = bodyData.joint[(int)KinectInterop.JointType.HipRight].position; + Vector3 posLHip = bodyData.joint[(int)KinectInterop.JointType.HipLeft].position; + Vector3 hipsDirection = posRHip - posLHip; + hipsDirection -= Vector3.Project(hipsDirection, Vector3.up); + + for (int j = 0; j < jointCount; j++) + { + int joint = j; + + KinectInterop.JointData jointData = bodyData.joint[joint]; + bool bJointValid = bIgnoreInferredJoints ? jointData.trackingState == KinectInterop.TrackingState.Tracked : jointData.trackingState != KinectInterop.TrackingState.NotTracked; + + if (bJointValid) + { + int nextJoint = (int)KinectInterop.GetNextJoint((KinectInterop.JointType)joint); + if (nextJoint != joint && nextJoint >= 0 && nextJoint < jointCount) + { + KinectInterop.JointData nextJointData = bodyData.joint[nextJoint]; + bool bNextJointValid = bIgnoreInferredJoints ? nextJointData.trackingState == KinectInterop.TrackingState.Tracked : nextJointData.trackingState != KinectInterop.TrackingState.NotTracked; + + Vector3 baseDir = KinectJointBaseDir[nextJoint]; + Vector3 jointDir = nextJointData.direction.normalized; + jointDir = new Vector3(jointDir.x, jointDir.y, -jointDir.z).normalized; + + Quaternion jointOrientNormal = jointData.normalRotation; + if (bNextJointValid) + { + jointOrientNormal = Quaternion.FromToRotation(baseDir, jointDir); + } + + //if(joint == 0) + //{ + // Debug.Log($"pelvis: pos: {jointData.position}\ndir: {jointDir}, base: {baseDir}"); + //} + + if ((joint == (int)KinectInterop.JointType.ShoulderLeft) || + (joint == (int)KinectInterop.JointType.ElbowLeft) || + (joint == (int)KinectInterop.JointType.WristLeft) || + (joint == (int)KinectInterop.JointType.HandLeft)) + { + if (bNextJointValid && jointData.direction != Vector3.zero && jointDir != Vector3.zero) + { + Vector3 parJointDir = jointData.direction.normalized; + parJointDir = new Vector3(parJointDir.x, parJointDir.y, -parJointDir.z).normalized; + + if (joint == (int)KinectInterop.JointType.WristLeft) + { + // for wrist, take the finger direction into account, too + int fingerJoint = (int)KinectInterop.GetNextJoint((KinectInterop.JointType)nextJoint); + + if (fingerJoint != joint && fingerJoint >= 0 && fingerJoint < jointCount) + { + KinectInterop.JointData fingerData = bodyData.joint[fingerJoint]; + if (fingerData.trackingState != KinectInterop.TrackingState.NotTracked) + { + jointDir = (nextJointData.direction + fingerData.direction).normalized; + jointDir = new Vector3(jointDir.x, jointDir.y, -jointDir.z).normalized; + } + } + } + + float parDotJoint = Vector3.Dot(parJointDir, jointDir); + //if (joint == (int)KinectInterop.JointType.ElbowLeft) + // Debug.Log ((KinectInterop.JointType)joint + ": " + parDotJoint); + + if ((parDotJoint >= 0.001f && parDotJoint <= 0.999f) || (parDotJoint >= -0.999f && parDotJoint <= -0.001f)) + { + if (joint != (int)KinectInterop.JointType.ShoulderLeft && parJointDir != Vector3.zero) + { + Vector3 upDir = -Vector3.Cross(-parJointDir, jointDir).normalized; + Vector3 fwdDir = Vector3.Cross(-jointDir, upDir).normalized; + if (fwdDir.sqrMagnitude >= 0.5f && upDir.sqrMagnitude >= 0.5f) // avoid zero-length directions + jointOrientNormal = Quaternion.LookRotation(fwdDir, upDir); + //if(joint == (int)KinectInterop.JointType.ElbowLeft) + // Debug.Log((KinectInterop.JointType)joint + " - F:" + fwdDir + ", U:" + upDir + ", P: " + parJointDir + ", J: " + jointDir); + } + else + { + // shoulder left + Vector3 fwdDir = Vector3.zero, upDir = Vector3.zero; + KinectInterop.JointData shCenterData = bodyData.joint[(int)KinectInterop.JointType.ClavicleLeft]; + + Vector3 spineDir = shCenterData.direction; + spineDir = new Vector3(spineDir.x, spineDir.y, -spineDir.z).normalized; + + fwdDir = Vector3.Cross(-jointDir, spineDir).normalized; + float fwdDotJoint = Vector3.Dot(fwdDir, Vector3.forward); + //Debug.Log("fwdDotJointL: " + fwdDotJoint); + + if (fwdDotJoint >= 0f && bodyData.joint[(int)KinectInterop.JointType.ElbowLeft].trackingState == KinectInterop.TrackingState.Tracked && + bodyData.joint[(int)KinectInterop.JointType.WristLeft].trackingState == KinectInterop.TrackingState.Tracked) + { + // get up-dir from elbow + Vector3 elbowDir = bodyData.joint[(int)KinectInterop.JointType.WristLeft].direction; + elbowDir = new Vector3(elbowDir.x, elbowDir.y, -elbowDir.z).normalized; + + upDir = -Vector3.Cross(-jointDir, elbowDir).normalized; + fwdDir = Vector3.Cross(-jointDir, upDir).normalized; + //Debug.Log((KinectInterop.JointType)joint + "*E - U:" + upDir + ", F:" + fwdDir + ", J: " + jointDir + ", E: " + elbowDir); + } + else + { + // get fwd-dir from spine + upDir = Vector3.Cross(fwdDir, -jointDir).normalized; + //Debug.Log((KinectInterop.JointType)joint + "*S - F:" + fwdDir + ", U:" + upDir + ", S:" + spineDir + ", J:" + jointDir); + } + + if (fwdDir.sqrMagnitude >= 0.5f && upDir.sqrMagnitude >= 0.5f) // avoid zero-length directions + jointOrientNormal = Quaternion.LookRotation(fwdDir, upDir); + } + + jointData.normalRotation = jointOrientNormal; + } + else if (joint != (int)KinectInterop.JointType.ShoulderLeft) // to prevent upper-arm ticks + { + // no angle between bones - use the parent's rotation + KinectInterop.JointType parJoint = KinectInterop.GetParentJoint((KinectInterop.JointType)joint); + KinectInterop.JointData parJointData = bodyData.joint[(int)parJoint]; + + jointData.normalRotation = parJointData.normalRotation; + } + } + + // allowedHandRotations = All (left wrist/hand) + if (joint == (int)KinectInterop.JointType.WristLeft || joint == (int)KinectInterop.JointType.HandLeft) + { + KinectInterop.JointData thumbData = bodyData.joint[(int)KinectInterop.JointType.ThumbLeft]; + + int prevJoint = (int)KinectInterop.GetParentJoint((KinectInterop.JointType)joint); + KinectInterop.JointData prevJointData = bodyData.joint[prevJoint]; + + if (thumbData.trackingState != KinectInterop.TrackingState.NotTracked && + prevJointData.trackingState != KinectInterop.TrackingState.NotTracked) + { + Vector3 rightDir = -jointDir; + Vector3 fwdDir = thumbData.direction.normalized; + fwdDir = new Vector3(fwdDir.x, fwdDir.y, -fwdDir.z).normalized; + + if (joint == (int)KinectInterop.JointType.HandLeft) + { + Vector3 prevBaseDir = -Vector3.left; // - KinectInterop.JointBaseDir[prevJoint]; + Vector3 prevOrthoDir = new Vector3(prevBaseDir.y, prevBaseDir.z, prevBaseDir.x); + fwdDir = prevJointData.normalRotation * prevOrthoDir; + //rightDir -= Vector3.Project(rightDir, fwdDir); + } + + if (rightDir != Vector3.zero && fwdDir != Vector3.zero) + { + Vector3 upDir = Vector3.Cross(fwdDir, rightDir).normalized; + fwdDir = Vector3.Cross(rightDir, upDir).normalized; + + //jointData.normalRotation = Quaternion.LookRotation(fwdDir, upDir); + Quaternion jointOrientThumb = Quaternion.LookRotation(fwdDir, upDir); + jointOrientNormal = (joint == (int)KinectInterop.JointType.WristLeft) ? + Quaternion.RotateTowards(prevJointData.normalRotation, jointOrientThumb, 80f) : jointOrientThumb; + + jointData.normalRotation = jointOrientNormal; + } + } + + //bRotated = true; + } + + if (joint == (int)KinectInterop.JointType.WristLeft || joint == (int)KinectInterop.JointType.HandLeft) + { + // limit wrist and hand twist + int prevJoint = (int)KinectInterop.GetParentJoint((KinectInterop.JointType)joint); + KinectInterop.JointData prevJointData = bodyData.joint[prevJoint]; + + if (prevJointData.trackingState != KinectInterop.TrackingState.NotTracked) + { + jointData.normalRotation = Quaternion.RotateTowards(prevJointData.normalRotation, jointData.normalRotation, 70f); + } + } + + } + else if ((joint == (int)KinectInterop.JointType.ShoulderRight) || + (joint == (int)KinectInterop.JointType.ElbowRight) || + (joint == (int)KinectInterop.JointType.WristRight) || + (joint == (int)KinectInterop.JointType.HandRight)) + { + if (bNextJointValid && jointData.direction != Vector3.zero && jointDir != Vector3.zero) + { + Vector3 parJointDir = jointData.direction.normalized; + parJointDir = new Vector3(parJointDir.x, parJointDir.y, -parJointDir.z).normalized; + + if (joint == (int)KinectInterop.JointType.WristRight) + { + // for wrist, take the finger direction into account, too + int fingerJoint = (int)KinectInterop.GetNextJoint((KinectInterop.JointType)nextJoint); + + if (fingerJoint != joint && fingerJoint >= 0 && fingerJoint < jointCount) + { + KinectInterop.JointData fingerData = bodyData.joint[fingerJoint]; + if (fingerData.trackingState != KinectInterop.TrackingState.NotTracked) + { + jointDir = (nextJointData.direction + fingerData.direction).normalized; + jointDir = new Vector3(jointDir.x, jointDir.y, -jointDir.z).normalized; + } + } + } + + float parDotJoint = Vector3.Dot(parJointDir, jointDir); + //if (joint == (int)KinectInterop.JointType.ElbowRight) + // Debug.Log ((KinectInterop.JointType)joint + ": " + parDotJoint); + + if ((parDotJoint >= 0.001f && parDotJoint <= 0.999f) || (parDotJoint >= -0.999f && parDotJoint <= -0.001f)) + { + if (joint != (int)KinectInterop.JointType.ShoulderRight && parJointDir != Vector3.zero) + { + Vector3 upDir = -Vector3.Cross(parJointDir, jointDir).normalized; + Vector3 fwdDir = Vector3.Cross(jointDir, upDir).normalized; + if (fwdDir.sqrMagnitude >= 0.5f && upDir.sqrMagnitude >= 0.5f) // avoid zero-length directions + jointOrientNormal = Quaternion.LookRotation(fwdDir, upDir); + //if(joint == (int)KinectInterop.JointType.ElbowRight) + // Debug.Log((KinectInterop.JointType)joint + " - F:" + fwdDir + ", U:" + upDir + ", P: " + parJointDir + ", J: " + jointDir); + } + else + { + // shoulder right + Vector3 fwdDir = Vector3.zero, upDir = Vector3.zero; + KinectInterop.JointData shCenterData = bodyData.joint[(int)KinectInterop.JointType.ClavicleRight]; + + Vector3 spineDir = shCenterData.direction.normalized; + spineDir = new Vector3(spineDir.x, spineDir.y, -spineDir.z).normalized; + + fwdDir = Vector3.Cross(jointDir, spineDir).normalized; + float fwdDotJoint = Vector3.Dot(fwdDir, Vector3.forward); + //Debug.Log("fwdDotJointR: " + fwdDotJoint); + + if (fwdDotJoint >= 0f && bodyData.joint[(int)KinectInterop.JointType.ElbowRight].trackingState == KinectInterop.TrackingState.Tracked && + bodyData.joint[(int)KinectInterop.JointType.WristRight].trackingState == KinectInterop.TrackingState.Tracked) + { + // get up-dir from elbow + Vector3 elbowDir = bodyData.joint[(int)KinectInterop.JointType.WristRight].direction; + elbowDir = new Vector3(elbowDir.x, elbowDir.y, -elbowDir.z).normalized; + + upDir = -Vector3.Cross(jointDir, elbowDir).normalized; + fwdDir = Vector3.Cross(jointDir, upDir).normalized; + //Debug.Log((KinectInterop.JointType)joint + "*E - U:" + upDir + ", F:" + fwdDir + ", J: " + jointDir + ", E: " + elbowDir); + } + else + { + // get fwd-dir from spine + upDir = Vector3.Cross(fwdDir, jointDir).normalized; + //Debug.Log((KinectInterop.JointType)joint + " - F:" + fwdDir + ", U:" + upDir + ", S:" + spineDir + ", J:" + jointDir); + } + + if (fwdDir.sqrMagnitude >= 0.5f && upDir.sqrMagnitude >= 0.5f) // avoid zero-length directions + jointOrientNormal = Quaternion.LookRotation(fwdDir, upDir); + } + + jointData.normalRotation = jointOrientNormal; + } + else if (joint != (int)KinectInterop.JointType.ShoulderRight) // to prevent upper-arm ticks + { + // no angle between bones - use the parent's rotation + KinectInterop.JointType parJoint = KinectInterop.GetParentJoint((KinectInterop.JointType)joint); + KinectInterop.JointData parJointData = bodyData.joint[(int)parJoint]; + + jointData.normalRotation = parJointData.normalRotation; + } + } + + // allowedHandRotations = All (right wrist/hand) + if (joint == (int)KinectInterop.JointType.WristRight || joint == (int)KinectInterop.JointType.HandRight) + { + KinectInterop.JointData thumbData = bodyData.joint[(int)KinectInterop.JointType.ThumbRight]; + + int prevJoint = (int)KinectInterop.GetParentJoint((KinectInterop.JointType)joint); + KinectInterop.JointData prevJointData = bodyData.joint[prevJoint]; + + if (thumbData.trackingState != KinectInterop.TrackingState.NotTracked && + prevJointData.trackingState != KinectInterop.TrackingState.NotTracked) + { + Vector3 rightDir = jointDir; + Vector3 fwdDir = thumbData.direction.normalized; + fwdDir = new Vector3(fwdDir.x, fwdDir.y, -fwdDir.z).normalized; + + if (joint == (int)KinectInterop.JointType.HandRight) + { + Vector3 prevBaseDir = Vector3.right; // KinectInterop.JointBaseDir[prevJoint]; + Vector3 prevOrthoDir = new Vector3(prevBaseDir.y, prevBaseDir.z, prevBaseDir.x); + fwdDir = prevJointData.normalRotation * prevOrthoDir; + //rightDir -= Vector3.Project(rightDir, fwdDir); + } + + if (rightDir != Vector3.zero && fwdDir != Vector3.zero) + { + Vector3 upDir = Vector3.Cross(fwdDir, rightDir).normalized; + fwdDir = Vector3.Cross(rightDir, upDir).normalized; + + Quaternion jointOrientThumb = Quaternion.LookRotation(fwdDir, upDir); + jointOrientNormal = (joint == (int)KinectInterop.JointType.WristRight) ? + Quaternion.RotateTowards(prevJointData.normalRotation, jointOrientThumb, 80f) : jointOrientThumb; + + jointData.normalRotation = jointOrientNormal; + } + } + + //bRotated = true; + } + + if (joint == (int)KinectInterop.JointType.WristRight || joint == (int)KinectInterop.JointType.HandRight) + { + // limit wrist and hand twist + int prevJoint = (int)KinectInterop.GetParentJoint((KinectInterop.JointType)joint); + KinectInterop.JointData prevJointData = bodyData.joint[prevJoint]; + + if (prevJointData.trackingState != KinectInterop.TrackingState.NotTracked) + { + jointData.normalRotation = Quaternion.RotateTowards(prevJointData.normalRotation, jointData.normalRotation, 70f); + } + } + + } + else if (joint == (int)KinectInterop.JointType.ClavicleLeft) + { + Vector3 parJointDir = jointData.direction.normalized; + parJointDir = new Vector3(parJointDir.x, parJointDir.y, -parJointDir.z).normalized; + + Vector3 fwdDir = Vector3.Cross(-jointDir, parJointDir).normalized; + Vector3 upDir = Vector3.Cross(fwdDir, -jointDir).normalized; + if (fwdDir.sqrMagnitude >= 0.5f && upDir.sqrMagnitude >= 0.5f) // avoid zero-length directions + jointOrientNormal = Quaternion.LookRotation(fwdDir, upDir); + + jointData.normalRotation = jointOrientNormal; + } + else if (joint == (int)KinectInterop.JointType.ClavicleRight) + { + Vector3 parJointDir = jointData.direction.normalized; + parJointDir = new Vector3(parJointDir.x, parJointDir.y, -parJointDir.z).normalized; + + Vector3 fwdDir = Vector3.Cross(jointDir, parJointDir).normalized; + Vector3 upDir = Vector3.Cross(fwdDir, jointDir).normalized; + if (fwdDir.sqrMagnitude >= 0.5f && upDir.sqrMagnitude >= 0.5f) // avoid zero-length directions + jointOrientNormal = Quaternion.LookRotation(fwdDir, upDir); + + jointData.normalRotation = jointOrientNormal; + } + else + { + jointData.normalRotation = jointOrientNormal; + } + + if ((joint == (int)KinectInterop.JointType.SpineNaval) || + (joint == (int)KinectInterop.JointType.SpineChest) || + (joint == (int)KinectInterop.JointType.Neck)) + { + if(bNextJointValid && jointDir != Vector3.zero) + { + Vector3 baseDir2 = Vector3.right; + Vector3 jointDir2 = shouldersDirection; + jointDir2.z = -jointDir2.z; + + jointData.normalRotation *= Quaternion.FromToRotation(baseDir2, jointDir2); + } + } + else if ((joint == (int)KinectInterop.JointType.Pelvis) || + (joint == (int)KinectInterop.JointType.HipLeft) || (joint == (int)KinectInterop.JointType.HipRight) || + (joint == (int)KinectInterop.JointType.KneeLeft) || (joint == (int)KinectInterop.JointType.KneeRight)) + { + if (bNextJointValid && jointDir != Vector3.zero) + { + Vector3 baseDir2 = Vector3.right; + Vector3 jointDir2 = hipsDirection; + jointDir2.z = -jointDir2.z; + + jointData.normalRotation *= Quaternion.FromToRotation(baseDir2, jointDir2); + } + } + else if((joint == (int)KinectInterop.JointType.AnkleLeft) || (joint == (int)KinectInterop.JointType.AnkleRight)) + { + if (bNextJointValid && jointDir != Vector3.zero) + { + Vector3 ankleDir = jointData.direction; + Vector3 footDir = nextJointData.direction; + + Vector3 footProj = Vector3.Project(footDir, ankleDir); + Vector3 anklePos = jointData.position + footProj; + + jointDir = nextJointData.position - anklePos; + jointDir = new Vector3(jointDir.x, jointDir.y, -jointDir.z).normalized; + + Vector3 parJointDir = jointData.direction.normalized; + parJointDir = new Vector3(parJointDir.x, parJointDir.y, -parJointDir.z).normalized; + + jointOrientNormal = Quaternion.LookRotation(jointDir, -parJointDir); + jointData.normalRotation = jointOrientNormal; + } + } + else if(joint == (int)KinectInterop.JointType.Head) + { + if (bNextJointValid && jointDir != Vector3.zero && + bodyData.joint[(int)KinectInterop.JointType.EarRight].trackingState != KinectInterop.TrackingState.NotTracked && + bodyData.joint[(int)KinectInterop.JointType.EarLeft].trackingState != KinectInterop.TrackingState.NotTracked) + { + Vector3 posREar = bodyData.joint[(int)KinectInterop.JointType.EarRight].position; + Vector3 posLEar = bodyData.joint[(int)KinectInterop.JointType.EarLeft].position; + + Vector3 earsDir = posREar - posLEar; + earsDir = new Vector3(earsDir.x, earsDir.y, -earsDir.z).normalized; + + Vector3 headUpDir = -Vector3.Cross(earsDir, jointDir); + jointOrientNormal = Quaternion.LookRotation(jointDir, headUpDir); + jointOrientNormal *= Quaternion.Euler(20f, 0, 0); // turn head 20 deg down + + jointData.normalRotation = jointOrientNormal; + } + } + + Vector3 mirroredAngles = jointData.normalRotation.eulerAngles; + mirroredAngles.y = -mirroredAngles.y; + mirroredAngles.z = -mirroredAngles.z; + + jointData.mirroredRotation = Quaternion.Euler(mirroredAngles); + } + else + { + // get the orientation of the parent joint + int prevJoint = (int)KinectInterop.GetParentJoint((KinectInterop.JointType)joint); + if (prevJoint != joint && prevJoint >= 0 && prevJoint < jointCount) + { + jointData.normalRotation = bodyData.joint[prevJoint].normalRotation; + jointData.mirroredRotation = bodyData.joint[prevJoint].mirroredRotation; + } + else + { + jointData.normalRotation = Quaternion.identity; + jointData.mirroredRotation = Quaternion.identity; + } + } + + bodyData.joint[joint] = jointData; + } + else + { + // joint is not tracked + } + + if (joint == (int)KinectInterop.JointType.Pelvis) + { + bodyData.normalRotation = jointData.normalRotation; + bodyData.mirroredRotation = jointData.mirroredRotation; + } + } + } + + + protected static readonly Vector3[] KinectJointBaseDir = + { + Vector3.zero, + Vector3.up, + Vector3.up, + Vector3.up, + Vector3.up, // (Vector3.up + Vector3.forward).normalized, + + Vector3.left, + Vector3.left, + Vector3.left, + Vector3.left, + Vector3.left, + + Vector3.right, + Vector3.right, + Vector3.right, + Vector3.right, + Vector3.right, + + Vector3.down, + Vector3.down, + Vector3.down, + Vector3.forward, + + Vector3.down, + Vector3.down, + Vector3.down, + Vector3.forward, + + Vector3.forward, + Vector3.left, + Vector3.left, + Vector3.right, + Vector3.right, + + Vector3.left, + Vector3.forward, + Vector3.right, + Vector3.forward, + }; + + // returns the sensor-data for network exchange + public KinectInterop.NetSensorData GetNetSensorData(KinectInterop.SensorData sensorData) + { + if (sensorData == null) + return null; + + KinectInterop.NetSensorData netSensorData = new KinectInterop.NetSensorData(); + + netSensorData.sensorType = (int)sensorData.sensorInterface.GetSensorPlatform(); + netSensorData.sensorId = sensorDeviceId; + + netSensorData.colorImageWidth = sensorData.colorImageWidth; + netSensorData.colorImageHeight = sensorData.colorImageHeight; + + netSensorData.depthImageWidth = sensorData.depthImageWidth; + netSensorData.depthImageHeight = sensorData.depthImageHeight; + + netSensorData.depthCamIntr = sensorData.depthCamIntr; + netSensorData.colorCamIntr = sensorData.colorCamIntr; + netSensorData.depth2ColorExtr = sensorData.depth2ColorExtr; + netSensorData.color2DepthExtr = sensorData.color2DepthExtr; + + netSensorData.colorImageScale = sensorData.colorImageScale; + netSensorData.depthImageScale = sensorData.depthImageScale; + netSensorData.infraredImageScale = sensorData.infraredImageScale; + netSensorData.sensorSpaceScale = sensorData.sensorSpaceScale; + netSensorData.unitToMeterFactor = sensorData.unitToMeterFactor; + + netSensorData.sensorPosition = sensorPosePosition; + netSensorData.sensorRotation = sensorPoseRotation.eulerAngles; + + netSensorData.sensorRotOffset = sensorRotOffset; + netSensorData.sensorRotFlipZ = sensorRotFlipZ; + netSensorData.sensorRotIgnoreY = sensorRotIgnoreY; + + return netSensorData; + } + + // sets the local sensor data from the network exchange data + public void SetNetSensorData(KinectInterop.NetSensorData netSensorData, KinectInterop.SensorData sensorData, KinectManager kinectManager) + { + if (netSensorData == null || sensorData == null) + return; + + sensorDeviceId = netSensorData.sensorId; + sensorPlatform = (KinectInterop.DepthSensorPlatform)netSensorData.sensorType; + //Debug.Log("NetSensor is " + sensorPlatform + ", id: " + netSensorData.sensorId); + + sensorData.colorImageWidth = netSensorData.colorImageWidth; + sensorData.colorImageHeight = netSensorData.colorImageHeight; + + sensorData.depthImageWidth = netSensorData.depthImageWidth; + sensorData.depthImageHeight = netSensorData.depthImageHeight; + + sensorData.depthCamIntr = netSensorData.depthCamIntr; + sensorData.colorCamIntr = netSensorData.colorCamIntr; + sensorData.depth2ColorExtr = netSensorData.depth2ColorExtr; + sensorData.color2DepthExtr = netSensorData.color2DepthExtr; + + sensorData.colorImageScale = netSensorData.colorImageScale; + sensorData.depthImageScale = netSensorData.depthImageScale; + sensorData.infraredImageScale = netSensorData.infraredImageScale; + sensorData.sensorSpaceScale = netSensorData.sensorSpaceScale; + sensorData.unitToMeterFactor = netSensorData.unitToMeterFactor; + + if (kinectManager != null && kinectManager.getPoseFrames != KinectManager.PoseUsageType.None) + { + lock (poseFrameLock) + { + transform.position = sensorData.sensorPosePosition = sensorPosePosition = netSensorData.sensorPosition; + transform.rotation = sensorData.sensorPoseRotation = sensorPoseRotation = Quaternion.Euler(netSensorData.sensorRotation); + } + } + + sensorRotOffset = netSensorData.sensorRotOffset; + sensorRotFlipZ = netSensorData.sensorRotFlipZ; + sensorRotIgnoreY = netSensorData.sensorRotIgnoreY; + } + + // returns the sensor pose data for network exchange + public KinectInterop.NetPoseData GetSensorNetPoseData(KinectInterop.SensorData sensorData) + { + if (sensorData == null) + return null; + + KinectInterop.NetPoseData netPoseData = new KinectInterop.NetPoseData(); + + netPoseData.sensorPosition = sensorPosePosition; + netPoseData.sensorRotation = sensorPoseRotation.eulerAngles; + netPoseData.sensorPoseTime = currentPoseTimestamp; + + return netPoseData; + } + + // sets the local sensor pose data from the network exchange data + public void SetSensorNetPoseData(KinectInterop.NetPoseData netPoseData, KinectInterop.SensorData sensorData, KinectManager kinectManager) + { + if (netPoseData == null || sensorData == null) + return; + + lock (poseFrameLock) + { + sensorData.sensorPosePosition = sensorPosePosition = netPoseData.sensorPosition; + sensorData.sensorPoseRotation = sensorPoseRotation = Quaternion.Euler(netPoseData.sensorRotation); + sensorData.lastSensorPoseFrameTime = currentPoseTimestamp = rawPoseTimestamp = netPoseData.sensorPoseTime; + } + + // apply sensor pose update to the transform, if needed + //ApplySensorPoseUpdate(kinectManager); + } + + // enables or disables depth camera color frame processing + public virtual void EnableDepthCameraColorFrame(KinectInterop.SensorData sensorData, bool isEnable) + { + if (isEnable && pointCloudColorTexture == null) + { + pointCloudColorTexture = KinectInterop.CreateRenderTexture(pointCloudColorTexture, + sensorData.depthImageWidth, sensorData.depthImageHeight, RenderTextureFormat.ARGB32); + sensorData.depthCamColorImageTexture = new Texture2D(sensorData.depthImageWidth, sensorData.depthImageHeight, sensorData.colorImageFormat, false); + } + else if(!isEnable && pointCloudColorTexture != null) + { + pointCloudColorTexture.Release(); + pointCloudColorTexture = null; + + sensorData.depthCamColorImageTexture = null; + } + } + + // returns the latest depth camera color frame texture along with the last frame time + public virtual Texture GetDepthCameraColorFrameTexture(KinectInterop.SensorData sensorData, ref Texture2D copyToTex2D, ref ulong frameTime) + { + if (sensorData.depthCamColorImageTexture == null) + return null; + + lock (depthCamColorFrameLock) + { + if(copyToTex2D != null && sensorData.lastDepthCamColorFrameTime != frameTime) + { + //KinectInterop.RenderTex2Tex2D(sensorData.depthCamColorImageTexture, ref copyToTex2D); + Graphics.CopyTexture(sensorData.depthCamColorImageTexture, copyToTex2D); + } + + frameTime = sensorData.lastDepthCamColorFrameTime; + } + + return sensorData.depthCamColorImageTexture; + } + + // enables or disables color camera depth frame processing + public virtual void EnableColorCameraDepthFrame(KinectInterop.SensorData sensorData, bool isEnable) + { + if (isEnable && colorCamDepthDataFrame == null) + { + colorCamDepthDataFrame = new ushort[sensorData.colorImageWidth * sensorData.colorImageHeight]; + sensorData.colorCamDepthImage = new ushort[sensorData.colorImageWidth * sensorData.colorImageHeight]; + } + else if(!isEnable && colorCamDepthDataFrame != null) + { + colorCamDepthDataFrame = null; + sensorData.colorCamDepthImage = null; + } + } + + // returns the latest color camera depth frame along with the last frame time. the returned data frame is ushort array. + public virtual ushort[] GetColorCameraDepthFrame(KinectInterop.SensorData sensorData, ref ushort[] copyToFrame, ref ulong frameTime) + { + if (sensorData.colorCamDepthImage == null) + return null; + + lock (colorCamDepthFrameLock) + { + if (copyToFrame != null && sensorData.lastColorCamDepthFrameTime != frameTime) + { + KinectInterop.CopyBytes(sensorData.colorCamDepthImage, sizeof(ushort), copyToFrame, sizeof(ushort)); + } + + frameTime = sensorData.lastColorCamDepthFrameTime; + } + + return sensorData.colorCamDepthImage; + } + + // returns the latest color camera depth frame along with the last frame time. the returned data frame is byte array. + public virtual byte[] GetColorCameraDepthFrameBytes(KinectInterop.SensorData sensorData, ref byte[] copyToFrame, ref ulong frameTime) + { + if (sensorData.colorCamDepthImage == null) + return null; + + byte[] frameData = null; + + lock (colorCamDepthFrameLock) + { + if (copyToFrame != null && sensorData.lastColorCamDepthFrameTime != frameTime) + { + KinectInterop.CopyBytes(sensorData.colorCamDepthImage, sizeof(ushort), copyToFrame, sizeof(byte)); + frameData = copyToFrame; + } + + if(frameData == null) + { + frameData = new byte[sensorData.colorCamDepthImage.Length * sizeof(ushort)]; + KinectInterop.CopyBytes(sensorData.colorCamDepthImage, sizeof(ushort), frameData, sizeof(byte)); + } + + frameTime = sensorData.lastColorCamDepthFrameTime; + } + + return frameData; + } + + // enables or disables color camera infrared frame processing + public virtual void EnableColorCameraInfraredFrame(KinectInterop.SensorData sensorData, bool isEnableRawData, bool isEnableTexture) + { + if (isEnableRawData && colorCamInfraredDataFrame == null) + { + colorCamInfraredDataFrame = new ushort[sensorData.colorImageWidth * sensorData.colorImageHeight]; + sensorData.colorCamInfraredImage = new ushort[sensorData.colorImageWidth * sensorData.colorImageHeight]; + } + else if (!isEnableRawData && colorCamInfraredDataFrame != null) + { + colorCamInfraredDataFrame = null; + sensorData.colorCamInfraredImage = null; + } + + if(isEnableTexture && sensorData.colorInfraredBuffer == null) + { + if(sensorData.colorImageWidth > 0 && sensorData.colorImageHeight > 0) + { + int bufferLength = sensorData.colorImageWidth * sensorData.colorImageHeight / 2; + sensorData.colorInfraredBuffer = new ComputeBuffer(bufferLength, sizeof(uint)); + } + } + else if(!isEnableTexture && sensorData.colorInfraredBuffer != null) + { + sensorData.colorInfraredBuffer.Release(); + sensorData.colorInfraredBuffer.Dispose(); + sensorData.colorInfraredBuffer = null; + } + } + + // returns the latest color camera infrared frame along with the last frame time. the returned data frame is ushort array. + public virtual ushort[] GetColorCameraInfraredFrame(KinectInterop.SensorData sensorData, ref ushort[] copyToFrame, ref ulong frameTime) + { + if (sensorData.colorCamInfraredImage == null) + return null; + + lock (colorCamInfraredFrameLock) + { + if (copyToFrame != null && sensorData.lastColorCamInfraredFrameTime != frameTime) + { + KinectInterop.CopyBytes(sensorData.colorCamInfraredImage, sizeof(ushort), copyToFrame, sizeof(ushort)); + } + + frameTime = sensorData.lastColorCamInfraredFrameTime; + } + + return sensorData.colorCamInfraredImage; + } + + //// returns the latest color camera infrared frame along with the last frame time. the returned data frame is byte array. + //public virtual byte[] GetColorCameraInfraredFrameBytes(KinectInterop.SensorData sensorData, ref byte[] copyToFrame, ref ulong frameTime) + //{ + // if (sensorData.colorCamInfraredImage == null) + // return null; + + // byte[] frameData = null; + + // lock (colorCamInfraredFrameLock) + // { + // if (copyToFrame != null && sensorData.lastColorCamInfraredFrameTime != frameTime) + // { + // KinectInterop.CopyBytes(sensorData.colorCamInfraredImage, sizeof(ushort), copyToFrame, sizeof(byte)); + // frameData = copyToFrame; + // } + + // if (frameData == null) + // { + // frameData = new byte[sensorData.colorCamInfraredImage.Length * sizeof(ushort)]; + // KinectInterop.CopyBytes(sensorData.colorCamInfraredImage, sizeof(ushort), frameData, sizeof(byte)); + // } + + // frameTime = sensorData.lastColorCamInfraredFrameTime; + // } + + // return frameData; + //} + + // returns the latest color camera infrared frame texture along with the last frame time + public virtual Texture GetColorCameraInfraredFrameTexture(KinectInterop.SensorData sensorData, ref Texture2D copyToTex2D, ref ulong frameTime) + { + if (sensorData.colorInfraredTexture == null) + return null; + + //lock (colorCamInfraredFrameLock) + { + if (copyToTex2D != null && sensorData.lastInfraredImageTime != frameTime) + { + // CopyTexture() doesn't work in this case, because it's on GPU, while EncodeToJPG() is on CPU side. + // see: https://answers.unity.com/questions/1479723/encodetojpg-creates-gray-image-after-using-copytex.html + //Graphics.CopyTexture(sensorData.colorInfraredTexture, copyToTex2D); + KinectInterop.RenderTex2Tex2D(sensorData.colorInfraredTexture, ref copyToTex2D); + } + + frameTime = sensorData.lastInfraredImageTime; + //Debug.Log("LastInfraredImageTime: " + sensorData.lastInfraredImageTime); + } + + return sensorData.colorInfraredTexture; + } + + // enables or disables color camera body-index frame processing + public virtual void EnableColorCameraBodyIndexFrame(KinectInterop.SensorData sensorData, bool isEnable) + { + if (isEnable && colorCamBodyIndexFrame == null) + { + colorCamBodyIndexFrame = new byte[sensorData.colorImageWidth * sensorData.colorImageHeight]; + sensorData.colorCamBodyIndexImage = new byte[sensorData.colorImageWidth * sensorData.colorImageHeight]; + } + else if (!isEnable && colorCamBodyIndexFrame != null) + { + colorCamBodyIndexFrame = null; + sensorData.colorCamBodyIndexImage = null; + } + } + + // returns the latest color camera body-index frame along with the last frame time + public virtual byte[] GetColorCameraBodyIndexFrame(KinectInterop.SensorData sensorData, ref byte[] copyToFrame, ref ulong frameTime) + { + if (sensorData.colorCamBodyIndexImage == null) + return null; + + lock (colorCamDepthFrameLock) + { + if (copyToFrame != null && sensorData.lastColorCamBodyIndexFrameTime != frameTime) + { + KinectInterop.CopyBytes(sensorData.colorCamBodyIndexImage, sizeof(byte), copyToFrame, sizeof(byte)); + } + + frameTime = sensorData.lastColorCamBodyIndexFrameTime; + } + + return sensorData.colorCamBodyIndexImage; + } + + } +} diff --git a/Assets/Azure/KinectScripts/Interfaces/DepthSensorBase.cs.meta b/Assets/Azure/KinectScripts/Interfaces/DepthSensorBase.cs.meta new file mode 100644 index 0000000..517b4a6 --- /dev/null +++ b/Assets/Azure/KinectScripts/Interfaces/DepthSensorBase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 73b91e3d1fd43b147958460a9f767c75 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/Interfaces/DepthSensorDescriptor.cs b/Assets/Azure/KinectScripts/Interfaces/DepthSensorDescriptor.cs new file mode 100644 index 0000000..9a1f735 --- /dev/null +++ b/Assets/Azure/KinectScripts/Interfaces/DepthSensorDescriptor.cs @@ -0,0 +1,59 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace com.rfilkov.kinect +{ + /// + /// Descriptor of the sensor interface. + /// + [System.Serializable] + public class DepthSensorDescriptor + { + /// + /// Sensor type. + /// + public string sensorType; + + /// + /// Full path to the sensor interface. + /// + public string sensorInterface; + + /// + /// Settings of the sensor interface. + /// + public string sensorIntSettings; + + /// + /// Sensor interface version. + /// + public string sensorIntVersion; + + /// + /// Transform position. + /// + public Vector3 transformPos; + + /// + /// Transform rotation. + /// + public Vector3 transformRot; + + /// + /// Full class path to the depth predictor. + /// + public string depthPredictor; + + /// + /// Full class path to the body tracking predictor. + /// + public string bodyTrackingPredictor; + + /// + /// Full class path to the body segmentation predictor. + /// + public string bodySegmentationPredictor; + + } +} diff --git a/Assets/Azure/KinectScripts/Interfaces/DepthSensorDescriptor.cs.meta b/Assets/Azure/KinectScripts/Interfaces/DepthSensorDescriptor.cs.meta new file mode 100644 index 0000000..4c4b3b7 --- /dev/null +++ b/Assets/Azure/KinectScripts/Interfaces/DepthSensorDescriptor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f862c1359c67d47e4a77a4b5c762744b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/Interfaces/DepthSensorInterface.cs b/Assets/Azure/KinectScripts/Interfaces/DepthSensorInterface.cs new file mode 100644 index 0000000..6e7d732 --- /dev/null +++ b/Assets/Azure/KinectScripts/Interfaces/DepthSensorInterface.cs @@ -0,0 +1,168 @@ +using UnityEngine; +using System.Collections; +using System.Collections.Generic; + +namespace com.rfilkov.kinect +{ + /// + /// DepthSensorInterface is the template for all sensor-interface implementations. + /// + public interface DepthSensorInterface + { + // returns the depth sensor platform + KinectInterop.DepthSensorPlatform GetSensorPlatform(); + + // returns the device-id of the currently opened sensor + string GetSensorDeviceId(); + + // returns the type of sensor interface settings + System.Type GetSensorSettingsType(); + + // returns sensor interface settings + DepthSensorBase.BaseSensorSettings GetSensorSettings(DepthSensorBase.BaseSensorSettings settings); + + // sets sensor interface settings + void SetSensorSettings(DepthSensorBase.BaseSensorSettings settings); + + // returns the list of available sensors, controlled by this sensor interface + List GetAvailableSensors(); + + // opens the given sensor and inits needed resources. returns new sensor-data object + KinectInterop.SensorData OpenSensor(KinectManager kinectManager, KinectInterop.FrameSource dwFlags, bool bSyncDepthAndColor, bool bSyncBodyAndDepth); + + // closes the sensor and frees used resources + void CloseSensor(KinectInterop.SensorData sensorData); + + // enables or disables the pose stream + void EnablePoseStream(KinectInterop.SensorData sensorData, bool bEnable); + + // enables or disables synchronization of frames between the master & sub sensors + bool EnableSensorSync(KinectInterop.SensorData sensorData, bool bEnable); + + // returns true if the sensor is master, false if it's standalone or subordinate + bool IsSensorMaster(); + + // checks if the given sensor frame timestamp is synched with the master or not + bool IsSensorFrameSynched(ulong frameTime, ulong masterTime); + + // set minimum & maximum infrared values, used in IR texture generation + void SetMinMaxInfraredValues(float minValue, float maxValue); + + // initializes the secondary sensor data, after sensor initialization + void InitSensorData(KinectInterop.SensorData sensorData, KinectManager kinectManager); + + // checks whether the sensor data is valid. can wait for valid data, as in case of the net-interface + bool IsSensorDataValid(); + + // returns the body tracker orientation angle (Z-angle), in degrees + float GetBodyTrackerOrientationAngle(); + + // polls data frames in the sensor-specific thread + void PollSensorFrames(KinectInterop.SensorData sensorData); + + // polls coordinate transformation frames and data in the sensor-specific thread + void PollCoordTransformFrames(KinectInterop.SensorData sensorData); + + // post-processes the sensor data after polling + void PollSensorFrameTimes(KinectInterop.SensorData sensorData); + + // updates sensor data, if needed + // returns true if update is successful, false otherwise + bool UpdateSensorData(KinectInterop.SensorData sensorData, KinectManager kinectManager, bool isPlayMode); + + // updates transformed frame textures, if needed + // returns true if update is successful, false otherwise + bool UpdateTransformedFrameTextures(KinectInterop.SensorData sensorData, KinectManager kinectManager); + + // updates the selected sensor textures, if needed + // returns true if update is successful, false otherwise + bool UpdateSensorTextures(KinectInterop.SensorData sensorData, KinectManager kinectManager, ulong prevDepthFrameTime, ulong prevIrFrameTime); + + // returns sensor transform. Please note transform updates depend on the getPoseFrames-KM setting. + Transform GetSensorTransform(); + + // returns depth-to-color-camera matrix + Matrix4x4 GetDepthToColorCameraMatrix(); + + // returns sensor-to-world matrix + Matrix4x4 GetSensorToWorldMatrix(); + + // sets sensor-to-world matrix + void SetSensorToWorldMatrix(Vector3 sensorWorldPosition, Quaternion sensorWorldRotation, bool isUpdateTransform); + + // sets sensor-to-world matrix + void SetSensorToWorldMatrix(Matrix4x4 mSensor2World, bool isUpdateTransform); + + // returns the depth camera space table + Vector3[] GetDepthCameraSpaceTable(KinectInterop.SensorData sensorData); + + // returns the color camera space table + Vector3[] GetColorCameraSpaceTable(KinectInterop.SensorData sensorData); + + // returns depth camera space coordinates for the given depth image point + Vector3 MapDepthPointToSpaceCoords(KinectInterop.SensorData sensorData, Vector2 depthPos, ushort depthVal); + + // returns depth image coordinates for the given depth camera space point + Vector2 MapSpacePointToDepthCoords(KinectInterop.SensorData sensorData, Vector3 spacePos); + + // returns color camera space coordinates for the given color image point + Vector3 MapColorPointToSpaceCoords(KinectInterop.SensorData sensorData, Vector2 colorPos, ushort depthVal); + + // returns color image coordinates for the given color camera space point + Vector2 MapSpacePointToColorCoords(KinectInterop.SensorData sensorData, Vector3 spacePos); + + // returns color image coordinates for the given depth image point + Vector2 MapDepthPointToColorCoords(KinectInterop.SensorData sensorData, Vector2 depthPos, ushort depthVal); + + // returns depth image coordinates for the given color image point + Vector2 MapColorPointToDepthCoords(KinectInterop.SensorData sensorData, Vector2 colorPos, int minDist, int maxDist); + + // returns the anchor position of the background raw image + Vector2 GetBackgroundImageAnchorPos(KinectInterop.SensorData sensorData); + + // returns the resolution in pixels of the point-cloud textures + Vector2Int GetPointCloudTexResolution(KinectInterop.SensorData sensorData); + + // returns the net-sensor-data for network exchange + KinectInterop.NetSensorData GetNetSensorData(KinectInterop.SensorData sensorData); + + // sets the local sensor data from the network exchange data + void SetNetSensorData(KinectInterop.NetSensorData netSensorData, KinectInterop.SensorData sensorData, KinectManager kinectManager); + + // returns the sensor pose data for network exchange + KinectInterop.NetPoseData GetSensorNetPoseData(KinectInterop.SensorData sensorData); + + // sets the local sensor pose data from the network exchange data + void SetSensorNetPoseData(KinectInterop.NetPoseData netPoseData, KinectInterop.SensorData sensorData, KinectManager kinectManager); + + // enables or disables depth camera color frame processing + void EnableDepthCameraColorFrame(KinectInterop.SensorData sensorData, bool isEnable); + + // returns the latest depth camera color frame texture along with the last frame time + Texture GetDepthCameraColorFrameTexture(KinectInterop.SensorData sensorData, ref Texture2D copyToTex2D, ref ulong frameTime); + + // enables or disables color camera depth frame processing + void EnableColorCameraDepthFrame(KinectInterop.SensorData sensorData, bool isEnable); + + // returns the latest color camera depth frame along with the last frame time. the returned data is ushort array. + ushort[] GetColorCameraDepthFrame(KinectInterop.SensorData sensorData, ref ushort[] copyToFrame, ref ulong frameTime); + + // returns the latest color camera depth frame along with the last frame time. the returned data frame is byte array. + byte[] GetColorCameraDepthFrameBytes(KinectInterop.SensorData sensorData, ref byte[] copyToFrame, ref ulong frameTime); + + // enables or disables color camera infrared frame processing + void EnableColorCameraInfraredFrame(KinectInterop.SensorData sensorData, bool isEnableRawData, bool isEnableTexture); + + // returns the latest color camera infrared frame along with the last frame time. the returned data is ushort array. + ushort[] GetColorCameraInfraredFrame(KinectInterop.SensorData sensorData, ref ushort[] copyToFrame, ref ulong frameTime); + + // returns the latest color camera infrared frame texture along with the last frame time + Texture GetColorCameraInfraredFrameTexture(KinectInterop.SensorData sensorData, ref Texture2D copyToTex2D, ref ulong frameTime); + + // enables or disables color camera body-index frame processing + void EnableColorCameraBodyIndexFrame(KinectInterop.SensorData sensorData, bool isEnable); + + // returns the latest color camera body-index frame along with the last frame time + byte[] GetColorCameraBodyIndexFrame(KinectInterop.SensorData sensorData, ref byte[] copyToFrame, ref ulong frameTime); + } +} diff --git a/Assets/Azure/KinectScripts/Interfaces/DepthSensorInterface.cs.meta b/Assets/Azure/KinectScripts/Interfaces/DepthSensorInterface.cs.meta new file mode 100644 index 0000000..fbef9f0 --- /dev/null +++ b/Assets/Azure/KinectScripts/Interfaces/DepthSensorInterface.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 87d17d44f68821041bda50d9aa091b2a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/Interfaces/DummyK4AInterface.cs b/Assets/Azure/KinectScripts/Interfaces/DummyK4AInterface.cs new file mode 100644 index 0000000..58ec492 --- /dev/null +++ b/Assets/Azure/KinectScripts/Interfaces/DummyK4AInterface.cs @@ -0,0 +1,112 @@ +using UnityEngine; +using System.Collections; +using System.Collections.Generic; + +namespace com.rfilkov.kinect +{ + /// + /// DummyK4AInterface is dummy sensor-interface to the Azure Kinect sensors. + /// + public class DummyK4AInterface : DepthSensorBase + { + + public override KinectInterop.DepthSensorPlatform GetSensorPlatform() + { + return KinectInterop.DepthSensorPlatform.DummyK4A; + } + + public override List GetAvailableSensors() + { + List alSensorInfo = new List(); + + KinectInterop.SensorDeviceInfo sensorInfo = new KinectInterop.SensorDeviceInfo(); + sensorInfo.sensorId = "DummyK4A"; + sensorInfo.sensorName = "Dummy Kinect-for-Azure"; + sensorInfo.sensorCaps = KinectInterop.FrameSource.TypeAll; + + alSensorInfo.Add(sensorInfo); + + return alSensorInfo; + } + + public override KinectInterop.SensorData OpenSensor(KinectManager kinectManager, KinectInterop.FrameSource dwFlags, bool bSyncDepthAndColor, bool bSyncBodyAndDepth) + { + // save initial parameters + base.OpenSensor(kinectManager, dwFlags, bSyncDepthAndColor, bSyncBodyAndDepth); + + List alSensors = GetAvailableSensors(); + if (deviceIndex < 0 || deviceIndex >= alSensors.Count) + return null; + + sensorDeviceId = alSensors[deviceIndex].sensorId; + sensorPlatform = KinectInterop.DepthSensorPlatform.DummyK4A; + + KinectInterop.SensorData sensorData = new KinectInterop.SensorData(); + sensorData.sensorIntPlatform = sensorPlatform; + + sensorData.sensorId = alSensors[deviceIndex].sensorId; + sensorData.sensorName = alSensors[deviceIndex].sensorName; + sensorData.sensorCaps = alSensors[deviceIndex].sensorCaps; + + sensorData.colorImageWidth = 1920; // 1080p + sensorData.colorImageHeight = 1080; + + sensorData.depthImageWidth = 640; // NFOV Unbinned + sensorData.depthImageHeight = 576; + + sensorData.depthCamIntr = JsonUtility.FromJson(jsonDepthCamIntr); + sensorData.colorCamIntr = JsonUtility.FromJson(jsonColorCamIntr); + sensorData.depth2ColorExtr = JsonUtility.FromJson(jsonDepth2ColorExtr); + sensorData.color2DepthExtr = JsonUtility.FromJson(jsonColor2DepthExtr); + + float[] r = sensorData.depth2ColorExtr.rotation; + float[] t = sensorData.depth2ColorExtr.translation; + + depth2colorCamMat = new Matrix4x4(new Vector4(r[0], r[3], r[6], 0), new Vector4(r[1], r[4], r[7], 0), new Vector4(r[2], r[5], r[8], 0), new Vector4(t[0] * 0.001f, t[1] * 0.001f, t[2] * 0.001f, 1)); + //Debug.Log("Depth2colorCamMat Pos: " + (Vector3)depth2colorCamMat.GetColumn(3) + ", Rot: " + depth2colorCamMat.rotation.eulerAngles); + + // flip color & depth image vertically + sensorData.colorImageScale = new Vector3(-1f, -1f, 1f); + sensorData.depthImageScale = new Vector3(-1f, -1f, 1f); + sensorData.infraredImageScale = new Vector3(-1f, -1f, 1f); + sensorData.sensorSpaceScale = new Vector3(-1f, -1f, 1f); + sensorData.unitToMeterFactor = 0.001f; + + // depth camera offset & matrix z-flip + sensorRotOffset = Vector3.zero; // new Vector3(6f, 0f, 0f); // the depth camera is tilted 6 degrees downwards + sensorRotFlipZ = true; + sensorRotIgnoreY = true; + + // color camera data & intrinsics + sensorData.colorImageFormat = TextureFormat.BGRA32; + sensorData.colorImageStride = 4; // 4 bytes per pixel + + if(consoleLogMessages) + Debug.Log("D" + deviceIndex + " DummyK4A-sensor opened"); + + return sensorData; + } + + public override void CloseSensor(KinectInterop.SensorData sensorData) + { + if (consoleLogMessages) + Debug.Log("D" + deviceIndex + " DummyK4A-sensor closed"); + } + + + private const string jsonDepthCamIntr = "{ \"cameraType\": 0, \"width\": 640, \"height\": 576, \"ppx\": 319.3891296386719, \"ppy\": 339.0096435546875," + + "\"fx\": 505.0830078125, \"fy\": 505.2060546875, \"distType\": 4, \"distCoeffs\": [0.45811858773231509,-0.09587264806032181,-0.008291528560221196,0.7999407649040222,-0.01724848523736,-0.03864333778619766]," + + "\"codx\": 0.0, \"cody\": 0.0, \"p2\": -0.00007324512989725918, \"p1\": -0.00015797713422216475, \"maxRadius\": 0.0, \"hFOV\": 64.7133560180664, \"vFOV\": 59.371849060058597 }"; + + private const string jsonColorCamIntr = "{ \"cameraType\": 1, \"width\": 1920, \"height\": 1080, \"ppx\": 953.6868286132813, \"ppy\": 553.8844604492188," + + "\"fx\": 903.1810913085938, \"fy\": 903.4053955078125, \"distType\": 4, \"distCoeffs\": [0.8302328586578369,-2.98026442527771,1.6583690643310547,0.7071738839149475,-2.815004825592041,1.5919547080993653]," + + "\"codx\": 0.0, \"cody\": 0.0, \"p2\": -0.0001697207917459309, \"p1\": 0.0007688929326832295, \"maxRadius\": 0.0, \"hFOV\": 93.49346160888672, \"vFOV\": 61.73675537109375 }"; + + private const string jsonDepth2ColorExtr = "{ \"rotation\": [0.9999944567680359,0.003319731680676341,-0.00013891232083551586,-0.0032980330288410188," + + "0.9968001842498779,0.07986554503440857,0.00040359998820349574,-0.07986464351415634,0.9968056082725525]," + + "\"translation\": [-31.988178253173829,-2.296376943588257,4.040627956390381] }"; + + private const string jsonColor2DepthExtr = "{ \"rotation\": [1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0]," + + "\"translation\": [0.0,0.0,0.0] }"; + } +} diff --git a/Assets/Azure/KinectScripts/Interfaces/DummyK4AInterface.cs.meta b/Assets/Azure/KinectScripts/Interfaces/DummyK4AInterface.cs.meta new file mode 100644 index 0000000..621a15f --- /dev/null +++ b/Assets/Azure/KinectScripts/Interfaces/DummyK4AInterface.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 71599eb36be4254469c6650b3f455914 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/Interfaces/Kinect2Interface.cs b/Assets/Azure/KinectScripts/Interfaces/Kinect2Interface.cs new file mode 100644 index 0000000..68887f0 --- /dev/null +++ b/Assets/Azure/KinectScripts/Interfaces/Kinect2Interface.cs @@ -0,0 +1,1846 @@ +#if (UNITY_STANDALONE_WIN) +using UnityEngine; +using System.Collections; +using Windows.Kinect; +using System.Runtime.InteropServices; +//using Microsoft.Kinect.Face; +using System.Collections.Generic; +using System; + +namespace com.rfilkov.kinect +{ + /// + /// Kinect2Interface is sensor-interface to the Kinect-v2 sensors. + /// + public class Kinect2Interface : DepthSensorBase + { + // change this to false, if you aren't using Kinect-v2 only and want KM to check for available sensors + public static bool sensorAlwaysAvailable = true; + + [Tooltip("Whether the detected users face backwards or not.")] + public bool usersFaceBackwards = false; + + public KinectSensor kinectSensor; + public CoordinateMapper coordMapper; + + private BodyFrameReader bodyFrameReader; + private BodyIndexFrameReader bodyIndexFrameReader; + private ColorFrameReader colorFrameReader; + private DepthFrameReader depthFrameReader; + private InfraredFrameReader infraredFrameReader; + + private MultiSourceFrameReader multiSourceFrameReader; + private MultiSourceFrame multiSourceFrame; + + private ColorFrame msColorFrame = null; + private DepthFrame msDepthFrame = null; + private InfraredFrame msInfraredFrame = null; + private BodyFrame msBodyFrame = null; + private BodyIndexFrame msBodyIndexFrame = null; + + + private int kinectBodyCount = 0; + private int kinectJointCount = 0; + private Body[] kinectBodyData; + + private bool floorPlaneDetected = false; + private Windows.Kinect.Vector4 vFloorPlane; + + + // depth sensor settings + [System.Serializable] + public class K2SensorSettings : DepthSensorBase.BaseSensorSettings + { + public bool usersFaceBackwards; + } + + + public override KinectInterop.DepthSensorPlatform GetSensorPlatform() + { + return KinectInterop.DepthSensorPlatform.KinectV2; + } + + + public override System.Type GetSensorSettingsType() + { + return typeof(K2SensorSettings); + } + + + public override BaseSensorSettings GetSensorSettings(BaseSensorSettings settings) + { + if (settings == null) + { + settings = new K2SensorSettings(); + } + + K2SensorSettings extSettings = (K2SensorSettings)base.GetSensorSettings(settings); + extSettings.usersFaceBackwards = usersFaceBackwards; + + return settings; + } + + public override void SetSensorSettings(BaseSensorSettings settings) + { + if (settings == null) + return; + + base.SetSensorSettings(settings); + + K2SensorSettings extSettings = (K2SensorSettings)settings; + usersFaceBackwards = extSettings.usersFaceBackwards; + } + + public override List GetAvailableSensors() + { + List alSensorInfo = new List(); + KinectInterop.SensorDeviceInfo sensorInfo = new KinectInterop.SensorDeviceInfo(); + + KinectSensor sensor = KinectSensor.GetDefault(); + if (sensor != null) + { + if (sensorAlwaysAvailable) + { + sensorInfo.sensorId = "KinectV2"; + sensorInfo.sensorName = "Kinect-v2 Sensor"; + sensorInfo.sensorCaps = KinectInterop.FrameSource.TypeAll; // & ~KinectInterop.FrameSource.TypePose; + if (consoleLogMessages) + Debug.Log(string.Format(" D{0}: {1}, id: {2}", 0, sensorInfo.sensorName, sensorInfo.sensorId)); + + alSensorInfo.Add(sensorInfo); + + return alSensorInfo; + } + else + { + // check for available sensor + if (!sensor.IsOpen) + { + sensor.Open(); + } + + float fWaitTime = Time.realtimeSinceStartup + 3f; + while (!sensor.IsAvailable && Time.realtimeSinceStartup < fWaitTime) + { + // wait for availability + } + + if (sensor.IsAvailable) + { + sensorInfo.sensorId = "KinectV2"; + sensorInfo.sensorName = "Kinect-v2 Sensor"; + sensorInfo.sensorCaps = KinectInterop.FrameSource.TypeAll; // & ~KinectInterop.FrameSource.TypePose; + if (consoleLogMessages) + Debug.Log(string.Format(" D{0}: {1}, id: {2}", 0, sensorInfo.sensorName, sensorInfo.sensorId)); + + alSensorInfo.Add(sensorInfo); + } + + if (sensor.IsOpen) + { + sensor.Close(); + } + + fWaitTime = Time.realtimeSinceStartup + 3f; + while (sensor.IsOpen && Time.realtimeSinceStartup < fWaitTime) + { + // wait for sensor to close + } + } + + sensor = null; + } + + //if(alSensorInfo.Count == 0) + //{ + // Debug.Log(" No sensor devices found."); + //} + + return alSensorInfo; + } + + public override KinectInterop.SensorData OpenSensor(KinectManager kinectManager, KinectInterop.FrameSource dwFlags, bool bSyncDepthAndColor, bool bSyncBodyAndDepth) + { + // save initial parameters + base.OpenSensor(kinectManager, dwFlags, bSyncDepthAndColor, bSyncBodyAndDepth); + + if (deviceStreamingMode == KinectInterop.DeviceStreamingMode.PlayRecording) + { + Debug.LogWarning("Please use Kinect Studio v2.0 to play the sensor data recording!"); + //return null; + } + + List alSensors = GetAvailableSensors(); + if (deviceIndex >= alSensors.Count) + { + Debug.LogError(" D" + deviceIndex + " is not available. You can set the device index to -1, to disable it."); + return null; + } + + // try to get reference to the default sensor + sensorDeviceId = alSensors[deviceIndex].sensorId; + sensorPlatform = KinectInterop.DepthSensorPlatform.KinectV2; + + kinectSensor = KinectSensor.GetDefault(); + if (kinectSensor == null) + { + Debug.LogError("Kinect-v2 sensor not found!"); + return null; + } + + KinectInterop.SensorData sensorData = new KinectInterop.SensorData(); + sensorData.sensorIntPlatform = sensorPlatform; + + sensorData.sensorId = alSensors[deviceIndex].sensorId; + sensorData.sensorName = alSensors[deviceIndex].sensorName; + sensorData.sensorCaps = alSensors[deviceIndex].sensorCaps; + + // get reference to the coordinate mapper + coordMapper = kinectSensor.CoordinateMapper; + + // flip color & depth image vertically + sensorData.colorImageScale = new Vector3(1f, -1f, 1f); + sensorData.depthImageScale = new Vector3(1f, -1f, 1f); + sensorData.infraredImageScale = new Vector3(1f, -1f, 1f); + sensorData.sensorSpaceScale = new Vector3(1f, 1f, 1f); + sensorData.unitToMeterFactor = 1f; + + // depth camera offset & matrix z-flip + sensorRotOffset = Vector3.zero; // if for instance the depth camera is tilted downwards + sensorRotFlipZ = false; + sensorRotIgnoreY = false; + + // color + var frameDesc = kinectSensor.ColorFrameSource.CreateFrameDescription(ColorImageFormat.Rgba); + sensorData.colorImageWidth = frameDesc.Width; + sensorData.colorImageHeight = frameDesc.Height; + + sensorData.colorImageFormat = TextureFormat.RGBA32; + sensorData.colorImageStride = 4; // 4 bytes per pixel + + if ((dwFlags & KinectInterop.FrameSource.TypeColor) != 0) + { + if (!isSyncDepthAndColor) + colorFrameReader = kinectSensor.ColorFrameSource.OpenReader(); + + rawColorImage = new byte[frameDesc.LengthInPixels * frameDesc.BytesPerPixel]; + + sensorData.colorImageTexture = new Texture2D(sensorData.colorImageWidth, sensorData.colorImageHeight, TextureFormat.RGBA32, false); + sensorData.colorImageTexture.wrapMode = TextureWrapMode.Clamp; + sensorData.colorImageTexture.filterMode = FilterMode.Point; + } + + // depth + sensorData.depthImageWidth = kinectSensor.DepthFrameSource.FrameDescription.Width; + sensorData.depthImageHeight = kinectSensor.DepthFrameSource.FrameDescription.Height; + + if ((dwFlags & KinectInterop.FrameSource.TypeDepth) != 0) + { + if (!isSyncDepthAndColor) + depthFrameReader = kinectSensor.DepthFrameSource.OpenReader(); + + rawDepthImage = new ushort[kinectSensor.DepthFrameSource.FrameDescription.LengthInPixels]; + sensorData.depthImage = new ushort[kinectSensor.DepthFrameSource.FrameDescription.LengthInPixels]; + } + + // infrared + if ((dwFlags & KinectInterop.FrameSource.TypeInfrared) != 0) + { + if (!isSyncDepthAndColor) + infraredFrameReader = kinectSensor.InfraredFrameSource.OpenReader(); + + rawInfraredImage = new ushort[kinectSensor.InfraredFrameSource.FrameDescription.LengthInPixels]; + sensorData.infraredImage = new ushort[kinectSensor.InfraredFrameSource.FrameDescription.LengthInPixels]; + + minInfraredValue = 0f; + maxInfraredValue = 10000f; + } + + if ((dwFlags & (KinectInterop.FrameSource.TypeBody | KinectInterop.FrameSource.TypeBodyIndex)) != 0) + { + if ((dwFlags & KinectInterop.FrameSource.TypeBodyIndex) != 0) + { + if (!(isSyncDepthAndColor && isSyncBodyAndDepth)) + bodyIndexFrameReader = kinectSensor.BodyIndexFrameSource.OpenReader(); + + //rawBodyIndexImage = new byte[kinectSensor.BodyIndexFrameSource.FrameDescription.LengthInPixels]; // created by InitBodyTracking() + } + + if ((dwFlags & KinectInterop.FrameSource.TypeBody) != 0) + { + if (!(isSyncDepthAndColor && isSyncBodyAndDepth)) + bodyFrameReader = kinectSensor.BodyFrameSource.OpenReader(); + + kinectBodyCount = 6; + kinectJointCount = 25; + kinectBodyData = new Body[kinectBodyCount]; + } + + // init body tracking data + InitBodyTracking(dwFlags, sensorData); + } + + // don't get all frames + getAllSensorFrames = false; + + //if(!kinectSensor.IsOpen) + { + //Debug.Log("Opening sensor, available: " + kinectSensor.IsAvailable); + kinectSensor.Open(); + } + + float fWaitTime = Time.realtimeSinceStartup + 3f; + while (!kinectSensor.IsAvailable && Time.realtimeSinceStartup < fWaitTime) + { + // wait for sensor to be available + } + + //fWaitTime = Time.realtimeSinceStartup + 3f; + while (!kinectSensor.IsOpen && Time.realtimeSinceStartup < fWaitTime) + { + // wait for sensor to open + } + + if (consoleLogMessages) + Debug.Log("D" + deviceIndex + " K2-sensor " + (kinectSensor.IsOpen ? "opened" : "closed") + ", available: " + kinectSensor.IsAvailable); + + if (isSyncDepthAndColor && dwFlags != KinectInterop.FrameSource.TypeNone && kinectSensor.IsOpen) + { + multiSourceFrameReader = kinectSensor.OpenMultiSourceFrameReader((FrameSourceTypes)((int)dwFlags & 0x3F)); + } + + //if (deviceMode == KinectInterop.DepthSensorMode.CreateRecording) + //{ + // Debug.LogWarning("Please use Kinect Studio v2.0 to save sensor data recordings."); + //} + + return sensorData; + } + + public override void CloseSensor(KinectInterop.SensorData sensorData) + { + base.CloseSensor(sensorData); + + if (coordMapper != null) + { + coordMapper = null; + } + + if (colorFrameReader != null) + { + colorFrameReader.Dispose(); + colorFrameReader = null; + } + + if (depthFrameReader != null) + { + depthFrameReader.Dispose(); + depthFrameReader = null; + } + + if (infraredFrameReader != null) + { + infraredFrameReader.Dispose(); + infraredFrameReader = null; + } + + if (bodyFrameReader != null) + { + bodyFrameReader.Dispose(); + bodyFrameReader = null; + } + + if (bodyIndexFrameReader != null) + { + bodyIndexFrameReader.Dispose(); + bodyIndexFrameReader = null; + } + + if (multiSourceFrameReader != null) + { + multiSourceFrameReader.Dispose(); + multiSourceFrameReader = null; + } + + if (kinectSensor != null) + { + //if (kinectSensor.IsOpen) + { + //Debug.Log("Closing sensor, available: " + kinectSensor.IsAvailable); + kinectSensor.Close(); + } + + float fWaitTime = Time.realtimeSinceStartup + 3f; + while (kinectSensor.IsOpen && Time.realtimeSinceStartup < fWaitTime) + { + // wait for sensor to close + } + + if (consoleLogMessages) + Debug.Log("D" + deviceIndex + " K2-sensor " + (kinectSensor.IsOpen ? "opened" : "closed") + ", available: " + kinectSensor.IsAvailable); + + kinectSensor = null; + } + } + + public override void PollSensorFrames(KinectInterop.SensorData sensorData) + { + // check for single-source or multi-source frames + if (multiSourceFrameReader == null) + { + // single source - check for color frame + if (colorFrameReader != null) + { + msColorFrame = colorFrameReader.AcquireLatestFrame(); + } + + // check for depth frame + if (depthFrameReader != null) + { + msDepthFrame = depthFrameReader.AcquireLatestFrame(); + } + + // check for IR frame + if (infraredFrameReader != null) + { + msInfraredFrame = infraredFrameReader.AcquireLatestFrame(); + } + + // check for body index frame + if (bodyIndexFrameReader != null) + { + msBodyIndexFrame = bodyIndexFrameReader.AcquireLatestFrame(); + } + + // check for body frame + if (bodyFrameReader != null) + { + msBodyFrame = bodyFrameReader.AcquireLatestFrame(); + } + + // process currently read sensor frames + ProcessSensorFrames(sensorData); + } + else + { + // multi-source frames + multiSourceFrame = multiSourceFrameReader.AcquireLatestFrame(); + + if (multiSourceFrame != null) + { + // try to get all frames at once + msColorFrame = (frameSourceFlags & KinectInterop.FrameSource.TypeColor) != 0 ? multiSourceFrame.ColorFrameReference.AcquireFrame() : null; + msDepthFrame = (frameSourceFlags & KinectInterop.FrameSource.TypeDepth) != 0 ? multiSourceFrame.DepthFrameReference.AcquireFrame() : null; + msInfraredFrame = (frameSourceFlags & KinectInterop.FrameSource.TypeInfrared) != 0 ? multiSourceFrame.InfraredFrameReference.AcquireFrame() : null; + msBodyFrame = (frameSourceFlags & KinectInterop.FrameSource.TypeBody) != 0 ? multiSourceFrame.BodyFrameReference.AcquireFrame() : null; + msBodyIndexFrame = (frameSourceFlags & KinectInterop.FrameSource.TypeBodyIndex) != 0 ? multiSourceFrame.BodyIndexFrameReference.AcquireFrame() : null; + + bool bAllSet = + ((frameSourceFlags & KinectInterop.FrameSource.TypeColor) == 0 || msColorFrame != null) && + ((frameSourceFlags & KinectInterop.FrameSource.TypeDepth) == 0 || msDepthFrame != null) && + ((frameSourceFlags & KinectInterop.FrameSource.TypeInfrared) == 0 || msInfraredFrame != null); + + if(isSyncBodyAndDepth) + { + bAllSet &= ((frameSourceFlags & KinectInterop.FrameSource.TypeBody) == 0 || msBodyFrame != null) && + ((frameSourceFlags & KinectInterop.FrameSource.TypeBodyIndex) == 0 || msBodyIndexFrame != null); + } + + if (bAllSet) + { + // process currently read sensor frames + ProcessSensorFrames(sensorData); + } + + //release all frames + if (msColorFrame != null) + { + msColorFrame.Dispose(); + msColorFrame = null; + } + + if (msDepthFrame != null) + { + msDepthFrame.Dispose(); + msDepthFrame = null; + } + + if (msInfraredFrame != null) + { + msInfraredFrame.Dispose(); + msInfraredFrame = null; + } + + if (msBodyFrame != null) + { + msBodyFrame.Dispose(); + msBodyFrame = null; + } + + if (msBodyIndexFrame != null) + { + msBodyIndexFrame.Dispose(); + msBodyIndexFrame = null; + } + + if (multiSourceFrame != null) + { + multiSourceFrame = null; + } + } + } + } + + // processes the currently read sensor frames + // todo: provide thread sync + private void ProcessSensorFrames(KinectInterop.SensorData sensorData) + { + // depth frame + ulong depthFrameTime = msDepthFrame != null ? (ulong)msDepthFrame.RelativeTime.Ticks : 0; + + if (msDepthFrame != null) + { + if (getAllSensorFrames || rawDepthTimestamp == sensorData.lastDepthFrameTime) + { + lock (depthFrameLock) + { + var pDepthData = GCHandle.Alloc(rawDepthImage, GCHandleType.Pinned); + msDepthFrame.CopyFrameDataToIntPtr(pDepthData.AddrOfPinnedObject(), (uint)rawDepthImage.Length * sizeof(ushort)); + pDepthData.Free(); + + rawDepthTimestamp = (ulong)msDepthFrame.RelativeTime.Ticks; + //Debug.Log("RawDepthTimestamp: " + rawDepthTimestamp); + } + } + + msDepthFrame.Dispose(); + msDepthFrame = null; + } + + // color frame + if (msColorFrame != null) + { + if(getAllSensorFrames || rawColorTimestamp == sensorData.lastColorFrameTime) + { + lock (colorFrameLock) + { + var pColorData = GCHandle.Alloc(rawColorImage, GCHandleType.Pinned); + msColorFrame.CopyConvertedFrameDataToIntPtr(pColorData.AddrOfPinnedObject(), (uint)rawColorImage.Length, ColorImageFormat.Rgba); + pColorData.Free(); + + rawColorTimestamp = isSyncDepthAndColor && depthFrameTime != 0 ? depthFrameTime : (ulong)msColorFrame.RelativeTime.Ticks; + //Debug.Log("RawColorTimestamp: " + rawColorTimestamp); + } + } + + msColorFrame.Dispose(); + msColorFrame = null; + } + + // infrared frame + if (msInfraredFrame != null) + { + if(getAllSensorFrames || rawInfraredTimestamp == sensorData.lastInfraredFrameTime) + { + lock (infraredFrameLock) + { + var pInfraredData = GCHandle.Alloc(rawInfraredImage, GCHandleType.Pinned); + msInfraredFrame.CopyFrameDataToIntPtr(pInfraredData.AddrOfPinnedObject(), (uint)rawInfraredImage.Length * sizeof(ushort)); + pInfraredData.Free(); + + rawInfraredTimestamp = isSyncDepthAndColor && depthFrameTime != 0 ? depthFrameTime : (ulong)msInfraredFrame.RelativeTime.Ticks; + //Debug.Log("RawInfraredTimestamp: " + rawInfraredTimestamp); + } + } + + msInfraredFrame.Dispose(); + msInfraredFrame = null; + } + + // body index frame + //bool bProcessBodyFrame = (getAllSensorFrames || rawBodyTimestamp == sensorData.lastBodyFrameTime); + + if (msBodyIndexFrame != null) + { + //if(bProcessBodyFrame) + if (getAllSensorFrames || rawBodyIndexTimestamp == sensorData.lastBodyIndexFrameTime) + { + lock (bodyTrackerLock) + { + var pBodyIndexData = GCHandle.Alloc(rawBodyIndexImage, GCHandleType.Pinned); + msBodyIndexFrame.CopyFrameDataToIntPtr(pBodyIndexData.AddrOfPinnedObject(), (uint)rawBodyIndexImage.Length); + pBodyIndexData.Free(); + + rawBodyIndexTimestamp = isSyncBodyAndDepth && depthFrameTime != 0 ? depthFrameTime : (ulong)msBodyIndexFrame.RelativeTime.Ticks; + //Debug.Log("RawBodyIndexTimestamp: " + rawBodyIndexTimestamp); + } + } + + msBodyIndexFrame.Dispose(); + msBodyIndexFrame = null; + } + + // body frame + if (msBodyFrame != null) + { + //if (bProcessBodyFrame) + if(getAllSensorFrames || rawBodyTimestamp == sensorData.lastBodyFrameTime) + { + lock (bodyTrackerLock) + { + ProcessBodyFrame(msBodyFrame, depthFrameTime, sensorData); + } + + if (floorPlaneDetected && ((frameSourceFlags & KinectInterop.FrameSource.TypePose) != 0)) + { + lock (poseFrameLock) + { + // update the sensor pose + if(vFloorPlane.X != 0f || vFloorPlane.Y != 0f || vFloorPlane.Z != 0f) + { + Vector3 vFloorNormal = new Vector3(vFloorPlane.X, vFloorPlane.Y, vFloorPlane.Z); + rawPoseRotation = Quaternion.FromToRotation(vFloorNormal, Vector3.up); + + if (vFloorPlane.W != 0f) + { + rawPosePosition = new Vector3(0f, vFloorPlane.W, 0f) - initialPosePosition; + } + + rawPoseTimestamp = rawBodyTimestamp; + } + } + } + } + + msBodyFrame.Dispose(); + msBodyFrame = null; + } + } + + + // processes the acquired body frame + private void ProcessBodyFrame(BodyFrame frame, ulong depthFrameTime, KinectInterop.SensorData sensorData) + { + frame.GetAndRefreshBodyData(kinectBodyData); + ulong bodyFrameTimestamp = (ulong)frame.RelativeTime.Ticks; + + // get the floor plane + vFloorPlane = frame.FloorClipPlane; + floorPlaneDetected = true; + + frame.Dispose(); + frame = null; + + // get sensor-to-world matrix + Matrix4x4 sensorToWorld = GetSensorToWorldMatrix(); + float scaleX = sensorData.depthImageScale.x; + //float scaleY = sensorData.depthImageScale.y; + + // create the needed slots + while (alTrackedBodies.Count < kinectBodyCount) + { + alTrackedBodies.Add(new KinectInterop.BodyData((int)KinectInterop.JointType.Count)); + } + + trackedBodiesCount = 0; + + for (int i = 0; i < kinectBodyCount; i++) + { + Body body = kinectBodyData[i]; + + if (body == null) + continue; + + KinectInterop.BodyData bodyData = alTrackedBodies[(int)trackedBodiesCount]; + + bodyData.liTrackingID = body.TrackingId; + bodyData.iBodyIndex = i; + + bodyData.bIsTracked = body.IsTracked; + bodyData.bodyTimestamp = bodyFrameTimestamp; + + if (!bodyData.bIsTracked) + continue; + + // cache the body joints (following the advice of Brian Chasalow) + Dictionary bodyJoints = body.Joints; + + for (int jKJ = 0; jKJ < kinectJointCount; jKJ++) + { + Windows.Kinect.Joint joint = bodyJoints[(Windows.Kinect.JointType)jKJ]; + + int j = KinectJoint2JointType[jKJ]; + + if (j >= 0) + { + KinectInterop.JointData jointData = bodyData.joint[j]; + + jointData.trackingState = (KinectInterop.TrackingState)joint.TrackingState; + + float jPosZ = (bIgnoreZCoordinates && j > 0) ? bodyData.joint[0].kinectPos.z : joint.Position.Z; + jointData.kinectPos = new Vector3(joint.Position.X, joint.Position.Y, joint.Position.Z); + jointData.position = sensorToWorld.MultiplyPoint3x4(new Vector3(joint.Position.X * scaleX, joint.Position.Y, jPosZ)); + + jointData.orientation = Quaternion.identity; + + if (j == 0) + { + bodyData.kinectPos = jointData.kinectPos; + bodyData.position = jointData.position; + bodyData.orientation = jointData.orientation; + //floorPlaneDetected = true; + } + + bodyData.joint[j] = jointData; + } + } + + bodyJoints.Clear(); + + // hand states + bodyData.leftHandState = (KinectInterop.HandState)body.HandLeftState; + bodyData.rightHandState = (KinectInterop.HandState)body.HandRightState; + //bodyData.leftHandConfidence = (KinectInterop.TrackingConfidence)body.HandLeftConfidence; + //bodyData.rightHandConfidence = (KinectInterop.TrackingConfidence)body.HandRightConfidence; + + if (usersFaceBackwards) + { + // switch the left and right joints + SwitchLeftRightJoints(ref bodyData); + } + + // estimate additional joints + CalcBodySpecialJoints(ref bodyData); + + // filter joint positions + if (jointPositionFilter != null) + { + jointPositionFilter.UpdateFilter(ref bodyData); + } + + // calculate bone dirs + KinectInterop.CalcBodyJointDirs(ref bodyData); + + // calculate joint orientations + CalcBodyJointOrients(ref bodyData); + + // body orientation + bodyData.normalRotation = bodyData.joint[0].normalRotation; + bodyData.mirroredRotation = bodyData.joint[0].mirroredRotation; + + alTrackedBodies[(int)trackedBodiesCount] = bodyData; + trackedBodiesCount++; + + //Debug.Log(" (T)User ID: " + bodyData.liTrackingID + ", body: " + (trackedBodiesCount - 1) + ", bi: " + bodyData.iBodyIndex + ", pos: " + bodyData.joint[0].kinectPos + ", rot: " + bodyData.joint[0].normalRotation.eulerAngles); + } + + // clean up user history + if (jointPositionFilter != null) + { + jointPositionFilter.CleanUpUserHistory(); + } + + rawBodyTimestamp = isSyncBodyAndDepth && depthFrameTime != 0 ? depthFrameTime : bodyFrameTimestamp; + //Debug.Log("RawBodyTimestamp: " + rawBodyTimestamp + ", Time: " + DateTime.Now.ToString("HH.mm.ss.fff")); + } + + // switch the left and right body joints + private void SwitchLeftRightJoints(ref KinectInterop.BodyData bodyData) + { + //SwitchJointsData(ref bodyData, (int)KinectInterop.JointType.ClavicleLeft, (int)KinectInterop.JointType.ClavicleRight); + SwitchJointsData(ref bodyData, (int)KinectInterop.JointType.ShoulderLeft, (int)KinectInterop.JointType.ShoulderRight); + SwitchJointsData(ref bodyData, (int)KinectInterop.JointType.ElbowLeft, (int)KinectInterop.JointType.ElbowRight); + SwitchJointsData(ref bodyData, (int)KinectInterop.JointType.WristLeft, (int)KinectInterop.JointType.WristRight); + SwitchJointsData(ref bodyData, (int)KinectInterop.JointType.HandLeft, (int)KinectInterop.JointType.HandRight); + SwitchJointsData(ref bodyData, (int)KinectInterop.JointType.ThumbLeft, (int)KinectInterop.JointType.ThumbRight); + SwitchJointsData(ref bodyData, (int)KinectInterop.JointType.HandtipLeft, (int)KinectInterop.JointType.HandtipRight); + + SwitchJointsData(ref bodyData, (int)KinectInterop.JointType.HipLeft, (int)KinectInterop.JointType.HipRight); + SwitchJointsData(ref bodyData, (int)KinectInterop.JointType.KneeLeft, (int)KinectInterop.JointType.KneeRight); + SwitchJointsData(ref bodyData, (int)KinectInterop.JointType.AnkleLeft, (int)KinectInterop.JointType.AnkleRight); + SwitchJointsData(ref bodyData, (int)KinectInterop.JointType.FootLeft, (int)KinectInterop.JointType.FootRight); + + //SwitchJointsData(ref bodyData, (int)KinectInterop.JointType.EyeLeft, (int)KinectInterop.JointType.EyeRight); + //SwitchJointsData(ref bodyData, (int)KinectInterop.JointType.EarLeft, (int)KinectInterop.JointType.EarRight); + } + + // switches the positional data of two joints + private void SwitchJointsData(ref KinectInterop.BodyData bodyData, int jointL, int jointR) + { + KinectInterop.TrackingState trackingStateL = bodyData.joint[jointL].trackingState; + Vector3 kinectPosL = bodyData.joint[jointL].kinectPos; + Vector3 positionL = bodyData.joint[jointL].position; + + KinectInterop.TrackingState trackingStateR = bodyData.joint[jointR].trackingState; + Vector3 kinectPosR = bodyData.joint[jointR].kinectPos; + Vector3 positionR = bodyData.joint[jointR].position; + + bodyData.joint[jointL].trackingState = trackingStateR; + bodyData.joint[jointL].kinectPos = kinectPosR; + bodyData.joint[jointL].position = positionR; + + bodyData.joint[jointR].trackingState = trackingStateL; + bodyData.joint[jointR].kinectPos = kinectPosL; + bodyData.joint[jointR].position = positionL; + } + + // estimates additional joints for the given body + protected override void CalcBodySpecialJoints(ref KinectInterop.BodyData bodyData) + { + // clavicle right + { + int l = (int)KinectInterop.JointType.ClavicleLeft; + int r = (int)KinectInterop.JointType.ClavicleRight; + + KinectInterop.JointData jointData = bodyData.joint[r]; + jointData.trackingState = bodyData.joint[l].trackingState; + jointData.orientation = bodyData.joint[l].orientation; + + jointData.kinectPos = bodyData.joint[l].kinectPos; + jointData.position = bodyData.joint[l].position; + + bodyData.joint[r] = jointData; + } + + // spine naval + { + int p = (int)KinectInterop.JointType.Pelvis; + int sc = (int)KinectInterop.JointType.SpineChest; + int sn = (int)KinectInterop.JointType.SpineNaval; + + KinectInterop.JointData jointData = bodyData.joint[sn]; + jointData.trackingState = bodyData.joint[sc].trackingState; + jointData.orientation = bodyData.joint[sc].orientation; + + Vector3 posChest = bodyData.joint[sc].kinectPos; + Vector3 posPelvis = bodyData.joint[p].kinectPos; + jointData.kinectPos = (posPelvis + posChest) * 0.5f; + + posChest = bodyData.joint[sc].position; + posPelvis = bodyData.joint[p].position; + jointData.position = (posPelvis + posChest) * 0.5f; + + bodyData.joint[sn] = jointData; + } + + // ankle left + int knee = (int)KinectInterop.JointType.KneeLeft; + int ank = (int)KinectInterop.JointType.AnkleLeft; + int foot = (int)KinectInterop.JointType.FootLeft; + + if (bodyData.joint[knee].trackingState != KinectInterop.TrackingState.NotTracked && + bodyData.joint[ank].trackingState != KinectInterop.TrackingState.NotTracked && + bodyData.joint[foot].trackingState != KinectInterop.TrackingState.NotTracked) + { + Vector3 vAnkDir = bodyData.joint[ank].kinectPos - bodyData.joint[knee].kinectPos; + Vector3 vFootDir = bodyData.joint[foot].kinectPos - bodyData.joint[ank].kinectPos; + + Vector3 vFootProj = Vector3.Project(vFootDir, vAnkDir); + bodyData.joint[ank].kinectPos += vFootProj; + + vAnkDir = bodyData.joint[ank].position - bodyData.joint[knee].position; + vFootDir = bodyData.joint[foot].position - bodyData.joint[ank].position; + + vFootProj = Vector3.Project(vFootDir, vAnkDir); + bodyData.joint[ank].position += vFootProj; + } + + // ankle right + knee = (int)KinectInterop.JointType.KneeRight; + ank = (int)KinectInterop.JointType.AnkleRight; + foot = (int)KinectInterop.JointType.FootRight; + + if (bodyData.joint[knee].trackingState != KinectInterop.TrackingState.NotTracked && + bodyData.joint[ank].trackingState != KinectInterop.TrackingState.NotTracked && + bodyData.joint[foot].trackingState != KinectInterop.TrackingState.NotTracked) + { + Vector3 vAnkDir = bodyData.joint[ank].kinectPos - bodyData.joint[knee].kinectPos; + Vector3 vFootDir = bodyData.joint[foot].kinectPos - bodyData.joint[ank].kinectPos; + + Vector3 vFootProj = Vector3.Project(vFootDir, vAnkDir); + bodyData.joint[ank].kinectPos += vFootProj; + + vAnkDir = bodyData.joint[ank].position - bodyData.joint[knee].position; + vFootDir = bodyData.joint[foot].position - bodyData.joint[ank].position; + + vFootProj = Vector3.Project(vFootDir, vAnkDir); + bodyData.joint[ank].position += vFootProj; + } + } + + + protected static readonly int[] KinectJoint2JointType = + { + (int)KinectInterop.JointType.Pelvis, + (int)KinectInterop.JointType.SpineChest, + (int)KinectInterop.JointType.Neck, + (int)KinectInterop.JointType.Head, + + (int)KinectInterop.JointType.ShoulderLeft, + (int)KinectInterop.JointType.ElbowLeft, + (int)KinectInterop.JointType.WristLeft, + (int)KinectInterop.JointType.HandLeft, + + (int)KinectInterop.JointType.ShoulderRight, + (int)KinectInterop.JointType.ElbowRight, + (int)KinectInterop.JointType.WristRight, + (int)KinectInterop.JointType.HandRight, + + (int)KinectInterop.JointType.HipLeft, + (int)KinectInterop.JointType.KneeLeft, + (int)KinectInterop.JointType.AnkleLeft, + (int)KinectInterop.JointType.FootLeft, + + (int)KinectInterop.JointType.HipRight, + (int)KinectInterop.JointType.KneeRight, + (int)KinectInterop.JointType.AnkleRight, + (int)KinectInterop.JointType.FootRight, + + (int)KinectInterop.JointType.ClavicleLeft, + + (int)KinectInterop.JointType.HandtipLeft, + (int)KinectInterop.JointType.ThumbLeft, + (int)KinectInterop.JointType.HandtipRight, + (int)KinectInterop.JointType.ThumbRight + }; + + + public override bool UpdateSensorData(KinectInterop.SensorData sensorData, KinectManager kinectManager, bool isPlayMode) + { + base.UpdateSensorData(sensorData, kinectManager, isPlayMode); + + if (sensorData.depthCamIntr == null && coordMapper != null) + { + lock (depthFrameLock) + { + // get depth camera intrinsics + CameraIntrinsics depthCamIntr = coordMapper.GetDepthCameraIntrinsics(); + + if (depthCamIntr.PrincipalPointX != 0f && depthCamIntr.PrincipalPointY != 0f) + { + GetDepthCameraIntrinsics(depthCamIntr, ref sensorData.depthCamIntr, sensorData.depthImageWidth, sensorData.depthImageHeight); + } + } + } + + if (sensorData.colorCamIntr == null && coordMapper != null) + { + lock (colorFrameLock) + { + GetColorCameraIntrinsics(ref sensorData.colorCamIntr, sensorData.colorImageWidth, sensorData.colorImageHeight); + } + } + + if((sensorData.depth2ColorExtr == null || sensorData.color2DepthExtr == null) && + sensorData.depthCamIntr != null && sensorData.colorCamIntr != null) + { + GetDepth2ColorCameraExtrinsics(ref sensorData.depth2ColorExtr); + GetColor2DepthCameraExtrinsics(ref sensorData.color2DepthExtr); + } + + return true; + } + + + // gets the depth camera intrinsics + private void GetDepthCameraIntrinsics(CameraIntrinsics camIntr, ref KinectInterop.CameraIntrinsics intr, int camWidth, int camHeight) + { + intr = new KinectInterop.CameraIntrinsics(); + + intr.cameraType = 0; + intr.width = camWidth; + intr.height = camHeight; + + intr.ppx = camIntr.PrincipalPointX; + intr.ppy = camHeight - camIntr.PrincipalPointY; + + intr.fx = camIntr.FocalLengthX; + intr.fy = camIntr.FocalLengthY; + + intr.distCoeffs = new float[3]; + intr.distCoeffs[0] = camIntr.RadialDistortionSecondOrder; + intr.distCoeffs[1] = camIntr.RadialDistortionFourthOrder; + intr.distCoeffs[2] = camIntr.RadialDistortionSixthOrder; + + intr.distType = KinectInterop.DistortionType.BrownConrady; + + EstimateFOV(intr); + } + + + // gets the color camera intrinsics + private void GetColorCameraIntrinsics(ref KinectInterop.CameraIntrinsics intr, int camWidth, int camHeight) + { + intr = new KinectInterop.CameraIntrinsics(); + + intr.cameraType = 1; + intr.width = camWidth; + intr.height = camHeight; + + intr.ppx = 946.0374f; + intr.ppy = camHeight - 537.392f; + + intr.fx = 1065.267f; + intr.fy = 1065.409f; + + intr.distCoeffs = new float[3]; + intr.distCoeffs[0] = 0.014655f; + intr.distCoeffs[1] = -0.000476f; + intr.distCoeffs[2] = 0f; + + intr.distType = KinectInterop.DistortionType.BrownConrady; + + EstimateFOV(intr); + } + + + // gets the depth to color camera extrinsics + private void GetDepth2ColorCameraExtrinsics(ref KinectInterop.CameraExtrinsics extr) + { + extr = new KinectInterop.CameraExtrinsics(); + + extr.rotation = new float[9]; + + extr.translation = new float[3]; + } + + + // gets the color to depth camera extrinsics + private void GetColor2DepthCameraExtrinsics(ref KinectInterop.CameraExtrinsics extr) + { + extr = new KinectInterop.CameraExtrinsics(); + + extr.rotation = new float[9]; + + extr.translation = new float[3]; + } + + + // unprojects plane point into the space + public override Vector3 UnprojectPoint(KinectInterop.CameraIntrinsics intr, Vector2 pixel, float depth) + { + float x = (pixel.x - intr.ppx) / intr.fx; + float y = (intr.ppy - pixel.y) / intr.fy; + + // undistort + float r2 = x * x + y * y; + float f = 1 - intr.distCoeffs[0] * r2 - intr.distCoeffs[1] * r2 * r2 - intr.distCoeffs[2] * r2 * r2 * r2; + + x = x * f * depth; + y = y * f * depth; + + return new Vector3(x, y, depth); + } + + + // projects space point onto a plane + public override Vector2 ProjectPoint(KinectInterop.CameraIntrinsics intr, Vector3 point) + { + float x = point.x / point.z; + float y = point.y / point.z; + + // distort + float r2 = x * x + y * y; + float f = 1f + intr.distCoeffs[0] * r2 + intr.distCoeffs[1] * r2 * r2 + intr.distCoeffs[2] * r2 * r2 * r2; + + x = x * f * intr.fx + intr.ppx; + y = intr.ppy - y * f * intr.fy; + + return new Vector2(x, y); + } + + + // transforms a point from one space to another + public override Vector3 TransformPoint(KinectInterop.CameraExtrinsics extr, Vector3 point) + { + float toPointX = extr.rotation[0] * point.x + extr.rotation[3] * point.y + extr.rotation[6] * point.z + extr.translation[0]; + float toPointY = extr.rotation[1] * point.x + extr.rotation[4] * point.y + extr.rotation[7] * point.z + extr.translation[1]; + float toPointZ = extr.rotation[2] * point.x + extr.rotation[5] * point.y + extr.rotation[8] * point.z + extr.translation[2]; + + return new Vector3(toPointX, toPointY, toPointZ); + } + + + public override void PollCoordTransformFrames(KinectInterop.SensorData sensorData) + { + if (lastDepthCoordFrameTime != rawDepthTimestamp) + { + lastDepthCoordFrameTime = rawDepthTimestamp; + + //// depth2space frame + //if (depth2SpaceCoordFrame != null) + //{ + // lock (depth2SpaceFrameLock) + // { + // MapDepthFrameToSpaceCoords(sensorData, ref depth2SpaceCoordFrame); + // lastDepth2SpaceFrameTime = lastDepthCoordFrameTime; + // } + //} + + // depth2color frame + if (depthCamColorCoordFrame != null && rawDepthImage != null) + { + lock (depthCamColorFrameLock) + { + var pDepthData = GCHandle.Alloc(rawDepthImage, GCHandleType.Pinned); + var pColorCoordsData = GCHandle.Alloc(depthCamColorCoordFrame, GCHandleType.Pinned); + + coordMapper.MapDepthFrameToColorSpaceUsingIntPtr( + pDepthData.AddrOfPinnedObject(), + rawDepthImage.Length * sizeof(ushort), + pColorCoordsData.AddrOfPinnedObject(), + (uint)depthCamColorCoordFrame.Length); + + pColorCoordsData.Free(); + pDepthData.Free(); + + //int di = (sensorData.depthImageHeight / 2) * sensorData.depthImageWidth + (sensorData.depthImageWidth / 2); + //Debug.Log("d2cCoordData: " + depth2ColorCoordFrame[di]); + + lastDepthCamColorFrameTime = lastDepthCoordFrameTime; + //Debug.Log("DepthCamColorFrameTime: " + lastDepthCamColorFrameTime); + } + } + + // color2depth frame + if (colorCamDepthCoordFrame != null) + { + lock (colorCamDepthFrameLock) + { + var pDepthData = GCHandle.Alloc(rawDepthImage, GCHandleType.Pinned); + var pDepthCoordsData = GCHandle.Alloc(colorCamDepthCoordFrame, GCHandleType.Pinned); + + coordMapper.MapColorFrameToDepthSpaceUsingIntPtr( + pDepthData.AddrOfPinnedObject(), + (uint)rawDepthImage.Length * sizeof(ushort), + pDepthCoordsData.AddrOfPinnedObject(), + (uint)colorCamDepthCoordFrame.Length); + + //int ci = (sensorData.colorImageHeight / 2) * sensorData.colorImageWidth + (sensorData.colorImageWidth / 2); + //Debug.Log("c2dCoordData: " + color2DepthCoordFrame[ci]); + + pDepthCoordsData.Free(); + pDepthData.Free(); + + lastColorCamDepthFrameTime = lastDepthCoordFrameTime; + if (pointCloudInfraredBuffer != null) + lastColorCamInfraredFrameTime = lastDepthCoordFrameTime; + + //Debug.Log("ColorCamDepthFrameTime: " + lastColorCamDepthFrameTime); + } + } + } + } + + + //public override bool UpdateSensorData(KinectInterop.SensorData sensorData) + //{ + // base.UpdateSensorData(sensorData); + // return true; + //} + + + // creates the point-cloud vertex shader and its respective buffers, as needed + protected override bool CreatePointCloudVertexShader(KinectInterop.SensorData sensorData) + { + if (pointCloudResolution != PointCloudResolution.ColorCameraResolution) + { + return base.CreatePointCloudVertexShader(sensorData); + } + + // for K2 color camera resolution only + pointCloudVertexRes = GetPointCloudTexResolution(sensorData); + pointCloudPlayerIndices = GetPointCloudPlayerIndices(); + + if (pointCloudVertexRT == null) + { + pointCloudVertexRT = new RenderTexture(pointCloudVertexRes.x, pointCloudVertexRes.y, 0, RenderTextureFormat.ARGBHalf); + pointCloudVertexRT.enableRandomWrite = true; + pointCloudVertexRT.Create(); + } + + if (pointCloudVertexShader == null) + { + if(pointCloudPlayerIndices == null) + pointCloudVertexShader = Resources.Load("PointCloudVertexShaderCRK2") as ComputeShader; + else + pointCloudVertexShader = Resources.Load("PointCloudBodyVertexShaderCRK2") as ComputeShader; + + pointCloudVertexKernel = pointCloudVertexShader != null ? pointCloudVertexShader.FindKernel("BakeVertexTexColorResK2") : -1; + } + + if (pointCloudSpaceBuffer == null) + { + int spaceBufferLength = sensorData.depthImageWidth * sensorData.depthImageHeight * 3; + pointCloudSpaceBuffer = new ComputeBuffer(spaceBufferLength, sizeof(float)); + + // depth2space table + //int depthImageLength = sensorData.depthImageWidth * sensorData.depthImageHeight; + //Vector3[] depth2SpaceTable = new Vector3[depthImageLength]; + + //for (int dy = 0, di = 0; dy < sensorData.depthImageHeight; dy++) + //{ + // for (int dx = 0; dx < sensorData.depthImageWidth; dx++, di++) + // { + // Vector2 depthPos = new Vector2(dx, dy); + // depth2SpaceTable[di] = MapDepthPointToSpaceCoords(sensorData, depthPos, 1000); + // } + //} + + Vector3[] depth2SpaceTable = GetDepthCameraSpaceTable(sensorData); + pointCloudSpaceBuffer.SetData(depth2SpaceTable); + depth2SpaceTable = null; + } + + if (pointCloudDepthBuffer == null) + { + int depthBufferLength = sensorData.depthImageWidth * sensorData.depthImageHeight / 2; + pointCloudDepthBuffer = new ComputeBuffer(depthBufferLength, sizeof(uint)); + } + + if (pointCloudCoordBuffer == null) + { + int coordBufferLength = sensorData.colorImageWidth * sensorData.colorImageHeight * 2; // Vector2 = 2 x float + pointCloudCoordBuffer = new ComputeBuffer(coordBufferLength, sizeof(float)); + } + + if (colorCamDepthCoordFrame == null) + { + colorCamDepthCoordFrame = new Vector2[sensorData.colorImageWidth * sensorData.colorImageHeight]; + } + + if (pointCloudPlayerIndices != null) + { + int biBufferLength = pointCloudVertexRes.x * pointCloudVertexRes.y / 4; + pointCloudBodyIndexBuffer = new ComputeBuffer(biBufferLength, sizeof(uint)); + } + + return true; + } + + + // updates the point-cloud vertex shader with the actual data + protected override bool UpdatePointCloudVertexShader(KinectInterop.SensorData sensorData, KinectManager kinectManager) + { + if (pointCloudResolution != PointCloudResolution.ColorCameraResolution) + { + return base.UpdatePointCloudVertexShader(sensorData, kinectManager); + } + + // for K2 color camera resolution only + if (pointCloudVertexShader != null && sensorData.depthImage != null && pointCloudVertexRT != null && + sensorData.lastDepth2SpaceFrameTime != sensorData.lastDepthFrameTime) + { + sensorData.lastDepth2SpaceFrameTime = sensorData.lastDepthFrameTime; + + KinectInterop.SetComputeBufferData(pointCloudDepthBuffer, sensorData.depthImage, sensorData.depthImage.Length >> 1, sizeof(uint)); + + lock (colorCamDepthFrameLock) + { + int coordBufferLength = sensorData.colorImageWidth * sensorData.colorImageHeight * 2; + KinectInterop.SetComputeBufferData(pointCloudCoordBuffer, colorCamDepthCoordFrame, coordBufferLength, sizeof(float)); + } + + if (GetPointCloudBodyIndices(sensorData, kinectManager, pointCloudPlayerIndices, ref pointCloudBodyIndices)) + { + // body index + if (pointCloudBodyIndexBuffer != null && sensorData.bodyIndexImage != null) + { + KinectInterop.SetComputeBufferData(pointCloudBodyIndexBuffer, sensorData.bodyIndexImage, sensorData.bodyIndexImage.Length >> 2, sizeof(uint)); + pointCloudVertexShader.SetBuffer(pointCloudVertexKernel, "BodyIndexMap", pointCloudBodyIndexBuffer); + } + + // body params + int uCount = pointCloudBodyIndices.Length; + pointCloudVertexShader.SetInt("BodyIndexAll", uCount == 1 && pointCloudPlayerIndices[0] == -1 ? 1 : 0); + + pointCloudVertexShader.SetInt("BodyIndex0", uCount > 0 ? pointCloudBodyIndices[0] : -1); + pointCloudVertexShader.SetInt("BodyIndex1", uCount > 1 ? pointCloudBodyIndices[1] : -1); + pointCloudVertexShader.SetInt("BodyIndex2", uCount > 2 ? pointCloudBodyIndices[2] : -1); + pointCloudVertexShader.SetInt("BodyIndex3", uCount > 3 ? pointCloudBodyIndices[3] : -1); + pointCloudVertexShader.SetInt("BodyIndex4", uCount > 4 ? pointCloudBodyIndices[4] : -1); + + //Debug.Log("All: " + (pointCloudPlayerIndices[0] == -1 ? 1 : 0) + ", Ind: " + + // (uCount > 0 ? pointCloudBodyIndices[0] : -1) + " " + + // (uCount > 1 ? pointCloudBodyIndices[1] : -1) + " " + + // (uCount > 2 ? pointCloudBodyIndices[2] : -1) + " " + + // (uCount > 3 ? pointCloudBodyIndices[3] : -1) + " " + + // (uCount > 4 ? pointCloudBodyIndices[4] : -1)); + } + + KinectInterop.SetComputeShaderInt2(pointCloudVertexShader, "PointCloudRes", pointCloudVertexRes.x, pointCloudVertexRes.y); + KinectInterop.SetComputeShaderInt2(pointCloudVertexShader, "DepthRes", sensorData.depthImageWidth, sensorData.depthImageHeight); + KinectInterop.SetComputeShaderFloat2(pointCloudVertexShader, "SpaceScale", sensorData.sensorSpaceScale.x, sensorData.sensorSpaceScale.y); + pointCloudVertexShader.SetInt("MinDepth", (int)(minDepthDistance * 1000f)); + pointCloudVertexShader.SetInt("MaxDepth", (int)(maxDepthDistance * 1000f)); + pointCloudVertexShader.SetBuffer(pointCloudVertexKernel, "SpaceTable", pointCloudSpaceBuffer); + pointCloudVertexShader.SetBuffer(pointCloudVertexKernel, "DepthMap", pointCloudDepthBuffer); + pointCloudVertexShader.SetBuffer(pointCloudVertexKernel, "ColorToDepthMap", pointCloudCoordBuffer); + pointCloudVertexShader.SetTexture(pointCloudVertexKernel, "PointCloudVertexTex", pointCloudVertexRT); + pointCloudVertexShader.Dispatch(pointCloudVertexKernel, pointCloudVertexRes.x / 8, pointCloudVertexRes.y / 8, 1); + + if (pointCloudVertexTexture != null) + { + Graphics.Blit(pointCloudVertexRT, pointCloudVertexTexture); + } + + return true; + } + + return false; + } + + + // creates the point-cloud color shader and its respective buffers, as needed + protected override bool CreatePointCloudColorShader(KinectInterop.SensorData sensorData) + { + if (pointCloudResolution != PointCloudResolution.DepthCameraResolution) + { + return base.CreatePointCloudColorShader(sensorData); + } + + // for K2 depth camera resolution only + if (pointCloudColorRT == null) + { + pointCloudColorRT = new RenderTexture(sensorData.depthImageWidth, sensorData.depthImageHeight, 0, RenderTextureFormat.ARGB32); + pointCloudColorRT.enableRandomWrite = true; + pointCloudColorRT.Create(); + } + + if (pointCloudColorShader == null) + { + pointCloudColorShader = Resources.Load("PointCloudColorShaderK2") as ComputeShader; + pointCloudColorKernel = pointCloudColorShader != null ? pointCloudColorShader.FindKernel("BakeColorTex") : -1; + } + + if (pointCloudCoordBuffer == null) + { + int coordBufferLength = sensorData.depthImageWidth * sensorData.depthImageHeight * 2; // Vector2 = 2 x float + pointCloudCoordBuffer = new ComputeBuffer(coordBufferLength, sizeof(float)); + } + + if (depthCamColorCoordFrame == null) + { + depthCamColorCoordFrame = new Vector2[sensorData.depthImageWidth * sensorData.depthImageHeight]; + } + + return true; + } + + + // updates the point-cloud color shader with the actual data + protected override bool UpdatePointCloudColorShader(KinectInterop.SensorData sensorData) + { + if (pointCloudResolution != PointCloudResolution.DepthCameraResolution) + { + return base.UpdatePointCloudColorShader(sensorData); + } + + // for K2 depth camera resolution only + if (pointCloudColorShader != null && pointCloudCoordBuffer != null && sensorData.colorImageTexture != null && pointCloudColorRT != null && + sensorData.lastDepthCamColorFrameTime != lastDepthCamColorFrameTime) + { + sensorData.lastDepthCamColorFrameTime = lastDepthCamColorFrameTime; + + lock (depthCamColorFrameLock) + { + int coordBufferLength = sensorData.depthImageWidth * sensorData.depthImageHeight * 2; + KinectInterop.SetComputeBufferData(pointCloudCoordBuffer, depthCamColorCoordFrame, coordBufferLength, sizeof(float)); + } + + KinectInterop.SetComputeShaderInt2(pointCloudColorShader, "DepthRes", sensorData.depthImageWidth, sensorData.depthImageHeight); + pointCloudColorShader.SetBuffer(pointCloudColorKernel, "DepthToColorMap", pointCloudCoordBuffer); + pointCloudColorShader.SetTexture(pointCloudColorKernel, "ColorTex", sensorData.colorImageTexture); + pointCloudColorShader.SetTexture(pointCloudColorKernel, "PointCloudColorTex", pointCloudColorRT); + pointCloudColorShader.Dispatch(pointCloudColorKernel, sensorData.depthImageWidth / 8, sensorData.depthImageHeight / 8, 1); + + if(pointCloudColorTexture != null) + { + Graphics.Blit(pointCloudColorRT, pointCloudColorTexture); + } + + if (sensorData.depthCamColorImageTexture != null) + { + Texture2D depth2colorTex2d = (Texture2D)sensorData.depthCamColorImageTexture; + KinectInterop.RenderTex2Tex2D(pointCloudColorTexture, ref depth2colorTex2d); + } + + return true; + } + + return false; + } + + + // creates the color-depth shader and its respective buffers, as needed + protected override bool CreateColorDepthShader(KinectInterop.SensorData sensorData) + { + if (colorDepthShader == null) + { + colorDepthShader = Resources.Load("ColorDepthShaderK2") as ComputeShader; + colorDepthKernel = colorDepthShader != null ? colorDepthShader.FindKernel("BakeColorDepth") : -1; + } + + if (pointCloudDepthBuffer == null) + { + int bufferLength = sensorData.depthImageWidth * sensorData.depthImageHeight / 2; + pointCloudDepthBuffer = new ComputeBuffer(bufferLength, sizeof(uint)); + } + + if (pointCloudCoordBuffer == null) + { + int bufferLength = sensorData.colorImageWidth * sensorData.colorImageHeight * 2; // Vector2 = 2 x float + pointCloudCoordBuffer = new ComputeBuffer(bufferLength, sizeof(float)); + } + + if (colorCamDepthCoordFrame == null) + { + colorCamDepthCoordFrame = new Vector2[sensorData.colorImageWidth * sensorData.colorImageHeight]; + } + + if (sensorData.colorDepthTexture == null) + { + sensorData.colorDepthTexture = new RenderTexture(sensorData.colorImageWidth, sensorData.colorImageHeight, 0, RenderTextureFormat.ARGB32); + //sensorData.colorDepthTexture.enableRandomWrite = true; + sensorData.colorDepthTexture.Create(); + } + + colorDepthShaderInited = true; + + return true; + } + + + // updates the color-depth shader with the actual data + protected override bool UpdateColorDepthShader(KinectInterop.SensorData sensorData) + { + // for K2 depth camera resolution only + if (colorDepthShader != null && pointCloudDepthBuffer != null && pointCloudCoordBuffer != null && colorCamDepthCoordFrame != null) + { + if (/**sensorData.usedColorDepthBufferTime == sensorData.lastColorDepthBufferTime && */ + sensorData.lastColorDepthBufferTime != lastColorCamDepthFrameTime) + { + sensorData.lastColorDepthBufferTime = lastColorCamDepthFrameTime; + + if (sensorData.colorImageTexture != null) + { + Graphics.Blit(sensorData.colorImageTexture, sensorData.colorDepthTexture); + } + + KinectInterop.SetComputeBufferData(pointCloudDepthBuffer, sensorData.depthImage, sensorData.depthImage.Length >> 1, sizeof(uint)); + + lock (colorCamDepthFrameLock) + { + int bufferLength = sensorData.colorImageWidth * sensorData.colorImageHeight * 2; + KinectInterop.SetComputeBufferData(pointCloudCoordBuffer, colorCamDepthCoordFrame, bufferLength, sizeof(float)); + } + + if(sensorData.colorDepthBuffer != null) + { + KinectInterop.SetComputeShaderInt2(colorDepthShader, "_ColorRes", sensorData.colorImageWidth, sensorData.colorImageHeight); + KinectInterop.SetComputeShaderInt2(colorDepthShader, "_DepthRes", sensorData.depthImageWidth, sensorData.depthImageHeight); + + colorDepthShader.SetBuffer(colorDepthKernel, "_DepthMap", pointCloudDepthBuffer); + colorDepthShader.SetBuffer(colorDepthKernel, "_Color2DepthMap", pointCloudCoordBuffer); + //colorDepthShader.SetTexture(colorDepthKernel, "_ColorTex", sensorData.colorImageTexture); + colorDepthShader.SetBuffer(colorDepthKernel, "_ColorDepthMap", sensorData.colorDepthBuffer); + colorDepthShader.Dispatch(colorDepthKernel, sensorData.colorImageWidth / 8, sensorData.colorImageHeight / 8, 1); + + if (sensorData.colorCamDepthImage != null) + { + sensorData.colorDepthBuffer.GetData(sensorData.colorCamDepthImage); + sensorData.lastColorCamDepthFrameTime = lastColorCamDepthFrameTime; + } + } + } + + return true; + } + + return false; + } + + + // creates the color-infrared shader and its respective buffers, as needed + protected override bool CreateColorInfraredShader(KinectInterop.SensorData sensorData) + { + if (colorInfraredShader == null) + { + colorInfraredShader = Resources.Load("ColorInfraredShaderK2") as ComputeShader; + colorInfraredKernel = colorInfraredShader != null ? colorInfraredShader.FindKernel("BakeColorInfrared") : -1; + } + + if (pointCloudInfraredBuffer == null) + { + int bufferLength = sensorData.depthImageWidth * sensorData.depthImageHeight / 2; + pointCloudInfraredBuffer = new ComputeBuffer(bufferLength, sizeof(uint)); + } + + if (pointCloudCoordBuffer == null) + { + int bufferLength = sensorData.colorImageWidth * sensorData.colorImageHeight * 2; // Vector2 = 2 x float + pointCloudCoordBuffer = new ComputeBuffer(bufferLength, sizeof(float)); + } + + if (colorCamDepthCoordFrame == null) + { + colorCamDepthCoordFrame = new Vector2[sensorData.colorImageWidth * sensorData.colorImageHeight]; + } + + if (sensorData.colorInfraredTexture == null) + { + sensorData.colorInfraredTexture = new RenderTexture(sensorData.colorImageWidth, sensorData.colorImageHeight, 0, RenderTextureFormat.ARGB32); + //sensorData.colorInfraredTexture.enableRandomWrite = true; + sensorData.colorInfraredTexture.Create(); + } + + Shader infraredImageShader = Shader.Find("Kinect/InfraredImageShader"); + if (infraredImageShader) + { + sensorData.colorInfraredMaterial = new Material(infraredImageShader); + } + + colorInfraredShaderInited = true; + + return true; + } + + + // updates the color-infrared shader with the actual data + protected override bool UpdateColorInfraredShader(KinectInterop.SensorData sensorData) + { + // for K2 depth camera resolution only + if (colorInfraredShader != null && pointCloudInfraredBuffer != null && pointCloudCoordBuffer != null && colorCamDepthCoordFrame != null) + { + if (/**sensorData.usedColorInfraredBufferTime == sensorData.lastColorInfraredBufferTime && */ + sensorData.lastColorInfraredBufferTime != lastColorCamInfraredFrameTime) + { + sensorData.lastColorInfraredBufferTime = lastColorCamInfraredFrameTime; + //Debug.Log("LastColorCamInfraredFrameTime: " + lastColorCamInfraredFrameTime); + + //if (sensorData.colorImageTexture != null) + //{ + // Graphics.Blit(sensorData.colorImageTexture, sensorData.colorInfraredTexture); + //} + + KinectInterop.SetComputeBufferData(pointCloudInfraredBuffer, sensorData.infraredImage, sensorData.infraredImage.Length >> 1, sizeof(uint)); + + lock (colorCamDepthFrameLock) + { + int bufferLength = sensorData.colorImageWidth * sensorData.colorImageHeight * 2; + KinectInterop.SetComputeBufferData(pointCloudCoordBuffer, colorCamDepthCoordFrame, bufferLength, sizeof(float)); + } + + if (sensorData.colorInfraredBuffer != null) + { + KinectInterop.SetComputeShaderInt2(colorInfraredShader, "_ColorRes", sensorData.colorImageWidth, sensorData.colorImageHeight); + KinectInterop.SetComputeShaderInt2(colorInfraredShader, "_DepthRes", sensorData.depthImageWidth, sensorData.depthImageHeight); + + colorInfraredShader.SetBuffer(colorInfraredKernel, "_InfraredMap", pointCloudInfraredBuffer); + colorInfraredShader.SetBuffer(colorInfraredKernel, "_Color2DepthMap", pointCloudCoordBuffer); + //colorInfraredShader.SetTexture(colorInfraredKernel, "_ColorTex", sensorData.colorImageTexture); + colorInfraredShader.SetBuffer(colorInfraredKernel, "_ColorInfraredMap", sensorData.colorInfraredBuffer); + colorInfraredShader.Dispatch(colorInfraredKernel, sensorData.colorImageWidth / 8, sensorData.colorImageHeight / 8, 1); + + if (sensorData.colorCamInfraredImage != null) + { + sensorData.colorInfraredBuffer.GetData(sensorData.colorCamInfraredImage); + sensorData.lastColorCamInfraredFrameTime = lastColorCamInfraredFrameTime; + } + } + } + + return true; + } + + return false; + } + + + // creates the color-depth shader and its respective buffers, as needed + protected override bool CreateColorBodyIndexShader(KinectInterop.SensorData sensorData) + { + if (colorBodyIndexShader == null) + { + colorBodyIndexShader = Resources.Load("ColorBodyIndexShaderK2") as ComputeShader; + colorBodyIndexKernel = colorBodyIndexShader != null ? colorBodyIndexShader.FindKernel("BakeColorBodyIndex") : -1; + } + + if (bodyIndexBuffer == null) + { + int bufferLength = sensorData.depthImageWidth * sensorData.depthImageHeight / 4; + bodyIndexBuffer = new ComputeBuffer(bufferLength, sizeof(uint)); + } + + if (pointCloudCoordBuffer == null) + { + int bufferLength = sensorData.colorImageWidth * sensorData.colorImageHeight * 2; // Vector2 = 2 x float + pointCloudCoordBuffer = new ComputeBuffer(bufferLength, sizeof(float)); + } + + if (colorCamDepthCoordFrame == null) + { + colorCamDepthCoordFrame = new Vector2[sensorData.colorImageWidth * sensorData.colorImageHeight]; + } + + if (sensorData.colorBodyIndexTexture == null) + { + sensorData.colorBodyIndexTexture = new RenderTexture(sensorData.colorImageWidth, sensorData.colorImageHeight, 0, RenderTextureFormat.ARGB32); + //sensorData.colorBodyIndexTexture.enableRandomWrite = true; + sensorData.colorBodyIndexTexture.Create(); + } + + colorBodyIndexShaderInited = true; + + return true; + } + + + // updates the color body index shader with the actual data + protected override bool UpdateColorBodyIndexShader(KinectInterop.SensorData sensorData) + { + // for K2 depth camera resolution only + if (colorBodyIndexShader != null && bodyIndexBuffer != null && pointCloudCoordBuffer != null && colorCamDepthCoordFrame != null) + { + if (/**sensorData.usedColorBodyIndexBufferTime == sensorData.lastColorBodyIndexBufferTime && */ + sensorData.bodyIndexImage != null && sensorData.lastColorBodyIndexBufferTime != lastColorCamDepthFrameTime) + { + sensorData.lastColorBodyIndexBufferTime = lastColorCamDepthFrameTime; + + if (sensorData.colorImageTexture != null) + { + Graphics.Blit(sensorData.colorImageTexture, sensorData.colorBodyIndexTexture); + } + + KinectInterop.SetComputeBufferData(bodyIndexBuffer, sensorData.bodyIndexImage, sensorData.bodyIndexImage.Length >> 2, sizeof(uint)); + + lock (colorCamDepthFrameLock) + { + int bufferLength = sensorData.colorImageWidth * sensorData.colorImageHeight * 2; + KinectInterop.SetComputeBufferData(pointCloudCoordBuffer, colorCamDepthCoordFrame, bufferLength, sizeof(float)); + } + + if(sensorData.colorBodyIndexBuffer != null) + { + KinectInterop.SetComputeShaderInt2(colorBodyIndexShader, "_ColorRes", sensorData.colorImageWidth, sensorData.colorImageHeight); + KinectInterop.SetComputeShaderInt2(colorBodyIndexShader, "_DepthRes", sensorData.depthImageWidth, sensorData.depthImageHeight); + + colorBodyIndexShader.SetBuffer(colorBodyIndexKernel, "_BodyIndexMap", bodyIndexBuffer); + colorBodyIndexShader.SetBuffer(colorBodyIndexKernel, "_Color2DepthMap", pointCloudCoordBuffer); + //colorBodyIndexShader.SetTexture(colorBodyIndexKernel, "_ColorTex", sensorData.colorImageTexture); + colorBodyIndexShader.SetBuffer(colorBodyIndexKernel, "_ColorBodyIndexMap", sensorData.colorBodyIndexBuffer); + colorBodyIndexShader.Dispatch(colorBodyIndexKernel, sensorData.colorImageWidth / 8, sensorData.colorImageHeight / 8, 1); + + if (sensorData.colorCamBodyIndexImage != null) + { + sensorData.colorBodyIndexBuffer.GetData(sensorData.colorCamBodyIndexImage); + sensorData.lastColorCamBodyIndexFrameTime = lastColorCamDepthFrameTime; + } + } + } + + return true; + } + + return false; + } + + + public override Vector3 MapDepthPointToSpaceCoords(KinectInterop.SensorData sensorData, Vector2 depthPos, ushort depthVal) + { + Vector3 vPoint = Vector3.zero; + + if (coordMapper != null && depthPos != Vector2.zero) + { + DepthSpacePoint depthPoint = new DepthSpacePoint(); + depthPoint.X = depthPos.x; + depthPoint.Y = depthPos.y; + + DepthSpacePoint[] depthPoints = new DepthSpacePoint[1]; + depthPoints[0] = depthPoint; + + ushort[] depthVals = new ushort[1]; + depthVals[0] = depthVal; + + CameraSpacePoint[] camPoints = new CameraSpacePoint[1]; + coordMapper.MapDepthPointsToCameraSpace(depthPoints, depthVals, camPoints); + + CameraSpacePoint camPoint = camPoints[0]; + vPoint.x = camPoint.X; + vPoint.y = camPoint.Y; + vPoint.z = camPoint.Z; + } + + return vPoint; + } + + public override Vector2 MapSpacePointToDepthCoords(KinectInterop.SensorData sensorData, Vector3 spacePos) + { + Vector2 vPoint = Vector2.zero; + + if (coordMapper != null) + { + CameraSpacePoint camPoint = new CameraSpacePoint(); + camPoint.X = spacePos.x; + camPoint.Y = spacePos.y; + camPoint.Z = spacePos.z; + + CameraSpacePoint[] camPoints = new CameraSpacePoint[1]; + camPoints[0] = camPoint; + + DepthSpacePoint[] depthPoints = new DepthSpacePoint[1]; + coordMapper.MapCameraPointsToDepthSpace(camPoints, depthPoints); + + DepthSpacePoint depthPoint = depthPoints[0]; + + if (depthPoint.X >= 0 && depthPoint.X < sensorData.depthImageWidth && + depthPoint.Y >= 0 && depthPoint.Y < sensorData.depthImageHeight) + { + vPoint.x = depthPoint.X; + vPoint.y = depthPoint.Y; + } + } + + return vPoint; + } + + public override Vector2 MapDepthPointToColorCoords(KinectInterop.SensorData sensorData, Vector2 depthPos, ushort depthVal) + { + Vector2 vPoint = Vector2.zero; + + if (coordMapper != null && depthPos != Vector2.zero) + { + DepthSpacePoint depthPoint = new DepthSpacePoint(); + depthPoint.X = depthPos.x; + depthPoint.Y = depthPos.y; + + DepthSpacePoint[] depthPoints = new DepthSpacePoint[1]; + depthPoints[0] = depthPoint; + + ushort[] depthVals = new ushort[1]; + depthVals[0] = depthVal; + + ColorSpacePoint[] colPoints = new ColorSpacePoint[1]; + coordMapper.MapDepthPointsToColorSpace(depthPoints, depthVals, colPoints); + + ColorSpacePoint colPoint = colPoints[0]; + vPoint.x = colPoint.X; + vPoint.y = colPoint.Y; + } + + return vPoint; + } + + //public override bool MapDepthFrameToSpaceCoords(KinectInterop.SensorData sensorData, ref Vector3[] vSpaceCoords) + //{ + // if (coordMapper != null && sensorData.depthImage != null) + // { + // var pDepthData = GCHandle.Alloc(sensorData.depthImage, GCHandleType.Pinned); + // var pSpaceCoordsData = GCHandle.Alloc(vSpaceCoords, GCHandleType.Pinned); + + // coordMapper.MapDepthFrameToCameraSpaceUsingIntPtr( + // pDepthData.AddrOfPinnedObject(), + // sensorData.depthImage.Length * sizeof(ushort), + // pSpaceCoordsData.AddrOfPinnedObject(), + // (uint)vSpaceCoords.Length); + + // pSpaceCoordsData.Free(); + // pDepthData.Free(); + + // return true; + // } + + // return false; + //} + + //public override bool MapDepthFrameToColorCoords(KinectInterop.SensorData sensorData, ref Vector2[] vColorCoords) + //{ + // if (coordMapper != null && sensorData.colorImageTexture != null && sensorData.depthImage != null) + // { + // var pDepthData = GCHandle.Alloc(sensorData.depthImage, GCHandleType.Pinned); + // var pColorCoordsData = GCHandle.Alloc(vColorCoords, GCHandleType.Pinned); + + // coordMapper.MapDepthFrameToColorSpaceUsingIntPtr( + // pDepthData.AddrOfPinnedObject(), + // sensorData.depthImage.Length * sizeof(ushort), + // pColorCoordsData.AddrOfPinnedObject(), + // (uint)vColorCoords.Length); + + // pColorCoordsData.Free(); + // pDepthData.Free(); + + // return true; + // } + + // return false; + //} + + //public override bool MapColorFrameToDepthCoords(KinectInterop.SensorData sensorData, ref Vector2[] vDepthCoords) + //{ + // if (coordMapper != null && sensorData.colorImageTexture != null && sensorData.depthImage != null) + // { + // var pDepthData = GCHandle.Alloc(sensorData.depthImage, GCHandleType.Pinned); + // var pDepthCoordsData = GCHandle.Alloc(vDepthCoords, GCHandleType.Pinned); + + // coordMapper.MapColorFrameToDepthSpaceUsingIntPtr( + // pDepthData.AddrOfPinnedObject(), + // (uint)sensorData.depthImage.Length * sizeof(ushort), + // pDepthCoordsData.AddrOfPinnedObject(), + // (uint)vDepthCoords.Length); + + // pDepthCoordsData.Free(); + // pDepthData.Free(); + + // return true; + // } + + // return false; + //} + + + // enables or disables color camera depth frame processing + public override void EnableColorCameraDepthFrame(KinectInterop.SensorData sensorData, bool isEnable) + { + base.EnableColorCameraDepthFrame(sensorData, isEnable); + + if (isEnable && sensorData.colorDepthBuffer == null) + { + if (sensorData.colorImageWidth > 0 && sensorData.colorImageHeight > 0) + { + int bufferLength = sensorData.colorImageWidth * sensorData.colorImageHeight / 2; + sensorData.colorDepthBuffer = new ComputeBuffer(bufferLength, sizeof(uint)); + } + } + else if (!isEnable && sensorData.colorDepthBuffer != null) + { + sensorData.colorDepthBuffer.Release(); + sensorData.colorDepthBuffer.Dispose(); + sensorData.colorDepthBuffer = null; + } + } + + // enables or disables color camera body-index frame processing + public override void EnableColorCameraBodyIndexFrame(KinectInterop.SensorData sensorData, bool isEnable) + { + base.EnableColorCameraBodyIndexFrame(sensorData, isEnable); + + if (isEnable && sensorData.colorBodyIndexBuffer == null) + { + if (sensorData.colorImageWidth > 0 && sensorData.colorImageHeight > 0) + { + int bufferLength = sensorData.colorImageWidth * sensorData.colorImageHeight / 4; + sensorData.colorBodyIndexBuffer = new ComputeBuffer(bufferLength, sizeof(uint)); + } + } + else if (!isEnable && sensorData.colorBodyIndexBuffer != null) + { + sensorData.colorBodyIndexBuffer.Release(); + sensorData.colorBodyIndexBuffer.Dispose(); + sensorData.colorBodyIndexBuffer = null; + } + } + + } +} + +#endif \ No newline at end of file diff --git a/Assets/Azure/KinectScripts/Interfaces/Kinect2Interface.cs.meta b/Assets/Azure/KinectScripts/Interfaces/Kinect2Interface.cs.meta new file mode 100644 index 0000000..d3ef2d0 --- /dev/null +++ b/Assets/Azure/KinectScripts/Interfaces/Kinect2Interface.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3187c833c6106e54facb6071b57475a2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/Interfaces/Kinect4AzureInterface.cs b/Assets/Azure/KinectScripts/Interfaces/Kinect4AzureInterface.cs new file mode 100644 index 0000000..2702aef --- /dev/null +++ b/Assets/Azure/KinectScripts/Interfaces/Kinect4AzureInterface.cs @@ -0,0 +1,2881 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using Microsoft.Azure.Kinect.Sensor; +using System; + +namespace com.rfilkov.kinect +{ + /// + /// Kinect4AzureInterface is sensor-interface to the Azure Kinect sensors. + /// + public class Kinect4AzureInterface : DepthSensorBase + { + // body tracking sdk's tools folder - used to copy the needed libraries and files. + // TODO - please change the path below, if the BT-SDK tools-folder in your case is different + internal const string BODY_TRACKING_TOOLS_FOLDER = "C:/Program Files/Azure Kinect Body Tracking SDK/tools"; + + // body tracking model file name - lite or full model + internal const string BODY_TRACKING_FULL_MODEL_FILE = "dnn_model_2_0_op11.onnx"; + internal const string BODY_TRACKING_LITE_MODEL_FILE = "dnn_model_2_0_lite_op11.onnx"; + + + [Tooltip("Color camera resolution.")] + public ColorCameraMode colorCameraMode = ColorCameraMode._1920_x_1080_30Fps; + public enum ColorCameraMode : int { _1280_x_720_30Fps = 1, _1920_x_1080_30Fps = 2, _2560_x_1440_30Fps = 3, _2048_x_1536_30Fps = 4, _3840_x_2160_30Fps = 5, _4096_x_3072_15Fps = 6 } + + [Tooltip("Depth camera mode.")] + public DepthCameraMode depthCameraMode = DepthCameraMode._640_x_576_30Fps_3_86mNfov; + public enum DepthCameraMode : int { _320_x_288_30Fps_5_46mNfov = 1, _640_x_576_30Fps_3_86mNfov = 2, _512_x_512_30Fps_2_88mWfov = 3, _1024x1024_15Fps_2_21mWfov = 4, PassiveIR_30Fps = 5 } + + [Tooltip("Camera frames per second.")] + public CameraFPS cameraFPS = CameraFPS._30_FPS; + public enum CameraFPS : int { _5_FPS = 0, _15_FPS = 1, _30_FPS = 2 } + + [Tooltip("Device sync mode, in case of multiple wired sensors.")] + public WiredSyncMode deviceSyncMode = WiredSyncMode.Standalone; + + [Tooltip("Subordinate device delay off master (in usec), in case of multiple wired sensors.")] + public int subDeviceDelayUsec = 0; + + [Tooltip("Whether to flip the IMU rotation.")] + private bool flipImuRotation = false; + + [Tooltip("Temporal smoothing used by the Azure Kinect Body Tracking SDK.")] + [Range(0f, 1f)] + public float bodyTemporalSmoothing = 0f; + + [Tooltip("Playback position in seconds.")] + [Range(-1f, 30f)] + public float playbackPosSeconds = -1f; + + [Tooltip("Whether to loop the playback, when end of recording is reached.")] + public bool loopPlayback = false; + + [Tooltip("Sensor orientation hint to the Body Tracking SDK.")] + public k4abt_sensor_orientation_t bodyTrackingSensorOrientation = k4abt_sensor_orientation_t.K4ABT_SENSOR_ORIENTATION_DEFAULT; + + [Tooltip("Processing mode to be used by the Body Tracking SDK.")] + public k4abt_tracker_processing_mode_t bodyTrackingProcessingMode = k4abt_tracker_processing_mode_t.K4ABT_TRACKER_PROCESSING_MODE_GPU_CUDA; + + [Tooltip("Model type (full or lite), to be used by the Body Tracking SDK.")] + private BodyTrackingModelType bodyTrackingModelType = BodyTrackingModelType.FullModel; + public enum BodyTrackingModelType : int { FullModel = 0, LiteModel = 1 } + + [Tooltip("Whether to try to detect the floor plane, to estimate the sensor position and rotation.")] + public bool detectFloorForPoseEstimation = true; + + + // references to the sensor + public Device kinectSensor = null; + //public Calibration coordMapper; // moved to DepthSensorBase + //public Transformation coordMapperTransform = null; // moved to DepthSensorBase + private Image d2cColorData = null; + private Image c2dDepthData = null; + + private Image c2dInfraredData = null; + private Image c2IrDepthImage = null; + private Image c2IrCustomImage = null; + + // buffered captures + private const int BUF_CAPTURES_SIZE = 10; + private Capture[] bufCaptures = new Capture[BUF_CAPTURES_SIZE]; + //private long[] bufCapTimes = new long[BUF_CAPTURES_SIZE]; + + // current sensor capture + private Capture sensorCapture = null; + private object sensorCaptureLock = new object(); + private bool isSensorMaster = true; + private long lastPlayTime = 0; + + // master camera depth frame time + private static Kinect4AzureSyncher sensorSyncher = null; + private int syncSensorIndex = -1; + + // master-sub delay & start offset + private long expSensorDelay = 0; + private long startTimeOffset = 0; + + // playback and record + public Recording kinectRecording = null; + public Playback kinectPlayback = null; + private long playbackStartTime = 0; + private long playbackUpdateTime = 0; + + // status of the cameras + private bool isCamerasStarted = false; + private bool isImuStarted = false; + + // current frame number + //private ulong currentFrameNumber = 0; + private TimeSpan timeToWait = TimeSpan.Zero; + + // imu + private ImuSample lastImuSample = null; + private ImuSample curImuSample = null; + + private AHRS.MahonyAHRS imuAhrs = null; + private Quaternion imuTurnRot1 = Quaternion.identity; + private Quaternion imuTurnRot2 = Quaternion.identity; + //private bool lastFlipImuRot = false; + + private Quaternion imuRotation = Quaternion.identity; + private float prevRotZ = 0f; + private float[] prevQuat = new float[4]; + + private Vector3 imuYawAtStart = Vector3.zero; + private Quaternion imuFixAtStart = Quaternion.identity; + private bool imuYawAtStartSet = false; + + // TODO: to be removed later + //public event Action OnImuSample; + + // reference to the floor detector + public KinectFloorDetector floorDetector = null; + + // body tracker + private BodyTracking bodyTracker = null; + private k4abt_skeleton_t bodySkeletonData; + private int btQueueCount = 0; + private int btQueueWaitTime = 0; + private ulong btQueueTime = 0; + + private System.Threading.Thread bodyTrackerThread = null; + private System.Threading.AutoResetEvent bodyTrackerStopEvent = null; + //private Capture bodyInputCapture = null; + private Capture bodyOutputCapture = null; + private object bodyCaptureLock = new object(); + + protected float leftHandFingerAngle = 0f; + protected float rightHandFingerAngle = 0f; + protected ulong lastHandStatesTimestamp = 0; + + // coord mapper transformation & BI image + public Calibration coordMapperCalib; + public Transformation coordMapperTransform = null; + private Image c2BtDepthImage = null, c2BodyIndexImage = null; + private Image bodyIndexImage = null; + + // internal body frame data + private K4abtFrameData btFrameData; + // last temporal smoothing + private float lastTemporalSmoothing = 0f; + + + // depth sensor settings + [System.Serializable] + public class K4ASensorSettings : DepthSensorBase.BaseSensorSettings + { + public int colorCameraMode; + public int depthCameraMode; + public int cameraFPS = 2; // by-default value + public int deviceSyncMode; + public int subDeviceDelayUsec; + public bool flipImuRotation; + public float bodyTemporalSmoothing = 0f; // by-default value + public float playbackPosSeconds; + public bool loopPlayback; + public int bodyTrackingSensorOrientation = (int)k4abt_sensor_orientation_t.K4ABT_SENSOR_ORIENTATION_DEFAULT; // by-default value + public int bodyTrackingProcessingMode = (int)k4abt_tracker_processing_mode_t.K4ABT_TRACKER_PROCESSING_MODE_GPU_CUDA; // by-default value + public bool detectFloorForPoseEstimation = true; // by-default value + } + + + public override KinectInterop.DepthSensorPlatform GetSensorPlatform() + { + return KinectInterop.DepthSensorPlatform.Kinect4Azure; + } + + + public override System.Type GetSensorSettingsType() + { + return typeof(K4ASensorSettings); + } + + + public override BaseSensorSettings GetSensorSettings(BaseSensorSettings settings) + { + if(settings == null) + { + settings = new K4ASensorSettings(); + } + + K4ASensorSettings extSettings = (K4ASensorSettings)base.GetSensorSettings(settings); + + extSettings.colorCameraMode = (int)colorCameraMode; + extSettings.depthCameraMode = (int)depthCameraMode; + extSettings.cameraFPS = (int)cameraFPS; + extSettings.deviceSyncMode = (int)deviceSyncMode; + extSettings.subDeviceDelayUsec = subDeviceDelayUsec; + extSettings.flipImuRotation = flipImuRotation; + extSettings.bodyTemporalSmoothing = bodyTemporalSmoothing; + extSettings.playbackPosSeconds = playbackPosSeconds; + extSettings.loopPlayback = loopPlayback; + extSettings.bodyTrackingSensorOrientation = (int)bodyTrackingSensorOrientation; + extSettings.bodyTrackingProcessingMode = (int)bodyTrackingProcessingMode; + extSettings.detectFloorForPoseEstimation = detectFloorForPoseEstimation; + + return settings; + } + + public override void SetSensorSettings(BaseSensorSettings settings) + { + if (settings == null) + return; + + base.SetSensorSettings(settings); + + K4ASensorSettings extSettings = (K4ASensorSettings)settings; + colorCameraMode = (ColorCameraMode)extSettings.colorCameraMode; + depthCameraMode = (DepthCameraMode)extSettings.depthCameraMode; + cameraFPS = (CameraFPS)extSettings.cameraFPS; + deviceSyncMode = (WiredSyncMode)extSettings.deviceSyncMode; + + subDeviceDelayUsec = extSettings.subDeviceDelayUsec; + flipImuRotation = extSettings.flipImuRotation; + bodyTemporalSmoothing = extSettings.bodyTemporalSmoothing; + playbackPosSeconds = extSettings.playbackPosSeconds; + loopPlayback = extSettings.loopPlayback; + + bodyTrackingSensorOrientation = (k4abt_sensor_orientation_t)extSettings.bodyTrackingSensorOrientation; + bodyTrackingProcessingMode = (k4abt_tracker_processing_mode_t)extSettings.bodyTrackingProcessingMode; + detectFloorForPoseEstimation = extSettings.detectFloorForPoseEstimation; + } + + public override List GetAvailableSensors() + { + List alSensorInfo = new List(); + + int deviceCount = Device.GetInstalledCount(); + for (int i = 0; i < deviceCount; i++) + { + KinectInterop.SensorDeviceInfo sensorInfo = new KinectInterop.SensorDeviceInfo(); + sensorInfo.sensorId = i.ToString(); + sensorInfo.sensorName = "Kinect4Azure"; + + sensorInfo.sensorCaps = KinectInterop.FrameSource.TypeAll; + + if (consoleLogMessages) + Debug.Log(string.Format(" D{0}: {1}, id: {2}", i, sensorInfo.sensorName, sensorInfo.sensorId)); + + alSensorInfo.Add(sensorInfo); + } + + //if (alSensorInfo.Count == 0) + //{ + // Debug.Log(" No sensor devices found."); + //} + + return alSensorInfo; + } + + public override KinectInterop.SensorData OpenSensor(KinectManager kinectManager, KinectInterop.FrameSource dwFlags, bool bSyncDepthAndColor, bool bSyncBodyAndDepth) + { + // save initial parameters + base.OpenSensor(kinectManager, dwFlags, bSyncDepthAndColor, bSyncBodyAndDepth); + + // try to open the sensor or play back the recording + KinectInterop.SensorData sensorData = new KinectInterop.SensorData(); + + string sensorName = "Kinect4Azure"; + KinectInterop.FrameSource sensorCaps = KinectInterop.FrameSource.TypeAll; + + if (deviceStreamingMode == KinectInterop.DeviceStreamingMode.PlayRecording) + { + if (string.IsNullOrEmpty(recordingFile)) + { + Debug.LogError("Playback selected, but the path to recording file is missing."); + return null; + } + + if (!System.IO.File.Exists(recordingFile)) + { + Debug.LogError("PlayRecording selected, but the recording file cannot be found: " + recordingFile); + return null; + } + + if (consoleLogMessages) + Debug.Log("Playing back: " + recordingFile); + kinectPlayback = new Playback(recordingFile); + + sensorPlatform = KinectInterop.DepthSensorPlatform.Kinect4Azure; + sensorDeviceId = KinectInterop.GetFileName(recordingFile, false); // deviceIndex.ToString(); + //Debug.Log("D" + deviceIndex + " ID: " + sensorDeviceId); + + colorCameraMode = (ColorCameraMode)kinectPlayback.playback_config.color_resolution; + depthCameraMode = (DepthCameraMode)kinectPlayback.playback_config.depth_mode; + cameraFPS = (CameraFPS)kinectPlayback.playback_config.camera_fps; + deviceSyncMode = kinectPlayback.playback_config.wired_sync_mode; + + coordMapperCalib = kinectPlayback.playback_calibration; + playbackStartTime = 0; + playbackUpdateTime = 0; + + // expected master-slave delay & start offset + expSensorDelay = (kinectPlayback.playback_config.subordinate_delay_off_master_usec + kinectPlayback.playback_config.depth_delay_off_color_usec) * 10; // us->ticks + startTimeOffset = kinectPlayback.playback_config.start_timestamp_offset_usec * 10; + //Debug.Log("D" + deviceIndex + " SensorDelay: " + expSensorDelay + ", StartTimeOfs: " + startTimeOffset); + + //Debug.Log(string.Format("color_track_enabled: {0}, depth_track_enabled: {1}, ir_track_enabled: {2}, imu_track_enabled: {3}, depth_delay_off_color_usec: {4}", + // kinectPlayback.playback_config.color_track_enabled, kinectPlayback.playback_config.depth_track_enabled, + // kinectPlayback.playback_config.ir_track_enabled, kinectPlayback.playback_config.imu_track_enabled, + // kinectPlayback.playback_config.depth_delay_off_color_usec)); + } + else + { + List alSensors = GetAvailableSensors(); + if (deviceIndex >= alSensors.Count) + { + Debug.LogError(" D" + deviceIndex + " is not available. You can set the device index to -1, to disable it."); + return null; + } + + kinectSensor = Device.Open(deviceIndex); + if (kinectSensor == null) + { + Debug.LogError(" D" + deviceIndex + " cannot be opened."); + return null; + } + + // try to open the sensor + sensorPlatform = KinectInterop.DepthSensorPlatform.Kinect4Azure; + sensorDeviceId = kinectSensor.SerialNum; + //Debug.Log("D" + deviceIndex + " ID: " + sensorDeviceId); + + sensorName = alSensors[deviceIndex].sensorName; + sensorCaps = alSensors[deviceIndex].sensorCaps; + + if (deviceSyncMode == WiredSyncMode.Master && (dwFlags & KinectInterop.FrameSource.TypeColor) == 0) + { + // fix by Andreas Pedroni - master requires color camera on + dwFlags |= KinectInterop.FrameSource.TypeColor; + } + + DeviceConfiguration kinectConfig = new DeviceConfiguration(); + kinectConfig.SynchronizedImagesOnly = isSyncDepthAndColor; + kinectConfig.WiredSyncMode = deviceSyncMode; + kinectConfig.SuboridinateDelayOffMaster = new TimeSpan(subDeviceDelayUsec * 10); + + // color + kinectConfig.ColorFormat = ImageFormat.ColorBGRA32; + if ((dwFlags & KinectInterop.FrameSource.TypeColor) != 0) + { + kinectConfig.ColorResolution = (ColorResolution)colorCameraMode; + } + else + { + kinectConfig.ColorResolution = ColorResolution.Off; + } + + // depth + if ((dwFlags & KinectInterop.FrameSource.TypeDepth) != 0) + { + kinectConfig.DepthMode = (DepthMode)depthCameraMode; + } + else + { + kinectConfig.DepthMode = DepthMode.Off; + } + + // fps + if ((colorCameraMode == ColorCameraMode._4096_x_3072_15Fps || depthCameraMode == DepthCameraMode._1024x1024_15Fps_2_21mWfov) && + (cameraFPS == CameraFPS._30_FPS)) + { + cameraFPS = CameraFPS._15_FPS; + kinectConfig.CameraFPS = FPS.FPS15; + } + else + { + kinectConfig.CameraFPS = (FPS)cameraFPS; + } + + // infrared + if ((dwFlags & KinectInterop.FrameSource.TypeInfrared) != 0) + { + if(kinectConfig.DepthMode == DepthMode.Off) + { + kinectConfig.DepthMode = DepthMode.PassiveIR; + depthCameraMode = DepthCameraMode.PassiveIR_30Fps; + } + } + + // check for at least one frame type + if((dwFlags & KinectInterop.FrameSource.TypeColor) != 0 || + (dwFlags & KinectInterop.FrameSource.TypeDepth) != 0 || + (dwFlags & KinectInterop.FrameSource.TypeInfrared) != 0) + { + // start the cameras + kinectSensor.StartCameras(kinectConfig); + isCamerasStarted = true; + } + else + { + Debug.LogWarning("Sensor cameras are not started, because color, depth & IR frames are all disabled."); + } + + if ((dwFlags & KinectInterop.FrameSource.TypePose) != 0) + { + // start the IMU + kinectSensor.StartImu(); + isImuStarted = true; + + // create floor detector, if needed + if(detectFloorForPoseEstimation) + { + floorDetector = new KinectFloorDetector(); + } + } + + // get reference to the coordinate mapper + if(isCamerasStarted) + { + coordMapperCalib = kinectSensor.GetCalibration(); + } + + // expected master-slave delay + expSensorDelay = kinectConfig.SuboridinateDelayOffMaster.Ticks + kinectConfig.DepthDelayOffColor.Ticks; + + // create recording if needed + if (deviceStreamingMode == KinectInterop.DeviceStreamingMode.SaveRecording) + { + if (!string.IsNullOrEmpty(recordingFile)) + { + if (consoleLogMessages) + Debug.Log(" Recording to file: " + recordingFile); + + kinectRecording = new Recording(recordingFile, kinectSensor, kinectConfig); + } + else + { + Debug.LogError("Save-recording selected, but the path to recording file is missing."); + } + } + } + + // reset the frame number + //currentFrameNumber = 0; + + sensorData.sensorIntPlatform = sensorPlatform; + sensorData.startTimeOffset = startTimeOffset; + + sensorData.sensorId = sensorDeviceId; + sensorData.sensorName = sensorName; + sensorData.sensorCaps = sensorCaps; + + // flip color & depth image horizontally and vertically + sensorData.colorImageScale = new Vector3(-1f, -1f, 1f); + sensorData.depthImageScale = new Vector3(-1f, -1f, 1f); + sensorData.infraredImageScale = new Vector3(-1f, -1f, 1f); + sensorData.sensorSpaceScale = new Vector3(-1f, -1f, 1f); + sensorData.unitToMeterFactor = 0.001f; + + // depth camera offset & matrix z-flip + sensorRotOffset = Vector3.zero; // new Vector3(6f, 0f, 0f); // the depth camera is tilted 6 degrees downwards + sensorRotFlipZ = true; + sensorRotIgnoreY = true; + + // color camera data & intrinsics + sensorData.colorImageFormat = TextureFormat.BGRA32; + sensorData.colorImageStride = 4; // 4 bytes per pixel + + if ((dwFlags & KinectInterop.FrameSource.TypeColor) != 0) + { + CameraCalibration colorCamera = coordMapperCalib.ColorCameraCalibration; + sensorData.colorImageWidth = colorCamera.ResolutionWidth; + sensorData.colorImageHeight = colorCamera.ResolutionHeight; + + //rawColorImage = new byte[sensorData.colorImageWidth * sensorData.colorImageHeight * 4]; + + sensorData.colorImageTexture = new Texture2D(sensorData.colorImageWidth, sensorData.colorImageHeight, TextureFormat.BGRA32, false); + sensorData.colorImageTexture.wrapMode = TextureWrapMode.Clamp; + sensorData.colorImageTexture.filterMode = FilterMode.Point; + } + + // depth camera data & intrinsics + if ((dwFlags & KinectInterop.FrameSource.TypeDepth) != 0) + { + CameraCalibration depthCamera = coordMapperCalib.DepthCameraCalibration; + sensorData.depthImageWidth = depthCamera.ResolutionWidth; + sensorData.depthImageHeight = depthCamera.ResolutionHeight; + + //rawDepthImage = new ushort[sensorData.depthImageWidth * sensorData.depthImageHeight]; + sensorData.depthImage = new ushort[sensorData.depthImageWidth * sensorData.depthImageHeight]; + } + + // infrared data + if ((dwFlags & KinectInterop.FrameSource.TypeInfrared) != 0) + { + if (sensorData.depthImageWidth == 0 || sensorData.depthImageHeight == 0) + { + CameraCalibration depthCamera = coordMapperCalib.DepthCameraCalibration; + sensorData.depthImageWidth = depthCamera.ResolutionWidth; + sensorData.depthImageHeight = depthCamera.ResolutionHeight; + } + + //rawInfraredImage = new ushort[sensorData.depthImageWidth * sensorData.depthImageHeight]; + sensorData.infraredImage = new ushort[sensorData.depthImageWidth * sensorData.depthImageHeight]; + + minInfraredValue = 0f; + maxInfraredValue = 1000f; + } + + // imu data + if (kinectPlayback != null || (dwFlags & KinectInterop.FrameSource.TypePose) != 0) + { + imuAhrs = new AHRS.MahonyAHRS(0.0006f, 5f); // 600us + + imuTurnRot1 = Quaternion.Euler(0f, 90f, 90f); + imuTurnRot2 = Quaternion.Euler(90f, !flipImuRotation ? 90f : -90f, 0f); + //lastFlipImuRot = flipImuRotation; + } + + //// account for the depth sensor tilt (6 deg. down) + //if ((dwFlags & KinectInterop.FrameSource.TypePose) == 0) + //{ + // Quaternion poseRotation = transform.rotation; // Quaternion.Euler(6f, 0f, 0f) * transform.rotation; // + // SetSensorToWorldMatrix(transform.position, poseRotation, true); + + // sensorData.sensorPoseRotation = sensorPoseRotation; + // //Debug.Log($"set sensor pos: {sensorPosePosition}, rot: {sensorPoseRotation.eulerAngles}"); + //} + + // calibration data + if (isCamerasStarted || kinectPlayback != null) + { + GetCameraIntrinsics(CalibrationDeviceType.Color, coordMapperCalib.ColorCameraCalibration, ref sensorData.colorCamIntr); + GetCameraIntrinsics(CalibrationDeviceType.Depth, coordMapperCalib.DepthCameraCalibration, ref sensorData.depthCamIntr); + GetCameraExtrinsics(coordMapperCalib.ColorCameraCalibration.Extrinsics, ref sensorData.depth2ColorExtr); + GetCameraExtrinsics(coordMapperCalib.DepthCameraCalibration.Extrinsics, ref sensorData.color2DepthExtr); + + float[] r = sensorData.depth2ColorExtr.rotation; + float[] t = sensorData.depth2ColorExtr.translation; + + depth2colorCamMat = new Matrix4x4(new Vector4(r[0], r[3], r[6], 0), new Vector4(r[1], r[4], r[7], 0), new Vector4(r[2], r[5], r[8], 0), new Vector4(t[0] * 0.001f, t[1] * 0.001f, t[2] * 0.001f, 1)); + //Debug.Log("Depth2colorCamMat Pos: " + ((Vector3)depth2colorCamMat.GetColumn(3) * 100f) + ", Rot: " + depth2colorCamMat.rotation.eulerAngles); + + //sensorData.sensorInterface = this; + //KinectInterop.SaveSensorIntrExtr(sensorData); + } + + // body & body-index data + if ((dwFlags & (KinectInterop.FrameSource.TypeBody | KinectInterop.FrameSource.TypeBodyIndex)) != 0) + { + InitBodyTracking(dwFlags, sensorData, coordMapperCalib, true); + + if(isSyncBodyAndDepth && bodyTracker == null) + { + // don't sync body and depth if the body tracker can't be created + isSyncBodyAndDepth = false; + } + } + + // don't get all frames + getAllSensorFrames = false; + + // check if this sensor is master or subordinate + isSensorMaster = deviceSyncMode != WiredSyncMode.Subordinate; + + // init the floor detector, if needed + if (floorDetector != null) + { + floorDetector.InitFloorDetector(this, sensorData, MAX_DEPTH_DISTANCE_MM); + floorDetector.minFloorPointCount = 1024; + } + + if (consoleLogMessages) + Debug.Log("D" + deviceIndex + " Kinect4Azure-sensor opened: " + sensorDeviceId); + + return sensorData; + } + + + public override void CloseSensor(KinectInterop.SensorData sensorData) + { + base.CloseSensor(sensorData); + + if (sensorCapture != null) + { + sensorCapture.Dispose(); + sensorCapture = null; + } + + if (d2cColorData != null) + { + d2cColorData.Dispose(); + d2cColorData = null; + } + + if (c2dDepthData != null) + { + c2dDepthData.Dispose(); + c2dDepthData = null; + } + + if (c2dInfraredData != null) + { + c2dInfraredData.Dispose(); + c2dInfraredData = null; + } + + if(c2IrDepthImage != null) + { + c2IrDepthImage.Dispose(); + c2IrDepthImage = null; + } + + if (c2IrCustomImage != null) + { + c2IrCustomImage.Dispose(); + c2IrCustomImage = null; + } + + if (coordMapperTransform != null) + { + // dispose coord-mapper transform + coordMapperTransform.Dispose(); + coordMapperTransform = null; + } + + if(kinectPlayback != null) + { + // close the playback file + kinectPlayback.Dispose(); + kinectPlayback = null; + } + + if(kinectRecording != null) + { + // close the recording file + kinectRecording.CloseRecordingFile(); + if (consoleLogMessages) + Debug.Log(" Finished recording to file: " + recordingFile); + + kinectRecording.Dispose(); + kinectRecording = null; + } + + if(sensorSyncher != null) + { + sensorSyncher.StopSyncher(); + sensorSyncher = null; + } + + if (kinectSensor != null) + { + // stop cameras, if needed + if(isCamerasStarted) + { + isCamerasStarted = false; + kinectSensor.StopCameras(); + } + + // stop IMU, if needed + if(isImuStarted) + { + isImuStarted = false; + kinectSensor.StopImu(); + } + + // close the sensor + kinectSensor.Dispose(); + kinectSensor = null; + } + + // finish the floor detector, if needed + if (floorDetector != null) + { + floorDetector.FinishFloorDetector(); + floorDetector = null; + } + + if (consoleLogMessages) + Debug.Log("D" + deviceIndex + " Kinect4Azure-sensor closed: " + sensorDeviceId); + } + + + public override float GetBodyTrackerOrientationAngle() + { + if(bodyTracker != null) + { + return bodyTracker.GetSensorOrientationAngle(); + } + + return 0f; + } + + + public override void EnablePoseStream(KinectInterop.SensorData sensorData, bool bEnable) + { + if (kinectSensor != null) + { + base.EnablePoseStream(sensorData, bEnable); + } + + if ((frameSourceFlags & KinectInterop.FrameSource.TypePose) != 0) + { + if(kinectSensor != null) + { + // start the IMU + if(!isImuStarted) + { + kinectSensor.StartImu(); + isImuStarted = true; + } + + // create floor detector, if needed + if (detectFloorForPoseEstimation && floorDetector == null) + { + floorDetector = new KinectFloorDetector(); + floorDetector.InitFloorDetector(this, sensorData, MAX_DEPTH_DISTANCE_MM); + floorDetector.minFloorPointCount = 1024; + } + } + } + else + { + if(kinectSensor != null) + { + // stop IMU, if needed + if (isImuStarted) + { + isImuStarted = false; + kinectSensor.StopImu(); + } + + // finish the floor detector, if needed + if (floorDetector != null) + { + floorDetector.FinishFloorDetector(); + floorDetector = null; + } + } + } + } + + + public override bool EnableSensorSync(KinectInterop.SensorData sensorData, bool bEnable) + { + if(bEnable) + { + // start master-sub frame syncher + if (deviceSyncMode != WiredSyncMode.Standalone) + { + if (sensorSyncher == null) + { + sensorSyncher = new Kinect4AzureSyncher(); + } + + syncSensorIndex = sensorSyncher.StartSyncherForSensor(this, sensorData, deviceSyncMode == WiredSyncMode.Master, expSensorDelay); + } + + return (syncSensorIndex >= 0); + } + else + { + // stop master-sub frame syncher + bool bHasSyncher = (sensorSyncher != null); + + if (bHasSyncher) + { + sensorSyncher.StopSyncher(); + sensorSyncher = null; + syncSensorIndex = -1; + } + + return bHasSyncher; + } + } + + public override bool IsSensorMaster() + { + if (sensorSyncher != null && syncSensorIndex >= 0) + { + return (sensorSyncher.GetMasterIndex() == syncSensorIndex); + } + + return false; + } + + public override bool IsSensorFrameSynched(ulong frameTime, ulong masterTime) + { + if(sensorSyncher != null && syncSensorIndex >= 0) + { + return sensorSyncher.IsSensorFrameSynched(syncSensorIndex, frameTime, masterTime); + } + + return false; + } + + + public override bool UpdateSensorData(KinectInterop.SensorData sensorData, KinectManager kinectManager, bool isPlayMode) + { + if (kinectPlayback != null) + { + // playback update time + playbackUpdateTime = (long)((double)Time.time * 10000000.0); + } + + lock (sensorCaptureLock) + { + if (sensorCapture != null) + { + // color frame + if (sensorCapture.Color != null && sensorData.lastColorFrameTime != currentColorTimestamp && !isPlayMode) + { + //lock (colorFrameLock) + { + Texture2D colorImageTex2D = sensorData.colorImageTexture as Texture2D; + if (colorImageTex2D != null) + { + colorImageTex2D.LoadRawTextureData(sensorCapture.Color.GetBuffer(), (int)sensorCapture.Color.Size); + colorImageTex2D.Apply(); + } + + sensorData.lastColorFrameTime = currentColorTimestamp; + //Debug.Log("D" + deviceIndex + " UpdateColorTimestamp: " + currentColorTimestamp + ", Now: " + DateTime.Now.ToString("HH:mm:ss.fff")); + } + } + + // depth frame + if (sensorCapture.Depth != null && sensorData.lastDepthFrameTime != currentDepthTimestamp && !isPlayMode) + { + //lock (depthFrameLock) + { + // depth image + if (sensorData.depthImage != null) + { + //KinectInterop.CopyBytes(rawDepthImage, sizeof(ushort), sensorData.depthImage, sizeof(ushort)); + KinectInterop.CopyBytes(sensorCapture.Depth.GetBuffer(), (int)sensorCapture.Depth.Size, sensorData.depthImage, sensorData.depthImage.Length, sizeof(ushort)); + } + + sensorData.lastDepthFrameTime = currentDepthTimestamp; + //Debug.Log("D" + deviceIndex + " UpdateDepthTimestamp: " + currentDepthTimestamp + ", Now: " + DateTime.Now.ToString("HH:mm:ss.fff")); + } + } + + // infrared frame + if (sensorCapture.IR != null && sensorData.lastInfraredFrameTime != currentInfraredTimestamp && !isPlayMode) + { + //lock (infraredFrameLock) + { + if (sensorData.infraredImage != null) + { + //KinectInterop.CopyBytes(rawInfraredImage, sizeof(ushort), sensorData.infraredImage, sizeof(ushort)); + KinectInterop.CopyBytes(sensorCapture.IR.GetBuffer(), (int)sensorCapture.IR.Size, sensorData.infraredImage, sensorData.infraredImage.Length, sizeof(ushort)); + } + + sensorData.lastInfraredFrameTime = currentInfraredTimestamp; + //Debug.Log("D" + deviceIndex + " UpdateInfraredTimestamp: " + currentDepthTimestamp + ", Now: " + DateTime.Now.ToString("HH:mm:ss.fff")); + } + } + } + } + + // body index frame + if (sensorData.lastBodyIndexFrameTime != currentBodyIndexTimestamp) + { + lock (bodyTrackerLock) + { + // body index image + if (bodyIndexImage != null && sensorData.bodyIndexImage != null) + { + KinectInterop.CopyBytes(bodyIndexImage.GetBuffer(), (int)bodyIndexImage.Size, sensorData.bodyIndexImage, sensorData.bodyIndexImage.Length, sizeof(byte)); + } + + sensorData.lastBodyIndexFrameTime = currentBodyIndexTimestamp; + //Debug.Log("D" + deviceIndex + " UpdateBodyIndexTimestamp: " + currentBodyIndexTimestamp + ", Now: " + DateTime.Now.ToString("HH:mm:ss.fff")); + } + } + + // update the floor detector, if needed + if (detectFloorForPoseEstimation && floorDetector != null) + { + if(floorDetector.UpdateFloorDetector(sensorData.depthImage, sensorData.lastDepthFrameTime, ref depthFrameLock, minDepthDistance, maxDepthDistance)) + { + lock (poseFrameLock) + { + Vector3 vSensorPosition = floorDetector.GetSensorPosition(); + Quaternion qSensorRotation = floorDetector.GetSensorRotation(); + + if (sensorRotFlipZ) + { + Vector3 vSensorRotEuler = qSensorRotation.eulerAngles; + vSensorRotEuler.z = -vSensorRotEuler.z; + qSensorRotation = Quaternion.Euler(vSensorRotEuler); + } + + rawPosePosition = vSensorPosition - initialPosePosition; + //rawPoseRotation = Quaternion.Euler(-sensorRotOffset) * qSensorRotation; + rawPoseRotation = qSensorRotation; // Quaternion.Euler(6f, 0f, 0f) * qSensorRotation; // the depth camera is tilted 6 degrees down + + rawPoseTimestamp = floorDetector.GetDepthTimestamp(); // currentPoseTimestamp + //Debug.Log($"Sensor pos: {vSensorPosition.ToString("F2")}, rot: {qSensorRotation.eulerAngles.ToString("F1")}, ts: {rawPoseTimestamp}"); + } + } + } + + // upate the body temporal smoothing, if needed + if(bodyTracker != null && lastTemporalSmoothing != bodyTemporalSmoothing) + { + lastTemporalSmoothing = bodyTemporalSmoothing; + bodyTracker.SetTemporalSmoothing(bodyTemporalSmoothing); + //Debug.Log("BodyTemporalSmoothing: " + bodyTemporalSmoothing); + } + + bool bSuccess = base.UpdateSensorData(sensorData, kinectManager, isPlayMode); + + return bSuccess; + } + + + // creates the point-cloud color shader and its respective buffers, as needed + protected override bool CreatePointCloudColorShader(KinectInterop.SensorData sensorData) + { + pointCloudColorRes = GetPointCloudTexResolution(sensorData); + + if (pointCloudResolution == PointCloudResolution.DepthCameraResolution) + { + if (pointCloudAlignedColorTex == null) + { + pointCloudAlignedColorTex = new Texture2D(sensorData.depthImageWidth, sensorData.depthImageHeight, sensorData.colorImageFormat, false); + } + } + + return true; + } + + // updates the point-cloud color shader with the actual data + protected override bool UpdatePointCloudColorShader(KinectInterop.SensorData sensorData) + { + if (pointCloudResolution == PointCloudResolution.DepthCameraResolution) + { + if (pointCloudAlignedColorTex != null && d2cColorData != null && sensorData.lastDepthCamColorFrameTime != lastDepthCamColorFrameTime) + { + lock (sensorCaptureLock) + { + sensorData.lastDepthCamColorFrameTime = lastDepthCamColorFrameTime; + + ((Texture2D)pointCloudAlignedColorTex).LoadRawTextureData(d2cColorData.GetBuffer(), (int)d2cColorData.Size); + ((Texture2D)pointCloudAlignedColorTex).Apply(); + + if (sensorData.depthCamColorImageTexture != null) + { + Graphics.CopyTexture(pointCloudAlignedColorTex, sensorData.depthCamColorImageTexture); + } + } + + if (pointCloudColorRT != null) + { + Graphics.CopyTexture(pointCloudAlignedColorTex, pointCloudColorRT); + } + + if (pointCloudColorTexture != null) + { + Graphics.Blit(pointCloudAlignedColorTex, pointCloudColorTexture); // CopyTexture + } + + return true; + } + } + else + { + return base.UpdatePointCloudColorShader(sensorData); + } + + return false; + } + + // creates the point-cloud vertex shader and its respective buffers, as needed + protected override bool CreatePointCloudVertexShader(KinectInterop.SensorData sensorData) + { + bool bResult = base.CreatePointCloudVertexShader(sensorData); + + // don't use colorCamDepthDataFrame + colorCamDepthDataFrame = null; + + return bResult; + } + + // updates the point-cloud vertex shader with the actual data + protected override bool UpdatePointCloudVertexShader(KinectInterop.SensorData sensorData, KinectManager kinectManager) + { + if (pointCloudVertexShader != null && pointCloudVertexRT != null && + (sensorData.lastDepth2SpaceFrameTime != lastColorCamDepthFrameTime)) + { + if (pointCloudResolution == PointCloudResolution.ColorCameraResolution) + { + if (c2dDepthData != null) + { + lock (sensorCaptureLock) + { + KinectInterop.SetComputeBufferData(pointCloudDepthBuffer, c2dDepthData.GetBuffer(), (int)c2dDepthData.Size, sizeof(byte)); + } + } + + //sensorData.lastDepth2SpaceFrameTime = lastColorCamDepthFrameTime; // updated in DepthSensorBase below + //Debug.Log("LastColorCamDepthFrameTime: " + lastColorCamDepthFrameTime); + } + } + + return base.UpdatePointCloudVertexShader(sensorData, kinectManager); + } + + // creates the color-depth shader and its respective buffers, as needed + protected override bool CreateColorDepthShader(KinectInterop.SensorData sensorData) + { + if (sensorData.colorDepthTexture == null) + { + sensorData.colorDepthTexture = new RenderTexture(sensorData.colorImageWidth, sensorData.colorImageHeight, 0, RenderTextureFormat.ARGB32); + //sensorData.colorDepthTexture.enableRandomWrite = true; + sensorData.colorDepthTexture.Create(); + } + + colorDepthShaderInited = true; + + return true; + } + + // updates the color-depth shader with the actual data + protected override bool UpdateColorDepthShader(KinectInterop.SensorData sensorData) + { + if (c2dDepthData != null) + { + if (/**sensorData.usedColorDepthBufferTime == sensorData.lastColorDepthBufferTime && */ + sensorData.lastColorDepthBufferTime != lastColorCamDepthFrameTime) + { + lock (sensorCaptureLock) + { + sensorData.lastColorDepthBufferTime = lastColorCamDepthFrameTime; + + if (sensorData.colorImageTexture != null) + { + Graphics.Blit(sensorData.colorImageTexture, sensorData.colorDepthTexture); + } + + if (sensorData.colorDepthBuffer != null) + { + KinectInterop.SetComputeBufferData(sensorData.colorDepthBuffer, c2dDepthData.GetBuffer(), (int)c2dDepthData.Size, sizeof(byte)); + } + + if (sensorData.colorCamDepthImage != null) + { + KinectInterop.CopyBytes(c2dDepthData.GetBuffer(), (int)c2dDepthData.Size, sensorData.colorCamDepthImage, sensorData.colorCamDepthImage.Length, sizeof(ushort)); + sensorData.lastColorCamDepthFrameTime = lastColorCamDepthFrameTime; + } + } + } + + return true; + } + + return false; + } + + // enables or disables color camera depth frame processing + public override void EnableColorCameraDepthFrame(KinectInterop.SensorData sensorData, bool isEnable) + { + if (isEnable && sensorData.colorCamDepthImage == null) + { + sensorData.colorCamDepthImage = new ushort[sensorData.colorImageWidth * sensorData.colorImageHeight]; + } + else if (!isEnable && sensorData.colorCamDepthImage != null) + { + sensorData.colorCamDepthImage = null; + } + } + + // creates the color-infrared shader and its respective buffers, as needed + protected override bool CreateColorInfraredShader(KinectInterop.SensorData sensorData) + { + if (sensorData.colorInfraredTexture == null) + { + sensorData.colorInfraredTexture = new RenderTexture(sensorData.colorImageWidth, sensorData.colorImageHeight, 0, RenderTextureFormat.ARGB32); + //sensorData.colorInfraredTexture.enableRandomWrite = true; + sensorData.colorInfraredTexture.Create(); + } + + Shader infraredImageShader = Shader.Find("Kinect/InfraredImageShader"); + if (infraredImageShader) + { + sensorData.colorInfraredMaterial = new Material(infraredImageShader); + } + + colorInfraredShaderInited = true; + + return true; + } + + // updates the color-infrared shader with the actual data + protected override bool UpdateColorInfraredShader(KinectInterop.SensorData sensorData) + { + if (c2dInfraredData != null) + { + if (/**sensorData.usedColorInfraredBufferTime == sensorData.lastColorInfraredBufferTime && */ + sensorData.lastColorInfraredBufferTime != lastColorCamInfraredFrameTime) + { + lock (sensorCaptureLock) + { + sensorData.lastColorInfraredBufferTime = lastColorCamInfraredFrameTime; + + //if (sensorData.colorImageTexture != null) + //{ + // Graphics.Blit(sensorData.colorImageTexture, sensorData.colorInfraredTexture); + //} + + if (sensorData.colorInfraredBuffer != null) + { + KinectInterop.SetComputeBufferData(sensorData.colorInfraredBuffer, c2dInfraredData.GetBuffer(), (int)c2dInfraredData.Size, sizeof(byte)); + } + + if (sensorData.colorCamInfraredImage != null) + { + KinectInterop.CopyBytes(c2dInfraredData.GetBuffer(), (int)c2dInfraredData.Size, sensorData.colorCamInfraredImage, sensorData.colorCamInfraredImage.Length, sizeof(ushort)); + sensorData.lastColorCamInfraredFrameTime = lastColorCamInfraredFrameTime; + } + } + } + + return true; + } + + return false; + } + + // enables or disables color camera infrared frame processing + public override void EnableColorCameraInfraredFrame(KinectInterop.SensorData sensorData, bool isEnableRawData, bool isEnableTexture) + { + if (isEnableRawData && sensorData.colorCamInfraredImage == null) + { + sensorData.colorCamInfraredImage = new ushort[sensorData.colorImageWidth * sensorData.colorImageHeight]; + } + else if (!isEnableRawData && sensorData.colorCamInfraredImage != null) + { + sensorData.colorCamInfraredImage = null; + } + + if (isEnableTexture && sensorData.colorInfraredBuffer == null) + { + if (sensorData.colorImageWidth > 0 && sensorData.colorImageHeight > 0) + { + int bufferLength = sensorData.colorImageWidth * sensorData.colorImageHeight / 2; + sensorData.colorInfraredBuffer = new ComputeBuffer(bufferLength, sizeof(uint)); + } + } + else if (!isEnableTexture && sensorData.colorInfraredBuffer != null) + { + sensorData.colorInfraredBuffer.Release(); + sensorData.colorInfraredBuffer.Dispose(); + sensorData.colorInfraredBuffer = null; + } + } + + // creates the color-camera body index shader and its respective buffers, as needed + protected override bool CreateColorBodyIndexShader(KinectInterop.SensorData sensorData) + { + if (sensorData.colorBodyIndexTexture == null) + { + sensorData.colorBodyIndexTexture = new RenderTexture(sensorData.colorImageWidth, sensorData.colorImageHeight, 0, RenderTextureFormat.ARGB32); + //sensorData.colorBodyIndexTexture.enableRandomWrite = true; + sensorData.colorBodyIndexTexture.Create(); + } + + colorBodyIndexShaderInited = true; + + return true; + } + + // updates the color-camera body index shader with the actual data + protected override bool UpdateColorBodyIndexShader(KinectInterop.SensorData sensorData) + { + if (c2BodyIndexImage != null) + { + if (/**sensorData.usedColorBodyIndexBufferTime == sensorData.lastColorBodyIndexBufferTime && */ + sensorData.lastColorBodyIndexBufferTime != lastColorCamBodyIndexFrameTime) + { + lock (bodyTrackerLock) + { + sensorData.lastColorBodyIndexBufferTime = lastColorCamBodyIndexFrameTime; + + if (sensorData.colorImageTexture != null) + { + Graphics.Blit(sensorData.colorImageTexture, sensorData.colorBodyIndexTexture); + } + + if (sensorData.colorBodyIndexBuffer != null) + { + KinectInterop.SetComputeBufferData(sensorData.colorBodyIndexBuffer, c2BodyIndexImage.GetBuffer(), (int)c2BodyIndexImage.Size, sizeof(byte)); + } + + if (sensorData.colorCamBodyIndexImage != null) + { + KinectInterop.CopyBytes(c2BodyIndexImage.GetBuffer(), (int)c2BodyIndexImage.Size, sensorData.colorCamBodyIndexImage, sensorData.colorCamBodyIndexImage.Length, sizeof(byte)); + sensorData.lastColorCamBodyIndexFrameTime = lastColorCamBodyIndexFrameTime; + } + } + } + + return true; + } + + return false; + } + + // enables or disables color camera body-index frame processing + public override void EnableColorCameraBodyIndexFrame(KinectInterop.SensorData sensorData, bool isEnable) + { + if (isEnable && sensorData.colorCamBodyIndexImage == null) + { + sensorData.colorCamBodyIndexImage = new byte[sensorData.colorImageWidth * sensorData.colorImageHeight]; + } + else if (!isEnable && sensorData.colorCamBodyIndexImage != null) + { + sensorData.colorCamBodyIndexImage = null; + } + } + + + public override void PollSensorFrames(KinectInterop.SensorData sensorData) + { + try + { + if (kinectPlayback != null) + { + if (kinectPlayback.IsEndOfStream() && !loopPlayback && playbackPosSeconds < 0f) + return; + + if(playbackStartTime == 0) + { + // start time + //playbackStartTime = DateTime.Now.Ticks; + playbackStartTime = playbackUpdateTime; + } + + long currentPlayTime = isSensorMaster || syncSensorIndex < 0 || sensorSyncher == null ? + (playbackPosSeconds < 0f ? (playbackUpdateTime - playbackStartTime) : // (DateTime.Now.Ticks - playbackStartTime) : + (long)(playbackPosSeconds * 10000000)) : sensorSyncher.GetMasterPlayTime(); // for sub - get master time + //Debug.Log($"curPlayTime: {currentPlayTime}, updateTime: {playbackUpdateTime}, startTime: {playbackStartTime}"); + + if (sensorSyncher != null && syncSensorIndex >= 0) + { + // subs sync to master time + if (isSensorMaster) + { + sensorSyncher.SetMasterPlayTime(currentPlayTime); // master capture + } + else if (currentPlayTime == lastPlayTime) + { + //Debug.Log("D" + deviceIndex + " Ignoring sub playTime: " + currentPlayTime + ", minTime: " + GetMinSensorFrameTime()); + return; // don't process again the same sub capture + } + } + + lastPlayTime = currentPlayTime; + //Debug.Log("D" + deviceIndex + " PlayTime: " + currentPlayTime + ", isMaster: " + isSensorMaster); + + if ((frameSourceFlags & (KinectInterop.FrameSource)0x7F) != 0) + { + kinectPlayback.SeekTimestamp((ulong)(currentPlayTime / 10)); + Capture capture = kinectPlayback.GetNextCapture(); + + //Debug.Log("D" + deviceIndex + " playTime: " + currentPlayTime + ", startTime: " + startTimeOffset + ", recTime: " + (currentPlayTime + startTimeOffset)); + + if (capture != null) + { + //long capTimeStamp = capture.Depth != null ? capture.Depth.DeviceTimestamp.Ticks : + // capture.Color != null ? capture.Color.DeviceTimestamp.Ticks : 0; + //Debug.Log("D" + deviceIndex + " Got capture. Timestamp: " + capTimeStamp + ", Now: " + DateTime.Now.ToString("HH:mm:ss.fff")); + + ProcessCameraFrames(sensorData, capture); + //capture.Dispose(); + + //currentFrameNumber++; + } + else + { + if (consoleLogMessages) + Debug.Log("End of recording reached: " + recordingFile); + + if(loopPlayback) + { + if (consoleLogMessages) + Debug.Log("Looping playback..."); + //playbackStartTime = DateTime.Now.Ticks; + playbackStartTime = playbackUpdateTime; + } + } + + } + + //if ((frameSourceFlags & KinectInterop.FrameSource.TypePose) != 0) + //{ + // ImuSample imuSample = kinectPlayback.GetNextImuSample(); + + // while (imuSample != null) + // { + // ProcessImuFrame(imuSample); + + // ulong imuTimestamp = (ulong)imuSample.AccelerometerTimestamp.Ticks; + // if (kinectPlayback.IsEndOfStream() || imuTimestamp >= rawDepthTimestamp) + // break; + + // imuSample = kinectPlayback.GetNextImuSample(); + // } + //} + } + else + { + if (isCamerasStarted) + { + int ci = 0; + for (ci = 0; ci < BUF_CAPTURES_SIZE; ci++) + { + Capture cap = kinectSensor.GetCapture(timeToWait); + if (cap == null) + break; + + bufCaptures[ci] = cap; + //bufCapTimes[ci] = cap.Depth != null ? cap.Depth.DeviceTimestamp.Ticks : + // cap.Color != null ? cap.Color.DeviceTimestamp.Ticks : 0; + } + + int bufCaptureLen = ci; + int lastCapIndex = bufCaptureLen - 1; + + if (bufCaptureLen > 0) + { + if (kinectRecording != null) + { + // save the last capture ti the recording + kinectRecording.WriteCapture(bufCaptures[lastCapIndex]); + } + + if (sensorSyncher != null && syncSensorIndex >= 0) // check for synched device + { + // process all captures + for (ci = 0; ci < bufCaptureLen; ci++) + { + //long capTimeStamp = bufCaptures[ci].Depth != null ? bufCaptures[ci].Depth.DeviceTimestamp.Ticks : + // bufCaptures[ci].Color != null ? bufCaptures[ci].Color.DeviceTimestamp.Ticks : 0; + //Debug.Log("D" + deviceIndex + " Got capture. Timestamp: " + capTimeStamp + ", CapIndex: " + ci + ", Now: " + DateTime.Now.ToString("HH:mm:ss.fff")); + + ProcessCameraFrames(sensorData, bufCaptures[ci]); + } + } + else + { + // process the last capture only + for (ci = 0; ci < lastCapIndex; ci++) + { + //Debug.LogWarning("D" + deviceIndex + " Disposing capture. Timestamp: " + bufCapTimes[ci] + ", CapIndex: " + ci); + bufCaptures[ci].Dispose(); + } + + //long capTimeStamp = bufCaptures[lastCapIndex].Depth != null ? bufCaptures[lastCapIndex].Depth.DeviceTimestamp.Ticks : + // bufCaptures[lastCapIndex].Color != null ? bufCaptures[lastCapIndex].Color.DeviceTimestamp.Ticks : 0; + //Debug.Log("D" + deviceIndex + " Got capture. Timestamp: " + capTimeStamp + ", CapIndex: " + lastCapIndex + ", Now: " + DateTime.Now.ToString("HH:mm:ss.fff")); + + ProcessCameraFrames(sensorData, bufCaptures[lastCapIndex]); + } + } + + //Capture capture = kinectSensor.GetCapture(timeToWait); + //int maxCaptures = 3; + + //while (capture != null) + //{ + // long capTimestamp = capture.Depth != null ? capture.Depth.DeviceTimestamp.Ticks : + // capture.Color != null ? capture.Color.DeviceTimestamp.Ticks : 0; + // Debug.Log("D" + deviceIndex + " Got capture. Timestamp: " + capTimestamp + ", CapCount: " + maxCaptures + ", Now: " + DateTime.Now.ToString("HH:mm:ss.fff")); + + // // check if there is other capture in the queue + // Capture nextCapture = null; // kinectSensor.GetCapture(timeToWait); // + + // if (nextCapture == null || (sensorSyncher != null && syncSensorIndex >= 0)) + // { + // ProcessCameraFrames(sensorData, capture); + // //capture.Dispose(); + // } + // else + // { + // capTimestamp = capture.Depth != null ? capture.Depth.DeviceTimestamp.Ticks : + // capture.Color != null ? capture.Color.DeviceTimestamp.Ticks : 0; + // Debug.LogWarning("D" + deviceIndex + " Disposing capture. Timestamp: " + capTimestamp); + + // capture.Dispose(); + // } + + // // don't allow endless loop + // if (--maxCaptures <= 0) + // break; + + // capture = kinectSensor.GetCapture(timeToWait); // nextCapture; // + // //currentFrameNumber++; + //} + } + + if (isImuStarted) + { + ImuSample imuSample = kinectSensor.GetImuSample(timeToWait); + + while(isImuStarted && imuSample != null) + { + ProcessImuFrame(imuSample); + imuSample = isImuStarted ? kinectSensor.GetImuSample(timeToWait) : null; + } + } + } + } + catch (System.TimeoutException) + { + // do nothing + } + catch (System.Exception ex) + { + Debug.LogException(ex); + } + } + + + // processes the camera frames + private void ProcessCameraFrames(KinectInterop.SensorData sensorData, Capture capture) + { + Capture btCapture = null; + + if (bodyTracker != null) + { + // check for synched capture + if (sensorSyncher != null && syncSensorIndex >= 0 && capture != null && capture.Depth != null) + { + //Debug.Log("D" + deviceIndex + " Syncher-UpdatePushBtCapture. Timestamp: " + capture.Depth.DeviceTimestamp.Ticks + ", startTime: " + startTimeOffset + ", diff: " + (capture.Depth.DeviceTimestamp.Ticks - startTimeOffset)); + sensorSyncher.UpdatePushBtCapture(syncSensorIndex, capture.Depth.DeviceTimestamp.Ticks - startTimeOffset, capture); + return; + } + + // check for available body frame capture + btCapture = PollBodyFrame(sensorData, capture); + + if(isSyncBodyAndDepth) + { + if(capture != null) + { + //long capTimestamp = capture.Depth != null ? capture.Depth.DeviceTimestamp.Ticks : + // capture.Color != null ? capture.Color.DeviceTimestamp.Ticks : 0; + //Debug.LogWarning("D" + deviceIndex + " Disposing non-bt capture. Timestamp: " + capTimestamp + ", BtCapTimestamp: " + (btCapture != null && btCapture.Depth != null ? btCapture.Depth.DeviceTimestamp.Ticks : 0)); + + capture.Dispose(); + capture = null; + } + + // process the body tracking capture + capture = btCapture; + + //if (btCapture != null && btCapture.Depth != null) + // Debug.Log("D" + deviceIndex + " PolledBtCapture, Timestamp: " + btCapture.Depth.DeviceTimestamp.Ticks); + } + } + + if (capture != null && (!isSyncBodyAndDepth || btCapture != null)) + { + // check for synched capture + if (sensorSyncher != null && syncSensorIndex >= 0) + { + long capTimestamp = capture.Depth != null ? capture.Depth.DeviceTimestamp.Ticks : + capture.Color != null ? capture.Color.DeviceTimestamp.Ticks : 0; + + //Debug.Log("D" + deviceIndex + " Syncher-UpdateCapture. Timestamp: " + capTimestamp); + sensorSyncher.UpdateCapture(syncSensorIndex, capTimestamp - startTimeOffset, capture); + return; + } + + ProcessSensorCapture(sensorData, capture); + } + //else + //{ + // bool diffCaps = capture != null && btCapture != null && !capture.NativeEquals(btCapture); + + // if(capture != null) + // { + // long capTimestamp = capture.Depth != null ? capture.Depth.DeviceTimestamp.Ticks : + // capture.Color != null ? capture.Color.DeviceTimestamp.Ticks : 0; + + // Debug.LogError("D" + deviceIndex + " Leaking capture. Timestamp: " + capTimestamp); + // } + + // if (btCapture != null && diffCaps) + // { + // long capTimestamp = btCapture.Depth != null ? btCapture.Depth.DeviceTimestamp.Ticks : + // btCapture.Color != null ? btCapture.Color.DeviceTimestamp.Ticks : 0; + + // Debug.LogError("D" + deviceIndex + " Leaking bt-capture. Timestamp: " + capTimestamp); + // } + //} + + if (btCapture != null) + { + // dispose body capture + //btCapture.Dispose(); + } + } + + // processes the bt-capture, if any + public void ProcessBtSensorCapture(KinectInterop.SensorData sensorData) + { + Capture btCapture = PollBodyFrame(sensorData, null); + ProcessSensorCapture(sensorData, btCapture); + } + + // processes the given camera capture + public void ProcessSensorCapture(KinectInterop.SensorData sensorData, Capture capture) + { + if (capture == null) + return; + + lock (sensorCaptureLock) + { + // depth frame time + ulong depthFrameTime = isSyncDepthAndColor && capture.Depth != null ? (ulong)capture.Depth.DeviceTimestamp.Ticks : 0; + bool isFrameUpdate = false; + + // depth frame + if (capture.Depth != null && (frameSourceFlags & KinectInterop.FrameSource.TypeDepth) != 0 && /**rawDepthImage != null &&*/ + (getAllSensorFrames || rawDepthTimestamp == sensorData.lastDepthFrameTime)) + { + //lock (depthFrameLock) + { + isFrameUpdate = true; + //KinectInterop.CopyBytes(capture.Depth.GetBuffer(), (int)capture.Depth.Size, rawDepthImage, rawDepthImage.Length, sizeof(ushort)); + rawDepthTimestamp = (ulong)capture.Depth.DeviceTimestamp.Ticks; + //Debug.Log("D" + deviceIndex + " RawDepthTimestamp: " + rawDepthTimestamp + ", Now: " + DateTime.Now.ToString("HH:mm:ss.fff")); + } + } + + // color frame + if (capture.Color != null && (frameSourceFlags & KinectInterop.FrameSource.TypeColor) != 0 && /**rawColorImage != null &&*/ + (getAllSensorFrames || rawColorTimestamp == sensorData.lastColorFrameTime)) + { + //lock (colorFrameLock) + { + isFrameUpdate = true; + //KinectInterop.CopyBytes(capture.Color.GetBuffer(), (int)capture.Color.Size, rawColorImage, rawColorImage.Length, sizeof(byte)); + rawColorTimestamp = depthFrameTime != 0 ? depthFrameTime : (ulong)capture.Color.DeviceTimestamp.Ticks; + //Debug.Log("D" + deviceIndex + " RawColorTimestamp: " + rawColorTimestamp + ", Now: " + DateTime.Now.ToString("HH:mm:ss.fff")); + } + } + + // infrared frame + if (capture.IR != null && (frameSourceFlags & KinectInterop.FrameSource.TypeInfrared) != 0 && /**rawInfraredImage != null &&*/ + (getAllSensorFrames || rawInfraredTimestamp == sensorData.lastInfraredFrameTime)) + { + //lock (infraredFrameLock) + { + isFrameUpdate = true; + //KinectInterop.CopyBytes(capture.IR.GetBuffer(), (int)capture.IR.Size, rawInfraredImage, rawInfraredImage.Length, sizeof(ushort)); + rawInfraredTimestamp = depthFrameTime != 0 ? depthFrameTime : (ulong)capture.IR.DeviceTimestamp.Ticks; + //Debug.Log("D" + deviceIndex + " RawInfraredTimestamp: " + rawInfraredTimestamp + ", Now: " + DateTime.Now.ToString("HH:mm:ss.fff")); + } + } + + if (isFrameUpdate) + { + if (sensorCapture != null) + { + //long capTimestamp = sensorCapture.Depth != null ? sensorCapture.Depth.DeviceTimestamp.Ticks : + // sensorCapture.Color != null ? sensorCapture.Color.DeviceTimestamp.Ticks : 0; + //Debug.LogWarning("D" + deviceIndex + " Disposing sensor capture. Timestamp: " + capTimestamp + ", Now: " + DateTime.Now.ToString("HH:mm:ss.fff")); + + sensorCapture.Dispose(); + sensorCapture = null; + } + + // save the current capture + sensorCapture = capture; + + // transformation data frames + ulong depthFrameTime2 = depthFrameTime != 0 ? depthFrameTime : capture.Depth != null ? (ulong)capture.Depth.DeviceTimestamp.Ticks : 0; + ProcessTransformedFrames(sensorData, capture, depthFrameTime2); + } + } + + } + + + // creates the transformed sensor frames, if needed + private void ProcessTransformedFrames(KinectInterop.SensorData sensorData, Capture capture, ulong depthFrameTime) + { + if ((pointCloudAlignedColorTex != null || pointCloudDepthBuffer != null || sensorData.colorDepthBuffer != null || + sensorData.colorCamDepthImage != null || sensorData.colorInfraredBuffer != null || sensorData.colorCamInfraredImage != null) && + capture != null && capture.Color != null && capture.Depth != null && + (!isSyncDepthAndColor || (rawColorTimestamp == depthFrameTime && rawDepthTimestamp == depthFrameTime))) + { + if (coordMapperTransform == null) + { + coordMapperTransform = coordMapperCalib.CreateTransformation(); + } + + //ulong depthFrameDeviceTimestamp = (ulong)capture.Depth.DeviceTimestamp.Ticks; + if (pointCloudAlignedColorTex != null && lastDepthCamColorFrameTime != rawDepthTimestamp) + { + if (d2cColorData == null) + { + d2cColorData = new Image(ImageFormat.ColorBGRA32, sensorData.depthImageWidth, sensorData.depthImageHeight, sensorData.depthImageWidth * sensorData.colorImageStride); + } + + //lock (depthCamColorFrameLock) + { + coordMapperTransform.ColorImageToDepthCamera(capture.Depth, capture.Color, d2cColorData); + //d2cColorData.CopyTo(depthCamColorDataFrame, 0, 0, depthCamColorDataFrame.Length); + lastDepthCamColorFrameTime = rawDepthTimestamp; + //Debug.Log("D" + deviceIndex + " DepthCamColorFrameTime: " + lastDepthCamColorFrameTime + ", Now: " + DateTime.Now.ToString("HH:mm:ss.fff")); + } + } + + if (((pointCloudDepthBuffer != null && pointCloudResolution == PointCloudResolution.ColorCameraResolution) || + sensorData.colorDepthBuffer != null || sensorData.colorCamDepthImage != null) && + lastColorCamDepthFrameTime != rawDepthTimestamp) + { + if (c2dDepthData == null) + { + c2dDepthData = new Image(ImageFormat.Depth16, sensorData.colorImageWidth, sensorData.colorImageHeight, sensorData.colorImageWidth * sizeof(ushort)); + } + + //lock (colorCamDepthFrameLock) + { + coordMapperTransform.DepthImageToColorCamera(capture.Depth, c2dDepthData); + //c2dDepthData.CopyTo(colorCamDepthDataFrame, 0, 0, colorCamDepthDataFrame.Length); + lastColorCamDepthFrameTime = rawDepthTimestamp; + //Debug.Log("D" + deviceIndex + " ColorCamDepthFrameTime: " + lastColorCamDepthFrameTime + ", Now: " + DateTime.Now.ToString("HH:mm:ss.fff")); + } + } + + if ((sensorData.colorInfraredBuffer != null || sensorData.colorCamInfraredImage != null) && capture.IR != null && + lastColorCamInfraredFrameTime != rawDepthTimestamp) + { + if (c2IrDepthImage == null) + { + c2IrDepthImage = new Image(ImageFormat.Depth16, sensorData.colorImageWidth, sensorData.colorImageHeight, sensorData.colorImageWidth * sizeof(ushort)); + } + + if (c2IrCustomImage == null) + { + c2IrCustomImage = new Image(ImageFormat.Custom16, capture.IR.WidthPixels, capture.IR.HeightPixels, capture.IR.StrideBytes); + } + + if (c2dInfraredData == null) + { + c2dInfraredData = new Image(ImageFormat.Custom16, sensorData.colorImageWidth, sensorData.colorImageHeight, sensorData.colorImageWidth * sizeof(ushort)); + } + + //lock (colorCamDepthFrameLock) + { + int iIrImageLen = capture.IR.StrideBytes * capture.IR.HeightPixels; + c2IrCustomImage.CopyBytesFrom(capture.IR.GetBuffer(), iIrImageLen, iIrImageLen); + + coordMapperTransform.DepthImageToColorCameraCustom(capture.Depth, c2IrCustomImage, c2IrDepthImage, c2dInfraredData, TransformationInterpolationType.Nearest, 0); + lastColorCamInfraredFrameTime = rawDepthTimestamp; + //Debug.Log("D" + deviceIndex + " ColorCamInfraredFrameTime: " + lastColorCamInfraredFrameTime + ", Now: " + DateTime.Now.ToString("HH:mm:ss.fff")); + } + } + } + + // transformed body index frame + //Debug.Log(" depthFrameTime: " + depthFrameTime + ", rawBodyIndexTimestamp: " + rawBodyIndexTimestamp + ", lastColorCamBodyIndexFrameTime: " + lastColorCamBodyIndexFrameTime); + if ((sensorData.colorCamBodyIndexImage != null || sensorData.colorBodyIndexBuffer != null) && + capture != null && capture.Color != null && capture.Depth != null && bodyIndexImage != null && + (!isSyncBodyAndDepth || (rawBodyIndexTimestamp == depthFrameTime)) && (rawBodyIndexTimestamp != lastColorCamBodyIndexFrameTime)) + { + if (coordMapperTransform == null) + { + coordMapperTransform = coordMapperCalib.CreateTransformation(); + } + + if (c2BtDepthImage == null) + { + c2BtDepthImage = new Image(ImageFormat.Depth16, sensorData.colorImageWidth, sensorData.colorImageHeight, sensorData.colorImageWidth * sizeof(ushort)); + } + + if (c2BodyIndexImage == null) + { + c2BodyIndexImage = new Image(ImageFormat.Custom8, sensorData.colorImageWidth, sensorData.colorImageHeight, sensorData.colorImageWidth * sizeof(byte)); + } + + //lock (colorCamBodyIndexFrameLock) + { + lock (bodyTrackerLock) + { + coordMapperTransform.DepthImageToColorCameraCustom(capture.Depth, bodyIndexImage, c2BtDepthImage, c2BodyIndexImage, TransformationInterpolationType.Linear, 255); + //c2BodyIndexImage.CopyTo(colorCamBodyIndexFrame, 0, 0, colorCamBodyIndexFrame.Length); + //System.IO.File.WriteAllBytes("ColorCamBodyIndexFrame.bin", colorCamBodyIndexFrame); + lastColorCamBodyIndexFrameTime = rawBodyIndexTimestamp; + //Debug.Log("D" + deviceIndex + " ColorCamBodyIndexFrameTime: " + lastColorCamBodyIndexFrameTime + ", Now: " + DateTime.Now.ToString("HH:mm:ss.fff")); + } + } + } + + } + + + //// in playback mode - waits until the given time stamp + //private void WaitForPlaybackTimestamp(string frameSource, long frameTimestamp) + //{ + // long currentPlayTime = DateTime.Now.Ticks - playbackStartTime; + + // if (currentPlayTime < frameTimestamp) + // { + // Debug.Log("Waiting for " + frameSource + " timestamp " + frameTimestamp + ". Current play time is: " + currentPlayTime); + // } + + // while (currentPlayTime < frameTimestamp) + // { + // currentPlayTime = DateTime.Now.Ticks - playbackStartTime; + // } + //} + + // processes the IMU frame + private void ProcessImuFrame(ImuSample imuSample) + { + if (kinectPlayback != null) + { + //WaitForPlaybackTimestamp("acc", imuSample.AccelerometerTimestampInUsec); + //WaitForPlaybackTimestamp("gyro", imuSample.GyroTimestampInUsec); + } + + lastImuSample = curImuSample; + curImuSample = imuSample; + //Debug.Log($"imuTS: {imuSample.AccelerometerTimestamp.Ticks}"); + + if (!flipImuRotation && lastImuSample == null && Mathf.Abs(imuSample.AccelerometerSample.Y) >= 1f) + { + // check for rolled imu + flipImuRotation = true; + imuTurnRot2 = Quaternion.Euler(90f, -90f, 0f); + } + + if (!detectFloorForPoseEstimation && lastImuSample != null && imuAhrs != null && + imuSample.AccelerometerTimestamp.Ticks != lastImuSample.AccelerometerTimestamp.Ticks) + { + prevRotZ = imuRotation.eulerAngles.z; + Array.Copy(imuAhrs.Quaternion, prevQuat, prevQuat.Length); + + imuAhrs.SamplePeriod = ((imuSample.AccelerometerTimestamp.Ticks - lastImuSample.AccelerometerTimestamp.Ticks) / 10) * 0.000001f; + imuAhrs.Update(imuSample.GyroSample.X, imuSample.GyroSample.Y, imuSample.GyroSample.Z, imuSample.AccelerometerSample.X, imuSample.AccelerometerSample.Y, imuSample.AccelerometerSample.Z); + + float[] ahrsQuat = imuAhrs.Quaternion; + imuRotation = new Quaternion(ahrsQuat[1], ahrsQuat[2], ahrsQuat[3], ahrsQuat[0]); + Quaternion transRotation = imuTurnRot2 * imuRotation * imuTurnRot1; + + if (imuAhrs.E2 < 0.0001f && Mathf.Abs(imuRotation.eulerAngles.z - prevRotZ) <= 0.1f) + { + // correct the continuous yaw, when imu doesn't move + Array.Copy(prevQuat, imuAhrs.Quaternion, prevQuat.Length); + + ahrsQuat = prevQuat; + imuRotation = new Quaternion(ahrsQuat[1], ahrsQuat[2], ahrsQuat[3], ahrsQuat[0]); + transRotation = imuTurnRot2 * imuRotation * imuTurnRot1; + + if (!imuYawAtStartSet) + { + // initial yaw + imuYawAtStartSet = true; + imuYawAtStart = new Vector3(0f, transRotation.eulerAngles.y, 0f); + imuFixAtStart = Quaternion.Inverse(Quaternion.Euler(imuYawAtStart)); + } + } + + if (imuYawAtStartSet) + { + // fix the initial yaw + transRotation = imuFixAtStart * transRotation; + } + + lock (poseFrameLock) + { + // rawPosePosition + rawPoseRotation = transRotation; + rawPoseRotation = Quaternion.Euler(6f, 0f, 0f) * rawPoseRotation; // the depth camera is tilted 6 degrees down + + rawPoseTimestamp = (ulong)imuSample.AccelerometerTimestamp.Ticks; + //poseFrameNumber = currentFrameNumber; + //Debug.Log($"transRot: {transRotation.eulerAngles}, poseRot: {rawPoseRotation}, ts: {rawPoseTimestamp}"); + } + } + + //var onImuSample = OnImuSample; + //if(onImuSample != null) + //{ + // onImuSample.Invoke(imuSample, rawDepthTimestamp, rawColorTimestamp); + //} + + if (detectFloorForPoseEstimation && floorDetector != null) + { + // update imu up-vector + System.Numerics.Vector3 accSample = imuSample.AccelerometerSample; + Vector3 vAccSample = new Vector3(accSample.X, accSample.Y, accSample.Z); + + int iAccDepth = (int)CalibrationDeviceType.Accel * (int)CalibrationDeviceType.Num + (int)CalibrationDeviceType.Depth; + float[] accDepthRot = coordMapperCalib.DeviceExtrinsics[iAccDepth].Rotation; + + Vector3 Rx = new Vector3(accDepthRot[0], accDepthRot[1], accDepthRot[2]); + Vector3 Ry = new Vector3(accDepthRot[3], accDepthRot[4], accDepthRot[5]); + Vector3 Rz = new Vector3(accDepthRot[6], accDepthRot[7], accDepthRot[8]); + + Vector3 imuUpVector = new Vector3(Vector3.Dot(Rx, vAccSample), Vector3.Dot(Ry, vAccSample), Vector3.Dot(Rz, vAccSample)); + //Debug.Log($"accSample: {vAccSample}, upVector: {imuUpVector}"); + + floorDetector.UpdateImuUpVector(imuUpVector); + } + } + + + // initializes the body-data structures and starts the body tracking + public bool InitBodyTracking(KinectInterop.FrameSource dwFlags, KinectInterop.SensorData sensorData, Calibration calibration, bool bCreateTracker) + { + try + { + if ((dwFlags & KinectInterop.FrameSource.TypeDepth) != 0) // check for depth stream + { + string bodyTrackingPath = BODY_TRACKING_TOOLS_FOLDER; + if (!string.IsNullOrEmpty(bodyTrackingPath) && bodyTrackingPath[bodyTrackingPath.Length - 1] != '/' && bodyTrackingPath[bodyTrackingPath.Length - 1] != '\\') + { + bodyTrackingPath += "/"; + } + + if (!string.IsNullOrEmpty(bodyTrackingPath) && !bodyTrackingPath.EndsWith("/tools/") && !bodyTrackingPath.EndsWith("\\tools\\") && !bodyTrackingPath.EndsWith("\\tools/")) + { + bodyTrackingPath += "tools/"; + } + + if (!KinectInterop.IsFolderExist(bodyTrackingPath)) + { + Debug.LogWarning("BT-Folder not found: " + bodyTrackingPath); + } + + // copy the needed libraries + //KinectInterop.CopyFolderFile(bodyTrackingPath, "cublas64_100.dll", "."); // v1.0.1 + //KinectInterop.CopyFolderFile(bodyTrackingPath, "cudart64_100.dll", "."); + //KinectInterop.CopyFolderFile(bodyTrackingPath, "cudnn64_7.dll", "."); + + KinectInterop.CopyFolderFile(bodyTrackingPath, "cublas64_11.dll", "."); // v1.1.1 + KinectInterop.CopyFolderFile(bodyTrackingPath, "cublasLt64_11.dll", "."); + KinectInterop.CopyFolderFile(bodyTrackingPath, "cudart64_110.dll", "."); + KinectInterop.CopyFolderFile(bodyTrackingPath, "cudnn_cnn_infer64_8.dll", "."); + KinectInterop.CopyFolderFile(bodyTrackingPath, "cudnn_ops_infer64_8.dll", "."); + KinectInterop.CopyFolderFile(bodyTrackingPath, "cudnn64_8.dll", "."); + KinectInterop.CopyFolderFile(bodyTrackingPath, "cufft64_10.dll", "."); + KinectInterop.CopyFolderFile(bodyTrackingPath, "directml.dll", "."); + KinectInterop.CopyFolderFile(bodyTrackingPath, "myelin64_1.dll", ".", true); // v1.1.0 + KinectInterop.CopyFolderFile(bodyTrackingPath, "nvinfer.dll", "."); + KinectInterop.CopyFolderFile(bodyTrackingPath, "nvinfer_plugin.dll", "."); + KinectInterop.CopyFolderFile(bodyTrackingPath, "nvrtc64_111_0.dll", ".", true); // v1.1.0 + KinectInterop.CopyFolderFile(bodyTrackingPath, "nvrtc-builtins64_111.dll", ".", true); // v1.1.0 + KinectInterop.CopyFolderFile(bodyTrackingPath, "nvrtc64_112_0.dll", "."); + KinectInterop.CopyFolderFile(bodyTrackingPath, "nvrtc-builtins64_114.dll", "."); + + KinectInterop.CopyFolderFile(bodyTrackingPath, "onnxruntime.dll", "."); + KinectInterop.CopyFolderFile(bodyTrackingPath, "onnxruntime_providers_cuda.dll", "."); // v1.1.1 + KinectInterop.CopyFolderFile(bodyTrackingPath, "onnxruntime_providers_shared.dll", "."); + KinectInterop.CopyFolderFile(bodyTrackingPath, "onnxruntime_providers_tensorrt.dll", "."); + KinectInterop.CopyFolderFile(bodyTrackingPath, "vcomp140.dll", ".", true); + + //KinectInterop.CopyFolderFile(bodyTrackingPath, "dnn_model_2_0.onnx", "."); + string bodyTrackingModelFile = BODY_TRACKING_FULL_MODEL_FILE; + if (bodyTrackingModelType == BodyTrackingModelType.LiteModel) // v1.1.0 + bodyTrackingModelFile = BODY_TRACKING_LITE_MODEL_FILE; + KinectInterop.CopyFolderFile(bodyTrackingPath, bodyTrackingModelFile, "."); + + // init basic variables + base.InitBodyTracking(dwFlags, sensorData); + rawBodyIndexImage = null; // don't use BI buffering + + btQueueCount = 0; + btQueueWaitTime = 0; // MAX_BODY_QUEUE_LENGTH <= 1 ? 0 : -1; + //Debug.Log("MaxQueueLen: " + MAX_BODY_QUEUE_LENGTH + ", WaitTime: " + btQueueWaitTime); + + if (bCreateTracker) + { + k4abt_tracker_configuration_t btConfig = new k4abt_tracker_configuration_t(); + btConfig.sensor_orientation = bodyTrackingSensorOrientation; + btConfig.processing_mode = bodyTrackingProcessingMode; // k4abt_tracker_processing_mode_t.K4ABT_TRACKER_PROCESSING_MODE_GPU_CUDA; + btConfig.gpu_device_id = 0; // 1st GPU + btConfig.model_path = bodyTrackingModelFile; + //Debug.Log("Loading BT model: " + bodyTrackingModelFile); + + bodyTracker = new BodyTracking(calibration, btConfig); + bodyTracker.SetTemporalSmoothing(bodyTemporalSmoothing); // 0f + //Debug.Log("BodyTemporalSmoothing: " + bodyTemporalSmoothing); + + bodySkeletonData = bodyTracker.CreateBodySkeleton(); + btFrameData = new K4abtFrameData(bodyTracker, 0); + //Debug.Log("Body tracker successfully started."); + + // start body-tracker thread + bodyTrackerStopEvent = new System.Threading.AutoResetEvent(false); + bodyTrackerThread = new System.Threading.Thread(() => BodyTrackerThread(sensorData)); + bodyTrackerThread.Name = "BT-" + GetType().Name + deviceIndex; + bodyTrackerThread.IsBackground = true; + bodyTrackerThread.Start(); + } + } + else + { + Debug.LogWarning("Body tracked not started! Please enable the depth stream, to allow tracking of the users."); + } + } + catch (System.Exception ex) + { + Debug.LogError("Can't create body tracker for " + GetType().Name + deviceIndex + "!"); + Debug.LogException(ex); + } + + return (bodyTracker != null); + } + + + // stops the body tracker and releases its data + public override void StopBodyTracking(KinectInterop.SensorData sensorData) + { + if (bodyTrackerThread != null) + { + //Debug.Log("Stopping BT thread: " + bodyTrackerThread.Name); + + // stop the frame-polling thread + bodyTrackerStopEvent.Set(); + bodyTrackerThread.Join(); + + bodyTrackerThread = null; + bodyTrackerStopEvent.Dispose(); + bodyTrackerStopEvent = null; + + //Debug.Log("BT thread stopped."); + } + + if (bodyTracker != null) + { + // wait for all enqueued frames to pop + int maxWaitTime = 5000; + + while (btQueueCount > 0 && maxWaitTime > 0) + { + IntPtr bodyFrameHandle = bodyTracker.PollBodyFrame(1000); + + if (bodyFrameHandle != IntPtr.Zero) + { + ulong bodyFrameTime = bodyTracker.GetBodyFrameTimestampUsec(bodyFrameHandle); + + Image bodyIndexImage = bodyTracker.GetBodyIndexMap(bodyFrameHandle); + bodyIndexImage.Dispose(); + + Capture btCapture = bodyTracker.GetCapture(bodyFrameHandle); + btCapture.Dispose(); + + bodyTracker.ReleaseBodyFrame(bodyFrameHandle); + bodyFrameHandle = IntPtr.Zero; + + lock (bodyCaptureLock) + { + btQueueCount--; + } + + //Debug.Log("D" + deviceIndex + " PoppedBodyTimestamp: " + bodyFrameTime + ", QueueLen: " + btQueueCount); + } + + maxWaitTime -= 1000; + } + + if (btQueueCount > 0 && maxWaitTime <= 0) + { + Debug.LogWarning("Timed out waiting to pop all BT-frames. QueueCount: " + btQueueCount); + } + + bodyTracker.ShutdownBodyTracker(); + bodyTracker.Dispose(); + bodyTracker = null; + + lock (bodyCaptureLock) + { + btQueueCount = 0; + btQueueWaitTime = 0; + } + + //Debug.Log("Body tracker shut down."); + } + + // dispose BI image + bodyIndexImage?.Dispose(); + bodyIndexImage = null; + + // dispose transform images + c2BtDepthImage?.Dispose(); + c2BtDepthImage = null; + + c2BodyIndexImage?.Dispose(); + c2BodyIndexImage = null; + + coordMapperTransform?.Dispose(); + coordMapperTransform = null; + + // invoke the base method + base.StopBodyTracking(sensorData); + } + + + // polls for new body frame + private Capture PollBodyFrame(KinectInterop.SensorData sensorData, Capture capture) + { + Capture bodyCapture = null; + + if (bodyOutputCapture != null) + { + lock (bodyCaptureLock) + { + bodyCapture = bodyOutputCapture; + bodyOutputCapture = null; + } + + //Debug.Log("D" + deviceIndex + " PollBodyCapture Time: " + bodyCapture.Depth.DeviceTimestamp.Ticks + ", Now: " + DateTime.Now.ToString("HH:mm:ss.fff")); + } + + // push the new capture + if(capture != null) + { + PushBodyFrame(sensorData, capture, false); + } + + return bodyCapture; + } + + + // polls the body tracker for frames and updates the body-related data in a thread + private void BodyTrackerThread(KinectInterop.SensorData sensorData) + { + if (sensorData == null) + return; + + while (!bodyTrackerStopEvent.WaitOne(0)) + { + try + { + // poll for body frames + PollBodyFrameInternal(sensorData); + + System.Threading.Thread.Sleep(KinectInterop.THREAD_SLEEP_TIME_MS); // 10ms + } + catch (Exception ex) + { + Debug.LogException(ex); + } + } + } + + + // maximum queue length + private const int MAX_BODY_QUEUE_LENGTH = 3; + + + // pushes new body frame into bt-processing queue, if possible + public bool PushBodyFrame(KinectInterop.SensorData sensorData, Capture capture, bool waitInfinite) + { + bool bEnqueued = false; + + if (capture != null && capture.Depth != null && btQueueCount < MAX_BODY_QUEUE_LENGTH && + (getAllSensorFrames || rawBodyTimestamp == sensorData.lastBodyFrameTime)) + { + bEnqueued = bodyTracker.EnqueueCapture(capture, !waitInfinite ? btQueueWaitTime : -1); + + if (bEnqueued) + { + lock (bodyCaptureLock) + { + // queued + btQueueCount++; + btQueueTime = (ulong)DateTime.Now.Ticks; + //Debug.Log("Push btQueueCount: " + btQueueCount); + + //if (btQueueWaitTime > 0) + // btQueueWaitTime--; + } + + //Debug.Log("D" + deviceIndex + " PushBodyTimestamp: " + capture.Depth.DeviceTimestamp.Ticks + ", QueueLen: " + btQueueCount + ", Now: " + DateTime.Now.ToString("HH:mm:ss.fff")); + } + else + { + //Debug.LogWarning("D" + deviceIndex + " PushBodyCapture failed! Timestamp:" + capture.Depth.DeviceTimestamp.Ticks + " QueueCount: " + btQueueCount); + //btQueueWaitTime++; + } + } + else + { + //long capTimestamp = capture != null && capture.Depth != null ? capture.Depth.DeviceTimestamp.Ticks : 0; + //Debug.LogWarning("D" + deviceIndex + " PushBodyCapture - invalid. Timestamp:" + capTimestamp + " QueueCount: " + btQueueCount); + } + + return bEnqueued; + } + + // disposes the body frame images and releases the body frame + private void DisposeBodyFrame(IntPtr bodyFrameHandle) + { + Image bodyIndexImage = bodyTracker.GetBodyIndexMap(bodyFrameHandle); + bodyIndexImage?.Dispose(); + + Capture btCapture = bodyTracker.GetCapture(bodyFrameHandle); + //Debug.Log("Disposing BT frame - timestamp: " + bodyFrameHandle); + btCapture.Dispose(); + + bodyTracker.ReleaseBodyFrame(bodyFrameHandle); + } + + // internal body-tracking polling method (used by the BT-thread) + private void PollBodyFrameInternal(KinectInterop.SensorData sensorData) + { + if (bodyTracker != null && btQueueCount > 0) + { + // check for available body frame + IntPtr bodyFrameHandle = bodyTracker.PollBodyFrame(0); + + while (bodyFrameHandle != IntPtr.Zero) + { + lock (bodyCaptureLock) + { + if (btQueueCount > 0) + btQueueCount--; + //Debug.Log("Poll btQueueCount: " + btQueueCount); + } + + //Debug.Log("D" + deviceIndex + " PopBodyTimestamp: " + bodyTracker.GetBodyFrameTimestampUsec(bodyFrameHandle) + ", QueueLen: " + btQueueCount + ", Now: " + DateTime.Now.ToString("HH:mm:ss.fff")); + + // check if there is other frame in the queue + IntPtr bodyFrameHandleNext = bodyTracker.PollBodyFrame(0); + + if(bodyFrameHandleNext == IntPtr.Zero || (sensorSyncher != null && syncSensorIndex >= 0)) + { + long btTimestamp = (long)bodyTracker.GetBodyFrameTimestampUsec(bodyFrameHandle); + + // process the body frame + bool processBodyData = sensorSyncher == null || syncSensorIndex < 0; + ProcessBodyFrame(sensorData, bodyFrameHandle, processBodyData); + + // check for synched capture + if (sensorSyncher != null && syncSensorIndex >= 0) + { + //Debug.Log("D" + deviceIndex + " Syncher-UpdateBtFrame. Timestamp: " + btTimestamp); + sensorSyncher.UpdateBtFrame(syncSensorIndex, btTimestamp - startTimeOffset); + } + } + else + { + //Debug.LogWarning("D" + deviceIndex + " Disposing body frame. Timestamp: " + bodyTracker.GetBodyFrameTimestampUsec(bodyFrameHandle) + ", QueueLen: " + btQueueCount); + DisposeBodyFrame(bodyFrameHandle); + } + + // go to the next frame + bodyFrameHandle = bodyFrameHandleNext; + } + + } + } + + + // K4A body tracker frame data + private struct K4abtFrameData + { + public ulong btFrameTimestamp; + + public Capture btFrameCapture; + public Image bodyIndexImage; + + public uint numberOfBodies; + public ulong[] bodyIds; + public k4abt_skeleton_t[] bodySkeletons; + + + // create new BtFrameData + public K4abtFrameData(BodyTracking bodyTracker, int capacity) + { + btFrameTimestamp = 0; + btFrameCapture = null; + bodyIndexImage = null; + + numberOfBodies = 0; + bodyIds = new ulong[capacity]; + bodySkeletons = new k4abt_skeleton_t[capacity]; + + for(int i = 0; i < capacity; i++) + { + bodyIds[i] = 0; + bodySkeletons[i] = bodyTracker.CreateBodySkeleton(); + } + } + } + + + // processes the given body frame + public void ProcessBodyFrame(KinectInterop.SensorData sensorData, IntPtr bodyFrameHandle, bool processFrameData) + { + if (bodyFrameHandle != IntPtr.Zero || processFrameData) + { + Capture btCapture = null; + + lock (bodyTrackerLock) + { + if (bodyFrameHandle != IntPtr.Zero) + { + btFrameData.btFrameTimestamp = bodyTracker.GetBodyFrameTimestampUsec(bodyFrameHandle); + //Debug.Log("D" + deviceIndex + " Processing body frame. Timestamp: " + btFrameData.btFrameTimestamp + ", Now: " + DateTime.Now.ToString("HH:mm:ss.fff")); + + btFrameData.btFrameCapture?.Dispose(); + btFrameData.btFrameCapture = bodyTracker.GetCapture(bodyFrameHandle); + + btFrameData.bodyIndexImage?.Dispose(); + btFrameData.bodyIndexImage = bodyTracker.GetBodyIndexMap(bodyFrameHandle); + + btFrameData.numberOfBodies = bodyTracker.GetNumberOfBodies(bodyFrameHandle); + uint numBodies = btFrameData.numberOfBodies; + + // create the needed slots + if (btFrameData.bodyIds.Length < numBodies) + { + int btArrLen = btFrameData.bodyIds.Length; + Array.Resize(ref btFrameData.bodyIds, (int)numBodies); + + for(int i = btArrLen; i < numBodies; i++) + { + btFrameData.bodyIds[i] = 0; + } + } + + while (btFrameData.bodySkeletons.Length < numBodies) + { + int btArrLen = btFrameData.bodySkeletons.Length; + Array.Resize(ref btFrameData.bodySkeletons, (int)numBodies); + + for (int i = btArrLen; i < numBodies; i++) + { + btFrameData.bodySkeletons[i] = bodyTracker.CreateBodySkeleton(); + } + } + + for (int i = 0; i < numBodies; i++) + { + btFrameData.bodyIds[i] = bodyTracker.GetBodyId(bodyFrameHandle, (uint)i); + + //k4abt_skeleton_t bodySkeleton = btFrameData.bodySkeletons[i]; + bodyTracker.GetBodySkeleton(bodyFrameHandle, (uint)i, ref btFrameData.bodySkeletons[i]); + //btFrameData.bodySkeletons[i] = bodySkeleton; + } + + // release body frame + bodyTracker.ReleaseBodyFrame(bodyFrameHandle); + bodyFrameHandle = IntPtr.Zero; + } + + if (processFrameData) + { + //Debug.Log("D" + deviceIndex + " Processing bt-frame data. Timestamp: " + btFrameData.btFrameTimestamp + ", Now: " + DateTime.Now.ToString("HH:mm:ss.fff")); + + // get body tracking capture + btCapture = btFrameData.btFrameCapture; + btFrameData.btFrameCapture = null; // don't dispose it on next body frame + + ulong depthFrameTime = isSyncBodyAndDepth && btCapture != null && btCapture.Depth != null ? (ulong)btCapture.Depth.DeviceTimestamp.Ticks : 0; + if ((frameSourceFlags & KinectInterop.FrameSource.TypeBodyIndex) != 0 && + (getAllSensorFrames || rawBodyIndexTimestamp == sensorData.lastBodyIndexFrameTime)) + { + // get body index frame + bodyIndexImage?.Dispose(); + bodyIndexImage = btFrameData.bodyIndexImage; + btFrameData.bodyIndexImage = null; // don't dispose it on next body frame + //bodyIndexImage.CopyBytesTo(rawBodyIndexImage, 0, 0, rawBodyIndexImage.Length); + + rawBodyIndexTimestamp = depthFrameTime != 0 ? depthFrameTime : btFrameData.btFrameTimestamp; + //Debug.Log("D" + deviceIndex + " RawBodyIndexTimestamp: " + rawBodyIndexTimestamp + ", Now: " + DateTime.Now.ToString("HH:mm:ss.fff")); + + // transformed body index frame + //ProcessTransformedFrames(sensorData, btCapture, depthFrameTime); // moved to ProcessSensorCapture() + + //if ((sensorData.colorCamBodyIndexImage != null || sensorData.colorBodyIndexBuffer != null) && + // btCapture != null && btCapture.Color != null && btCapture.Depth != null && + // (!isSyncBodyAndDepth || (rawBodyIndexTimestamp == depthFrameTime)) && (rawBodyIndexTimestamp != lastColorCamBodyIndexFrameTime)) + //{ + // if (coordMapperTransform == null) + // { + // coordMapperTransform = coordMapperCalib.CreateTransformation(); + // } + + // if (c2BtDepthImage == null) + // { + // c2BtDepthImage = new Image(ImageFormat.Depth16, sensorData.colorImageWidth, sensorData.colorImageHeight, sensorData.colorImageWidth * sizeof(ushort)); + // } + + // if (c2BodyIndexImage == null) + // { + // c2BodyIndexImage = new Image(ImageFormat.Custom8, sensorData.colorImageWidth, sensorData.colorImageHeight, sensorData.colorImageWidth * sizeof(byte)); + // } + + // //lock (colorCamBodyIndexFrameLock) + // { + // coordMapperTransform.DepthImageToColorCameraCustom(btCapture.Depth, bodyIndexImage, c2BtDepthImage, c2BodyIndexImage, TransformationInterpolationType.Linear, 255); + // //c2BodyIndexImage.CopyTo(colorCamBodyIndexFrame, 0, 0, colorCamBodyIndexFrame.Length); + // //System.IO.File.WriteAllBytes("ColorCamBodyIndexFrame.bin", colorCamBodyIndexFrame); + // lastColorCamBodyIndexFrameTime = rawBodyIndexTimestamp; + // //Debug.Log("D" + deviceIndex + " ColorCamBodyIndexFrameTime: " + lastColorCamBodyIndexFrameTime); + // } + //} + + // dispose image + //bodyIndexImage.Dispose(); + } + + if ((frameSourceFlags & KinectInterop.FrameSource.TypeBody) != 0 && + (getAllSensorFrames || rawBodyTimestamp == sensorData.lastBodyFrameTime)) + { + ulong bodyTimestamp = depthFrameTime != 0 ? depthFrameTime : btFrameData.btFrameTimestamp; + trackedBodiesCount = btFrameData.numberOfBodies; + + // create the needed slots + while (alTrackedBodies.Count < trackedBodiesCount) + { + alTrackedBodies.Add(new KinectInterop.BodyData((int)KinectInterop.JointType.Count)); + } + + // get sensor-to-world matrix + Matrix4x4 sensorToWorld = GetSensorToWorldMatrix(); + Quaternion sensorRotInv = GetSensorRotationNotZFlipped(true); + float scaleX = sensorData.sensorSpaceScale.x * 0.001f; + float scaleY = sensorData.sensorSpaceScale.y * 0.001f; + float compDepthcamDownTan = Mathf.Tan(6f * Mathf.Deg2Rad); + //Debug.Log($" sensorPos: {sensorPosePosition}\nsensorRot: {sensorPoseRotation.eulerAngles}, bodyTrackingOri: {bodyTrackingSensorOrientation}"); + + for (int i = 0; i < trackedBodiesCount; i++) + { + KinectInterop.BodyData bodyData = alTrackedBodies[i]; + + bodyData.liTrackingID = btFrameData.bodyIds[i]; + bodyData.iBodyIndex = i; + + bodyData.bIsTracked = true; + bodyData.bodyTimestamp = bodyTimestamp; + + //bodyTracker.GetBodySkeleton(bodyFrameHandle, (uint)i, ref bodySkeletonData); + k4abt_skeleton_t bodySkeleton = btFrameData.bodySkeletons[i]; + + for (int jBT = 0; jBT < (int)k4abt_joint_type.K4ABT_JOINT_COUNT; jBT++) + { + k4abt_joint_t jointBT = bodySkeleton.joints[jBT]; + int j = BtJoint2JointType[jBT]; + + if (j >= 0) + { + KinectInterop.JointData jointData = bodyData.joint[j]; + + jointData.trackingState = BtConf2TrackingState[(int)jointBT.confidence_level]; // (KinectInterop.TrackingState)jointBT.confidence_level; + + if (jointData.trackingState == KinectInterop.TrackingState.NotTracked && _Hand2ElbowJoint.ContainsKey(j)) + { + // infer hand joints, if the elbows are also inferred + int jElbow = _Hand2ElbowJoint[j]; + if (bodyData.joint[jElbow].trackingState != KinectInterop.TrackingState.NotTracked) + { + jointData.trackingState = KinectInterop.TrackingState.Inferred; + //Debug.Log("Set " + (KinectInterop.JointType)j + " as inferred. " + (KinectInterop.JointType)jElbow + " is: " + bodyData.joint[jElbow].trackingState); + } + } + + float jPosZ = (bIgnoreZCoordinates && j > 0) ? bodyData.joint[0].kinectPos.z : jointBT.position.Z * 0.001f; + jointData.kinectPos = new Vector3(jointBT.position.X * 0.001f, jointBT.position.Y * 0.001f, jointBT.position.Z * 0.001f); + Vector3 kinectPos2 = new Vector3(jointBT.position.X * scaleX, jointBT.position.Y * scaleY, jPosZ); + + //// compensate kposY for 6 deg down depthcam rotation (otherwise joint position is wrong) + //float compYPos = compDepthcamDownTan * jointData.kinectPos.z; + //kinectPos2.y += compYPos; + jointData.position = sensorToWorld.MultiplyPoint3x4(kinectPos2); + + //if (j == 0) + //{ + // Debug.Log($"kPos: {jointData.kinectPos.ToString("F2")}, pos: {jointData.position.ToString("F2")}, dY: {compYPos}"); + //} + //if (j == (int)KinectInterop.JointType.WristLeft) + //{ + // Debug.Log(string.Format("{0} - {1:F2}, {2} -> {3}", (KinectInterop.JointType)j, jPosZ, jointBT.confidence_level, jointData.trackingState)); + //} + + jointData.orientation = new Quaternion(jointBT.orientation.X, jointBT.orientation.Y, jointBT.orientation.Z, jointBT.orientation.W); + jointData.orientation = sensorRotInv * jointData.orientation; + + if (j == 0) + { + bodyData.kinectPos = jointData.kinectPos; + bodyData.position = jointData.position; + bodyData.orientation = jointData.orientation; + } + + bodyData.joint[j] = jointData; + } + } + + // estimate additional joints + CalcBodySpecialJoints(ref bodyData); + + // check for body spins + if (bodySpinFilter != null) + { + bodySpinFilter.UpdateFilter(ref bodyData, (long)bodyTimestamp, sensorToWorld, sensorData.sensorSpaceScale); + } + + // filter joint positions + if (jointPositionFilter != null) + { + jointPositionFilter.UpdateFilter(ref bodyData); + } + + // calculate bone dirs + KinectInterop.CalcBodyJointDirs(ref bodyData); + + // calculate joint orientations + CalcBodyJointOrients(ref bodyData); + + // body orientation + bodyData.normalRotation = bodyData.joint[0].normalRotation; + bodyData.mirroredRotation = bodyData.joint[0].mirroredRotation; + + // estimate hand states + CalcBodyHandStates(ref bodyData, depthFrameTime != 0 ? depthFrameTime : btFrameData.btFrameTimestamp); + + alTrackedBodies[i] = bodyData; + //Debug.Log(" (T)User ID: " + bodyData.liTrackingID + ", body: " + i + ", bi: " + bodyData.iBodyIndex + ", pos: " + bodyData.joint[0].kinectPos + ", rot: " + bodyData.joint[0].normalRotation.eulerAngles + ", Now: " + DateTime.Now.ToString("HH:mm:ss.fff")); + } + + // clean up user history + if (jointPositionFilter != null) + jointPositionFilter.CleanUpUserHistory(); + if(bodySpinFilter != null) + bodySpinFilter.CleanUpUserHistory(); + + rawBodyTimestamp = bodyTimestamp + trackedBodiesCount; + //Debug.Log("D" + deviceIndex + " RawBodyTimestamp: " + rawBodyTimestamp + ", BodyCount: " + trackedBodiesCount + ", QueueLen: " + btQueueCount + ", Time: " + DateTime.Now.ToString("HH.mm.ss.fff")); + } + } + } + + if(processFrameData && btCapture != null) + { + // save the body-frame capture + lock (bodyCaptureLock) + { + if (bodyOutputCapture != null) + { + //Debug.LogWarning("D" + deviceIndex + " Disposing bt-frame capture. Time: " + bodyOutputCapture.Depth.DeviceTimestamp.Ticks); + + bodyOutputCapture.Dispose(); + bodyOutputCapture = null; + } + + bodyOutputCapture = btCapture; + //Debug.Log("D" + deviceIndex + " Bt-frame capture set. Timestamp: " + btCapture.Depth.DeviceTimestamp.Ticks + ", Now: " + DateTime.Now.ToString("HH:mm:ss.fff")); + } + } + } + + } + + + // estimates hand states for the given body + private void CalcBodyHandStates(ref KinectInterop.BodyData bodyData, ulong bodyTimestamp) + { + ulong uTimeDelta = bodyTimestamp - lastHandStatesTimestamp; + float fTimeDelta = (float)uTimeDelta / 10000000f; + float fTimeSmooth = 5f * fTimeDelta; + + int h = (int)KinectInterop.JointType.WristLeft; + int f = (int)KinectInterop.JointType.HandtipLeft; + float lHandFingerAngle = 0f; + + if (bodyData.joint[h].trackingState != KinectInterop.TrackingState.NotTracked && + bodyData.joint[f].trackingState != KinectInterop.TrackingState.NotTracked) + { + lHandFingerAngle = Quaternion.Angle(bodyData.joint[h].normalRotation, bodyData.joint[f].normalRotation); + + lHandFingerAngle = (leftHandFingerAngle + lHandFingerAngle) / 2f; // Mathf.Lerp(leftHandFingerAngle, lHandFingerAngle, fTimeSmooth); + bodyData.leftHandState = (lHandFingerAngle >= 40f) ? KinectInterop.HandState.Closed : KinectInterop.HandState.Open; // 50f + //bodyData.leftHandState = (lHandFingerAngle >= 40f) ? KinectInterop.HandState.Closed : KinectInterop.HandState.Open; // 50f + } + else + { + bodyData.leftHandState = KinectInterop.HandState.NotTracked; + } + + h = (int)KinectInterop.JointType.WristRight; + f = (int)KinectInterop.JointType.HandtipRight; + float rHandFingerAngle = 0f; + + if (bodyData.joint[h].trackingState != KinectInterop.TrackingState.NotTracked && + bodyData.joint[f].trackingState != KinectInterop.TrackingState.NotTracked) + { + rHandFingerAngle = Quaternion.Angle(bodyData.joint[h].normalRotation, bodyData.joint[f].normalRotation); + + rHandFingerAngle = (rightHandFingerAngle + rHandFingerAngle) / 2f; // Mathf.Lerp(rightHandFingerAngle, rHandFingerAngle, fTimeSmooth); + bodyData.rightHandState = (rHandFingerAngle >= 40f) ? KinectInterop.HandState.Closed : KinectInterop.HandState.Open; // 50f + //bodyData.rightHandState = (rHandFingerAngle >= 40f) ? KinectInterop.HandState.Closed : KinectInterop.HandState.Open; // 50f + } + else + { + bodyData.rightHandState = KinectInterop.HandState.NotTracked; + } + + //Debug.Log("LHA: " + (int)lHandFingerAngle + ", RHA: " + (int)rHandFingerAngle + + // ", LH: " + bodyData.leftHandState + ", RH: " + bodyData.rightHandState + ", Timestamp: " + bodyTimestamp); + + if(fTimeSmooth >= 1f) + { + leftHandFingerAngle = lHandFingerAngle; + rightHandFingerAngle = rHandFingerAngle; + lastHandStatesTimestamp = bodyTimestamp; + } + } + + private static readonly KinectInterop.TrackingState[] BtConf2TrackingState = + { + KinectInterop.TrackingState.NotTracked, // K4ABT_JOINT_CONFIDENCE_NONE + KinectInterop.TrackingState.Inferred, // K4ABT_JOINT_CONFIDENCE_LOW + KinectInterop.TrackingState.Tracked, // K4ABT_JOINT_CONFIDENCE_MEDIUM + KinectInterop.TrackingState.HighConf // K4ABT_JOINT_CONFIDENCE_HIGH + }; + + private static readonly int[] BtJoint2JointType = + { + (int)KinectInterop.JointType.Pelvis, + (int)KinectInterop.JointType.SpineNaval, + (int)KinectInterop.JointType.SpineChest, + (int)KinectInterop.JointType.Neck, + + (int)KinectInterop.JointType.ClavicleLeft, + (int)KinectInterop.JointType.ShoulderLeft, + (int)KinectInterop.JointType.ElbowLeft, + (int)KinectInterop.JointType.WristLeft, + + (int)KinectInterop.JointType.HandLeft, + (int)KinectInterop.JointType.HandtipLeft, + (int)KinectInterop.JointType.ThumbLeft, + + (int)KinectInterop.JointType.ClavicleRight, + (int)KinectInterop.JointType.ShoulderRight, + (int)KinectInterop.JointType.ElbowRight, + (int)KinectInterop.JointType.WristRight, + + (int)KinectInterop.JointType.HandRight, + (int)KinectInterop.JointType.HandtipRight, + (int)KinectInterop.JointType.ThumbRight, + + (int)KinectInterop.JointType.HipLeft, + (int)KinectInterop.JointType.KneeLeft, + (int)KinectInterop.JointType.AnkleLeft, + (int)KinectInterop.JointType.FootLeft, + + (int)KinectInterop.JointType.HipRight, + (int)KinectInterop.JointType.KneeRight, + (int)KinectInterop.JointType.AnkleRight, + (int)KinectInterop.JointType.FootRight, + + (int)KinectInterop.JointType.Head, + + (int)KinectInterop.JointType.Nose, + (int)KinectInterop.JointType.EyeLeft, + (int)KinectInterop.JointType.EarLeft, + (int)KinectInterop.JointType.EyeRight, + (int)KinectInterop.JointType.EarRight + }; + + // wrist, hand & finger joints + private static readonly Dictionary _Hand2ElbowJoint = new Dictionary + { + { (int)KinectInterop.JointType.WristLeft, (int)KinectInterop.JointType.ElbowLeft }, + { (int)KinectInterop.JointType.HandLeft, (int)KinectInterop.JointType.ElbowLeft }, + { (int)KinectInterop.JointType.HandtipLeft, (int)KinectInterop.JointType.ElbowLeft }, + { (int)KinectInterop.JointType.ThumbLeft, (int)KinectInterop.JointType.ElbowLeft }, + + { (int)KinectInterop.JointType.WristRight, (int)KinectInterop.JointType.ElbowRight }, + { (int)KinectInterop.JointType.HandRight, (int)KinectInterop.JointType.ElbowRight }, + { (int)KinectInterop.JointType.HandtipRight, (int)KinectInterop.JointType.ElbowRight }, + { (int)KinectInterop.JointType.ThumbRight, (int)KinectInterop.JointType.ElbowRight } + }; + + //// calculates all joint orientations for the given body + //protected override void CalcBodyJointOrients(ref KinectInterop.BodyData bodyData) + //{ + // base.CalcBodyJointOrients(ref bodyData); + + // if (bodyData.bIsTracked) + // { + // if (bIgnoreZCoordinates) + // { + // //base.CalcBodyJointOrients(ref bodyData); + // return; + // } + + // ////for (int j = 0; j < (int)KinectInterop.JointType.Count; j++) + // //{ + // // // additionally estimate head orientation (hinted by Garrett Tuer) - moved to DepthSensorBase + // // int j = (int)KinectInterop.JointType.Head; + + // // if (bodyData.joint[j].trackingState != KinectInterop.TrackingState.NotTracked) + // // { + // // Quaternion jointOrient = bodyData.joint[j].orientation; + // // Quaternion jointOrientNormal = jointOrient * _JointTurnCS[j] * _JointBaseOrient[j]; + // // if (bIgnoreZCoordinates) + // // jointOrientNormal = Quaternion.Euler(0f, 0f, jointOrientNormal.eulerAngles.z); + // // bodyData.joint[j].normalRotation = jointOrientNormal; + + // // Vector3 mirroredAngles = jointOrientNormal.eulerAngles; + // // mirroredAngles.y = -mirroredAngles.y; + // // mirroredAngles.z = -mirroredAngles.z; + // // bodyData.joint[j].mirroredRotation = Quaternion.Euler(mirroredAngles); + // // } + // //} + // } + //} + + //// base orientations + //private static readonly Quaternion[] _JointBaseOrient = + //{ + // Quaternion.LookRotation(Vector3.left, Vector3.back), // Pelvis + // Quaternion.LookRotation(Vector3.left, Vector3.back), + // Quaternion.LookRotation(Vector3.left, Vector3.back), + // Quaternion.LookRotation(Vector3.left, Vector3.back), + // Quaternion.LookRotation(Vector3.left, Vector3.back), + + // Quaternion.LookRotation(Vector3.down, Vector3.back), // ClavicleL + // Quaternion.LookRotation(Vector3.down, Vector3.back), + // Quaternion.LookRotation(Vector3.down, Vector3.back), + // Quaternion.LookRotation(Vector3.down, Vector3.back), + // Quaternion.LookRotation(Vector3.down, Vector3.back), + + // Quaternion.LookRotation(Vector3.up, Vector3.forward), // ClavicleR + // Quaternion.LookRotation(Vector3.up, Vector3.forward), + // Quaternion.LookRotation(Vector3.up, Vector3.forward), + // Quaternion.LookRotation(Vector3.up, Vector3.forward), + // Quaternion.LookRotation(Vector3.up, Vector3.forward), + + // Quaternion.LookRotation(Vector3.left, Vector3.back), // HipL + // Quaternion.LookRotation(Vector3.left, Vector3.back), + // Quaternion.LookRotation(Vector3.left, Vector3.back), + // Quaternion.LookRotation(Vector3.left, Vector3.back), + + // Quaternion.LookRotation(Vector3.left, Vector3.forward), // HipR + // Quaternion.LookRotation(Vector3.left, Vector3.forward), + // Quaternion.LookRotation(Vector3.left, Vector3.forward), + // Quaternion.LookRotation(Vector3.left, Vector3.forward), + + // Quaternion.LookRotation(Vector3.left, Vector3.back), // Nose + // Quaternion.LookRotation(Vector3.left, Vector3.back), + // Quaternion.LookRotation(Vector3.left, Vector3.back), + // Quaternion.LookRotation(Vector3.left, Vector3.back), + // Quaternion.LookRotation(Vector3.left, Vector3.back), + + // Quaternion.LookRotation(Vector3.down, Vector3.back), // FingersL + // Quaternion.LookRotation(Vector3.down, Vector3.back), + // Quaternion.LookRotation(Vector3.up, Vector3.forward), // FingersR + // Quaternion.LookRotation(Vector3.up, Vector3.forward) + //}; + + //// turn cs rotations + //private static readonly Quaternion[] _JointTurnCS = + //{ + // Quaternion.Euler(0f, 90f, 90f), // Pelvis + // Quaternion.Euler(0f, 90f, 90f), + // Quaternion.Euler(0f, 90f, 90f), + // Quaternion.Euler(0f, 90f, 90f), + // Quaternion.Euler(0f, 90f, 90f), + + // Quaternion.Euler(180f, 0f, 180f), // ClavicleL + // Quaternion.Euler(180f, 0f, 180f), + // Quaternion.Euler(180f, 0f, 180f), + // Quaternion.Euler(-90f, 0f, 180f), + // Quaternion.Euler(-90f, 0f, 180f), + + // Quaternion.Euler(0f, 180f, 0f), // ClavicleR + // Quaternion.Euler(0f, 180f, 0f), + // Quaternion.Euler(0f, 180f, 0f), + // Quaternion.Euler(-90f, 0f, 180f), + // Quaternion.Euler(-90f, 0f, 180f), + + // Quaternion.Euler(0f, 90f, 90f), // HipL + // Quaternion.Euler(0f, 90f, 90f), + // Quaternion.Euler(0f, 90f, 90f), + // Quaternion.Euler(90f, 0f, 0f), + + // Quaternion.Euler(0f, 90f, -90f), // HipR + // Quaternion.Euler(0f, 90f, -90f), + // Quaternion.Euler(0f, 90f, -90f), + // Quaternion.Euler(90f, 0f, 180f), + + // Quaternion.Euler(0f, 90f, 90f), // Nose + // Quaternion.Euler(90f, 0f, 0f), + // Quaternion.Euler(0f, -90f, -90f), + // Quaternion.Euler(90f, 0f, 0f), + // Quaternion.Euler(0f, 90f, 90f), + + // Quaternion.Euler(-90f, 0f, 180f), // FingersL + // Quaternion.Euler(-90f, 0f, 180f), + // Quaternion.Euler(-90f, 0f, 180f), // FingersR + // Quaternion.Euler(-90f, 0f, 180f) + //}; + + + // gets the given camera intrinsics + private void GetCameraIntrinsics(CalibrationDeviceType camType, CameraCalibration camParams, ref KinectInterop.CameraIntrinsics intr) + { + Intrinsics camIntr = camParams.Intrinsics; + if (camIntr.Parameters.Length < 15) + throw new System.Exception("Intrinsics length is less than expected: " + camIntr.ParameterCount); + + intr = new KinectInterop.CameraIntrinsics(); + + intr.cameraType = (int)camType; + intr.width = camParams.ResolutionWidth; + intr.height = camParams.ResolutionHeight; + + // 0 float cx; + // 1 float cy; + intr.ppx = camIntr.Parameters[0]; + intr.ppy = camIntr.Parameters[1]; + + // 2 float fx; /**< Focal length x */ + // 3 float fy; /**< Focal length y */ + intr.fx = camIntr.Parameters[2]; + intr.fy = camIntr.Parameters[3]; + + // 4 float k1; + // 5 float k2; + // 6 float k3; + // 7 float k4; + // 8 float k5; + // 9 float k6; + intr.distCoeffs = new float[6]; + intr.distCoeffs[0] = camIntr.Parameters[4]; + intr.distCoeffs[1] = camIntr.Parameters[5]; + intr.distCoeffs[2] = camIntr.Parameters[6]; + intr.distCoeffs[3] = camIntr.Parameters[7]; + intr.distCoeffs[4] = camIntr.Parameters[8]; + intr.distCoeffs[5] = camIntr.Parameters[9]; + + if (camIntr.Type == CalibrationModelType.Theta) + intr.distType = KinectInterop.DistortionType.Theta; + else if (camIntr.Type == CalibrationModelType.Polynomial3K) + intr.distType = KinectInterop.DistortionType.Polynomial3K; + else if (camIntr.Type == CalibrationModelType.Rational6KT) + intr.distType = KinectInterop.DistortionType.Rational6KT; + else + intr.distType = (KinectInterop.DistortionType)camIntr.Type; + + // 10 float codx; + // 11 float cody; + intr.codx = camIntr.Parameters[10]; + intr.cody = camIntr.Parameters[11]; + + // 12 float p2; + // 13 float p1; + intr.p2 = camIntr.Parameters[12]; + intr.p1 = camIntr.Parameters[13]; + + // 14 float metric_radius; + intr.maxRadius = camIntr.Parameters[14]; + + EstimateFOV(intr); + + //string distParams = string.Join(" ", intr.distCoeffs); // intr.distCoeffs.Select(f => f.ToString("N3")).ToArray() + //Debug.Log($"{camType} intr - w: {intr.width}, h: {intr.height}, pp: ({intr.ppx:F1}, {intr.ppy:F1}), fLen: ({intr.fx:F3}, {intr.fy:F3}), fov: ({intr.hFOV:F1}, {intr.vFOV:F1})" + + // $", dType: {intr.distType}, dParams: {distParams}"); + } + + + // gets the given camera extrinsics + private void GetCameraExtrinsics(Extrinsics camExtr, ref KinectInterop.CameraExtrinsics extr) + { + extr = new KinectInterop.CameraExtrinsics(); + + extr.rotation = new float[camExtr.Rotation.Length]; + camExtr.Rotation.CopyTo(extr.rotation, 0); + + extr.translation = new float[camExtr.Translation.Length]; + camExtr.Translation.CopyTo(extr.translation, 0); + } + + + public override Vector2 MapDepthPointToColorCoords(KinectInterop.SensorData sensorData, Vector2 depthPos, ushort depthVal) + { + if (sensorData.depthCamIntr != null && sensorData.colorCamIntr != null && sensorData.depth2ColorExtr != null) + { + Vector3 depthSpacePos = UnprojectPoint(sensorData.depthCamIntr, depthPos, (float)depthVal); + Vector3 colorSpacePos = TransformPoint(sensorData.depth2ColorExtr, depthSpacePos); + Vector2 colorPos = ProjectPoint(sensorData.colorCamIntr, colorSpacePos); + + return colorPos; + } + + return Vector2.zero; + } + + + // unprojects plane point into the space + public override Vector3 UnprojectPoint(KinectInterop.CameraIntrinsics intr, Vector2 pixel, float depth) + { + if (depth <= 0f) + return Vector3.zero; + + System.Numerics.Vector2 fPixel = new System.Numerics.Vector2(pixel.x, pixel.y); + System.Numerics.Vector3? fPoint = coordMapperCalib.TransformTo3D(fPixel, depth, (CalibrationDeviceType)intr.cameraType, (CalibrationDeviceType)intr.cameraType); + Vector3 point = fPoint.HasValue ? new Vector3(fPoint.Value.X, fPoint.Value.Y, fPoint.Value.Z) : Vector3.zero; + + return point; + } + + + // projects space point onto a plane + public override Vector2 ProjectPoint(KinectInterop.CameraIntrinsics intr, Vector3 point) + { + if (point == Vector3.zero) + return Vector2.zero; + + System.Numerics.Vector3 fPoint = new System.Numerics.Vector3(point.x, point.y, point.z); + System.Numerics.Vector2? fPixel = coordMapperCalib.TransformTo2D(fPoint, (CalibrationDeviceType)intr.cameraType, (CalibrationDeviceType)intr.cameraType); + Vector2 pixel = fPixel.HasValue ? new Vector2(fPixel.Value.X, fPixel.Value.Y) : Vector2.zero; + + return pixel; + } + + + // transforms a point from one space to another + public override Vector3 TransformPoint(KinectInterop.CameraExtrinsics extr, Vector3 point) + { + float toPointX = extr.rotation[0] * point.x + extr.rotation[1] * point.y + extr.rotation[2] * point.z + extr.translation[0]; + float toPointY = extr.rotation[3] * point.x + extr.rotation[4] * point.y + extr.rotation[5] * point.z + extr.translation[1]; + float toPointZ = extr.rotation[6] * point.x + extr.rotation[7] * point.y + extr.rotation[8] * point.z + extr.translation[2]; + Vector3 toPoint = new Vector3(toPointX, toPointY, toPointZ); + + return toPoint; + } + + + //public override bool MapDepthFrameToColorData(KinectInterop.SensorData sensorData, ref byte[] vColorFrameData) + //{ + // if(coordMapperTransform == null) + // { + // coordMapperTransform = coordMapper.CreateTransformation(); + // } + + // if(vColorFrameData == null) + // { + // vColorFrameData = new byte[sensorData.colorImageWidth * sensorData.colorImageHeight * sensorData.colorImageStride]; + // } + + // return false; + //} + + + //public override bool MapColorFrameToDepthData(KinectInterop.SensorData sensorData, ref ushort[] vDepthFrameData) + //{ + // return false; + //} + + + } +} diff --git a/Assets/Azure/KinectScripts/Interfaces/Kinect4AzureInterface.cs.meta b/Assets/Azure/KinectScripts/Interfaces/Kinect4AzureInterface.cs.meta new file mode 100644 index 0000000..493e0b2 --- /dev/null +++ b/Assets/Azure/KinectScripts/Interfaces/Kinect4AzureInterface.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e8f864d895d4d9c4cb2a9b96bb86c08b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/Interfaces/Kinect4AzureSyncher.cs b/Assets/Azure/KinectScripts/Interfaces/Kinect4AzureSyncher.cs new file mode 100644 index 0000000..18bb5bc --- /dev/null +++ b/Assets/Azure/KinectScripts/Interfaces/Kinect4AzureSyncher.cs @@ -0,0 +1,426 @@ +using Microsoft.Azure.Kinect.Sensor; +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + + +namespace com.rfilkov.kinect +{ + /// + /// Kinect4AzureSyncher synhronizes the captures received from master and sub k4a-devices. + /// + public class Kinect4AzureSyncher + { + + // data for each sensor + private class SyncherSensorData + { + public long expDelay; + + public long capTimestamp; + public Capture capture; + + public long pushCapTimestamp; + public Capture pushCapture; + + public long btTimestamp; + } + + // max allowed timestamp error + private const long MAX_TIME_ERROR = 100000; // 10000; // 1000; + + // available sensor interfaces + private List sensorInts = new List(); + private List sensorDatas = new List(); + private List expectedDelays = new List(); + + // number of sensors and index of the master + private int numSensors = 0; + private int iMaster = -1; // index of the master interface + + // master play time + private long masterPlayTime = 0; + private object masterPlayLock = new object(); + + // syncher sensor data + private SyncherSensorData[] syncherData = null; + // syncher lock object + private object syncherLock = new object(); + + + public Kinect4AzureSyncher() + { + } + + + // initializes the syncher for the given sensor interface + public int StartSyncherForSensor(Kinect4AzureInterface sensorInt, KinectInterop.SensorData sensorData, bool isMaster, long expectedDelay) + { + if (sensorInt == null) + return -1; + + int sensorIndex = numSensors; + sensorInts.Add(sensorInt); + sensorDatas.Add(sensorData); + expectedDelays.Add(expectedDelay); + numSensors++; + + if(isMaster) + { + if (iMaster >= 0) + throw new Exception("Master index already set at " + iMaster + ". Current interface index is " + sensorIndex + ". Multiple masters are not supported."); + + iMaster = sensorIndex; + } + + //Debug.Log("Started syncher for sensor D" + sensorInt.deviceIndex + ", delay: " + expectedDelay + ", index: " + sensorIndex + ", master: " + iMaster); + + return sensorIndex; + } + + + // releases the resources taken by the syncher data + public void StopSyncher() + { + lock(syncherLock) + { + for (int i = numSensors - 1; i >= 0; i--) + { + if (syncherData != null && syncherData[i] != null) + { + if (syncherData[i].capture != null) + { + syncherData[i].capture.Dispose(); + syncherData[i].capture = null; + } + + if (syncherData[i].pushCapture != null) + { + syncherData[i].pushCapture.Dispose(); + syncherData[i].pushCapture = null; + } + } + } + } + + //Debug.Log("Stopped syncher for " + numSensors + " sensors."); + } + + + // sets master device play time + public void SetMasterPlayTime(long playTime) + { + lock(masterPlayLock) + { + masterPlayTime = playTime; + } + } + + + // returns the latest master play time + public long GetMasterPlayTime() + { + long playTime = 0; + + lock(masterPlayLock) + { + playTime = masterPlayTime; + } + + return playTime; + } + + + // returns the master index, or -1 if no master is set + public int GetMasterIndex() + { + return iMaster; + } + + + // checks if the given frame time is synched or not + public bool IsSensorFrameSynched(int sensorIndex, ulong frameTime, ulong masterTime) + { + if(syncherData != null && sensorIndex >= 0 && sensorIndex < syncherData.Length) + { + long expTime = (long)masterTime + syncherData[sensorIndex].expDelay; + long subError = (long)frameTime - expTime; + + if (frameTime != 0 && subError >= -MAX_TIME_ERROR && subError <= MAX_TIME_ERROR) + { + return true; + } + } + + return false; + } + + + // updates the sensor capture + public void UpdateCapture(int sensorIndex, long capTimestamp, Capture capture) + { + if (capture == null) + return; + + if (capTimestamp == 0) + { + //Debug.Log("Ignoring capture for syncher index " + sensorIndex + ". Timestamp: " + capTimestamp); + capture.Dispose(); + + return; + } + + lock (syncherLock) + { + if (syncherData == null || numSensors != syncherData.Length || syncherData[sensorIndex] == null) + { + CreateSyncherData(sensorIndex); + } + + // dispose current capture + if (syncherData[sensorIndex].capture != null) + { + //Debug.Log("Disposing capture for syncher index " + sensorIndex + ". Timestamp: " + syncherData[sensorIndex].capTimestamp); + + syncherData[sensorIndex].capture.Dispose(); + syncherData[sensorIndex].capture = null; + } + + // set new capture + //Debug.Log("Setting capture for syncher index " + sensorIndex + ". Timestamp: " + capTimestamp); + + syncherData[sensorIndex].capTimestamp = capTimestamp; + syncherData[sensorIndex].capture = capture; + + // check for synched captures + bool bAllSynched = numSensors > 1 && iMaster >= 0 && syncherData[iMaster] != null && syncherData[iMaster].capTimestamp != 0; + + if (bAllSynched) + { + long masterTime = syncherData[iMaster].capTimestamp; + + for (int i = 0; i < numSensors; i++) + { + if (syncherData[i] == null || syncherData[i].capTimestamp == 0) + { + bAllSynched = false; + break; + } + + long subTime = syncherData[i].capTimestamp; + long expTime = masterTime + syncherData[i].expDelay; + long subError = subTime - expTime; + + if (i != iMaster && (subTime == 0 || subError < -MAX_TIME_ERROR || subError > MAX_TIME_ERROR)) + { + bAllSynched = false; + break; + } + } + } + + if (bAllSynched) + { + //Debug.Log("Synched captures. Index: " + sensorIndex + " MasterTime: " + syncherData[iMaster].capTimestamp); + + // process synched sensor captures + for (int i = 0; i < numSensors; i++) + { + Kinect4AzureInterface sensorInt = sensorInts[i]; + KinectInterop.SensorData sensorData = sensorDatas[i]; + + //Debug.Log(" Processing capture " + i + ". Timestamp: " + syncherData[i].capTimestamp); + sensorInt.ProcessSensorCapture(sensorData, syncherData[i].capture); + syncherData[i].capture = null; + } + } + else + { + //Debug.Log("Captures not synched. Index: " + sensorIndex + " ThisTime: " + syncherData[sensorIndex].capTimestamp + + // ", MasterTime: " + syncherData[iMaster].capTimestamp + ", diff: " + (syncherData[iMaster].capTimestamp - syncherData[sensorIndex].capTimestamp)); + } + } + } + + + // updates the push bt-capture + public void UpdatePushBtCapture(int sensorIndex, long capTimestamp, Capture capture) + { + if (capture == null || capture.Depth == null) + return; + + if (capTimestamp == 0) + { + //Debug.Log("Ignoring push-capture for syncher index " + sensorIndex + ". Timestamp: " + capTimestamp); + capture.Dispose(); + + return; + } + + lock (syncherLock) + { + if (syncherData == null || numSensors != syncherData.Length || syncherData[sensorIndex] == null) + { + CreateSyncherData(sensorIndex); + } + + // dispose current capture + if (syncherData[sensorIndex].pushCapture != null) + { + //Debug.Log("Disposing push-capture for syncher index " + sensorIndex + ". Timestamp: " + syncherData[sensorIndex].pushCapTimestamp); + + syncherData[sensorIndex].pushCapture.Dispose(); + syncherData[sensorIndex].pushCapture = null; + } + + // set new capture + //Debug.Log("Setting push-capture for syncher index " + sensorIndex + ". Timestamp: " + capTimestamp); + + syncherData[sensorIndex].pushCapTimestamp = capTimestamp; + syncherData[sensorIndex].pushCapture = capture; + + // check for synched captures + bool bAllSynched = numSensors > 1 && iMaster >= 0 && syncherData[iMaster] != null && syncherData[iMaster].pushCapTimestamp != 0; + + if (bAllSynched) + { + long masterTime = syncherData[iMaster].pushCapTimestamp; + + for (int i = 0; i < numSensors; i++) + { + if (syncherData[i] == null || syncherData[i].pushCapTimestamp == 0) + { + bAllSynched = false; + break; + } + + long subTime = syncherData[i].pushCapTimestamp; + long expTime = masterTime + syncherData[i].expDelay; + long subError = subTime - expTime; + + if (i != iMaster && (subTime == 0 || subError < -MAX_TIME_ERROR || subError > MAX_TIME_ERROR)) + { + bAllSynched = false; + break; + } + } + } + + if (bAllSynched) + { + //Debug.Log("Synched push-captures. Index: " + sensorIndex + " MasterTime: " + syncherData[iMaster].pushCapTimestamp); + + // process synched sensor captures + for (int i = 0; i < numSensors; i++) + { + Kinect4AzureInterface sensorInt = sensorInts[i]; + KinectInterop.SensorData sensorData = sensorDatas[i]; + + //Debug.Log(" Processing push capture " + i + ". Timestamp: " + syncherData[i].pushCapTimestamp); + sensorInt.PushBodyFrame(sensorData, syncherData[i].pushCapture, true); + syncherData[i].pushCapture = null; + } + } + else + { + //Debug.Log("Push-captures not synched. Index: " + sensorIndex + " ThisTime: " + syncherData[sensorIndex].pushCapTimestamp + + // ", MasterTime: " + syncherData[iMaster].pushCapTimestamp + ", diff: " + (syncherData[iMaster].pushCapTimestamp - syncherData[sensorIndex].pushCapTimestamp)); + } + } + } + + + // updates the body tracking frame + public void UpdateBtFrame(int sensorIndex, long frameTimestamp) + { + if(frameTimestamp == 0) + { + //Debug.Log("Ignoring bt-frame for syncher index " + sensorIndex + ". Timestamp: " + frameTimestamp); + return; + } + + lock (syncherLock) + { + if(syncherData == null || numSensors != syncherData.Length || syncherData[sensorIndex] == null) + { + CreateSyncherData(sensorIndex); + } + + // set new frame + //Debug.Log("Setting bt-frame for syncher index " + sensorIndex + ". Timestamp: " + frameTimestamp); + syncherData[sensorIndex].btTimestamp = frameTimestamp; + + // check for synched body frames + bool bAllSynched = numSensors > 1 && iMaster >= 0 && syncherData[iMaster] != null && syncherData[iMaster].btTimestamp != 0; + + if (bAllSynched) + { + long masterTime = syncherData[iMaster].btTimestamp; + + for (int i = 0; i < numSensors; i++) + { + if(syncherData[i] == null || syncherData[i].btTimestamp == 0) + { + bAllSynched = false; + break; + } + + long subTime = syncherData[i].btTimestamp; + long expTime = masterTime + syncherData[i].expDelay; + long subError = subTime - expTime; + + if (i != iMaster && (subTime == 0 || subError < -MAX_TIME_ERROR || subError > MAX_TIME_ERROR)) + { + bAllSynched = false; + break; + } + } + } + + if (bAllSynched) + { + //Debug.Log("Synched bt-frames. Index: " + sensorIndex + " MasterTime: " + syncherData[iMaster].btTimestamp); + + // process synched body frames + for (int i = 0; i < numSensors; i++) + { + Kinect4AzureInterface sensorInt = sensorInts[i]; + KinectInterop.SensorData sensorData = sensorDatas[i]; + + //Debug.Log(" Processing bt-frame " + i + ". Timestamp: " + syncherData[i].btTimestamp); + sensorInt.ProcessBodyFrame(sensorData, IntPtr.Zero, true); + sensorInt.ProcessBtSensorCapture(sensorData); + } + } + else + { + //Debug.Log("Bt-frames not synched. Index: " + sensorIndex + " ThisTime: " + syncherData[sensorIndex].btTimestamp + + // ", MasterTime: " + syncherData[iMaster].btTimestamp + ", diff: " + (syncherData[iMaster].btTimestamp - syncherData[sensorIndex].btTimestamp)); + } + } + } + + + // creates and returns syncher data, as needed + private SyncherSensorData CreateSyncherData(int sensorIndex) + { + if(syncherData == null || numSensors != syncherData.Length) + { + syncherData = new SyncherSensorData[numSensors]; + } + + if(syncherData[sensorIndex] == null) + { + syncherData[sensorIndex] = new SyncherSensorData(); + syncherData[sensorIndex].expDelay = expectedDelays[sensorIndex]; + + syncherData[sensorIndex].capture = null; + syncherData[sensorIndex].pushCapture = null; + } + + return syncherData[sensorIndex]; + } + + } +} diff --git a/Assets/Azure/KinectScripts/Interfaces/Kinect4AzureSyncher.cs.meta b/Assets/Azure/KinectScripts/Interfaces/Kinect4AzureSyncher.cs.meta new file mode 100644 index 0000000..564af28 --- /dev/null +++ b/Assets/Azure/KinectScripts/Interfaces/Kinect4AzureSyncher.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a4978d3a33592e54f9bcb609ec842a27 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/Interfaces/KinectFloorDetector.cs b/Assets/Azure/KinectScripts/Interfaces/KinectFloorDetector.cs new file mode 100644 index 0000000..85013be --- /dev/null +++ b/Assets/Azure/KinectScripts/Interfaces/KinectFloorDetector.cs @@ -0,0 +1,628 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using com.rfilkov.kinect; + + +namespace com.rfilkov.kinect +{ + /// + /// KinectFloorDetector is based on the 'Azure Kinect Floor Plane Detection Sample' that demonstrates one way to estimate the floor plane. + /// + public class KinectFloorDetector + { + /// + /// Smoothing factor used for sensor position and rotation update. + /// + public float smoothFactor = 5f; + + // reference to the sensor data + private KinectInterop.SensorData sensorData = null; + private Vector3 spaceScale = Vector3.one; + private ulong lastDepthFrameTime = 0; + + // IMU data + private Vector3 imuUpVector = Vector3.zero; + //private Transform imuVectorTrans = null; + + // data buffers + private Vector3[] depth2SpaceTable = null; + private int depth2SpaceWidth = 0, depth2SpaceHeight = 0; + private float[] histMinMax = null; + private float[] planePosNorm = null; + + private int binAggregation = 6; + public int minFloorPointCount = 1024; + public float planeMaxTiltInDeg = 5f; + private float histBinSize = 0f; + private int histBufferLength = 0; + + // compute buffers + private ComputeBuffer pointCloudSpaceBuffer = null; + private ComputeBuffer pointCloudDepthBuffer = null; + + private ComputeBuffer pointCloudPosBuffer = null; + private ComputeBuffer pointCloudOfsBuffer = null; + private ComputeBuffer pointCloudMaskBuffer = null; + + private ComputeBuffer ofsHistMinMaxBuffer = null; + private ComputeBuffer ofsHistBinLeftBuffer = null; + private ComputeBuffer ofsHistBinCountBuffer = null; + private ComputeBuffer histCumulativeCountBuffer = null; + private ComputeBuffer planeIndicesBuffer = null; + private ComputeBuffer planePosNormBuffer = null; + + // compute shaders + private ComputeShader floorDetOffsetEstShader = null; + private int floorDetOffsetEstKernel = -1; + + private ComputeShader floorDetOffsetMinMaxShader = null; + private int floorDetOffsetMinMaxKernel = -1; + + private ComputeShader floorDetOffsetHistShader = null; + private int floorDetOffsetHistKernel = -1; + + private ComputeShader floorDetPlaneEstShader = null; + private int floorDetPlaneEstKernel = -1; + + // results + private bool bPlaneValid = false; + private Vector3 vPlanePos = Vector3.zero; + private Vector3 vPlaneNorm = Vector3.up; + private Quaternion qSensorRot = Quaternion.identity; + private Plane floorPlane = new Plane(); + private float fSensorHeight = 1f; + + // time + private const float SMOOTH_TIME_THRESHOLD = 1f; + private float fLastTimeSecs = 0f; + + // routine params + private const int WAIT_FRAMES_BEFORE_GPUGET = 2; + private int minDepthDistance = 0; + private int maxDepthDistance = 10000; + + //private bool isImuVectorSet = false; + private bool isDepthFrameSet = false; + + private MonoBehaviour callerInstance = null; + private IEnumerator floorRoutine = null; + private bool isRoutineRunning = false; + + + /// + /// Checks if a floor plane has been detected or not. + /// + /// true if the floor plane is valid, false otherwise + public bool IsFloorValid() + { + return bPlaneValid; + } + + /// + /// Gets the timestamp of the depth frame used for floor plane detection. + /// + /// Depth frame timestamp + public ulong GetDepthTimestamp() + { + return lastDepthFrameTime; + } + + /// + /// Gets the floor plane position. + /// + /// Floor plane position + public Vector3 GetFloorPosition() + { + return vPlanePos; + } + + /// + /// Gets the floor plane normal. + /// + /// Floor plane normal + public Vector3 GetFloorNormal() + { + return vPlaneNorm; + } + + /// + /// Gets the detected floor plane. + /// + /// Detected floor plane + public Plane GetFloorPlane() + { + return floorPlane; + } + + /// + /// Gets the estimated sensor position, in meters. + /// + /// Sensor position, in meters + public Vector3 GetSensorPosition() + { + return new Vector3(0f, fSensorHeight, 0f); + } + + /// + /// Gets the estimated sensor rotation. + /// + /// Sensor rotation + public Quaternion GetSensorRotation() + { + return qSensorRot; + } + + + /// + /// Initializes the buffers and shaders used by the floor detector. + /// + /// Sensor data + /// Max depth distance in mm + public void InitFloorDetector(MonoBehaviour caller, KinectInterop.SensorData sensorData, int maxDepthMm) + { + this.callerInstance = caller; + this.sensorData = sensorData; + + if (sensorData == null || sensorData.depthImageWidth == 0 || sensorData.depthImageHeight == 0) + return; + + if (floorDetOffsetEstShader == null) + { + floorDetOffsetEstShader = Resources.Load("FloorDetectionOffsetEstShader") as ComputeShader; + floorDetOffsetEstKernel = floorDetOffsetEstShader != null ? floorDetOffsetEstShader.FindKernel("EstimatePointCloudPosOfs") : -1; + } + + if (floorDetOffsetMinMaxShader == null) + { + floorDetOffsetMinMaxShader = Resources.Load("FloorDetectionOffsetMinMaxShader") as ComputeShader; + floorDetOffsetMinMaxKernel = floorDetOffsetMinMaxShader != null ? floorDetOffsetMinMaxShader.FindKernel("EstimateOffsetMinMax") : -1; + } + + if (floorDetOffsetHistShader == null) + { + floorDetOffsetHistShader = Resources.Load("FloorDetectionOffsetHistShader") as ComputeShader; + floorDetOffsetHistKernel = floorDetOffsetHistShader != null ? floorDetOffsetHistShader.FindKernel("EstimateOffsetHist") : -1; + } + + if (floorDetPlaneEstShader == null) + { + floorDetPlaneEstShader = Resources.Load("FloorDetectionPlanePointsShader") as ComputeShader; + floorDetPlaneEstKernel = floorDetPlaneEstShader != null ? floorDetPlaneEstShader.FindKernel("EstimatePlanePoints") : -1; + } + + if (pointCloudSpaceBuffer == null) + { + int spaceBufferLength = sensorData.depthImageWidth * sensorData.depthImageHeight * 3; + pointCloudSpaceBuffer = new ComputeBuffer(spaceBufferLength, sizeof(float)); + } + + if(pointCloudDepthBuffer == null) + { + int depthBufferLength = (sensorData.depthImageWidth * sensorData.depthImageHeight) >> 1; + pointCloudDepthBuffer = new ComputeBuffer(depthBufferLength, sizeof(uint)); + } + + if (pointCloudPosBuffer == null) + { + int posBufferLength = sensorData.depthImageWidth * sensorData.depthImageHeight * 3; + pointCloudPosBuffer = new ComputeBuffer(posBufferLength, sizeof(float)); + } + + if (pointCloudOfsBuffer == null) + { + int ofsBufferLength = sensorData.depthImageWidth * sensorData.depthImageHeight; + pointCloudOfsBuffer = new ComputeBuffer(ofsBufferLength, sizeof(float)); + } + + if (pointCloudMaskBuffer == null) + { + int maskBufferLength = sensorData.depthImageWidth * sensorData.depthImageHeight; + pointCloudMaskBuffer = new ComputeBuffer(maskBufferLength, sizeof(int)); + } + + if (ofsHistMinMaxBuffer == null) + { + histMinMax = new float[2]; + ofsHistMinMaxBuffer = new ComputeBuffer(histMinMax.Length, sizeof(float)); + } + + // hist bin size + float planeDisplacementRangeInMeters = 0.050f; // 5 cm in meters + //binAggregation = 6; + histBinSize = planeDisplacementRangeInMeters / binAggregation; + + float fMaxDepth = (float)maxDepthMm / 1000f; + histBufferLength = Mathf.FloorToInt(2 * fMaxDepth / histBinSize) + 1; + //Debug.Log("histBinSize: " + histBinSize + ", histBufferLength: " + histBufferLength); + + if (ofsHistBinLeftBuffer == null) + { + ofsHistBinLeftBuffer = new ComputeBuffer(histBufferLength, sizeof(float)); + } + + if (ofsHistBinCountBuffer == null) + { + ofsHistBinCountBuffer = new ComputeBuffer(histBufferLength, sizeof(uint)); + } + + if (histCumulativeCountBuffer == null) + { + histCumulativeCountBuffer = new ComputeBuffer(histBufferLength, sizeof(uint)); + } + + if(planeIndicesBuffer == null) + { + int planeIndicesLength = sensorData.depthImageWidth * sensorData.depthImageHeight; + planeIndicesBuffer = new ComputeBuffer(planeIndicesLength, sizeof(uint)); + } + + if(planePosNormBuffer == null) + { + planePosNorm = new float[4 * 3]; // pos & norm are v3 + planePosNormBuffer = new ComputeBuffer(planePosNorm.Length, sizeof(float)); + } + + spaceScale = sensorData.sensorSpaceScale; + //minFloorPointCount = 1024; + //planeMaxTiltInDeg = 5f; + imuUpVector = Vector3.up; + + bPlaneValid = false; + + if(callerInstance != null) + { + isRoutineRunning = true; + floorRoutine = UpdateFloorAsync(); + callerInstance.StartCoroutine(floorRoutine); + } + } + + + /// + /// Releases the buffers and shaders used by the floor detector. + /// + public void FinishFloorDetector() + { + if(isRoutineRunning) + { + isRoutineRunning = false; + callerInstance.StopCoroutine(floorRoutine); + floorRoutine = null; + } + + if (pointCloudSpaceBuffer != null) + { + pointCloudSpaceBuffer.Dispose(); + pointCloudSpaceBuffer = null; + } + + if (pointCloudDepthBuffer != null) + { + pointCloudDepthBuffer.Dispose(); + pointCloudDepthBuffer = null; + } + + if (pointCloudPosBuffer != null) + { + pointCloudPosBuffer.Dispose(); + pointCloudPosBuffer = null; + } + + if (pointCloudOfsBuffer != null) + { + pointCloudOfsBuffer.Dispose(); + pointCloudOfsBuffer = null; + } + + if (pointCloudMaskBuffer != null) + { + pointCloudMaskBuffer.Dispose(); + pointCloudMaskBuffer = null; + } + + if (ofsHistMinMaxBuffer != null) + { + ofsHistMinMaxBuffer.Dispose(); + ofsHistMinMaxBuffer = null; + } + + if (ofsHistBinLeftBuffer != null) + { + ofsHistBinLeftBuffer.Dispose(); + ofsHistBinLeftBuffer = null; + } + + if (ofsHistBinCountBuffer != null) + { + ofsHistBinCountBuffer.Dispose(); + ofsHistBinCountBuffer = null; + } + + if (histCumulativeCountBuffer != null) + { + histCumulativeCountBuffer.Dispose(); + histCumulativeCountBuffer = null; + } + + if(planeIndicesBuffer != null) + { + planeIndicesBuffer.Dispose(); + planeIndicesBuffer = null; + } + + if(planePosNormBuffer != null) + { + planePosNormBuffer.Dispose(); + planePosNormBuffer = null; + } + + if (floorDetOffsetEstShader != null) + { + floorDetOffsetEstShader = null; + } + + if (floorDetOffsetMinMaxShader != null) + { + floorDetOffsetMinMaxShader = null; + } + + if (floorDetOffsetHistShader != null) + { + floorDetOffsetHistShader = null; + } + + if(floorDetPlaneEstShader != null) + { + floorDetPlaneEstShader = null; + } + } + + + ///// + ///// Updates the IMU up vector from the sample. + ///// + ///// IMU accelerometer sample + ///// Extrinsics rotation between the accelerometer and depth sensor + //public void UpdateImuUpVector(Vector3 imuAcc, float[] accDepthRot) + //{ + // Vector3 Rx = new Vector3(accDepthRot[0], accDepthRot[1], accDepthRot[2]); + // Vector3 Ry = new Vector3(accDepthRot[3], accDepthRot[4], accDepthRot[5]); + // Vector3 Rz = new Vector3(accDepthRot[6], accDepthRot[7], accDepthRot[8]); + // Vector3 depthAcc = new Vector3( Vector3.Dot(Rx, imuAcc), Vector3.Dot(Ry, imuAcc), Vector3.Dot(Rz, imuAcc)); + + // //Vector3 depthGravity = depthAcc * -1f; + // //imuUpVector = (depthGravity * -1f).normalized; + // imuUpVector = depthAcc.normalized; + // //isImuVectorSet = true; + + // //Debug.Log("imuUpVector: " + imuUpVector); + //} + + + /// + /// Updates the IMU up vector. + /// + /// IMU up vector + public void UpdateImuUpVector(Vector3 imuUpVector) + { + this.imuUpVector = imuUpVector.normalized; + } + + + /// + /// Executes the floor detector shaders with the current depth frame data. + /// + /// Depth frame data + /// Depth frame time + /// Depth frame lock object + /// Min depth distance, in meters + /// Max depth distance, in meters + /// true if the floor plane is detected, false otherwise + public bool UpdateFloorDetector(ushort[] depthFrame, ulong depthFrameTime, ref object depthFrameLock, float minDistance, float maxDistance) + { + if (sensorData == null || depthFrame == null || sensorData.depthImageWidth == 0 || sensorData.depthImageHeight == 0) + return false; + if (lastDepthFrameTime == depthFrameTime) + return false; + + lastDepthFrameTime = depthFrameTime; + + minDepthDistance = (int)(minDistance * 1000f); + maxDepthDistance = (int)(maxDistance * 1000f); + + if (depth2SpaceWidth != sensorData.depthImageWidth || depth2SpaceHeight != sensorData.depthImageHeight) + { + depth2SpaceTable = sensorData.sensorInterface.GetDepthCameraSpaceTable(sensorData); + depth2SpaceWidth = sensorData.depthImageWidth; + depth2SpaceHeight = sensorData.depthImageHeight; + + pointCloudSpaceBuffer.SetData(depth2SpaceTable); + depth2SpaceTable = null; + //Debug.Log("Set space table for width: " + depth2SpaceWidth + ", height: " + depth2SpaceHeight); + } + + // FloorDetectionOffsetEstShader + //lock(depthFrameLock) + { + KinectInterop.SetComputeBufferData(pointCloudDepthBuffer, depthFrame, depthFrame.Length >> 1, sizeof(uint)); + } + + isDepthFrameSet = true; + + ////Debug.Log("imuUpVector: " + imuUpVector); + //if(imuVectorTrans == null) + //{ + // GameObject imuVectorObj = GameObject.CreatePrimitive(PrimitiveType.Cube); + // imuVectorObj.name = "ImuVectorObj"; + + // imuVectorTrans = imuVectorObj.transform; + // imuVectorTrans.localScale = new Vector3(0.1f, 0.2f, 0.5f); + // imuVectorTrans.position = new Vector3(0, 1f, 1f); + //} + + //imuVectorTrans.rotation = Quaternion.LookRotation(imuUpVector.normalized); + + if(bPlaneValid) + { + bPlaneValid = false; + return true; + } + + return false; + } + + + // updates the floor parameters async + private IEnumerator UpdateFloorAsync() + { + while(isRoutineRunning) + { + // wait for imu vector & depth frame + while (/**!isImuVectorSet ||*/ !isDepthFrameSet) + { + yield return null; + } + + //isImuVectorSet = false; + isDepthFrameSet = false; + + KinectInterop.SetComputeShaderInt2(floorDetOffsetEstShader, "PointCloudRes", sensorData.depthImageWidth, sensorData.depthImageHeight); + //KinectInterop.SetComputeShaderFloat2(floorDetOffsetEstShader, "SpaceScale", sensorData.sensorSpaceScale.x, sensorData.sensorSpaceScale.y); + KinectInterop.SetComputeShaderFloat3(floorDetOffsetEstShader, "ImuUpVector", imuUpVector); + + floorDetOffsetEstShader.SetInt("MinDepth", minDepthDistance); + floorDetOffsetEstShader.SetInt("MaxDepth", maxDepthDistance); + + floorDetOffsetEstShader.SetBuffer(floorDetOffsetEstKernel, "SpaceTable", pointCloudSpaceBuffer); + floorDetOffsetEstShader.SetBuffer(floorDetOffsetEstKernel, "DepthMap", pointCloudDepthBuffer); + + floorDetOffsetEstShader.SetBuffer(floorDetOffsetEstKernel, "PointCloudPos", pointCloudPosBuffer); + floorDetOffsetEstShader.SetBuffer(floorDetOffsetEstKernel, "PointCloudOfs", pointCloudOfsBuffer); + floorDetOffsetEstShader.SetBuffer(floorDetOffsetEstKernel, "PointCloudMask", pointCloudMaskBuffer); + + floorDetOffsetEstShader.Dispatch(floorDetOffsetEstKernel, sensorData.depthImageWidth / 8, sensorData.depthImageHeight / 8, 1); + + // FloorDetectionOffsetMinMaxShader + KinectInterop.SetComputeShaderInt2(floorDetOffsetMinMaxShader, "PointCloudRes", sensorData.depthImageWidth, sensorData.depthImageHeight); + floorDetOffsetMinMaxShader.SetInt("OfsHistBinLength", histBufferLength); + floorDetOffsetMinMaxShader.SetBuffer(floorDetOffsetMinMaxKernel, "PointCloudOfs", pointCloudOfsBuffer); + floorDetOffsetMinMaxShader.SetBuffer(floorDetOffsetMinMaxKernel, "PointCloudMask", pointCloudMaskBuffer); + + floorDetOffsetMinMaxShader.SetBuffer(floorDetOffsetMinMaxKernel, "OfsMinMax", ofsHistMinMaxBuffer); + floorDetOffsetMinMaxShader.SetBuffer(floorDetOffsetMinMaxKernel, "OfsHistBinCount", ofsHistBinCountBuffer); + + floorDetOffsetMinMaxShader.Dispatch(floorDetOffsetMinMaxKernel, 1, 1, 1); + + //ofsHistMinMaxBuffer.GetData(histMinMax); + //Debug.Log("Hist min: " + histMinMax[0] + ", max: " + histMinMax[1]); + + // FloorDetectionOffsetHistShader + KinectInterop.SetComputeShaderInt2(floorDetOffsetHistShader, "PointCloudRes", sensorData.depthImageWidth, sensorData.depthImageHeight); + //floorDetOffsetHistShader.SetInt("PointCloudOfsLength", sensorData.depthImageWidth * sensorData.depthImageHeight); + floorDetOffsetHistShader.SetInt("OfsHistBinLength", histBufferLength); + floorDetOffsetHistShader.SetFloat("BinSize", histBinSize); + + floorDetOffsetHistShader.SetBuffer(floorDetOffsetHistKernel, "PointCloudOfs", pointCloudOfsBuffer); + floorDetOffsetHistShader.SetBuffer(floorDetOffsetHistKernel, "PointCloudMask", pointCloudMaskBuffer); + floorDetOffsetHistShader.SetBuffer(floorDetOffsetHistKernel, "OfsMinMax", ofsHistMinMaxBuffer); + + floorDetOffsetHistShader.SetBuffer(floorDetOffsetHistKernel, "OfsHistBinCount", ofsHistBinCountBuffer); + //floorDetOffsetHistShader.SetBuffer(floorDetOffsetHistKernel, "OfsHistBinLeft", ofsHistBinLeftBuffer); + + floorDetOffsetHistShader.Dispatch(floorDetOffsetHistKernel, sensorData.depthImageWidth / 1, sensorData.depthImageHeight / 1, 1); + //floorDetOffsetHistShader.Dispatch(floorDetOffsetHistKernel, 1, 1, 1); + + // FloorDetectionPlanePointsShader + floorDetPlaneEstShader.SetInt("OfsHistBinLength", histBufferLength); + floorDetPlaneEstShader.SetInt("PointCloudOfsLength", sensorData.depthImageWidth * sensorData.depthImageHeight); + floorDetPlaneEstShader.SetFloat("BinSize", histBinSize); + floorDetPlaneEstShader.SetInt("BinAggregation", binAggregation); + floorDetPlaneEstShader.SetInt("MinimumFloorPointCount", minFloorPointCount / 4); + + floorDetPlaneEstShader.SetBuffer(floorDetPlaneEstKernel, "OfsHistBinCount", ofsHistBinCountBuffer); + floorDetPlaneEstShader.SetBuffer(floorDetPlaneEstKernel, "PointCloudPos", pointCloudPosBuffer); + floorDetPlaneEstShader.SetBuffer(floorDetPlaneEstKernel, "PointCloudOfs", pointCloudOfsBuffer); + floorDetPlaneEstShader.SetBuffer(floorDetPlaneEstKernel, "PointCloudMask", pointCloudMaskBuffer); + floorDetPlaneEstShader.SetBuffer(floorDetPlaneEstKernel, "OfsMinMax", ofsHistMinMaxBuffer); + + floorDetPlaneEstShader.SetBuffer(floorDetPlaneEstKernel, "OfsHistBinLeft", ofsHistBinLeftBuffer); + floorDetPlaneEstShader.SetBuffer(floorDetPlaneEstKernel, "HistCumulativeCount", histCumulativeCountBuffer); + floorDetPlaneEstShader.SetBuffer(floorDetPlaneEstKernel, "InlierIndices", planeIndicesBuffer); + floorDetPlaneEstShader.SetBuffer(floorDetPlaneEstKernel, "PlanePosNorm", planePosNormBuffer); + + floorDetPlaneEstShader.Dispatch(floorDetPlaneEstKernel, 1, 1, 1); + + // wait some frames before GetData() + for (int i = 0; i < WAIT_FRAMES_BEFORE_GPUGET; i++) + { + yield return null; + } + + //uint[] histCumCount = new uint[histBufferLength]; + //histCumulativeCountBuffer.GetData(histCumCount); + //uint maxDiffCount = 0; + + //System.Text.StringBuilder sbCumCount = new System.Text.StringBuilder(); + //for(int i = 1; (i + binAggregation) < histCumCount.Length; i++) // i += binAggregation + //{ + // uint diffCount = histCumCount[i + binAggregation - 1] - histCumCount[i - 1]; + // if (maxDiffCount < diffCount) + // maxDiffCount = diffCount; + + // if (diffCount > 0) + // sbCumCount.Append(i).Append('-').Append(diffCount).Append(" "); + //} + //Debug.Log("histCumCount(" + maxDiffCount + "): " + sbCumCount); + + planePosNormBuffer.GetData(planePosNorm); + + vPlanePos = new Vector3(planePosNorm[0], planePosNorm[1], planePosNorm[2]); + vPlaneNorm = new Vector3(planePosNorm[3], planePosNorm[4], planePosNorm[5]); + //Vector3 vPlaneOfs = new Vector3(planePosNorm[6], planePosNorm[7], planePosNorm[8]); + //Vector3 vPlaneOfs2 = new Vector3(planePosNorm[9], planePosNorm[10], planePosNorm[11]); + + bPlaneValid = (vPlaneNorm != Vector3.zero); + + if (bPlaneValid) + { + //Debug.Log("Plane pos: " + vPlanePos + ", norm: " + vPlaneNorm.normalized + ", rot: " + qSensorRot.eulerAngles + ", ofs: " + vPlaneOfs + ", ofs2: " + vPlaneOfs2); + + vPlaneNorm = vPlaneNorm.normalized; + if (Vector3.Dot(vPlaneNorm, imuUpVector) < 0f) + { + vPlaneNorm = -vPlaneNorm; + //Debug.Log("Inverted plane normal: " + vPlaneNorm); + } + + float floorTiltInDeg = Mathf.Acos(Vector3.Dot(vPlaneNorm, imuUpVector)) * Mathf.Rad2Deg; + if (floorTiltInDeg < planeMaxTiltInDeg) + { + // For reduced jitter, use gravity for floor normal. + vPlaneNorm = imuUpVector; + //Debug.Log("Used gravity for normal: " + vPlaneNorm + ", tiltAngle: " + floorTiltInDeg); + } + + // get results + float fCurTimeSecs = Time.time; + bool bSmoothResult = (fCurTimeSecs - fLastTimeSecs) < SMOOTH_TIME_THRESHOLD; + //Debug.Log("SmoothResult: " + bSmoothResult); + fLastTimeSecs = fCurTimeSecs; + + vPlanePos = new Vector3(vPlanePos.x * spaceScale.x, vPlanePos.y * spaceScale.y, vPlanePos.z * spaceScale.z); + vPlaneNorm = new Vector3(vPlaneNorm.x * spaceScale.x, vPlaneNorm.y * spaceScale.y, vPlaneNorm.z * spaceScale.z); + + Quaternion curSensorRot = Quaternion.FromToRotation(vPlaneNorm, Vector3.up); + qSensorRot = bSmoothResult ? Quaternion.Slerp(qSensorRot, curSensorRot, smoothFactor * Time.deltaTime) : curSensorRot; + + floorPlane = new Plane(vPlaneNorm, vPlanePos); + float curSensorHeight = floorPlane.GetDistanceToPoint(Vector3.zero); + fSensorHeight = bSmoothResult ? Mathf.Lerp(fSensorHeight, curSensorHeight, smoothFactor * Time.deltaTime) : curSensorHeight; + + //Debug.Log("Floor pos: " + vPlanePos + ", norm: " + vPlaneNorm + ", rot: " + qSensorRot.eulerAngles + ", height: " + curSensorHeight + ", smoothed: " + fSensorHeight); + } + } + } + + } +} diff --git a/Assets/Azure/KinectScripts/Interfaces/KinectFloorDetector.cs.meta b/Assets/Azure/KinectScripts/Interfaces/KinectFloorDetector.cs.meta new file mode 100644 index 0000000..90979ce --- /dev/null +++ b/Assets/Azure/KinectScripts/Interfaces/KinectFloorDetector.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 11fddd48107804c42827afb3bbf5533a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/Interfaces/NetClientInterface.cs b/Assets/Azure/KinectScripts/Interfaces/NetClientInterface.cs new file mode 100644 index 0000000..1b59955 --- /dev/null +++ b/Assets/Azure/KinectScripts/Interfaces/NetClientInterface.cs @@ -0,0 +1,2388 @@ +using LZ4Sharp; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Net.Sockets; +using System.Threading; +using UnityEngine; + + +namespace com.rfilkov.kinect +{ + /// + /// NetClientInterface is a sensor-interface that receives the sensor data over the network instead from a connected device. + /// + public class NetClientInterface : DepthSensorBase + { + [Tooltip("Whether to broadcast, in order to find automatically the first available server (local network only).")] + public bool autoServerDiscovery = true; + + [Tooltip("Host name or IP address of the network server.")] + public string serverHost = "localhost"; + + [Tooltip("The base port for all server frame streams (each frame stream listens on separate port).")] + public int serverBasePort = 11000; + + [Tooltip("Whether to get color frames from the server, if required by KinectManager.")] + public bool getColorFrames = true; + + [Tooltip("Whether to get depth frames from the server, if required by KinectManager.")] + public bool getDepthFrames = true; + + [Tooltip("Whether to get infrared frames from the server, if required by KinectManager.")] + public bool getInfraredFrames = true; + + [Tooltip("Whether to get body-data frames from the server, if required by KinectManager.")] + public bool getBodyFrames = true; + + [Tooltip("Whether to get body-index frames from the server, if required by KinectManager.")] + public bool getBodyIndexFrames = true; + + [Tooltip("Whether to get sensor-pose frames from the server, if required by KinectManager.")] + public bool getPoseFrames = true; + + [Tooltip("UI-Text to display client status messages.")] + public UnityEngine.UI.Text clientStatusText; + + + // sensor frame servers + private TcpNetClient controlFrameClient = null; + private TcpNetClient colorFrameClient = null; + private TcpNetClient depthFrameClient = null; + private TcpNetClient infraredFrameClient = null; + private TcpNetClient bodyDataFrameClient = null; + private TcpNetClient bodyIndexFrameClient = null; + private TcpNetClient poseFrameClient = null; + private TcpNetClient depth2colorFrameClient = null; + private TcpNetClient color2depthFrameClient = null; + private TcpNetClient color2infraredFrameClient = null; + private TcpNetClient color2bodyIndexFrameClient = null; + + // sensor data + private KinectInterop.SensorData sensorData = null; + + // control frame + private KinectInterop.NetSensorData netSensorData = null; + //private ulong lastControlFrameTime = 0; + //private bool bSensorDataMsgSent = false; + private bool bGotNetSensorData = false; + private bool bSetNetSensorData = false; + private bool bInvalidSensorData = false; + + private bool bGotDST = false; + private bool bGotCST = false; + + // thread sleep time in milliseconds, to wait for server response + private const int THREAD_WAIT_TIME_MS = 100; + + // keep-alive + private ulong lastKeepAliveFrameTime = 0; + private const int keepAliveInterval = 20000000; // 2 seconds + + // disconnect-reconnect + private ulong latestDataReceivedAt = 0; + private const int disconnectAfter = 300000000; // 10 seconds + + private ulong disconnectedAt = 0; + private const int reconnectAfter = 50000000; // 5 seconds + + // color image + private byte[] colorImageData = null; + private ulong lastColorImageTime = 0; + + // infrared image + private int infraredImageWidth = 0, infraredImageHeight = 0; + private byte[] infraredImageData = null; + private ulong lastInfraredImageTime = 0; + private Texture2D infraredImageTex = null; + + // data frame times + private ulong lastControlFrameTime = 0; + private ulong lastColorFrameTime = 0; + private ulong lastDepthFrameTime = 0; + private ulong lastInfraredFrameTime = 0; + private ulong lastBodyDataFrameTime = 0; + private ulong lastBodyIndexFrameTime = 0; + private ulong lastPoseFrameTime = 0; + private ulong lastDepth2colorFrameTime = 0; + private ulong lastColor2depthFrameTime = 0; + private ulong lastColor2infraredFrameTime = 0; + private ulong lastColor2bodyIndexFrameTime = 0; + + // body frame + private bool bIgnoreZcoords = false; + + // pose frame + private KinectInterop.NetPoseData netPoseData = null; + private object netPoseLock = new object(); + + // depth2color frame + private int depth2colorImageWidth = 0, depth2colorImageHeight = 0; + private byte[] depth2colorImageData = null; + private ulong lastDepth2ColorImageTime = 0; + + // color2infrared frame + private int color2infraredImageWidth = 0, color2infraredImageHeight = 0; + private byte[] color2infraredImageData = null; + private ulong lastColor2InfraredImageTime = 0; + private Texture2D colorInfraredTexture = null; + + // decompressors + private ILZ4Decompressor controlFrameDecompressor = null; + private ILZ4Decompressor depthFrameDecompressor = null; + private ILZ4Decompressor bodyIndexFrameDecompressor = null; + private ILZ4Decompressor color2depthFrameDecompressor = null; + private ILZ4Decompressor color2bodyIndexFrameDecompressor = null; + + // console buffer + private System.Text.StringBuilder sbConsole = new System.Text.StringBuilder(); + + // whether the server broadcast response is received + private bool bBroadcastResponseReceived = false; + + // frame synchronization + private bool isFrameSyncNeeded = false; + private Dictionary> dictNetMessageData = null; + private List alNetMessageTime = null; + private object syncMessageLock = new object(); + + + // depth sensor settings + [System.Serializable] + public class NetSensorSettings : DepthSensorBase.BaseSensorSettings + { + public string serverHost; + public int serverBasePort; + public bool getBodyIndexFrames; + } + + + public override KinectInterop.DepthSensorPlatform GetSensorPlatform() + { + return KinectInterop.DepthSensorPlatform.NetSensor; + } + + + public override System.Type GetSensorSettingsType() + { + return typeof(NetSensorSettings); + } + + + public override BaseSensorSettings GetSensorSettings(BaseSensorSettings settings) + { + if (settings == null) + { + settings = new NetSensorSettings(); + } + + NetSensorSettings extSettings = (NetSensorSettings)base.GetSensorSettings(settings); + extSettings.serverHost = serverHost; + extSettings.serverBasePort = serverBasePort; + extSettings.getBodyIndexFrames = getBodyIndexFrames; + + return settings; + } + + public override void SetSensorSettings(BaseSensorSettings settings) + { + if (settings == null) + return; + + base.SetSensorSettings(settings); + + NetSensorSettings extSettings = (NetSensorSettings)settings; + serverHost = extSettings.serverHost; + serverBasePort = extSettings.serverBasePort; + getBodyIndexFrames = extSettings.getBodyIndexFrames; + } + + public override List GetAvailableSensors() + { + List alSensorInfo = new List(); + + KinectInterop.SensorDeviceInfo sensorInfo = new KinectInterop.SensorDeviceInfo(); + sensorInfo.sensorId = serverHost + ":" + serverBasePort + ", discovery: " + autoServerDiscovery; + sensorInfo.sensorName = "NetSensor"; + + sensorInfo.sensorCaps = KinectInterop.FrameSource.TypeAll; + + if (consoleLogMessages) + Debug.Log(string.Format(" D{0}: {1}, id: {2}", 0, sensorInfo.sensorName, sensorInfo.sensorId)); + + alSensorInfo.Add(sensorInfo); + + return alSensorInfo; + } + + public override KinectInterop.SensorData OpenSensor(KinectManager kinectManager, KinectInterop.FrameSource dwFlags, bool bSyncDepthAndColor, bool bSyncBodyAndDepth) + { + // save initial parameters + base.OpenSensor(kinectManager, dwFlags, bSyncDepthAndColor, bSyncBodyAndDepth); + + if (deviceStreamingMode == KinectInterop.DeviceStreamingMode.PlayRecording) + { + Debug.LogWarning("Playback selected, but this is not applicable to the network sensor. Ignoring..."); + } + + //List alSensors = GetAvailableSensors(); + //if (deviceIndex >= alSensors.Count) + //{ + // Debug.Log(" D" + deviceIndex + " is not available. You can set the device index to -1, to disable it."); + // return null; + //} + + sensorData = new KinectInterop.SensorData(); + sensorData.sensorIntPlatform = KinectInterop.DepthSensorPlatform.NetSensor; + + sensorData.sensorId = "NetSensor" + "_" + serverHost + "_" + serverBasePort; + sensorData.sensorName = "NetSensor"; + sensorData.sensorCaps = KinectInterop.FrameSource.TypeAll; + + // flip color & depth image vertically + sensorData.colorImageScale = new Vector3(-1f, -1f, 1f); + sensorData.depthImageScale = new Vector3(-1f, -1f, 1f); + sensorData.infraredImageScale = new Vector3(-1f, -1f, 1f); + sensorData.sensorSpaceScale = new Vector3(-1f, -1f, 1f); + sensorData.unitToMeterFactor = 1f; + + // depth camera offset & matrix z-flip + sensorRotOffset = new Vector3(0f, 0f, 0f); + sensorRotFlipZ = true; + sensorRotIgnoreY = true; + + // color camera data & intrinsics + sensorData.colorImageFormat = TextureFormat.RGB24; + sensorData.colorImageStride = 3; // 3 bytes per pixel + + // init network clients + InitNetClients(dwFlags); + + // check for frame sync + isFrameSyncNeeded = bSyncDepthAndColor || bSyncBodyAndDepth; + if(isFrameSyncNeeded) + { + dictNetMessageData = new Dictionary>(); + alNetMessageTime = new List(); + } + + if (consoleLogMessages) + Debug.Log("D" + deviceIndex + " NetSensor opened: " + serverHost + ":" + serverBasePort + ", discovery: " + autoServerDiscovery); + + return sensorData; + } + + public override void CloseSensor(KinectInterop.SensorData sensorData) + { + // close network clients + CloseNetClients(); + CleanupSyncMessageData(); + + // close opened resources + base.CloseSensor(sensorData); + + // finish frame sync + if(isFrameSyncNeeded) + { + isFrameSyncNeeded = false; + + dictNetMessageData.Clear(); + dictNetMessageData = null; + + alNetMessageTime.Clear(); + alNetMessageTime = null; + } + + if (consoleLogMessages) + Debug.Log("D" + deviceIndex + " NetSensor closed: " + serverHost + ":" + serverBasePort + ", discovery: " + autoServerDiscovery); + } + + + public override bool IsSensorDataValid() + { + if(bInvalidSensorData) + { + // got invalid sensor-data once + return false; + } + + // wait for net-cst + long timeStart = System.DateTime.Now.Ticks; + long timeNow = timeStart; + + while (!bGotNetSensorData && (timeNow - timeStart) < 50000000) // timeout - 5 seconds + { + Thread.Sleep(THREAD_WAIT_TIME_MS); + timeNow = System.DateTime.Now.Ticks; + } + + if (bGotNetSensorData && !bSetNetSensorData && netSensorData != null) + { + SetNetSensorData(netSensorData, sensorData, KinectManager.Instance); + bSetNetSensorData = true; + netSensorData = null; + } + + bInvalidSensorData = !bGotNetSensorData; + + return bGotNetSensorData; + } + + + public override bool UpdateSensorData(KinectInterop.SensorData sensorData, KinectManager kinectManager, bool isPlayMode) + { + // client status text + if (sbConsole.Length > 0) + { + lock (sbConsole) + { + if (clientStatusText) + clientStatusText.text = sbConsole.ToString(); + sbConsole.Clear(); + } + } + + // check for server timeout + ulong ulTimeNow = (ulong)System.DateTime.Now.Ticks; + bool isControlClientActive = controlFrameClient != null ? controlFrameClient.IsActive() : false; + + latestDataReceivedAt = GetLatestTimestamp(); + if(latestDataReceivedAt != 0 && (ulTimeNow - latestDataReceivedAt) >= disconnectAfter && isControlClientActive) + { + Debug.LogWarning("Server timeout detected. Disconnecting..."); + + disconnectedAt = ulTimeNow; + CloseNetClients(); + CleanupSyncMessageData(); + return true; + } + + // check for server disconnection + if (disconnectedAt == 0 && controlFrameClient != null && !isControlClientActive) + { + Debug.LogError("Server disconnection detected."); + CloseNetClients(); + CleanupSyncMessageData(); + disconnectedAt = ulTimeNow; + } + + // try to reconnect + if(disconnectedAt != 0 && (ulTimeNow - disconnectedAt) >= reconnectAfter) + { + if (consoleLogMessages) + Debug.Log("Start reconnecting..."); + + CloseNetClients(); + CleanupSyncMessageData(); + InitNetClients(frameSourceFlags); + return true; + } + + // send control messages as needed + UpdateSendControlMessages(ulTimeNow, isControlClientActive, kinectManager); + + // color frame + if (colorImageData != null && sensorData.lastColorFrameTime != lastColorImageTime && !isPlayMode) + { + if (sensorData.colorImageTexture == null && sensorData.colorImageWidth > 0 && sensorData.colorImageHeight > 0) + { + sensorData.colorImageTexture = new Texture2D(sensorData.colorImageWidth, sensorData.colorImageHeight, TextureFormat.RGB24, false); + sensorData.colorImageTexture.wrapMode = TextureWrapMode.Clamp; + sensorData.colorImageTexture.filterMode = FilterMode.Point; + } + + lock (colorFrameLock) + { + Texture2D colorImageTex2D = (Texture2D)sensorData.colorImageTexture; + if (colorImageTex2D != null) + { + colorImageTex2D.LoadImage(colorImageData); + colorImageTex2D.Apply(); + } + + sensorData.lastColorFrameTime = currentColorTimestamp = rawColorTimestamp = lastColorImageTime; + //Debug.Log("UpdateColorTimestamp: " + lastColorImageTime); + } + } + + // check for depth texture + if((sensorData.depthImageTexture == null && sensorData.depthImage != null && + kinectManager.getDepthFrames == KinectManager.DepthTextureType.DepthTexture) || + (sensorData.bodyImageTexture == null && sensorData.bodyIndexImage != null && + (kinectManager.getBodyFrames == KinectManager.BodyTextureType.UserTexture || kinectManager.getBodyFrames == KinectManager.BodyTextureType.BodyTexture))) + { + KinectInterop.InitSensorData(sensorData, kinectManager); + } + + // infrared frame + if(infraredImageData != null && sensorData.lastInfraredImageTime != lastInfraredImageTime && !isPlayMode) + { + if (sensorData.infraredImageTexture == null && infraredImageWidth > 0 && infraredImageHeight > 0) + { + infraredImageTex = new Texture2D(infraredImageWidth, infraredImageHeight, TextureFormat.RGB24, false); + infraredImageTex.wrapMode = TextureWrapMode.Clamp; + infraredImageTex.filterMode = FilterMode.Point; + + sensorData.infraredImageTexture = KinectInterop.CreateRenderTexture(sensorData.infraredImageTexture, infraredImageWidth, infraredImageHeight); + } + + lock (infraredFrameLock) + { + if (infraredImageTex != null) + { + infraredImageTex.LoadImage(infraredImageData); + infraredImageTex.Apply(); + + Graphics.Blit(infraredImageTex, sensorData.infraredImageTexture); + } + + sensorData.lastInfraredImageTime = lastInfraredImageTime; + //Debug.Log("UpdateInfraredImageTimestamp: " + lastInfraredImageTime); + } + } + + // pose frame + if (netPoseData != null && sensorData.lastSensorPoseFrameTime != netPoseData.sensorPoseTime && !isPlayMode) + { + lock(netPoseLock) + { + SetSensorNetPoseData(netPoseData, sensorData, kinectManager); + ApplySensorPoseUpdate(kinectManager); + } + } + + // get KM setting for processing of body data + bIgnoreZcoords = kinectManager.ignoreZCoordinates; + + // process the other sensor data + return base.UpdateSensorData(sensorData, kinectManager, isPlayMode); + } + + // send the control messages as needed + private void UpdateSendControlMessages(ulong ulTimeNow, bool isControlClientActive, KinectManager kinectManager) + { + //// control - get sensor data + //if (!bSensorDataMsgSent && isControlClientActive) + //{ + // SendControlMessage(ControlMessageType.GetSensorData); + + // bSensorDataMsgSent = true; + // lastKeepAliveFrameTime = ulTimeNow; + //} + + // control - set-sensor-data + if (netSensorData != null) + { + SetNetSensorData(netSensorData, sensorData, kinectManager); + bSetNetSensorData = true; + netSensorData = null; + } + + // control - keep alive + if ((ulTimeNow - lastKeepAliveFrameTime) >= keepAliveInterval && isControlClientActive) + { + lastKeepAliveFrameTime = ulTimeNow; + SendControlMessage(ControlMessageType.KeepAlive); + } + } + + + // unprojects plane point into the space + public override Vector3 UnprojectPoint(KinectInterop.CameraIntrinsics intr, Vector2 pixel, float depth) + { + Vector3 point = Vector3.zero; + if (intr == null || depth <= 0f) + return point; + + if(sensorPlatform == KinectInterop.DepthSensorPlatform.Kinect4Azure || sensorPlatform == KinectInterop.DepthSensorPlatform.DummyK4A) + { + depth = depth * 1000f; + } + + int di = (int)(pixel.x + 0.5f) + (int)(pixel.y + 0.5f) * intr.width; + if (intr.cameraType == 0) // depth + { + if (depth2SpaceTable == null) + { + GetDepthCameraSpaceTable(sensorData); + } + + if(depth2SpaceTable != null && di >= 0 && di < depth2SpaceTable.Length) + { + point = depth2SpaceTable[di] * depth; + } + } + else if(intr.cameraType == 1) // color + { + if (color2SpaceTable == null) + { + GetColorCameraSpaceTable(sensorData); + } + + if (color2SpaceTable != null && di >= 0 && di < color2SpaceTable.Length) + { + point = color2SpaceTable[di] * depth; + } + } + + return point; + } + + + // projects space point onto a plane + public override Vector2 ProjectPoint(KinectInterop.CameraIntrinsics intr, Vector3 point) + { + if (intr == null || point == Vector3.zero) + return Vector2.zero; + + float x = point.x / point.z; + float y = point.y / point.z; + + Vector2 pixel = new Vector2(x * intr.fx + intr.ppx, y * intr.fy + intr.ppy); + + return pixel; + } + + + // transforms a point from one space to another + public override Vector3 TransformPoint(KinectInterop.CameraExtrinsics extr, Vector3 point) + { + if (extr == null) + return Vector3.zero; + + float toPointX = 0f, toPointY = 0f, toPointZ = 0f; + if (sensorPlatform == KinectInterop.DepthSensorPlatform.RealSense) + { + // RS + toPointX = extr.rotation[0] * point.x + extr.rotation[3] * point.y + extr.rotation[6] * point.z + extr.translation[0]; + toPointY = extr.rotation[1] * point.x + extr.rotation[4] * point.y + extr.rotation[7] * point.z + extr.translation[1]; + toPointZ = extr.rotation[2] * point.x + extr.rotation[5] * point.y + extr.rotation[8] * point.z + extr.translation[2]; + } + else + { + // K4A, K2 + toPointX = extr.rotation[0] * point.x + extr.rotation[1] * point.y + extr.rotation[2] * point.z + extr.translation[0]; + toPointY = extr.rotation[3] * point.x + extr.rotation[4] * point.y + extr.rotation[5] * point.z + extr.translation[1]; + toPointZ = extr.rotation[6] * point.x + extr.rotation[7] * point.y + extr.rotation[8] * point.z + extr.translation[2]; + } + + return new Vector3(toPointX, toPointY, toPointZ); + } + + + public override Vector3[] GetDepthCameraSpaceTable(KinectInterop.SensorData sensorData) + { + if (sensorData == null) + return null; + + if (depth2SpaceTable == null || depth2SpaceWidth != sensorData.depthImageWidth || depth2SpaceHeight != sensorData.depthImageHeight) + { + depth2SpaceWidth = sensorData.depthImageWidth; + depth2SpaceHeight = sensorData.depthImageHeight; + + int depthImageLength = sensorData.depthImageWidth * sensorData.depthImageHeight; + depth2SpaceTable = new Vector3[depthImageLength]; + //bNeedDST = true; + + SendControlMessage(ControlMessageType.GetDST); + //bDSTsent = true; + } + + // wait for net-dst + long timeStart = System.DateTime.Now.Ticks; + long timeNow = timeStart; + + while (!bGotDST && (timeNow - timeStart) < 50000000) // timeout - 5 seconds + { + Thread.Sleep(THREAD_WAIT_TIME_MS); + timeNow = System.DateTime.Now.Ticks; + } + + if(!bGotDST) + { + Debug.LogWarning("Timed out waiting for net-dst."); + } + + return depth2SpaceTable; + } + + + public override Vector3[] GetColorCameraSpaceTable(KinectInterop.SensorData sensorData) + { + if (sensorData == null) + return null; + + if (color2SpaceTable == null || color2SpaceWidth != sensorData.colorImageWidth || color2SpaceHeight != sensorData.colorImageHeight) + { + color2SpaceWidth = sensorData.colorImageWidth; + color2SpaceHeight = sensorData.colorImageHeight; + + int colorImageLength = sensorData.colorImageWidth * sensorData.colorImageHeight; + color2SpaceTable = new Vector3[colorImageLength]; + //bNeedCST = true; + + SendControlMessage(ControlMessageType.GetCST); + //bCSTsent = true; + } + + // wait for net-cst + long timeStart = System.DateTime.Now.Ticks; + long timeNow = timeStart; + + while (!bGotCST && (timeNow - timeStart) < 50000000) // timeout - 5 seconds + { + Thread.Sleep(THREAD_WAIT_TIME_MS); + timeNow = System.DateTime.Now.Ticks; + } + + if (!bGotCST) + { + Debug.LogWarning("Timed out waiting for net-cst."); + } + + return color2SpaceTable; + } + + + // returns the point cloud texture resolution + public override Vector2Int GetPointCloudTexResolution(KinectInterop.SensorData sensorData) + { + Vector2Int texRes = Vector2Int.zero; + + // wait for net-cst + long timeStart = System.DateTime.Now.Ticks; + long timeNow = timeStart; + + while (texRes == Vector2Int.zero && (timeNow - timeStart) < 50000000) // timeout - 5 seconds + { + switch (pointCloudResolution) + { + case PointCloudResolution.DepthCameraResolution: + texRes = new Vector2Int(sensorData.depthImageWidth, sensorData.depthImageHeight); + break; + + case PointCloudResolution.ColorCameraResolution: + texRes = new Vector2Int(sensorData.colorImageWidth, sensorData.colorImageHeight); + break; + } + + if(texRes == Vector2Int.zero) + { + Thread.Sleep(THREAD_WAIT_TIME_MS); + } + + timeNow = System.DateTime.Now.Ticks; + } + + if (texRes == Vector2Int.zero) + { + throw new System.Exception("Unsupported point cloud resolution: " + pointCloudResolution + " or the respective image is not available."); + } + + return texRes; + } + + + // creates the point-cloud vertex shader and its respective buffers, as needed + protected override bool CreatePointCloudVertexShader(KinectInterop.SensorData sensorData) + { + bool bSuccess = base.CreatePointCloudVertexShader(sensorData); + + if (pointCloudResolution == PointCloudResolution.ColorCameraResolution && color2depthFrameClient == null) + { + color2depthFrameDecompressor = LZ4DecompressorFactory.CreateNew(); + + color2depthFrameClient = new TcpNetClient(sbConsole, color2depthFrameDecompressor); + color2depthFrameClient.ConnectToServer(serverHost, serverBasePort + (int)NetMessageType.Color2Depth, "tdepth", null); + color2depthFrameClient.ReceivedMessage += new ReceivedMessageEventHandler(Color2DepthFrameReceived); + } + + return bSuccess; + } + + + // disposes the point-cloud vertex shader and its respective buffers + protected override void DisposePointCloudVertexShader(KinectInterop.SensorData sensorData) + { + base.DisposePointCloudVertexShader(sensorData); + + if(color2depthFrameClient != null) + { + color2depthFrameClient.ReceivedMessage -= Color2DepthFrameReceived; + color2depthFrameClient.Close(); + color2depthFrameClient = null; + } + } + + + // creates the point-cloud color shader and its respective buffers, as needed + protected override bool CreatePointCloudColorShader(KinectInterop.SensorData sensorData) + { + if (pointCloudResolution == PointCloudResolution.DepthCameraResolution) + { + if (pointCloudAlignedColorTex == null) + { + pointCloudAlignedColorTex = new Texture2D(sensorData.depthImageWidth, sensorData.depthImageHeight, sensorData.colorImageFormat, false); + pointCloudAlignedColorTex.wrapMode = TextureWrapMode.Clamp; + pointCloudAlignedColorTex.filterMode = FilterMode.Point; + } + + if (depth2colorFrameClient == null) + { + depth2colorFrameClient = new TcpNetClient(sbConsole, null); + depth2colorFrameClient.ConnectToServer(serverHost, serverBasePort + (int)NetMessageType.Depth2Color, "tcolor", null); + depth2colorFrameClient.ReceivedMessage += new ReceivedMessageEventHandler(Depth2ColorFrameReceived); + } + + return true; + } + else + { + return base.CreatePointCloudColorShader(sensorData); + } + } + + + // disposes the point-cloud color shader and its respective buffers + protected override void DisposePointCloudColorShader(KinectInterop.SensorData sensorData) + { + if(depth2colorFrameClient != null) + { + depth2colorFrameClient.ReceivedMessage -= Depth2ColorFrameReceived; + depth2colorFrameClient.Close(); + depth2colorFrameClient = null; + + pointCloudAlignedColorTex = null; + } + else + { + base.DisposePointCloudColorShader(sensorData); + } + } + + + // updates the point-cloud color shader with the actual data + protected override bool UpdatePointCloudColorShader(KinectInterop.SensorData sensorData) + { + if (depth2colorFrameClient != null) + { + // depth2color frame + if (depth2colorImageData != null && sensorData.lastDepthCamColorFrameTime != lastDepth2ColorImageTime) + { + if (depth2colorImageWidth > 0 && depth2colorImageHeight > 0) + { + if (pointCloudAlignedColorTex == null || pointCloudAlignedColorTex.width != depth2colorImageWidth || pointCloudAlignedColorTex.height != depth2colorImageHeight) + { + if (pointCloudAlignedColorTex != null) + Destroy(pointCloudAlignedColorTex); + pointCloudAlignedColorTex = new Texture2D(depth2colorImageWidth, depth2colorImageHeight, TextureFormat.RGB24, false); + pointCloudAlignedColorTex.wrapMode = TextureWrapMode.Clamp; + pointCloudAlignedColorTex.filterMode = FilterMode.Point; + } + } + + lock (depthCamColorFrameLock) + { + if (pointCloudAlignedColorTex != null || sensorData.depthCamColorImageTexture != null) + { + ((Texture2D)pointCloudAlignedColorTex).LoadImage(depth2colorImageData); + ((Texture2D)pointCloudAlignedColorTex).Apply(); + + if (sensorData.depthCamColorImageTexture != null) + { + Graphics.CopyTexture(pointCloudAlignedColorTex, sensorData.depthCamColorImageTexture); + } + + if(pointCloudColorTexture != null) + { + Graphics.Blit(pointCloudAlignedColorTex, pointCloudColorTexture); + } + } + + sensorData.lastDepthCamColorFrameTime = lastDepthCamColorFrameTime = lastDepth2ColorImageTime; + //Debug.Log("UpdateDepth2ColorImageTimestamp: " + lastDepth2ColorImageTime); + } + + if (pointCloudColorTexture != null && pointCloudColorRT != null) + { + Graphics.CopyTexture(pointCloudColorTexture, pointCloudColorRT); + } + } + + return true; + } + else + { + return base.UpdatePointCloudColorShader(sensorData); + } + } + + + // creates the color-cam depth shader and its respective buffers, as needed + protected override bool CreateColorDepthShader(KinectInterop.SensorData sensorData) + { + bool bSuccess = base.CreateColorDepthShader(sensorData); + + if (color2depthFrameClient == null) + { + color2depthFrameDecompressor = LZ4DecompressorFactory.CreateNew(); + + color2depthFrameClient = new TcpNetClient(sbConsole, color2depthFrameDecompressor); + color2depthFrameClient.ConnectToServer(serverHost, serverBasePort + (int)NetMessageType.Color2Depth, "tdepth", null); + color2depthFrameClient.ReceivedMessage += new ReceivedMessageEventHandler(Color2DepthFrameReceived); + } + + return bSuccess; + } + + + // disposes the color-cam depth shader and its respective buffers + protected override void DisposeColorDepthShader(KinectInterop.SensorData sensorData) + { + base.DisposeColorDepthShader(sensorData); + + if (color2depthFrameClient != null) + { + color2depthFrameClient.ReceivedMessage -= Color2DepthFrameReceived; + color2depthFrameClient.Close(); + color2depthFrameClient = null; + } + } + + + // creates the color-cam infrared shader and its respective buffers, as needed + protected override bool CreateColorInfraredShader(KinectInterop.SensorData sensorData) + { + //bool bSuccess = base.CreateColorInfraredShader(sensorData); + + if (color2infraredFrameClient == null) + { + color2infraredFrameClient = new TcpNetClient(sbConsole, null); + color2infraredFrameClient.ConnectToServer(serverHost, serverBasePort + (int)NetMessageType.Color2Infrared, "tinfrared", null); + color2infraredFrameClient.ReceivedMessage += new ReceivedMessageEventHandler(Color2InfraredFrameReceived); + } + + return true; // bSuccess; + } + + + // disposes the color-cam infrared shader and its respective buffers + protected override void DisposeColorInfraredShader(KinectInterop.SensorData sensorData) + { + base.DisposeColorInfraredShader(sensorData); + + if (color2infraredFrameClient != null) + { + color2infraredFrameClient.ReceivedMessage -= Color2InfraredFrameReceived; + color2infraredFrameClient.Close(); + color2infraredFrameClient = null; + } + } + + + // updates the color-cam infrared shader with the actual data + protected override bool UpdateColorInfraredShader(KinectInterop.SensorData sensorData) + { + if (color2infraredFrameClient != null) + { + // color2infrared frame + if (color2infraredImageData != null && sensorData.lastColorCamInfraredFrameTime != lastColor2InfraredImageTime) + { + if (color2infraredImageWidth > 0 && color2infraredImageHeight > 0) + { + if (sensorData.colorInfraredTexture == null || sensorData.colorInfraredTexture.width != color2infraredImageWidth || sensorData.colorInfraredTexture.height != color2infraredImageHeight) + { + sensorData.colorInfraredTexture = KinectInterop.CreateRenderTexture(sensorData.colorInfraredTexture, color2infraredImageWidth, color2infraredImageHeight, RenderTextureFormat.ARGB32); + //sensorData.colorInfraredTexture.enableRandomWrite = true; + sensorData.colorInfraredTexture.Create(); + } + + if (colorInfraredTexture == null || colorInfraredTexture.width != color2infraredImageWidth || colorInfraredTexture.height != color2infraredImageHeight) + { + if (colorInfraredTexture != null) + Destroy(colorInfraredTexture); + colorInfraredTexture = new Texture2D(color2infraredImageWidth, color2infraredImageHeight, TextureFormat.RGB24, false); + colorInfraredTexture.wrapMode = TextureWrapMode.Clamp; + colorInfraredTexture.filterMode = FilterMode.Point; + } + } + + lock (colorCamInfraredFrameLock) + { + if (colorInfraredTexture != null || sensorData.colorInfraredTexture != null) + { + colorInfraredTexture.LoadImage(color2infraredImageData); + colorInfraredTexture.Apply(); + + if (sensorData.colorInfraredTexture != null) + { + Graphics.CopyTexture(colorInfraredTexture, sensorData.colorInfraredTexture); + } + } + + sensorData.lastColorCamInfraredFrameTime = lastColorCamInfraredFrameTime = lastColor2InfraredImageTime; + //Debug.Log("UpdateColor2InfraredImageTimestamp: " + lastColor2InfraredImageTime); + } + } + + return true; + } + else + { + return base.UpdateColorInfraredShader(sensorData); + } + } + + + // creates the color-cam body-index shader and its respective buffers, as needed + protected override bool CreateColorBodyIndexShader(KinectInterop.SensorData sensorData) + { + bool bSuccess = base.CreateColorBodyIndexShader(sensorData); + + if (color2bodyIndexFrameClient == null) + { + color2bodyIndexFrameDecompressor = LZ4DecompressorFactory.CreateNew(); + + color2bodyIndexFrameClient = new TcpNetClient(sbConsole, color2bodyIndexFrameDecompressor); + color2bodyIndexFrameClient.ConnectToServer(serverHost, serverBasePort + (int)NetMessageType.Color2BodyIndex, "tbodyindex", null); + color2bodyIndexFrameClient.ReceivedMessage += new ReceivedMessageEventHandler(Color2BodyIndexFrameReceived); + } + + return bSuccess; + } + + + // disposes the color-cam body-index shader and its respective buffers + protected override void DisposeColorBodyIndexShader(KinectInterop.SensorData sensorData) + { + base.DisposeColorBodyIndexShader(sensorData); + + if (color2bodyIndexFrameClient != null) + { + color2bodyIndexFrameClient.ReceivedMessage -= Color2BodyIndexFrameReceived; + color2bodyIndexFrameClient.Close(); + color2bodyIndexFrameClient = null; + } + } + + + // broadcasts to discover the 1st available net-server + private void BroadcastServerDiscovery() + { + UdpClient udpClient = null; + if (bBroadcastResponseReceived) + return; + + try + { + //Debug.Log("Auto discovery - looking for net server..."); + + udpClient = new UdpClient(); + IPEndPoint ep = new IPEndPoint(IPAddress.Any, 0); + + string sRequestData = "KNS"; + byte[] btRequestData = System.Text.Encoding.UTF8.GetBytes(sRequestData); + + udpClient.EnableBroadcast = true; + udpClient.Send(btRequestData, btRequestData.Length, new IPEndPoint(IPAddress.Broadcast, serverBasePort)); + + UdpState state = new UdpState(); + state.ep = ep; + state.uc = udpClient; + + udpClient.BeginReceive(new System.AsyncCallback(BroadcastServerResponseReceived), state); + + // wait for response + // wait for net-cst + long timeStart = System.DateTime.Now.Ticks; + long timeNow = timeStart; + + while (!bBroadcastResponseReceived && (timeNow - timeStart) < 50000000) // timeout - 5 seconds + { + Thread.Sleep(THREAD_WAIT_TIME_MS); + timeNow = System.DateTime.Now.Ticks; + } + + if(bBroadcastResponseReceived) + { + if (consoleLogMessages) + Debug.Log("Auto discovery - server host: " + serverHost + ", port: " + serverBasePort); + } + else + { + Debug.LogWarning("Timed out waiting for response from the broadcast server."); + } + } + catch (System.Exception ex) + { + Debug.LogException(ex); + } + finally + { + if (udpClient != null) + { + udpClient.Close(); + } + } + } + + // invoked when a response from the broadcast server gets received + private void BroadcastServerResponseReceived(System.IAsyncResult ar) + { + UdpState state = (UdpState)(ar.AsyncState); + UdpClient uc = state.uc; + IPEndPoint ep = state.ep; + + byte[] btReceiveData = uc.EndReceive(ar, ref ep); + string sReceiveData = System.Text.Encoding.UTF8.GetString(btReceiveData); + //Debug.Log("Received response from the broadcast server."); + + if(!string.IsNullOrEmpty(sReceiveData)) + { + string[] asParts = sReceiveData.Split("|".ToCharArray()); + + if(asParts.Length >= 3 && asParts[0] == "KNS") + { + serverHost = asParts[1]; + int.TryParse(asParts[2], out serverBasePort); + bBroadcastResponseReceived = true; + } + } + + } + + + // initializes the network clients + private void InitNetClients(KinectInterop.FrameSource dwFlags) + { + try + { + if (autoServerDiscovery && !bBroadcastResponseReceived) + { + // discover the 1st available net-server + BroadcastServerDiscovery(); + } + + // clear params + //bSensorDataMsgSent = false; + bGotNetSensorData = false; + bSetNetSensorData = false; + bInvalidSensorData = false; + + lastKeepAliveFrameTime = 0; + latestDataReceivedAt = 0; + disconnectedAt = 0; + + lastControlFrameTime = 0; + lastColorFrameTime = 0; + lastDepthFrameTime = 0; + lastInfraredFrameTime = 0; + lastBodyDataFrameTime = 0; + lastBodyIndexFrameTime = 0; + lastPoseFrameTime = 0; + lastDepth2colorFrameTime = 0; + lastColor2depthFrameTime = 0; + lastColor2bodyIndexFrameTime = 0; + + // init clients + controlFrameDecompressor = LZ4DecompressorFactory.CreateNew(); + controlFrameClient = new TcpNetClient(sbConsole, controlFrameDecompressor); + + NetMessageData msgGetData = GetControlMessage(ControlMessageType.GetSensorData); + controlFrameClient.ConnectToServer(serverHost, serverBasePort + (int)NetMessageType.Control, "control", msgGetData); + controlFrameClient.ReceivedMessage += new ReceivedMessageEventHandler(ControlFrameReceived); + + if ((dwFlags & KinectInterop.FrameSource.TypeColor) != 0 && getColorFrames) + { + colorFrameClient = new TcpNetClient(sbConsole, null); + colorFrameClient.ConnectToServer(serverHost, serverBasePort + (int)NetMessageType.Color, "color", null); + colorFrameClient.ReceivedMessage += new ReceivedMessageEventHandler(ColorFrameReceived); + } + + if ((dwFlags & KinectInterop.FrameSource.TypeDepth) != 0 && getDepthFrames) + { + depthFrameDecompressor = LZ4DecompressorFactory.CreateNew(); + + depthFrameClient = new TcpNetClient(sbConsole, depthFrameDecompressor); + depthFrameClient.ConnectToServer(serverHost, serverBasePort + (int)NetMessageType.Depth, "depth", null); + depthFrameClient.ReceivedMessage += new ReceivedMessageEventHandler(DepthFrameReceived); + } + + if ((dwFlags & KinectInterop.FrameSource.TypeInfrared) != 0 && getInfraredFrames) + { + infraredFrameClient = new TcpNetClient(sbConsole, null); + infraredFrameClient.ConnectToServer(serverHost, serverBasePort + (int)NetMessageType.Infrared, "infrared", null); + infraredFrameClient.ReceivedMessage += new ReceivedMessageEventHandler(InfraredFrameReceived); + } + + if ((dwFlags & KinectInterop.FrameSource.TypeBody) != 0 && getBodyFrames) + { + bodyDataFrameClient = new TcpNetClient(sbConsole, null); + bodyDataFrameClient.ConnectToServer(serverHost, serverBasePort + (int)NetMessageType.BodyData, "body-data", null); + bodyDataFrameClient.ReceivedMessage += new ReceivedMessageEventHandler(BodyDataFrameReceived); + } + + if ((dwFlags & KinectInterop.FrameSource.TypeBodyIndex) != 0 && getBodyIndexFrames) + { + bodyIndexFrameDecompressor = LZ4DecompressorFactory.CreateNew(); + + bodyIndexFrameClient = new TcpNetClient(sbConsole, bodyIndexFrameDecompressor); + bodyIndexFrameClient.ConnectToServer(serverHost, serverBasePort + (int)NetMessageType.BodyIndex, "body-index", null); + bodyIndexFrameClient.ReceivedMessage += new ReceivedMessageEventHandler(BodyIndexFrameReceived); + } + + if ((dwFlags & KinectInterop.FrameSource.TypePose) != 0 && getPoseFrames) + { + poseFrameClient = new TcpNetClient(sbConsole, null); + poseFrameClient.ConnectToServer(serverHost, serverBasePort + (int)NetMessageType.Pose, "pose", null); + poseFrameClient.ReceivedMessage += new ReceivedMessageEventHandler(PoseFrameReceived); + } + + } + catch (System.Exception ex) + { + Debug.LogError("Error while initing the net clients."); + Debug.LogException(ex); + } + } + + + // closes all network clients + private void CloseNetClients() + { + try + { + // dispose coord mapping shaders + DisposePointCloudVertexShader(sensorData); + DisposePointCloudColorShader(sensorData); + + DisposeColorDepthShader(sensorData); + DisposeColorInfraredShader(sensorData); + DisposeColorBodyIndexShader(sensorData); + + if (controlFrameClient != null) + { + SendControlMessage(ControlMessageType.Disconnect); + + controlFrameClient.ReceivedMessage -= ControlFrameReceived; + controlFrameClient.Close(); + controlFrameClient = null; + controlFrameDecompressor = null; + } + + if (colorFrameClient != null) + { + colorFrameClient.ReceivedMessage -= ColorFrameReceived; + colorFrameClient.Close(); + colorFrameClient = null; + } + + if (depthFrameClient != null) + { + depthFrameClient.ReceivedMessage -= DepthFrameReceived; + depthFrameClient.Close(); + depthFrameClient = null; + depthFrameDecompressor = null; + } + + if (infraredFrameClient != null) + { + infraredFrameClient.ReceivedMessage -= InfraredFrameReceived; + infraredFrameClient.Close(); + infraredFrameClient = null; + } + + if (bodyDataFrameClient != null) + { + bodyDataFrameClient.ReceivedMessage -= BodyDataFrameReceived; + bodyDataFrameClient.Close(); + bodyDataFrameClient = null; + } + + if (bodyIndexFrameClient != null) + { + bodyIndexFrameClient.ReceivedMessage -= BodyIndexFrameReceived; + bodyIndexFrameClient.Close(); + bodyIndexFrameClient = null; + bodyIndexFrameDecompressor = null; + } + + if (poseFrameClient != null) + { + poseFrameClient.ReceivedMessage -= PoseFrameReceived; + poseFrameClient.Close(); + poseFrameClient = null; + } + + if (depth2colorFrameClient != null) + { + depth2colorFrameClient.ReceivedMessage -= Depth2ColorFrameReceived; + depth2colorFrameClient.Close(); + depth2colorFrameClient = null; + } + + if (color2depthFrameClient != null) + { + color2depthFrameClient.ReceivedMessage -= Color2DepthFrameReceived; + color2depthFrameClient.Close(); + color2depthFrameClient = null; + color2depthFrameDecompressor = null; + } + + if (color2bodyIndexFrameClient != null) + { + color2bodyIndexFrameClient.ReceivedMessage -= Color2BodyIndexFrameReceived; + color2bodyIndexFrameClient.Close(); + color2bodyIndexFrameClient = null; + color2bodyIndexFrameDecompressor = null; + } + + } + catch (System.Exception ex) + { + Debug.LogError("Error while closing the net servers."); + Debug.LogException(ex); + } + } + + + private void ControlFrameReceived(object state, ReceivedMessageEventArgs args) + { + if (sensorData == null) + return; + + try + { + // ignore keep-alives from the server + if(args.message.frameData.Length > 2) + { + switch(args.message.encType) + { + case FrameEncodeType.SensorDataJson: // get-sensor-data + CtrlGotNetSensorData(args.message.frameData); + break; + + case FrameEncodeType.DSTraw: // get-dst + CtrlGotNetDST(args.message.frameData); + break; + + case FrameEncodeType.CSTraw: // get-cst + CtrlGotNetCST(args.message.frameData); + break; + } + } + + lastControlFrameTime = (ulong)System.DateTime.Now.Ticks; + } + catch (System.Exception ex) + { + Debug.LogException(ex); + } + } + + // process net-sensor-data bytes + private void CtrlGotNetSensorData(byte[] btData) + { + string sNetSensorData = System.Text.Encoding.UTF8.GetString(btData); + //Debug.Log("NetSensorData (" + btData.Length + " bytes): " + sNetSensorData); + netSensorData = JsonUtility.FromJson(sNetSensorData); + //System.IO.File.WriteAllText("NetSensorData.json", sNetSensorData); + bGotNetSensorData = true; + + //lastControlFrameTime = args.message.timestamp; + if (consoleLogMessages) + Debug.Log("Got net-sensor-data"); + } + + // process net-dst bytes + private void CtrlGotNetDST(byte[] btData) + { + if (depth2SpaceTable == null) + { + int depthImageLength = sensorData.depthImageWidth * sensorData.depthImageHeight; + depth2SpaceTable = new Vector3[depthImageLength]; + } + + KinectInterop.CopyBytes(btData, 1, depth2SpaceTable, 3 * sizeof(float)); + //System.IO.File.WriteAllBytes("NetDST.bin", btData); + //lastControlFrameTime = args.message.timestamp; + + bGotDST = true; + if (consoleLogMessages) + Debug.Log("Got net-dst"); + } + + // process net-cst bytes + private void CtrlGotNetCST(byte[] btData) + { + if (color2SpaceTable == null) + { + int colorImageLength = sensorData.colorImageWidth * sensorData.colorImageHeight; + color2SpaceTable = new Vector3[colorImageLength]; + } + + KinectInterop.CopyBytes(btData, 1, color2SpaceTable, 3 * sizeof(float)); + //System.IO.File.WriteAllBytes("NetCST.bin", btData); + //lastControlFrameTime = args.message.timestamp; + + bGotCST = true; + if (consoleLogMessages) + Debug.Log("Got net-cst"); + } + + + private void ColorFrameReceived(object state, ReceivedMessageEventArgs args) + { + if (sensorData == null) + return; + + try + { + if (sensorData.colorImageWidth == 0) + { + sensorData.colorImageWidth = args.message.frameWidth; + sensorData.colorImageHeight = args.message.frameHeight; + } + + if (isSyncDepthAndColor && !args.synched) + { + SyncReceivedFrame(args.message); + return; + } + + lock (colorFrameLock) + { + colorImageData = args.message.frameData; + lastColorImageTime = args.message.timestamp; + //Debug.Log("ReceivedColorTimestamp: " + lastColorImageTime); + + lastColorFrameTime = (ulong)System.DateTime.Now.Ticks; + } + } + catch (System.Exception ex) + { + Debug.LogException(ex); + } + } + + private void DepthFrameReceived(object state, ReceivedMessageEventArgs args) + { + if (sensorData == null) + return; + + try + { + if (sensorData.depthImage == null) + { + sensorData.depthImageWidth = args.message.frameWidth; + sensorData.depthImageHeight = args.message.frameHeight; + + rawDepthImage = new ushort[sensorData.depthImageWidth * sensorData.depthImageHeight]; + sensorData.depthImage = new ushort[sensorData.depthImageWidth * sensorData.depthImageHeight]; + } + + if(isFrameSyncNeeded && !args.synched) + { + SyncReceivedFrame(args.message); + return; + } + + lock (depthFrameLock) + { + KinectInterop.CopyBytes(args.message.frameData, sizeof(byte), rawDepthImage, sizeof(ushort)); + rawDepthTimestamp = args.message.timestamp; + //Debug.Log("ReceivedDepthTimestamp: " + rawDepthTimestamp); + + lastDepthFrameTime = (ulong)System.DateTime.Now.Ticks; + } + } + catch (System.Exception ex) + { + Debug.LogException(ex); + } + } + + private void InfraredFrameReceived(object state, ReceivedMessageEventArgs args) + { + if (sensorData == null) + return; + + try + { + if (infraredImageWidth == 0 || infraredImageHeight == 0) + { + infraredImageWidth = args.message.frameWidth; + infraredImageHeight = args.message.frameHeight; + } + + if (isFrameSyncNeeded && !args.synched) + { + SyncReceivedFrame(args.message); + return; + } + + lock (infraredFrameLock) + { + infraredImageData = args.message.frameData; + lastInfraredImageTime = args.message.timestamp; + //Debug.Log("ReceivedInfraredTimestamp: " + lastInfraredImageTime); + + lastInfraredFrameTime = (ulong)System.DateTime.Now.Ticks; + } + } + catch (System.Exception ex) + { + Debug.LogException(ex); + } + } + + private void BodyDataFrameReceived(object state, ReceivedMessageEventArgs args) + { + if (sensorData == null) + return; + + try + { + if (sensorData.alTrackedBodies == null) + { + sensorData.alTrackedBodies = new KinectInterop.BodyData[0]; + sensorData.trackedBodiesCount = 0; + } + + if (isSyncBodyAndDepth && !args.synched) + { + SyncReceivedFrame(args.message); + return; + } + + lock (bodyTrackerLock) + { + Matrix4x4 sensorToWorld = GetSensorToWorldMatrix(); + + string sBodyFrameData = System.Text.Encoding.UTF8.GetString(args.message.frameData); + sensorData.trackedBodiesCount = KinectInterop.SetBodyFrameFromCsv(sBodyFrameData, "\t", sensorData, ref sensorData.alTrackedBodies, + ref sensorToWorld, bIgnoreZcoords, out rawBodyTimestamp); + sensorData.lastBodyFrameTime = currentBodyTimestamp = rawBodyTimestamp = args.message.timestamp; + //Debug.Log("ReceivedBodyTimestamp: " + rawBodyTimestamp); + + lastBodyDataFrameTime = (ulong)System.DateTime.Now.Ticks; + } + } + catch (System.Exception ex) + { + Debug.LogException(ex); + } + } + + private void BodyIndexFrameReceived(object state, ReceivedMessageEventArgs args) + { + if (sensorData == null) + return; + + try + { + if (sensorData.bodyIndexImage == null) + { + //rawBodyIndexImage = new byte[args.message.frameWidth * args.message.frameHeight]; + sensorData.bodyIndexImage = new byte[args.message.frameWidth * args.message.frameHeight]; + } + + if (isSyncBodyAndDepth && !args.synched) + { + SyncReceivedFrame(args.message); + return; + } + + lock (bodyTrackerLock) + { + rawBodyIndexImage = args.message.frameData; + rawBodyIndexTimestamp = args.message.timestamp; + //Debug.Log("ReceivedBodyIndexTimestamp: " + rawBodyIndexTimestamp); + + lastBodyIndexFrameTime = (ulong)System.DateTime.Now.Ticks; + } + } + catch (System.Exception ex) + { + Debug.LogException(ex); + } + } + + + private void PoseFrameReceived(object state, ReceivedMessageEventArgs args) + { + if (sensorData == null) + return; + + try + { + lock(netPoseLock) + { + string sNetPoseData = System.Text.Encoding.UTF8.GetString(args.message.frameData); + netPoseData = JsonUtility.FromJson(sNetPoseData); + + lastPoseFrameTime = (ulong)System.DateTime.Now.Ticks; + } + } + catch (System.Exception ex) + { + Debug.LogException(ex); + } + } + + + private void Depth2ColorFrameReceived(object state, ReceivedMessageEventArgs args) + { + if (sensorData == null) + return; + + try + { + if (depth2colorImageWidth == 0 || depth2colorImageHeight == 0) + { + depth2colorImageWidth = args.message.frameWidth; + depth2colorImageHeight = args.message.frameHeight; + } + + if (isSyncDepthAndColor && !args.synched) + { + SyncReceivedFrame(args.message); + return; + } + + lock (depthCamColorFrameLock) + { + depth2colorImageData = args.message.frameData; + lastDepth2ColorImageTime = args.message.timestamp; + //Debug.Log("ReceivedDepthCamColorTimestamp: " + lastDepth2ColorImageTime); + + lastDepth2colorFrameTime = (ulong)System.DateTime.Now.Ticks; + } + } + catch (System.Exception ex) + { + Debug.LogException(ex); + } + } + + + private void Color2DepthFrameReceived(object state, ReceivedMessageEventArgs args) + { + if (sensorData == null) + return; + + try + { + if (colorCamDepthDataFrame == null || (args.message.frameWidth * args.message.frameHeight) != colorCamDepthDataFrame.Length) + { + colorCamDepthDataFrame = new ushort[args.message.frameWidth * args.message.frameHeight]; + } + + if (isSyncDepthAndColor && !args.synched) + { + SyncReceivedFrame(args.message); + return; + } + + lock (colorCamDepthFrameLock) + { + KinectInterop.CopyBytes(args.message.frameData, sizeof(byte), colorCamDepthDataFrame, sizeof(ushort)); + lastColorCamDepthFrameTime = args.message.timestamp; + //Debug.Log("ReceivedColorCamDepthTimestamp: " + lastColorCamDepthFrameTime); + + lastColor2depthFrameTime = (ulong)System.DateTime.Now.Ticks; + } + } + catch (System.Exception ex) + { + Debug.LogException(ex); + } + } + + + private void Color2InfraredFrameReceived(object state, ReceivedMessageEventArgs args) + { + if (sensorData == null) + return; + + try + { + if (color2infraredImageWidth == 0 || color2infraredImageHeight == 0) + { + color2infraredImageWidth = args.message.frameWidth; + color2infraredImageHeight = args.message.frameHeight; + } + + if (isSyncDepthAndColor && !args.synched) + { + SyncReceivedFrame(args.message); + return; + } + + lock (colorCamInfraredFrameLock) + { + color2infraredImageData = args.message.frameData; + lastColor2InfraredImageTime = args.message.timestamp; + //Debug.Log("ReceivedColorCamInfraredTimestamp: " + lastColor2InfraredImageTime); + + lastColor2infraredFrameTime = (ulong)System.DateTime.Now.Ticks; + } + } + catch (System.Exception ex) + { + Debug.LogException(ex); + } + } + + + private void Color2BodyIndexFrameReceived(object state, ReceivedMessageEventArgs args) + { + if (sensorData == null) + return; + + try + { + if (colorCamBodyIndexFrame == null || (args.message.frameWidth * args.message.frameHeight) != colorCamBodyIndexFrame.Length) + { + colorCamBodyIndexFrame = new byte[args.message.frameWidth * args.message.frameHeight]; + } + + if (isSyncBodyAndDepth && !args.synched) + { + SyncReceivedFrame(args.message); + return; + } + + lock (colorCamBodyIndexFrameLock) + { + KinectInterop.CopyBytes(args.message.frameData, sizeof(byte), colorCamBodyIndexFrame, sizeof(byte)); + lastColorCamBodyIndexFrameTime = args.message.timestamp; + //Debug.Log("ReceivedColorCamBodyIndexTimestamp: " + lastColorCamBodyIndexFrameTime); + + lastColor2bodyIndexFrameTime = (ulong)System.DateTime.Now.Ticks; + } + } + catch (System.Exception ex) + { + Debug.LogException(ex); + } + } + + + // synchronizes the received frame with other frames at the same time + private void SyncReceivedFrame(NetMessageData message) + { + if (dictNetMessageData == null || alNetMessageTime == null) + return; + + lock (syncMessageLock) + { + ulong frameTime = message.timestamp / 10; + + if (dictNetMessageData.ContainsKey(frameTime)) + { + // update the timestamp entry with this type of message + Dictionary dictTimeFrames = dictNetMessageData[frameTime]; + dictTimeFrames[message.msgType] = message; + dictNetMessageData[frameTime] = dictTimeFrames; + //Debug.Log(" updated " + frameTime + " - " + message.msgType + " frame, frame-count: " + dictNetMessageData[frameTime].Count + ", missing: " + GetMissingSyncFramesInfo(frameTime, dictTimeFrames)); + + SyncCheckIfAllFramesReady(frameTime, dictTimeFrames); + } + else + { + // check for timeout of the oldest messages + CheckSyncMessagesTimeout(); + + // check if the message is before the oldest one in the list + ulong minTime = alNetMessageTime.Count > 0 ? alNetMessageTime[0] : 0; + if(frameTime >= minTime) + { + // create 1st entry for timestamp + Dictionary dictTimeFrames = new Dictionary(); + dictTimeFrames[message.msgType] = message; + + dictNetMessageData[frameTime] = dictTimeFrames; + alNetMessageTime.Add(frameTime); + //Debug.Log("Added " + frameTime + " - " + message.msgType + " frame, cache-size: " + alNetMessageTime.Count + ", missing: " + GetMissingSyncFramesInfo(frameTime, dictTimeFrames)); + + if (alNetMessageTime.Count > 1) + { + alNetMessageTime.Sort(); + } + + while (alNetMessageTime.Count > 20) + { + ulong msgTime = alNetMessageTime[0]; + + int msgDataCount = 0; + string missingFrames = string.Empty; + if (dictNetMessageData.ContainsKey(msgTime)) + { + msgDataCount = dictNetMessageData[msgTime].Count; + missingFrames = GetMissingSyncFramesInfo(msgTime, dictNetMessageData[msgTime]); + dictNetMessageData[msgTime].Clear(); + dictNetMessageData.Remove(msgTime); + } + + alNetMessageTime.RemoveAt(0); + if (consoleLogMessages) + Debug.LogWarning("Removed entry: " + msgTime + ", frame-count: " + msgDataCount + ", cache-size: " + alNetMessageTime.Count + ", missing: " + missingFrames); + } + } + else + { + //Debug.Log(" skipping " + frameTime + " - " + message.msgType + " frame < " + minTime); + } + + } + } + } + + // checks for timed out messages in the waiting list (> 5 seconds) and removes them, if found + private void CheckSyncMessagesTimeout() + { + long timeNow = System.DateTime.UtcNow.Ticks; + const long MESSAGE_TIMEOUT = 50000000; // 5 seconds + + for (int i = alNetMessageTime.Count - 1; i >= 0; i--) + { + ulong msgTime = alNetMessageTime[i]; + + if (dictNetMessageData.ContainsKey(msgTime)) + { + var dictTimeFrames = dictNetMessageData[msgTime]; + var listMessages = dictTimeFrames.Values.ToArray(); + + foreach (NetMessageData message in listMessages) + { + if ((timeNow - message.timeCreated) > MESSAGE_TIMEOUT) + { + //Debug.Log(" removing timed-out message " + msgTime + "-" + message.msgType + ", duration: " + (timeNow - message.timeCreated)); + dictNetMessageData[msgTime].Remove(message.msgType); + } + } + } + + if (!dictNetMessageData.ContainsKey(msgTime) || dictNetMessageData[msgTime].Count == 0) + { + if(dictNetMessageData.ContainsKey(msgTime)) + dictNetMessageData.Remove(msgTime); + alNetMessageTime.RemoveAt(i); + + if (consoleLogMessages) + Debug.LogWarning("Removed timed-out entry: " + msgTime + ", cache-size: " + alNetMessageTime.Count); + } + } + } + + // returns the list of missing frames as string + private string GetMissingSyncFramesInfo(ulong frameTime, Dictionary dictTimeFrames) + { + System.Text.StringBuilder sbBuf = new System.Text.StringBuilder(); + + if (isSyncDepthAndColor && colorFrameClient != null && !dictTimeFrames.ContainsKey(NetMessageType.Color)) + sbBuf.Append("color "); + if (isFrameSyncNeeded && depthFrameClient != null && !dictTimeFrames.ContainsKey(NetMessageType.Depth)) + sbBuf.Append("depth "); + if (isFrameSyncNeeded && infraredFrameClient != null && !dictTimeFrames.ContainsKey(NetMessageType.Infrared)) + sbBuf.Append("ir "); + if (isSyncBodyAndDepth && bodyDataFrameClient != null && !dictTimeFrames.ContainsKey(NetMessageType.BodyData)) + sbBuf.Append("body "); + if (isSyncBodyAndDepth && bodyIndexFrameClient != null && !dictTimeFrames.ContainsKey(NetMessageType.BodyIndex)) + sbBuf.Append("bi "); + if (isSyncDepthAndColor && depth2colorFrameClient != null && !dictTimeFrames.ContainsKey(NetMessageType.Depth2Color)) + sbBuf.Append("d2c "); + if (isSyncDepthAndColor && color2depthFrameClient != null && !dictTimeFrames.ContainsKey(NetMessageType.Color2Depth)) + sbBuf.Append("c2d "); + if (isSyncDepthAndColor && color2infraredFrameClient != null && !dictTimeFrames.ContainsKey(NetMessageType.Color2Infrared)) + sbBuf.Append("c2i "); + if (isSyncBodyAndDepth && color2bodyIndexFrameClient != null && !dictTimeFrames.ContainsKey(NetMessageType.Color2BodyIndex)) + sbBuf.Append("c2bi "); + + if(sbBuf.Length == 0) + { + sbBuf.Append(""); + } + + return sbBuf.ToString(); + } + + // check if all needed frames are ready + private void SyncCheckIfAllFramesReady(ulong frameTime, Dictionary dictTimeFrames) + { + bool bAllFramesPresent = true; + + if (isSyncDepthAndColor && colorFrameClient != null) + bAllFramesPresent &= dictTimeFrames.ContainsKey(NetMessageType.Color); + if (isFrameSyncNeeded && depthFrameClient != null) + bAllFramesPresent &= dictTimeFrames.ContainsKey(NetMessageType.Depth); + if (isFrameSyncNeeded && infraredFrameClient != null) + bAllFramesPresent &= dictTimeFrames.ContainsKey(NetMessageType.Infrared); + if (isSyncBodyAndDepth && bodyDataFrameClient != null) + bAllFramesPresent &= dictTimeFrames.ContainsKey(NetMessageType.BodyData); + if (isSyncBodyAndDepth && bodyIndexFrameClient != null) + bAllFramesPresent &= dictTimeFrames.ContainsKey(NetMessageType.BodyIndex); + if (isSyncDepthAndColor && depth2colorFrameClient != null) + bAllFramesPresent &= dictTimeFrames.ContainsKey(NetMessageType.Depth2Color); + if (isSyncDepthAndColor && color2depthFrameClient != null) + bAllFramesPresent &= dictTimeFrames.ContainsKey(NetMessageType.Color2Depth); + if (isSyncDepthAndColor && color2infraredFrameClient != null) + bAllFramesPresent &= dictTimeFrames.ContainsKey(NetMessageType.Color2Infrared); + if (isSyncBodyAndDepth && color2bodyIndexFrameClient != null) + bAllFramesPresent &= dictTimeFrames.ContainsKey(NetMessageType.Color2BodyIndex); + + if (bAllFramesPresent) + { + SyncSendSynchedFrames(frameTime, dictTimeFrames); + } + } + + // re-sends the synchronized frames + private void SyncSendSynchedFrames(ulong frameTime, Dictionary dictTimeFrames) + { + //Debug.Log("Resending " + dictTimeFrames.Count + " synched frames at entry: " + frameTime); + + foreach (NetMessageData message in dictTimeFrames.Values) + { + ReceivedMessageEventArgs args = new ReceivedMessageEventArgs(message, true); + + switch (message.msgType) + { + case NetMessageType.Color: + ColorFrameReceived(this, args); + break; + + case NetMessageType.Depth: + DepthFrameReceived(this, args); + break; + + case NetMessageType.Infrared: + InfraredFrameReceived(this, args); + break; + + case NetMessageType.BodyData: + BodyDataFrameReceived(this, args); + break; + + case NetMessageType.BodyIndex: + BodyIndexFrameReceived(this, args); + break; + + case NetMessageType.Depth2Color: + Depth2ColorFrameReceived(this, args); + break; + + case NetMessageType.Color2Depth: + Color2DepthFrameReceived(this, args); + break; + + case NetMessageType.Color2Infrared: + Color2InfraredFrameReceived(this, args); + break; + + case NetMessageType.Color2BodyIndex: + Color2BodyIndexFrameReceived(this, args); + break; + + default: + Debug.LogError("Unknown message type: " + message.msgType); + break; + } + } + + // clean up + if(alNetMessageTime != null && dictNetMessageData != null) + { + while (alNetMessageTime.Count > 0) + { + ulong msgTime = alNetMessageTime[0]; + + int msgDataCount = 0; + if (dictNetMessageData.ContainsKey(msgTime)) + { + msgDataCount = dictNetMessageData[msgTime].Count; + dictNetMessageData[msgTime].Clear(); + dictNetMessageData.Remove(msgTime); + } + + alNetMessageTime.RemoveAt(0); + //Debug.Log("Synched " + msgTime + ", frame-time: " + frameTime + ", frame-count: " + msgDataCount + ", cache-size: " + alNetMessageTime.Count); + + if (msgTime == frameTime) + break; + } + } + + } + + // cleans up the waiting for sync message data + private void CleanupSyncMessageData() + { + if (alNetMessageTime != null && dictNetMessageData != null) + { + for (int i = alNetMessageTime.Count - 1; i >= 0; i--) + { + ulong msgTime = alNetMessageTime[i]; + + if (dictNetMessageData.ContainsKey(msgTime)) + { + dictNetMessageData[msgTime].Clear(); + dictNetMessageData.Remove(msgTime); + } + + alNetMessageTime.RemoveAt(i); + } + + //if (consoleLogMessages) + // Debug.Log("Cleaned up the sync message data."); + } + } + + + // constructs and returns the control message + private NetMessageData GetControlMessage(ControlMessageType messageType) + { + ulong ulTimeNow = (ulong)System.DateTime.Now.Ticks; + NetMessageData msg = new NetMessageData(NetMessageType.Control, FrameEncodeType.Raw, 0, 0, ulTimeNow); + + byte[] btMsgData = new byte[1]; + btMsgData[0] = (byte)messageType; + msg.SetData(btMsgData); + + return msg; + } + + + // sends control message to the server + private void SendControlMessage(ControlMessageType messageType) + { + if(controlFrameClient != null && controlFrameClient.IsActive()) + { + NetMessageData msg = GetControlMessage(messageType); + + controlFrameClient.SendMessageToAllConnections(msg); + //Debug.Log("Sending ctrl message " + messageType); + } + } + + + // return the latest timestamp + private ulong GetLatestTimestamp() + { + ulong maxFrameTime = lastControlFrameTime; + + if (lastColorFrameTime != 0 && lastColorFrameTime > maxFrameTime) + maxFrameTime = lastColorFrameTime; + if (lastDepthFrameTime != 0 && lastDepthFrameTime > maxFrameTime) + maxFrameTime = lastDepthFrameTime; + if (lastInfraredFrameTime != 0 && lastInfraredFrameTime > maxFrameTime) + maxFrameTime = lastInfraredFrameTime; + if (lastBodyDataFrameTime != 0 && lastBodyDataFrameTime > maxFrameTime) + maxFrameTime = lastBodyDataFrameTime; + if (lastBodyIndexFrameTime != 0 && lastBodyIndexFrameTime > maxFrameTime) + maxFrameTime = lastBodyIndexFrameTime; + if (lastPoseFrameTime != 0 && lastPoseFrameTime > maxFrameTime) + maxFrameTime = lastPoseFrameTime; + if (lastDepth2colorFrameTime != 0 && lastDepth2colorFrameTime > maxFrameTime) + maxFrameTime = lastDepth2colorFrameTime; + if (lastColor2depthFrameTime != 0 && lastColor2depthFrameTime > maxFrameTime) + maxFrameTime = lastColor2depthFrameTime; + if (lastColor2infraredFrameTime != 0 && lastColor2infraredFrameTime > maxFrameTime) + maxFrameTime = lastColor2infraredFrameTime; + if (lastColor2bodyIndexFrameTime != 0 && lastColor2bodyIndexFrameTime > maxFrameTime) + maxFrameTime = lastColor2bodyIndexFrameTime; + + return maxFrameTime; + } + + } + + + /// + /// TcpNetClient provides network client functionality over tcp streams. + /// This class is based on the excellent work of Andy Wilson and Hrvoje Benko in "Room Alive Toolkit" - https://github.com/microsoft/RoomAliveToolkit + /// + internal class TcpNetClient + { + //private const int bufferSize = 10240000; + public int tmpBufferSize = 640000; + + private System.Text.StringBuilder sbConsole = null; + private ILZ4Decompressor decompressor = null; + + private string streamDesc = string.Empty; + private List connections = new List(); + private NetMessageData sendMsgOnConnect = null; + + // thread signal + public ManualResetEvent allDoneClient = new ManualResetEvent(false); + + public ReceivedMessageEventHandler ReceivedMessage = null; + + + public bool IsConnected() + { + return (connections.Count > 0); + } + + public int GetConnCount() + { + return connections.Count; + } + + public bool IsActive() + { + bool bActive = (connections.Count > 0) ? true : false; + + foreach (NetConnData conn in connections) + { + if (!conn.isActive) + { + bActive = false; + break; + } + } + + return bActive; + } + + public bool IsReadyToSend() + { + bool bReady = (connections.Count > 0) ? true : false; + + foreach (NetConnData conn in connections) + { + if (!conn.readyToSend) + { + bReady = false; + break; + } + } + + return bReady; + } + + //public void CloseConnection(int connId) + //{ + // foreach (NetConnData conn in connections) + // { + // if (conn.ID == connId) + // { + // //Debug.Log("Closing connection " + conn.ID + " to " + conn.remoteEP); + // LogToConsole("Closing connection to " + streamDesc + " server."); + // conn.isActive = false; + + // connections.Remove(conn); + // break; + // } + // } + //} + + public void CloseConnectionsTo(string remoteIP) + { + for (int i = connections.Count - 1; i >= 0; i--) + { + NetConnData conn = connections[i]; + + if (conn.remoteIP == remoteIP) + { + //Debug.Log("Closing connection " + conn.ID + " to " + conn.remoteEP); + LogToConsole("Closing connection to " + streamDesc + " server."); + conn.isActive = false; + + connections.Remove(conn); + } + } + } + + public void CloseAllConnections() + { + foreach (NetConnData conn in connections) + { + //Debug.Log("Closing connection " + conn.ID + " to " + conn.remoteEP); + LogToConsole("Closing connection to " + streamDesc + " server."); + conn.isActive = false; + } + + connections.Clear(); + } + + public void SendMessageToAllConnections(NetMessageData message) + { + foreach (NetConnData conn in connections) + { + lock (conn.messageQueue) + { + if (conn.messageQueue.Count < NetConnData.MaxMessageQueueLength) + { + conn.messageQueue.Enqueue(message); + } + } + } + } + + public void SendMessageToConnection(NetMessageData message, int connId) + { + foreach (NetConnData conn in connections) + { + if (conn.ID == connId) + { + lock (conn.messageQueue) + { + if (conn.messageQueue.Count < NetConnData.MaxMessageQueueLength) + { + conn.messageQueue.Enqueue(message); + } + } + + break; + } + } + } + + + public TcpNetClient(System.Text.StringBuilder sbConsole, ILZ4Decompressor decompressor) + { + this.sbConsole = sbConsole; + this.decompressor = decompressor; + } + + + public void Close() + { + allDoneClient.Set(); + + foreach (NetConnData cs in connections) + { + cs.isActive = false; + } + } + + public void ConnectToServer(string host, int port, string streamDesc, NetMessageData msgOnConnect) + { + this.streamDesc = streamDesc; + this.sendMsgOnConnect = msgOnConnect; + + try + { + TcpClient client = new TcpClient(AddressFamily.InterNetwork); + + IPAddress ipAddress = null; + bool isIpAddr = host.Length > 0 && host[0] >= '0' && host[0] <= '9'; + + if (isIpAddr) + { + ipAddress = IPAddress.Parse(host); + } + else + { + IPHostEntry ipHostInfo = Dns.GetHostEntry(host); + ipAddress = ipHostInfo.AddressList.Where(a => a.AddressFamily == AddressFamily.InterNetwork).First(); + } + + //Debug.Log("Connecting to " + host + " - " + ipAddress + ":" + port); + LogToConsole("Connecting to " + streamDesc + " server at " + ipAddress + ":" + port); + client.BeginConnect(ipAddress, port, new System.AsyncCallback(HandleNetServerConnected), client); + } + catch (System.Exception ex) + { + //Debug.LogError("Connection to server failed: " + ex.Message); + LogErrorToConsole("Connection to " + streamDesc + " server failed: " + ex.Message); + //Debug.LogException(ex); + } + } + + private void HandleNetServerConnected(System.IAsyncResult ar) + { + try + { + NetConnData conn = new NetConnData(); + + conn.client = (TcpClient)ar.AsyncState; + conn.client.EndConnect(ar); + conn.stream = conn.client.GetStream(); + + conn.remoteIP = conn.client.Client.RemoteEndPoint.ToString(); + int iP = conn.remoteIP.IndexOf(':'); + if (iP >= 0) + conn.remoteIP = conn.remoteIP.Substring(0, iP); + + connections.Add(conn); + //Debug.Log("Connected to server " + conn.remoteEP); + LogToConsole("Connected to " + streamDesc + " server " + conn.remoteIP); + + if(sendMsgOnConnect != null) + { + SendMessageToConnection(sendMsgOnConnect, conn.ID); + } + + NetClientProc(conn); + } + catch (System.ObjectDisposedException) + { + // do nothing + } + catch (System.Exception ex) + { + //Debug.LogError("Connection to server failed: " + ex.Message); + LogErrorToConsole("Connection to " + streamDesc + " server failed: " + ex.Message); + //Debug.LogException(ex); + } + } + + private void NetClientProc(NetConnData conn) + { + conn.isActive = true; + int bytesReceived = 0; + byte[] bufferTmp = new byte[tmpBufferSize]; + + try + { + while (conn.client.Connected && conn.isActive) + { + if (conn.readyToSend && conn.stream.CanWrite && conn.messageQueue.Count > 0) + { + byte[] sendBuffer; + lock (conn.messageQueue) + { + sendBuffer = conn.messageQueue.Dequeue().WrapMessage(); + conn.readyToSend = false; + } + + conn.stream.BeginWrite(sendBuffer, 0, sendBuffer.Length, new System.AsyncCallback(MessageSentToServer), conn); + } + + bytesReceived = 0; + while (conn.stream.DataAvailable) + { + conn.messageReceiveTime = (ulong)System.DateTime.Now.Ticks; + bytesReceived = conn.stream.Read(bufferTmp, 0, bufferTmp.Length); + ProcessReceivedData(bufferTmp, bytesReceived, conn); + } + + Thread.Sleep(KinectInterop.THREAD_SLEEP_TIME_MS); + } + } + catch(ThreadAbortException) + { + // do nothing + } + catch (System.Exception ex) + { + Debug.LogException(ex); + } + + conn.isActive = false; + conn.messageQueue.Clear(); + + //Debug.Log("Connection " + conn.ID + " to " + conn.remoteEP + " closed."); + LogToConsole("Connection to " + streamDesc + " server closed."); + + conn.stream.Close(); + conn.client.Close(); + + if (connections.Contains(conn)) + { + connections.Remove(conn); + } + } + + private void MessageSentToServer(System.IAsyncResult ar) + { + var conn = (NetConnData)ar.AsyncState; + + try + { + conn.stream.EndWrite(ar); + } + catch (System.Exception ex) + { + if(conn.isActive) + { + //Debug.LogError("Exception occured while sending message to server."); + LogErrorToConsole("Error sending to " + streamDesc + " server: " + ex.Message); + //Debug.LogException(ex); + + conn.isActive = false; + } + } + + conn.readyToSend = true; + } + + private void ProcessReceivedData(byte[] buffer, int bytesReceived, NetConnData conn) + { + if (conn.bytesReceived == 0 && bytesReceived > 3) //new message + { + int newMessageSize = System.BitConverter.ToInt32(buffer, 0) + sizeof(int); //prefix is one int + + if (newMessageSize != conn.messageSize) + { + conn.messageSize = newMessageSize; + conn.messageBuffer = new byte[newMessageSize]; + } + } + + int availableLength = conn.messageSize - conn.bytesReceived; + int copyLen = Mathf.Min(availableLength, bytesReceived); + conn.packetCounter++; + + System.Array.Copy(buffer, 0, conn.messageBuffer, conn.bytesReceived, copyLen); + conn.bytesReceived += copyLen; + + if (conn.bytesReceived == conn.messageSize) + { + conn.ResetCounters(); + + NetMessageData message = new NetMessageData(); + message.SetDecompressor(decompressor); + message.UnwrapMessage(conn.messageBuffer); + //Debug.Log("Received message: " + message.timestamp + " - " + message.msgType + " @ " + System.DateTime.Now.ToString("HH:mm:ss.fff")); + + ReceivedMessage?.Invoke(conn, new ReceivedMessageEventArgs(message)); + } + + if (copyLen != bytesReceived) // process the remainder of the message + { + byte[] newBuffer = new byte[bytesReceived - copyLen]; + System.Array.Copy(buffer, copyLen, newBuffer, 0, bytesReceived - copyLen); + ProcessReceivedData(newBuffer, bytesReceived - copyLen, conn); + } + } + + // logs message to the console + private void LogToConsole(string sMessage) + { + Debug.Log(sMessage); + + lock (sbConsole) + { + sbConsole.Clear(); + sbConsole.Append(sMessage); //.AppendLine(); + } + } + + // logs error message to the console + private void LogErrorToConsole(string sMessage) + { + Debug.LogError(sMessage); + + lock (sbConsole) + { + sbConsole.Clear(); + sbConsole.Append(sMessage); //.AppendLine(); + } + } + + + // logs error message to the console + private void LogErrorToConsole(System.Exception ex) + { + LogErrorToConsole(ex.Message + "\n" + ex.StackTrace); + } + + } + +} diff --git a/Assets/Azure/KinectScripts/Interfaces/NetClientInterface.cs.meta b/Assets/Azure/KinectScripts/Interfaces/NetClientInterface.cs.meta new file mode 100644 index 0000000..ff4f8b4 --- /dev/null +++ b/Assets/Azure/KinectScripts/Interfaces/NetClientInterface.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: eb612f05db283eb42a3801236d897315 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/Interfaces/RealSenseInterface.cs b/Assets/Azure/KinectScripts/Interfaces/RealSenseInterface.cs new file mode 100644 index 0000000..59e0c9d --- /dev/null +++ b/Assets/Azure/KinectScripts/Interfaces/RealSenseInterface.cs @@ -0,0 +1,1093 @@ +using UnityEngine; +using System.Collections; +using System.Collections.Generic; +using Intel.RealSense; +using System.Threading; +using System; +using System.Linq; +using System.Runtime.InteropServices; + + +namespace com.rfilkov.kinect +{ + /// + /// RealSenseInterface is sensor-interface to the RealSense sensors. + /// + public class RealSenseInterface : DepthSensorBase + { + [Tooltip("Color camera resolution.")] + public ColorCameraMode colorCameraMode = ColorCameraMode._640_x_480_30Fps; + public enum ColorCameraMode : int { _320_x_180_30Fps = 10, _320_x_240_30Fps = 15, _424_x_240_30Fps = 20, _640_x_360_30Fps = 30, _640_x_480_30Fps = 35, _848_x_480_30Fps = 40, _1280_x_720_30Fps = 60, _1920_x_1080_30Fps = 70 } + + [Tooltip("Depth camera resolution.")] + public DepthCameraMode depthCameraMode = DepthCameraMode._640_x_480_30Fps; + public enum DepthCameraMode : int { _424_x_240_30Fps = 20, _480_x_270_30Fps = 25, _640_x_360_30Fps = 30, _640_x_480_30Fps = 35, _848_x_480_30Fps = 40, _1280_x_720_30Fps = 60, _1920_x_1080_30Fps = 70 } + + + // realsense pipeline + private Pipeline m_pipeline = null; + + //public bool Streaming { get; protected set; } + private PipelineProfile activeProfile = null; + + // current frame number + //private ulong currentFrameNumber = 0; + //private ulong currentFrameTimestamp = 0; + + // stream profiles + private VideoStreamProfile depthStreamProfile = null; + private VideoStreamProfile colorStreamProfile = null; + + // raw infrared data + protected byte[] rawInfraredImage1 = null; + protected byte[] rawInfraredImage2 = null; // used by BT + protected ushort[] rawInfraredImageBT = null; + + // raw IMU data + private RealSensePoseData rsPoseData; + + // rs frame holder + protected RealSenseFrames rsFrames = new RealSenseFrames(); + + + // depth sensor settings + [System.Serializable] + public class RSSensorSettings : DepthSensorBase.BaseSensorSettings + { + public int colorCameraMode; + public int depthCameraMode; + } + + + [StructLayout(LayoutKind.Sequential)] + struct RealSensePoseData + { + public Vector3 translation; + public Vector3 velocity; + public Vector3 acceleration; + public Quaternion rotation; + public Vector3 angular_velocity; + public Vector3 angular_acceleration; + public int tracker_confidence; + public int mapper_confidence; + } + + // rs frame set + public class RealSenseFrames + { + public VideoFrame colorFrame = null; + public VideoFrame depthFrame = null; + public VideoFrame infraredFrame = null; + public PoseFrame poseFrame = null; + public ulong deviceTimestamp = 0; + + public void DisposeFrames() + { + if (colorFrame != null) + { + colorFrame.Dispose(); + colorFrame = null; + } + + if (depthFrame != null) + { + depthFrame.Dispose(); + depthFrame = null; + } + + if (infraredFrame != null) + { + infraredFrame.Dispose(); + infraredFrame = null; + } + + if (poseFrame != null) + { + poseFrame.Dispose(); + poseFrame = null; + } + } + } + + + public override KinectInterop.DepthSensorPlatform GetSensorPlatform() + { + return KinectInterop.DepthSensorPlatform.RealSense; + } + + + public override System.Type GetSensorSettingsType() + { + return typeof(RSSensorSettings); + } + + + public override BaseSensorSettings GetSensorSettings(BaseSensorSettings settings) + { + if (settings == null) + { + settings = new RSSensorSettings(); + } + + RSSensorSettings extSettings = (RSSensorSettings)base.GetSensorSettings(settings); + + extSettings.colorCameraMode = (int)colorCameraMode; + extSettings.depthCameraMode = (int)depthCameraMode; + + return settings; + } + + public override void SetSensorSettings(BaseSensorSettings settings) + { + if (settings == null) + return; + + base.SetSensorSettings(settings); + + RSSensorSettings extSettings = (RSSensorSettings)settings; + colorCameraMode = (ColorCameraMode)extSettings.colorCameraMode; + depthCameraMode = (DepthCameraMode)extSettings.depthCameraMode; + } + + public override List GetAvailableSensors() + { + List alSensorInfo = new List(); + + using (var ctx = new Context()) + { + DeviceList devices = ctx.QueryDevices(); + + for(int i = 0; i < devices.Count; i++) + { + using (Intel.RealSense.Device device = devices[i]) + { + KinectInterop.SensorDeviceInfo sensorInfo = new KinectInterop.SensorDeviceInfo(); + sensorInfo.sensorId = device.Info[CameraInfo.SerialNumber]; + sensorInfo.sensorName = device.Info[CameraInfo.Name]; + + if (sensorInfo.sensorName.StartsWith("Intel RealSense D")) + sensorInfo.sensorCaps = KinectInterop.FrameSource.TypeColor | KinectInterop.FrameSource.TypeDepth | KinectInterop.FrameSource.TypeInfrared; + else if (sensorInfo.sensorName.StartsWith("Intel RealSense T")) + sensorInfo.sensorCaps = KinectInterop.FrameSource.TypePose; + else + sensorInfo.sensorCaps = KinectInterop.FrameSource.TypeNone; + + if (consoleLogMessages) + Debug.Log(string.Format(" D{0}: {1}, id: {2}", i, sensorInfo.sensorName, sensorInfo.sensorId)); + + alSensorInfo.Add(sensorInfo); + } + } + } + + //if (alSensorInfo.Count == 0) + //{ + // Debug.Log(" No sensor devices found."); + //} + + return alSensorInfo; + } + + + public override KinectInterop.SensorData OpenSensor(KinectManager kinectManager, KinectInterop.FrameSource dwFlags, bool bSyncDepthAndColor, bool bSyncBodyAndDepth) + { + // save initial parameters + base.OpenSensor(kinectManager, dwFlags, bSyncDepthAndColor, bSyncBodyAndDepth); + + // color settings + int colorWidth = 0, colorHeight = 0, colorFps = 0; + ParseCameraMode(colorCameraMode.ToString(), out colorWidth, out colorHeight, out colorFps); + + // depth settings + int depthWidth = 0, depthHeight = 0, depthFps = 0; + ParseCameraMode(depthCameraMode.ToString(), out depthWidth, out depthHeight, out depthFps); + + string sensorName = "Intel RealSense"; + KinectInterop.FrameSource sensorCaps = KinectInterop.FrameSource.TypeColor | KinectInterop.FrameSource.TypeDepth | KinectInterop.FrameSource.TypeInfrared; ; + + try + { + m_pipeline = new Pipeline(); + + using (Config config = new Config()) + { + if(deviceStreamingMode == KinectInterop.DeviceStreamingMode.PlayRecording) + { + if (string.IsNullOrEmpty(recordingFile)) + { + Debug.LogError("PlayRecording selected, but the path to recording file is missing."); + return null; + } + + if(!System.IO.File.Exists(recordingFile)) + { + Debug.LogError("PlayRecording selected, but the recording file cannot be found: " + recordingFile); + return null; + } + + sensorPlatform = KinectInterop.DepthSensorPlatform.RealSense; + sensorDeviceId = KinectInterop.GetFileName(recordingFile, false); + + // playback from file + if (consoleLogMessages) + Debug.Log(" Playing back: " + recordingFile); + config.EnableDeviceFromFile(recordingFile, false); + } + else + { + // get the list of available sensors + List alSensors = GetAvailableSensors(); + if (deviceIndex >= alSensors.Count) + { + Debug.LogError(" D" + deviceIndex + " is not available. You can set the device index to -1, to disable it."); + return null; + } + + // sensor serial number + sensorPlatform = KinectInterop.DepthSensorPlatform.RealSense; + sensorDeviceId = alSensors[deviceIndex].sensorId; + sensorName = alSensors[deviceIndex].sensorName; + sensorCaps = alSensors[deviceIndex].sensorCaps; + + config.EnableDevice(sensorDeviceId); + + // color + if ((dwFlags & KinectInterop.FrameSource.TypeColor) != 0) + { + //Debug.Log(string.Format("Color camera mode: {0} x {1} @ {2} FPS", colorWidth, colorHeight, colorFps)); + config.EnableStream(Stream.Color, -1, colorWidth, colorHeight, Format.Rgb8, colorFps); + } + + // depth + if ((dwFlags & KinectInterop.FrameSource.TypeDepth) != 0) + { + //Debug.Log(string.Format("Depth camera mode: {0} x {1} @ {2} FPS", depthWidth, depthHeight, depthFps)); + config.EnableStream(Stream.Depth, -1, depthWidth, depthHeight, Format.Z16, depthFps); + } + + // infrared + if ((dwFlags & KinectInterop.FrameSource.TypeInfrared) != 0 /**|| (dwFlags & KinectInterop.FrameSource.TypeBody) != 0*/) + { + //Debug.Log(string.Format("Infrared camera mode: {0} x {1} @ {2} FPS", depthWidth, depthHeight, depthFps)); + config.EnableStream(Stream.Infrared, 1, depthWidth, depthHeight, Format.Y8, depthFps); + //config.EnableStream(Stream.Infrared, 2, depthWidth, depthHeight, Format.Y8, depthFps); + } + + // pose + if ((dwFlags & KinectInterop.FrameSource.TypePose) != 0) + { + config.EnableStream(Stream.Pose, Format.SixDOF); + } + + // record to file + if (deviceStreamingMode == KinectInterop.DeviceStreamingMode.SaveRecording) + { + if (!string.IsNullOrEmpty(recordingFile)) + { + if (consoleLogMessages) + Debug.Log(" Recording to file: " + recordingFile); + + config.EnableRecordToFile(recordingFile); + } + else + { + Debug.LogError("Record selected, but the path to recording file is missing."); + } + } + } + + activeProfile = m_pipeline.Start(config); + } + } + catch (Exception ex) + { + Debug.LogError("RealSenseInterface: " + ex.ToString()); + } + + // check if the profile was successfully created + if(activeProfile == null) + return null; + + KinectInterop.SensorData sensorData = new KinectInterop.SensorData(); + sensorData.sensorIntPlatform = sensorPlatform; + + sensorData.sensorId = sensorDeviceId; + sensorData.sensorName = sensorName; + sensorData.sensorCaps = sensorCaps; + + // flip color & depth images vertically + sensorData.colorImageScale = new Vector3(-1f, -1f, 1f); + sensorData.depthImageScale = new Vector3(-1f, -1f, 1f); + sensorData.infraredImageScale = new Vector3(-1f, -1f, 1f); + sensorData.sensorSpaceScale = new Vector3(-1f, -1f, 1f); + sensorData.unitToMeterFactor = 1f; + + // depth camera offset & matrix z-flip + sensorRotOffset = Vector3.zero; // if for instance the depth camera is tilted downwards + sensorRotFlipZ = true; + sensorRotIgnoreY = false; + + // color + sensorData.colorImageWidth = colorWidth; + sensorData.colorImageHeight = colorHeight; + + sensorData.colorImageFormat = TextureFormat.RGB24; + sensorData.colorImageStride = 3; // 3 bytes per pixel + + if ((dwFlags & KinectInterop.FrameSource.TypeColor) != 0) + { + rawColorImage = new byte[sensorData.colorImageWidth * sensorData.colorImageHeight * 3]; + + sensorData.colorImageTexture = new Texture2D(sensorData.colorImageWidth, sensorData.colorImageHeight, TextureFormat.RGB24, false); + sensorData.colorImageTexture.wrapMode = TextureWrapMode.Clamp; + sensorData.colorImageTexture.filterMode = FilterMode.Point; + } + + // depth + sensorData.depthImageWidth = depthWidth; + sensorData.depthImageHeight = depthHeight; + + if ((dwFlags & KinectInterop.FrameSource.TypeDepth) != 0) + { + rawDepthImage = new ushort[sensorData.depthImageWidth * sensorData.depthImageHeight]; + sensorData.depthImage = new ushort[sensorData.depthImageWidth * sensorData.depthImageHeight]; + } + + // infrared + if ((dwFlags & KinectInterop.FrameSource.TypeInfrared) != 0 || (dwFlags & KinectInterop.FrameSource.TypeBody) != 0) + { + rawInfraredImage1 = new byte[sensorData.depthImageWidth * sensorData.depthImageHeight]; + rawInfraredImage2 = new byte[sensorData.depthImageWidth * sensorData.depthImageHeight]; + rawInfraredImageBT = new ushort[sensorData.depthImageWidth * sensorData.depthImageHeight]; + + rawInfraredImage = new ushort[sensorData.depthImageWidth * sensorData.depthImageHeight]; + sensorData.infraredImage = new ushort[sensorData.depthImageWidth * sensorData.depthImageHeight]; + + minInfraredValue = 0f; + maxInfraredValue = 1000f; + } + + // don't get all frames + getAllSensorFrames = false; + + if (consoleLogMessages) + Debug.Log("D" + deviceIndex + " RealSense-sensor opened: " + sensorDeviceId); + + return sensorData; + } + + + // parses the given camera mode and returns width, height and fps + private void ParseCameraMode(string sCameraMode, out int camWidth, out int camHeight, out int camFps) + { + camWidth = camHeight = camFps = 0; + + if (string.IsNullOrEmpty(sCameraMode)) + throw new Exception("Invalid camera mode" + sCameraMode); + + // _640_x_360_30Fps + string[] asModeParts = sCameraMode.Split("_".ToCharArray()); + if(asModeParts.Length != 5) + throw new Exception("Invalid camera mode" + sCameraMode); + + camWidth = int.Parse(asModeParts[1]); + camHeight = int.Parse(asModeParts[3]); + + int iF = asModeParts[4].IndexOf('F'); + if (iF >= 0) + asModeParts[4] = asModeParts[4].Substring(0, iF); + + camFps = int.Parse(asModeParts[4]); + } + + + public override void CloseSensor(KinectInterop.SensorData sensorData) + { + base.CloseSensor(sensorData); + + if (activeProfile != null) + { + activeProfile.Dispose(); + activeProfile = null; + } + + if (m_pipeline != null) + { + m_pipeline.Dispose(); + m_pipeline = null; + } + + if (consoleLogMessages) + Debug.Log("D" + deviceIndex + " RealSense-sensor closed: " + sensorDeviceId); + } + + + public override void EnablePoseStream(KinectInterop.SensorData sensorData, bool bEnable) + { + base.EnablePoseStream(sensorData, bEnable); + + if ((frameSourceFlags & KinectInterop.FrameSource.TypePose) != 0) + { + // todo + } + else + { + // todo + } + } + + + public override void PollSensorFrames(KinectInterop.SensorData sensorData) + { + FrameSet frames; + if (m_pipeline.PollForFrames(out frames)) + { + //using (frames) + // RaiseSampleEvent(frames); + + using (frames) + { + try + { + rsFrames.colorFrame = frames.ColorFrame; + rsFrames.depthFrame = frames.DepthFrame; + rsFrames.infraredFrame = frames.InfraredFrame; + rsFrames.poseFrame = frames.PoseFrame; + rsFrames.deviceTimestamp = (ulong)(frames.Timestamp * 1000.0); + + //currentFrameNumber = frames.Number; + //currentFrameTimestamp = (ulong)(frames.Timestamp * 1000.0); + + // check for color-depth sync + if(!isSyncDepthAndColor || (rsFrames.colorFrame != null && rsFrames.depthFrame != null)) + { + ProcessCameraFrames(sensorData, rsFrames); + } + + rsFrames.DisposeFrames(); + //pipelineFrameNumber++; + } + catch (Exception e) + { + Debug.LogException(e); + } + } + } + } + + private void ProcessCameraFrames(KinectInterop.SensorData sensorData, RealSenseFrames frames) + { + //Capture btCapture = null; + //if (bodyTracker != null) + //{ + // // body frame + // if (frames.depthFrame != null && frames.infraredFrame != null) + // { + // Capture capture = GetBodyTrackerCapture(sensorData, frames); + // btCapture = PollBodyFrame(sensorData, capture); + // capture?.Dispose(); + // } + //} + + // check for body & depth sync + //if (!isSyncBodyAndDepth || btCapture != null /**|| bodyTracker == null*/) + { + // if (isSyncBodyAndDepth && btCapture != null) + // { + // ulong depthFrameTime = isSyncDepthAndColor && btCapture.Depth != null ? (ulong)btCapture.Depth.DeviceTimestamp.Ticks : 0; + + // // body-tracker frame + // if (btCapture.Depth != null && rawDepthImage != null && (getAllSensorFrames || rawDepthTimestamp == sensorData.lastDepthFrameTime)) + // { + // lock (depthFrameLock) + // { + // //btCapture.Depth.CopyTo(rawDepthImage, 0, 0, rawDepthImage.Length); + // KinectInterop.CopyBytes(btCapture.Depth.GetBuffer(), (int)btCapture.Depth.Size, rawDepthImage, rawDepthImage.Length, sizeof(ushort)); + // rawDepthTimestamp = (ulong)btCapture.Depth.DeviceTimestamp.Ticks; + // //Debug.Log("D" + deviceIndex + " RawDepthTimestamp: " + rawDepthTimestamp); + // } + // } + + // if (btCapture.Color != null && rawColorImage != null && (getAllSensorFrames || rawColorTimestamp == sensorData.lastColorFrameTime)) + // { + // lock (colorFrameLock) + // { + // //btCapture.Color.CopyBytesTo(rawColorImage, 0, 0, rawColorImage.Length); + // KinectInterop.CopyBytes(btCapture.Color.GetBuffer(), (int)btCapture.Color.Size, rawColorImage, rawColorImage.Length, sizeof(byte)); + // rawColorTimestamp = depthFrameTime != 0 ? depthFrameTime : (ulong)btCapture.Color.DeviceTimestamp.Ticks; + // //Debug.Log("D" + deviceIndex + " RawColorTimestamp: " + rawColorTimestamp); + // } + // } + + // if (btCapture.IR != null && rawInfraredImage != null && (getAllSensorFrames || rawInfraredTimestamp == sensorData.lastInfraredFrameTime)) + // { + // lock (infraredFrameLock) + // { + // //btCapture.IR.CopyTo(rawInfraredImage, 0, 0, rawInfraredImage.Length); + // KinectInterop.CopyBytes(btCapture.IR.GetBuffer(), (int)btCapture.IR.Size, rawInfraredImage, rawInfraredImage.Length, sizeof(ushort)); + // rawInfraredTimestamp = depthFrameTime != 0 ? depthFrameTime : (ulong)btCapture.IR.DeviceTimestamp.Ticks; + // //Debug.Log("D" + deviceIndex + " RawInfraredTimestamp: " + rawInfraredTimestamp); + // } + // } + // } + // else + { + // sensor frame + ulong depthFrameTime = isSyncDepthAndColor && frames.depthFrame != null ? frames.deviceTimestamp : 0; + + if (frames.depthFrame != null && rawDepthImage != null && (getAllSensorFrames || rawDepthTimestamp == sensorData.lastDepthFrameTime)) + { + lock (depthFrameLock) + { + frames.depthFrame.CopyTo(rawDepthImage); + rawDepthTimestamp = frames.deviceTimestamp; + //Debug.Log("D" + deviceIndex + " RawDepthTimestamp: " + rawDepthTimestamp); + } + } + + if (frames.colorFrame != null && rawColorImage != null && (getAllSensorFrames || rawColorTimestamp == sensorData.lastColorFrameTime)) + { + lock (colorFrameLock) + { + KinectInterop.CopyBytes(frames.colorFrame.Data, rawColorImage.Length, rawColorImage, rawColorImage.Length, sizeof(byte)); + rawColorTimestamp = depthFrameTime != 0 ? depthFrameTime : frames.deviceTimestamp; + //Debug.Log("D" + deviceIndex + " RawColorTimestamp: " + rawColorTimestamp); + } + } + + if (frames.infraredFrame != null && rawInfraredImage != null && (getAllSensorFrames || rawInfraredTimestamp == sensorData.lastInfraredFrameTime)) + { + lock (infraredFrameLock) + { + frames.infraredFrame.CopyTo(rawInfraredImage1); + for (int i = 0; i < rawInfraredImage1.Length; i++) + { + rawInfraredImage[i] = (ushort)(rawInfraredImage1[i] << 4); + } + + rawInfraredTimestamp = depthFrameTime != 0 ? depthFrameTime : frames.deviceTimestamp; + //Debug.Log("D" + deviceIndex + " RawInfraredTimestamp: " + rawInfraredTimestamp); + } + } + } + } + + // color & depth stream profiles + if(frames.colorFrame != null) + { + colorStreamProfile = frames.colorFrame.Profile.As(); + } + + if(frames.depthFrame != null) + { + depthStreamProfile = frames.depthFrame.Profile.As(); + } + + //// dispose body capture + //if (btCapture != null) + //{ + // btCapture.Dispose(); + //} + + // check for pose frame + if (frames.poseFrame != null) + { + frames.poseFrame.CopyTo(out rsPoseData); + + lock (poseFrameLock) + { + rawPosePosition = new Vector3(rsPoseData.translation.x, rsPoseData.translation.y, -rsPoseData.translation.z); // (1, 1, -1) + rawPoseRotation = new Quaternion(-rsPoseData.rotation.x, -rsPoseData.rotation.y, rsPoseData.rotation.z, rsPoseData.rotation.w); // (-1, -1, 1, 1); + + rawPoseTimestamp = frames.deviceTimestamp; + //Debug.Log("D" + deviceIndex + " RawPoseTimestamp: " + rawPoseTimestamp); + } + } + } + + + //// converts the raw image data to capture + //protected Capture GetBodyTrackerCapture(KinectInterop.SensorData sensorData, RealSenseFrames rsFrames) + //{ + // Capture capture = new Capture(); + + // int depthW = sensorData.depthImageWidth; + // int depthH = sensorData.depthImageHeight; + + // if (rsFrames.colorFrame != null && rawColorImage != null) + // { + // Image colorImage = new Image(ImageFormat.ColorBGRA32, sensorData.colorImageWidth, sensorData.colorImageHeight, sensorData.colorImageWidth * 4); + // KinectInterop.CopyBytes(rsFrames.colorFrame.Data, colorImage.GetBuffer(), rawColorImage.Length); + // colorImage.DeviceTimestamp = TimeSpan.FromTicks((long)rsFrames.deviceTimestamp); + // capture.Color = colorImage; + // } + + // if (rsFrames.depthFrame != null && rawDepthImage != null) + // { + // Image depthImage = new Image(ImageFormat.Depth16, depthW, depthH, depthW * sizeof(ushort)); + // KinectInterop.CopyBytes(rsFrames.depthFrame.Data, depthImage.GetBuffer(), rawDepthImage.Length * sizeof(ushort)); + // depthImage.DeviceTimestamp = TimeSpan.FromTicks((long)rsFrames.deviceTimestamp); + // capture.Depth = depthImage; + // } + + // if (rsFrames.infraredFrame != null && rawInfraredImage2 != null && rawInfraredImageBT != null) + // { + // Image infraredFrame = new Image(ImageFormat.IR16, depthW, depthH, depthW * sizeof(ushort)); + // rsFrames.infraredFrame.CopyTo(rawInfraredImage2); + + // for (int i = 0; i < rawInfraredImage2.Length; i++) + // { + // rawInfraredImageBT[i] = (ushort)(rawInfraredImage2[i] << 4); + // } + + // KinectInterop.CopyBytes(rawInfraredImageBT, rawInfraredImageBT.Length, sizeof(ushort), infraredFrame.GetBuffer(), (int)infraredFrame.Size); + // infraredFrame.DeviceTimestamp = TimeSpan.FromTicks((long)rsFrames.deviceTimestamp); + // capture.IR = infraredFrame; + // } + + // return capture; + //} + + + public override bool UpdateSensorData(KinectInterop.SensorData sensorData, KinectManager kinectManager, bool isPlayMode) + { + base.UpdateSensorData(sensorData, kinectManager, isPlayMode); + + if(sensorData.colorCamIntr == null && colorStreamProfile != null) + { + lock (colorFrameLock) + { + Intel.RealSense.Intrinsics colorCamIntr = colorStreamProfile.GetIntrinsics(); + + if (colorCamIntr.model != Distortion.None) + { + GetCameraIntrinsics(colorCamIntr, ref sensorData.colorCamIntr, 1); + } + } + } + + if (sensorData.depthCamIntr == null && depthStreamProfile != null) + { + lock (depthFrameLock) + { + Intel.RealSense.Intrinsics depthCamIntr = depthStreamProfile.GetIntrinsics(); + //Debug.Log("RS distType: " + depthCamIntr.model); + + if (depthCamIntr.model != Distortion.None || deviceStreamingMode == KinectInterop.DeviceStreamingMode.PlayRecording) + { + GetCameraIntrinsics(depthCamIntr, ref sensorData.depthCamIntr, 0); + + if (depthCamIntr.model == Distortion.None && deviceStreamingMode == KinectInterop.DeviceStreamingMode.PlayRecording) + { + // workaround for playback mode (model & coeffs are missing there) + sensorData.depthCamIntr.distType = KinectInterop.DistortionType.BrownConrady; + } + + // body & body-index data + if ((frameSourceFlags & KinectInterop.FrameSource.TypeBody) != 0) + { + Debug.LogWarning("Body tracking is not supported for RealSense sensors!"); + + //if(depthCamIntr.width == 640 && depthCamIntr.height == 480) + //{ + // Calibration cal = GetBodyTrackerCalibration(sensorData.depthCamIntr); + // InitBodyTracking(frameSourceFlags, sensorData, cal, true); + + // if (isSyncBodyAndDepth && bodyTracker == null) + // { + // // don't sync body and depth if the body tracker can't be created + // isSyncBodyAndDepth = false; + // } + //} + } + } + } + } + + if(sensorData.depth2ColorExtr == null && depthStreamProfile != null && colorStreamProfile != null) + { + lock (depthFrameLock) + { + lock (colorFrameLock) + { + Intel.RealSense.Extrinsics depth2ColorExtr = depthStreamProfile.GetExtrinsicsTo(colorStreamProfile); + GetCameraExtrinsics(depth2ColorExtr, ref sensorData.depth2ColorExtr); + } + } + } + + if (sensorData.color2DepthExtr == null && colorStreamProfile != null && depthStreamProfile != null) + { + lock (colorFrameLock) + { + lock (depthFrameLock) + { + Intel.RealSense.Extrinsics color2DepthExtr = colorStreamProfile.GetExtrinsicsTo(depthStreamProfile); + GetCameraExtrinsics(color2DepthExtr, ref sensorData.color2DepthExtr); + } + } + } + + return true; + } + + + // gets the given camera intrinsics + private void GetCameraIntrinsics(Intel.RealSense.Intrinsics camIntr, ref KinectInterop.CameraIntrinsics intr, int camType) + { + intr = new KinectInterop.CameraIntrinsics(); + + intr.cameraType = camType; + intr.width = camIntr.width; + intr.height = camIntr.height; + + intr.ppx = camIntr.ppx; + intr.ppy = camIntr.ppy; + + intr.fx = camIntr.fx; + intr.fy = camIntr.fy; + + intr.distCoeffs = new float[camIntr.coeffs.Length]; + camIntr.coeffs.CopyTo(intr.distCoeffs, 0); + + intr.distType = (KinectInterop.DistortionType)camIntr.model; + + EstimateFOV(intr); + } + + + // gets the given camera extrinsics + private void GetCameraExtrinsics(Intel.RealSense.Extrinsics camExtr, ref KinectInterop.CameraExtrinsics extr) + { + extr = new KinectInterop.CameraExtrinsics(); + + extr.rotation = new float[camExtr.rotation.Length]; + camExtr.rotation.CopyTo(extr.rotation, 0); + + extr.translation = new float[camExtr.translation.Length]; + camExtr.translation.CopyTo(extr.translation, 0); + } + + + // unprojects plane point into the space + public override Vector3 UnprojectPoint(KinectInterop.CameraIntrinsics intr, Vector2 pixel, float depth) + { + float x = (pixel.x - intr.ppx) / intr.fx; + float y = (pixel.y - intr.ppy) / intr.fy; + + if (intr.distType == KinectInterop.DistortionType.InverseBrownConrady) + { + float r2 = x * x + y * y; + float f = 1 + intr.distCoeffs[0] * r2 + intr.distCoeffs[1] * r2 * r2 + intr.distCoeffs[4] * r2 * r2 * r2; + + float ux = x * f + 2 * intr.distCoeffs[2] * x * y + intr.distCoeffs[3] * (r2 + 2 * x * x); + float uy = y * f + 2 * intr.distCoeffs[3] * x * y + intr.distCoeffs[2] * (r2 + 2 * y * y); + + x = ux; + y = uy; + } + + Vector3 point = new Vector3(depth * x, depth * y, depth); + + return point; + } + + + // projects space point onto a plane + public override Vector2 ProjectPoint(KinectInterop.CameraIntrinsics intr, Vector3 point) + { + float x = point.x / point.z; + float y = point.y / point.z; + + if (intr.distType == KinectInterop.DistortionType.ModifiedBrownConrady) + { + float r2 = x * x + y * y; + float f = 1f + intr.distCoeffs[0] * r2 + intr.distCoeffs[1] * r2 * r2 + intr.distCoeffs[4] * r2 * r2 * r2; + + x *= f; + y *= f; + + float dx = x + 2f * intr.distCoeffs[2] * x * y + intr.distCoeffs[3] * (r2 + 2 * x * x); + float dy = y + 2f * intr.distCoeffs[3] * x * y + intr.distCoeffs[2] * (r2 + 2 * y * y); + + x = dx; + y = dy; + } + + if (intr.distType == KinectInterop.DistortionType.Theta) + { + float r = (float)Math.Sqrt(x * x + y * y); + float rd = (1f / intr.distCoeffs[0] * (float)Math.Atan(2f * r * (float)Math.Tan(intr.distCoeffs[0] / 2f))); + + x *= rd / r; + y *= rd / r; + } + + Vector2 pixel = new Vector2(x * intr.fx + intr.ppx, y * intr.fy + intr.ppy); + + return pixel; + } + + + // transforms a point from one space to another + public override Vector3 TransformPoint(KinectInterop.CameraExtrinsics extr, Vector3 point) + { + float toPointX = extr.rotation[0] * point.x + extr.rotation[3] * point.y + extr.rotation[6] * point.z + extr.translation[0]; + float toPointY = extr.rotation[1] * point.x + extr.rotation[4] * point.y + extr.rotation[7] * point.z + extr.translation[1]; + float toPointZ = extr.rotation[2] * point.x + extr.rotation[5] * point.y + extr.rotation[8] * point.z + extr.translation[2]; + + return new Vector3(toPointX, toPointY, toPointZ); + } + + + public override void PollCoordTransformFrames(KinectInterop.SensorData sensorData) + { + if (lastDepthCoordFrameTime != rawDepthTimestamp) + { + lastDepthCoordFrameTime = rawDepthTimestamp; + + // depth2color frame + if (depthCamColorDataFrame != null) + { + lock (depthCamColorFrameLock) + { + TransformColorFrameToDepthCamResolution(sensorData, depthCamColorDataFrame); + + lastDepthCamColorFrameTime = lastDepthCoordFrameTime; + //Debug.Log("DepthCamColorFrameTime: " + lastDepthCamColorFrameTime); + } + } + + // color2depth frame + if (colorCamDepthDataFrame != null) + { + lock (colorCamDepthFrameLock) + { + TransformDepthFrameToColorCamResolution(sensorData, colorCamDepthDataFrame); + + lastColorCamDepthFrameTime = lastDepthCoordFrameTime; + //Debug.Log("ColorCamDepthFrameTime: " + lastColorCamDepthFrameTime); + } + } + + // color2infrared frame + if (colorCamInfraredDataFrame != null) + { + lock (colorCamInfraredFrameLock) + { + TransformInfraredFrameToColorCamResolution(sensorData, colorCamInfraredDataFrame); + + lastColorCamInfraredFrameTime = lastDepthCoordFrameTime; + //Debug.Log("ColorCamInfraredFrameTime: " + lastColorCamInfraredFrameTime); + } + } + } + } + + + // transforms the color frame to depth-camera resolution + protected bool TransformColorFrameToDepthCamResolution(KinectInterop.SensorData sensorData, byte[] c2dColorFrame) + { + if (rawDepthImage != null && rawColorImage != null && sensorData.depthCamIntr != null && sensorData.colorCamIntr != null && sensorData.depth2ColorExtr != null) + { + int depthImageW = sensorData.depthImageWidth; + int depthImageH = sensorData.depthImageHeight; + + int colorImageW = sensorData.colorImageWidth; + int colorImageS = sensorData.colorImageStride; + + int mapImageLen = depthImageW * depthImageH * colorImageS; + if (c2dColorFrame == null || c2dColorFrame.Length != mapImageLen) + { + throw new Exception("d2cColorFrame is not big enough. Should be " + mapImageLen + " bytes."); + } + + for (int dy = 0, dIndex = 0, d2cIndex = 0; dy < depthImageH; dy++) + { + for (int dx = 0; dx < depthImageW; dx++, dIndex++, d2cIndex += colorImageS) + { + ushort depthVal = rawDepthImage[dIndex]; + + if (depthVal != 0) + { + Vector2 depthPos = new Vector2(dx, dy); + + Vector3 depthSpacePos = UnprojectPoint(sensorData.depthCamIntr, depthPos, (float)depthVal / 1000f); + Vector3 colorSpacePos = TransformPoint(sensorData.depth2ColorExtr, depthSpacePos); + Vector2 colorFramePos = ProjectPoint(sensorData.colorCamIntr, colorSpacePos); + + int cIndex = ((int)colorFramePos.x + (int)colorFramePos.y * colorImageW) * colorImageS; + + if (cIndex >= 0 && (cIndex + colorImageS - 1) < rawColorImage.Length) + { + c2dColorFrame[d2cIndex] = rawColorImage[cIndex]; + c2dColorFrame[d2cIndex + 1] = rawColorImage[cIndex + 1]; + c2dColorFrame[d2cIndex + 2] = rawColorImage[cIndex + 2]; + //c2dColorFrame[d2cIndex + 3] = 255; + } + } + else + { + c2dColorFrame[d2cIndex] = 0; + c2dColorFrame[d2cIndex + 1] = 0; + c2dColorFrame[d2cIndex + 2] = 0; + //c2dColorFrame[d2cIndex + 3] = 0; + } + } + } + + return true; + } + + return false; + } + + + // transforms the depth frame to color-camera resolution + protected bool TransformDepthFrameToColorCamResolution(KinectInterop.SensorData sensorData, ushort[] d2cDepthFrame) + { + if (rawDepthImage != null && rawColorImage != null && sensorData.depthCamIntr != null && sensorData.colorCamIntr != null && sensorData.depth2ColorExtr != null) + { + int depthImageW = sensorData.depthImageWidth; + int depthImageH = sensorData.depthImageHeight; + + int colorImageW = sensorData.colorImageWidth; + int colorImageH = sensorData.colorImageHeight; + + int mapImageLen = sensorData.colorImageWidth * sensorData.colorImageHeight; + if (d2cDepthFrame == null || d2cDepthFrame.Length != mapImageLen) + { + throw new Exception("d2cDepthFrame is not big enough. Should be " + mapImageLen + " ushorts."); + } + + //Intrinsics depthIntr = depthStreamProfile.GetIntrinsics(); + //Intrinsics colorIntr = colorStreamProfile.GetIntrinsics(); + //Extrinsics d2cExtr = depthStreamProfile.GetExtrinsicsTo(colorStreamProfile); + + for (int dy = 0, dIndex = 0; dy < depthImageH; dy++) + { + for (int dx = 0; dx < depthImageW; dx++, dIndex++) + { + ushort depthVal = rawDepthImage[dIndex]; + + if (depthVal != 0) + { + float depth = (float)depthVal * 0.001f; + + Vector2 depthPos1 = new Vector2(dx - 0.5f, dy - 0.5f); + Vector3 depthSpacePos1 = UnprojectPoint(sensorData.depthCamIntr, depthPos1, depth); + Vector3 colorSpacePos1 = TransformPoint(sensorData.depth2ColorExtr, depthSpacePos1); + Vector2 colorPos1 = ProjectPoint(sensorData.colorCamIntr, colorSpacePos1); + + int colorPos1X = Mathf.RoundToInt(colorPos1.x); + int colorPos1Y = Mathf.RoundToInt(colorPos1.y); + + Vector2 depthPos2 = new Vector2(dx + 0.5f, dy + 0.5f); + Vector3 depthSpacePos2 = UnprojectPoint(sensorData.depthCamIntr, depthPos2, depth); + Vector3 colorSpacePos2 = TransformPoint(sensorData.depth2ColorExtr, depthSpacePos2); + Vector2 colorPos2 = ProjectPoint(sensorData.colorCamIntr, colorSpacePos2); + + int colorPos2X = Mathf.RoundToInt(colorPos2.x); + int colorPos2Y = Mathf.RoundToInt(colorPos2.y); + + if (colorPos1X < 0 || colorPos1Y < 0 || colorPos2X >= colorImageW || colorPos2Y >= colorImageH) + continue; + + for (int y = colorPos1Y; y <= colorPos2Y; y++) + { + int cIndex = y * colorImageW + colorPos1X; + + for (int x = colorPos1X; x <= colorPos2X; x++, cIndex++) + { + d2cDepthFrame[cIndex] = depthVal; + } + } + } + else + { + //d2cDepthFrame[cIndex] = 0; + } + } + } + + return true; + } + + return false; + } + + + // transforms the infrared frame to color-camera resolution + protected bool TransformInfraredFrameToColorCamResolution(KinectInterop.SensorData sensorData, ushort[] d2cInfraredFrame) + { + if (rawDepthImage != null && rawColorImage != null && rawInfraredImage != null && + sensorData.depthCamIntr != null && sensorData.colorCamIntr != null && sensorData.depth2ColorExtr != null) + { + int depthImageW = sensorData.depthImageWidth; + int depthImageH = sensorData.depthImageHeight; + + int colorImageW = sensorData.colorImageWidth; + int colorImageH = sensorData.colorImageHeight; + + int mapImageLen = sensorData.colorImageWidth * sensorData.colorImageHeight; + if (d2cInfraredFrame == null || d2cInfraredFrame.Length != mapImageLen) + { + throw new Exception("d2cInfraredFrame is not big enough. Should be " + mapImageLen + " ushorts."); + } + + for (int dy = 0, dIndex = 0; dy < depthImageH; dy++) + { + for (int dx = 0; dx < depthImageW; dx++, dIndex++) + { + ushort depthVal = rawDepthImage[dIndex]; + + if (depthVal != 0) + { + float depth = (float)depthVal * 0.001f; + + Vector2 depthPos1 = new Vector2(dx - 0.5f, dy - 0.5f); + Vector3 depthSpacePos1 = UnprojectPoint(sensorData.depthCamIntr, depthPos1, depth); + Vector3 colorSpacePos1 = TransformPoint(sensorData.depth2ColorExtr, depthSpacePos1); + Vector2 colorPos1 = ProjectPoint(sensorData.colorCamIntr, colorSpacePos1); + + int colorPos1X = Mathf.RoundToInt(colorPos1.x); + int colorPos1Y = Mathf.RoundToInt(colorPos1.y); + + Vector2 depthPos2 = new Vector2(dx + 0.5f, dy + 0.5f); + Vector3 depthSpacePos2 = UnprojectPoint(sensorData.depthCamIntr, depthPos2, depth); + Vector3 colorSpacePos2 = TransformPoint(sensorData.depth2ColorExtr, depthSpacePos2); + Vector2 colorPos2 = ProjectPoint(sensorData.colorCamIntr, colorSpacePos2); + + int colorPos2X = Mathf.RoundToInt(colorPos2.x); + int colorPos2Y = Mathf.RoundToInt(colorPos2.y); + + if (colorPos1X < 0 || colorPos1Y < 0 || colorPos2X >= colorImageW || colorPos2Y >= colorImageH) + continue; + + ushort irValue = rawInfraredImage[dIndex]; + //ushort irValue = sensorData.infraredImage[dIndex]; + for (int y = colorPos1Y; y <= colorPos2Y; y++) + { + int cIndex = y * colorImageW + colorPos1X; + + for (int x = colorPos1X; x <= colorPos2X; x++, cIndex++) + { + d2cInfraredFrame[cIndex] = irValue; + } + } + } + else + { + //d2cInfraredFrame[cIndex] = 0; + } + } + } + + return true; + } + + return false; + } + + } +} diff --git a/Assets/Azure/KinectScripts/Interfaces/RealSenseInterface.cs.meta b/Assets/Azure/KinectScripts/Interfaces/RealSenseInterface.cs.meta new file mode 100644 index 0000000..a57b125 --- /dev/null +++ b/Assets/Azure/KinectScripts/Interfaces/RealSenseInterface.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3c9bb53fec8f7ee47a021adfdc0ec203 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/KinectEventManager.cs b/Assets/Azure/KinectScripts/KinectEventManager.cs new file mode 100644 index 0000000..c470651 --- /dev/null +++ b/Assets/Azure/KinectScripts/KinectEventManager.cs @@ -0,0 +1,436 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Events; + + +namespace com.rfilkov.kinect +{ + /// + /// KinectEventManager provides sensor-frame events to the registered Unity event listeners. + /// + public class KinectEventManager : MonoBehaviour + { + [Tooltip("Depth sensor index - 0 is the 1st one, 1 - the 2nd one, etc.")] + public int sensorIndex = 0; + + [Tooltip("Consider the sensor as disconnected, if no frames are received within this time period, in seconds.")] + public float sensorTimeoutAfter = 2f; + + + [System.Serializable] + public class SensorStateEvent : UnityEvent { } + + [System.Serializable] + public class ImageTextureEvent : UnityEvent { } + + [System.Serializable] + public class UshortFrameEvent : UnityEvent { } + + [System.Serializable] + public class ByteFrameEvent : UnityEvent { } + + [System.Serializable] + public class BodyFrameEvent : UnityEvent { } + + + [Header("Sensor Events")] + + /// + /// Fired when the sensor is considered as disconnected. + /// + public SensorStateEvent OnSensorDisconnect = new SensorStateEvent(); + + ///// + ///// Fired when the sensor is considered as reconnected. + ///// + //public SensorStateEvent OnSensorReconnect = new SensorStateEvent(); + + [Header("Sensor Data")] + + /// + /// Fired when new color-camera frame is detected. + /// + public ImageTextureEvent OnNewColorImage = new ImageTextureEvent(); + + /// + /// Fired when new depth frame is detected. + /// + public UshortFrameEvent OnNewDepthFrame = new UshortFrameEvent(); + + /// + /// Fired when new infrared frame is detected. + /// + public UshortFrameEvent OnNewInfraredFrame = new UshortFrameEvent(); + + [Header("Body Tracking")] + + /// + /// Fired when new body frame frame is detected. + /// + public BodyFrameEvent OnNewBodyFrame = new BodyFrameEvent(); + + /// + /// Fired when new body-index frame is detected. + /// + public ByteFrameEvent OnNewBodyIndexFrame = new ByteFrameEvent(); + + [Header("Sensor Images")] + + /// + /// Fired when new depth image is detected. + /// + public ImageTextureEvent OnNewDepthImage = new ImageTextureEvent(); + + /// + /// Fired when new infrared image is detected. + /// + public ImageTextureEvent OnNewInfraredImage = new ImageTextureEvent(); + + /// + /// Fired when new user body image is detected. + /// + public ImageTextureEvent OnNewBodyIndexImage = new ImageTextureEvent(); + + [Header("Transformed Frames")] + + /// + /// Fired when new depth-camera transformed color image is detected. + /// + public ImageTextureEvent OnNewDepthCameraColorImage = new ImageTextureEvent(); + + /// + /// Fired when new color-camera transformed depth frame is detected. + /// + public UshortFrameEvent OnNewColorCameraDepthFrame = new UshortFrameEvent(); + + /// + /// Fired when new color-camera transformed infrared image is detected. + /// + public ImageTextureEvent OnNewColorCameraInfraredImage = new ImageTextureEvent(); + + /// + /// Fired when new color-camera transformed body-index frame is detected. + /// + public ByteFrameEvent OnNewColorCameraBodyIndexFrame = new ByteFrameEvent(); + + + // reference to KinectManager + private KinectManager kinectManager = null; + // reference to the respective sensor-data + private KinectInterop.SensorData sensorData = null; + + // last frame times + private ulong lastColorFrameTime = 0; + private ulong lastDepthFrameTime = 0; + private ulong lastInfraredFrameTime = 0; + + private ulong lastBodyFrameTime = 0; + private ulong lastBodyIndexFrameTime = 0; + + private ulong lastDepthImageTime = 0; + private ulong lastInfraredImageTime = 0; + private ulong lastBodyIndexImageTime = 0; + + private ulong lastDepthCamColorFrameTime = 0; + private ulong lastColorCamDepthFrameTime = 0; + private ulong lastColorCamInfraredFrameTime = 0; + private ulong lastColorCamBodyIndexFrameTime = 0; + + // transformed frames enabled-flags + private bool isDepthCamColorFramesEnabled = false; + private bool isColorCamDepthFramesEnabled = false; + private bool isColorCamInfraredFramesEnabled = false; + private bool isColorCamBodyIndexFramesEnabled = false; + + // transformed depth cam color texture + private Texture2D depthCamColorTex2D = null; + private ushort[] colorCamDepthFrame = null; + private byte[] colorCamBodyIndexFrame = null; + private Texture2D colorCamInfraredTex2D = null; + + // whether the sensor is currently disconnected + private long lastFrameTime = 0; + private bool isSensorDisconnected = false; + + + void Start() + { + kinectManager = KinectManager.Instance; + sensorData = kinectManager != null ? kinectManager.GetSensorData(sensorIndex) : null; + } + + + void OnDestroy() + { + if(isDepthCamColorFramesEnabled) + { + isDepthCamColorFramesEnabled = false; + sensorData.sensorInterface.EnableDepthCameraColorFrame(sensorData, false); + depthCamColorTex2D = null; + Debug.Log("Disabled DepthCameraColorFrames."); + } + + if (isColorCamDepthFramesEnabled) + { + isColorCamDepthFramesEnabled = false; + sensorData.sensorInterface.EnableColorCameraDepthFrame(sensorData, false); + Debug.Log("Disabled ColorCameraDepthFrames."); + } + + if (isColorCamBodyIndexFramesEnabled) + { + isColorCamBodyIndexFramesEnabled = false; + sensorData.sensorInterface.EnableColorCameraBodyIndexFrame(sensorData, false); + Debug.Log("Disabled ColorCameraBodyIndexFrames."); + } + + } + + + void Update() + { + if (sensorData != null) + { + // color frame + if(lastColorFrameTime != sensorData.lastColorFrameTime) + { + lastFrameTime = System.DateTime.Now.Ticks; + lastColorFrameTime = sensorData.lastColorFrameTime; + + OnNewColorImage?.Invoke(sensorData.colorImageTexture, sensorData.lastColorFrameTime); + //Debug.Log("OnNewColorFrame invoked. Time: " + lastColorFrameTime); + } + + // depth frame + if (lastDepthFrameTime != sensorData.lastDepthFrameTime) + { + lastFrameTime = System.DateTime.Now.Ticks; + lastDepthFrameTime = sensorData.lastDepthFrameTime; + + OnNewDepthFrame?.Invoke(sensorData.depthImage, sensorData.depthImageWidth, sensorData.depthImageHeight, sensorData.lastDepthFrameTime); + //Debug.Log("OnNewDepthFrame invoked. Time: " + lastDepthFrameTime); + } + + // infrared frame + if (lastInfraredFrameTime != sensorData.lastInfraredFrameTime) + { + lastFrameTime = System.DateTime.Now.Ticks; + lastInfraredFrameTime = sensorData.lastInfraredFrameTime; + + OnNewInfraredFrame?.Invoke(sensorData.infraredImage, sensorData.depthImageWidth, sensorData.depthImageHeight, sensorData.lastInfraredFrameTime); + //Debug.Log("OnNewInfraredFrame invoked. Time: " + lastInfraredFrameTime); + } + + + // body frame + if (lastBodyFrameTime != sensorData.lastBodyFrameTime) + { + lastFrameTime = System.DateTime.Now.Ticks; + lastBodyFrameTime = sensorData.lastBodyFrameTime; + + OnNewBodyFrame?.Invoke(sensorData.alTrackedBodies, sensorData.trackedBodiesCount, sensorData.lastBodyFrameTime); + //Debug.Log("OnNewBodyFrame invoked. Time: " + lastBodyFrameTime); + } + + // body-index frame + if (lastBodyIndexFrameTime != sensorData.lastBodyIndexFrameTime) + { + lastFrameTime = System.DateTime.Now.Ticks; + lastBodyIndexFrameTime = sensorData.lastBodyIndexFrameTime; + + OnNewBodyIndexFrame?.Invoke(sensorData.bodyIndexImage, sensorData.depthImageWidth, sensorData.depthImageHeight, sensorData.lastBodyIndexFrameTime); + //Debug.Log("OnNewBodyIndexFrame invoked. Time: " + lastBodyIndexFrameTime); + } + + + // depth image + if (OnNewDepthImage != null && OnNewDepthImage.GetPersistentEventCount() > 0 && lastDepthImageTime != sensorData.lastDepthImageTime) + { + lastDepthImageTime = sensorData.lastDepthImageTime; + OnNewDepthImage?.Invoke(sensorData.depthImageTexture, sensorData.lastDepthImageTime); + //Debug.Log("OnNewDepthImage invoked. Time: " + lastDepthImageTime); + } + + // infrared image + if (OnNewInfraredImage != null && OnNewInfraredImage.GetPersistentEventCount() > 0 && lastInfraredImageTime != sensorData.lastInfraredImageTime) + { + lastInfraredImageTime = sensorData.lastInfraredImageTime; + OnNewInfraredImage?.Invoke(sensorData.infraredImageTexture, sensorData.lastInfraredImageTime); + //Debug.Log("OnNewInfraredImage invoked. Time: " + lastInfraredImageTime); + } + + // body-index image + if (OnNewBodyIndexImage != null && OnNewBodyIndexImage.GetPersistentEventCount() > 0 && lastBodyIndexImageTime != sensorData.lastBodyImageTime) + { + lastBodyIndexImageTime = sensorData.lastBodyImageTime; + OnNewBodyIndexImage?.Invoke(sensorData.bodyImageTexture, sensorData.lastBodyImageTime); + //Debug.Log("OnNewBodyIndexImage invoked. Time: " + lastBodyIndexImageTime); + } + + // check for sensor events + long currentTime = System.DateTime.Now.Ticks; + long timeoutAfter = (long)(sensorTimeoutAfter * 10000000); + + if(!isSensorDisconnected && lastFrameTime != 0 && (currentTime - lastFrameTime) > timeoutAfter) + { + isSensorDisconnected = true; + OnSensorDisconnect?.Invoke(GetLastFrameTime()); + Debug.Log("Sensor disconnected. Time: " + GetLastFrameTime()); + } + //else if(isSensorDisconnected && (currentTime - lastFrameTime) <= timeoutAfter) + //{ + // isSensorDisconnected = false; + // OnSensorReconnect?.Invoke(GetLastFrameTime()); + // Debug.Log("Sensor reconnected. Time: " + GetLastFrameTime()); + //} + + // depth-cam color frame + if (OnNewDepthCameraColorImage != null && OnNewDepthCameraColorImage.GetPersistentEventCount() > 0 && !isDepthCamColorFramesEnabled) + { + isDepthCamColorFramesEnabled = true; + sensorData.sensorInterface.EnableDepthCameraColorFrame(sensorData, true); + depthCamColorTex2D = new Texture2D(sensorData.depthImageWidth, sensorData.depthImageHeight, sensorData.colorImageFormat, false); + + Debug.Log("Enabled DepthCameraColorFrames."); + } + else if ((OnNewDepthCameraColorImage == null || OnNewDepthCameraColorImage.GetPersistentEventCount() == 0) && isDepthCamColorFramesEnabled) + { + isDepthCamColorFramesEnabled = false; + sensorData.sensorInterface.EnableDepthCameraColorFrame(sensorData, false); + depthCamColorTex2D = null; + + Debug.Log("Disabled DepthCameraColorFrames."); + } + + if (isDepthCamColorFramesEnabled) + { + ulong oldFrameTime = lastDepthCamColorFrameTime; + sensorData.sensorInterface.GetDepthCameraColorFrameTexture(sensorData, ref depthCamColorTex2D, ref lastDepthCamColorFrameTime); + + if(oldFrameTime != lastDepthCamColorFrameTime) + { + OnNewDepthCameraColorImage?.Invoke(depthCamColorTex2D, lastDepthCamColorFrameTime); + //Debug.Log("OnNewDepthCameraColorImage invoked. Time: " + lastDepthCamColorFrameTime); + } + } + + // color-cam depth frame + if (OnNewColorCameraDepthFrame != null && OnNewColorCameraDepthFrame.GetPersistentEventCount() > 0 && !isColorCamDepthFramesEnabled) + { + isColorCamDepthFramesEnabled = true; + sensorData.sensorInterface.EnableColorCameraDepthFrame(sensorData, true); + colorCamDepthFrame = new ushort[sensorData.colorImageWidth * sensorData.colorImageHeight]; + + Debug.Log("Enabled ColorCameraDepthFrames."); + } + else if ((OnNewColorCameraDepthFrame == null || OnNewColorCameraDepthFrame.GetPersistentEventCount() == 0) && isColorCamDepthFramesEnabled) + { + isColorCamDepthFramesEnabled = false; + sensorData.sensorInterface.EnableColorCameraDepthFrame(sensorData, false); + colorCamDepthFrame = null; + + Debug.Log("Disabled ColorCameraDepthFrames."); + } + + if (isColorCamDepthFramesEnabled) + { + ulong oldFrameTime = lastColorCamDepthFrameTime; + sensorData.sensorInterface.GetColorCameraDepthFrame(sensorData, ref colorCamDepthFrame, ref lastColorCamDepthFrameTime); + + if (colorCamDepthFrame != null && oldFrameTime != lastColorCamDepthFrameTime) + { + OnNewColorCameraDepthFrame?.Invoke(colorCamDepthFrame, sensorData.colorImageWidth, sensorData.colorImageHeight, lastColorCamDepthFrameTime); + //Debug.Log("OnNewColorCameraDepthFrame invoked. Time: " + lastColorCamDepthFrameTime); + } + } + + // color-cam infrared frame + if (OnNewColorCameraInfraredImage != null && OnNewColorCameraInfraredImage.GetPersistentEventCount() > 0 && !isColorCamInfraredFramesEnabled) + { + isColorCamInfraredFramesEnabled = true; + sensorData.sensorInterface.EnableColorCameraInfraredFrame(sensorData, false, true); + + Debug.Log("Enabled ColorCameraInfraredFrames."); + } + else if ((OnNewColorCameraInfraredImage == null || OnNewColorCameraInfraredImage.GetPersistentEventCount() == 0) && isColorCamInfraredFramesEnabled) + { + isColorCamInfraredFramesEnabled = false; + sensorData.sensorInterface.EnableColorCameraInfraredFrame(sensorData, false, false); + + Debug.Log("Disabled ColorCameraInfraredFrames."); + } + + if (isColorCamInfraredFramesEnabled) + { + //if (colorCamInfraredTex2D == null) + //{ + // colorCamInfraredTex2D = new Texture2D(sensorData.colorImageWidth, sensorData.colorImageHeight, TextureFormat.ARGB32, false); + //} + + ulong oldFrameTime = lastColorCamInfraredFrameTime; + Texture colorCamInfraredTex = sensorData.sensorInterface.GetColorCameraInfraredFrameTexture(sensorData, ref colorCamInfraredTex2D, ref lastColorCamInfraredFrameTime); + + if (colorCamInfraredTex != null && oldFrameTime != lastColorCamInfraredFrameTime) + { + OnNewColorCameraInfraredImage?.Invoke(colorCamInfraredTex, lastColorCamInfraredFrameTime); + //Debug.Log("OnNewColorCameraInfraredImage invoked. Time: " + lastColorCamInfraredFrameTime); + } + } + + // color-cam body-index frame + if (OnNewColorCameraBodyIndexFrame != null && OnNewColorCameraBodyIndexFrame.GetPersistentEventCount() > 0 && !isColorCamBodyIndexFramesEnabled) + { + isColorCamBodyIndexFramesEnabled = true; + sensorData.sensorInterface.EnableColorCameraBodyIndexFrame(sensorData, true); + colorCamBodyIndexFrame = new byte[sensorData.colorImageWidth * sensorData.colorImageHeight]; + + Debug.Log("Enabled ColorCameraBodyIndexFrames."); + } + else if ((OnNewColorCameraBodyIndexFrame == null || OnNewColorCameraBodyIndexFrame.GetPersistentEventCount() == 0) && isColorCamBodyIndexFramesEnabled) + { + isColorCamBodyIndexFramesEnabled = false; + sensorData.sensorInterface.EnableColorCameraBodyIndexFrame(sensorData, false); + colorCamBodyIndexFrame = null; + + Debug.Log("Disabled ColorCameraBodyIndexFrames."); + } + + if (isColorCamBodyIndexFramesEnabled) + { + ulong oldFrameTime = lastColorCamBodyIndexFrameTime; + sensorData.sensorInterface.GetColorCameraBodyIndexFrame(sensorData, ref colorCamBodyIndexFrame, ref lastColorCamBodyIndexFrameTime); + + if (colorCamBodyIndexFrame != null && oldFrameTime != lastColorCamBodyIndexFrameTime) + { + OnNewColorCameraBodyIndexFrame?.Invoke(colorCamBodyIndexFrame, sensorData.colorImageWidth, sensorData.colorImageHeight, lastColorCamBodyIndexFrameTime); + //Debug.Log("OnNewColorCameraBodyIndexFrame invoked. Time: " + lastColorCamBodyIndexFrameTime); + } + } + + } + } + + + // returns the last frame time + private ulong GetLastFrameTime() + { + ulong maxFrameTime = 0; + + if (lastColorFrameTime != 0 && maxFrameTime < lastColorFrameTime) + maxFrameTime = lastColorFrameTime; + if (lastDepthFrameTime != 0 && maxFrameTime < lastDepthFrameTime) + maxFrameTime = lastDepthFrameTime; + if (lastInfraredFrameTime != 0 && maxFrameTime < lastInfraredFrameTime) + maxFrameTime = lastInfraredFrameTime; + if (lastBodyFrameTime != 0 && maxFrameTime < lastBodyFrameTime) + maxFrameTime = lastBodyFrameTime; + if (lastBodyIndexFrameTime != 0 && maxFrameTime < lastBodyIndexFrameTime) + maxFrameTime = lastBodyIndexFrameTime; + + return maxFrameTime; + } + + } +} + diff --git a/Assets/Azure/KinectScripts/KinectEventManager.cs.meta b/Assets/Azure/KinectScripts/KinectEventManager.cs.meta new file mode 100644 index 0000000..8df33fa --- /dev/null +++ b/Assets/Azure/KinectScripts/KinectEventManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2da3d61323469c246830b42482fe4ffc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/KinectGestureManager.cs b/Assets/Azure/KinectScripts/KinectGestureManager.cs new file mode 100644 index 0000000..2eb132b --- /dev/null +++ b/Assets/Azure/KinectScripts/KinectGestureManager.cs @@ -0,0 +1,2281 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace com.rfilkov.kinect +{ + /// + /// This interface needs to be implemented by all Kinect gesture listeners + /// + public interface GestureListenerInterface + { + /// + /// Invoked when a new user is detected. Here you can start gesture tracking by invoking KinectManager.DetectGesture()-function. + /// + /// User ID + /// User index + void UserDetected(ulong userId, int userIndex); + + /// + /// Invoked when a user gets lost. All tracked gestures for this user are cleared automatically. + /// + /// User ID + /// User index + void UserLost(ulong userId, int userIndex); + + /// + /// Invoked when a gesture is in progress. + /// + /// User ID + /// User index + /// Gesture type + /// Gesture progress [0..1] + /// Joint type + /// Normalized viewport position + void GestureInProgress(ulong userId, int userIndex, GestureType gesture, float progress, + KinectInterop.JointType joint, Vector3 screenPos); + + /// + /// Invoked if a gesture is completed. + /// + /// true, if the gesture detection must be restarted, false otherwise. + /// User ID + /// User index + /// Gesture type + /// Joint type + /// Normalized viewport position + bool GestureCompleted(ulong userId, int userIndex, GestureType gesture, + KinectInterop.JointType joint, Vector3 screenPos); + + /// + /// Invoked if a gesture is cancelled. + /// + /// true, if the gesture detection must be retarted, false otherwise. + /// User ID + /// User index + /// Gesture type + /// Joint type + bool GestureCancelled(ulong userId, int userIndex, GestureType gesture, + KinectInterop.JointType joint); + } + + + /// + /// Kinect gesture types. + /// + public enum GestureType + { + None = 0, + RaiseRightHand, + RaiseLeftHand, + Psi, + Tpose, + Stop, + Wave, + SwipeLeft, + SwipeRight, + SwipeUp, + SwipeDown, + ZoomIn, + ZoomOut, + Wheel, + Jump, + Squat, + Push, + Pull, + ShoulderLeftFront, + ShoulderRightFront, + LeanLeft, + LeanRight, + LeanForward, + LeanBack, + KickLeft, + KickRight, + Run, + + RaisedRightHorizontalLeftHand, // by Andrzej W + RaisedLeftHorizontalRightHand, + + TouchRightElbow, // suggested by Nayden N. + TouchLeftElbow, + + MoveLeft, // suggested by Indra Adi D. C + MoveRight, + + Apose, // suggested by avrxpert + + UserGesture1 = 101, + UserGesture2 = 102, + UserGesture3 = 103, + UserGesture4 = 104, + UserGesture5 = 105, + UserGesture6 = 106, + UserGesture7 = 107, + UserGesture8 = 108, + UserGesture9 = 109, + UserGesture10 = 110, + } + + + /// + /// Kinect gesture manager is the component that tracks and processes the user gestures. + /// + public class KinectGestureManager : MonoBehaviour + { + + /// + /// Programmatic gesture data container. + /// + public struct GestureData + { + public ulong userId; + public GestureType gesture; + public int state; + public float timestamp; + public int joint; + public Vector3 jointPos; + public Vector3 screenPos; + public float tagFloat; + public Vector3 tagVector; + public Vector3 tagVector2; + public float progress; + public bool complete; + public bool cancelled; + public List checkForGestures; + public float startTrackingAtTime; + } + + + [Tooltip("Minimum time between gesture detections (in seconds).")] + public float minTimeBetweenGestures = 0.7f; + + [Tooltip("List of the gesture listeners in the scene. If the list is empty, the available gesture listeners will be detected at the scene start up.")] + public List gestureListeners = new List(); + + [Tooltip("UI-Text to display the status of the currently tracked gestures.")] + public UnityEngine.UI.Text gestureDebugText; + + [Tooltip("Prefab used to display the joint positions on screen.")] + public GameObject jointDebugPrefab; + + + // Gesture related constants, variables and functions + protected int leftHandIndex; + protected int rightHandIndex; + + protected int leftFingerIndex; + protected int rightFingerIndex; + + protected int leftElbowIndex; + protected int rightElbowIndex; + + protected int leftShoulderIndex; + protected int rightShoulderIndex; + + protected int leftClavicleIndex; + protected int rightClavicleIndex; + + protected int hipCenterIndex; + protected int neckIndex; + + protected int leftHipIndex; + protected int rightHipIndex; + + protected int leftKneeIndex; + protected int rightKneeIndex; + + protected int leftAnkleIndex; + protected int rightAnkleIndex; + + // gestures data and parameters + protected Dictionary> playerGesturesData = new Dictionary>(); + protected Dictionary gesturesTrackingAtTime = new Dictionary(); + + // transformation matrix of the primary body sensor (used to apply the sensor orientation transformation) + //protected Matrix4x4 matBodySensor = Matrix4x4.identity; + + // game objects used for joint debugging + private GameObject[] debugJoints = null; + + /// + /// Adds a gesture to the list of detected gestures for the specified user. + /// + /// User ID + /// Gesture type + public void DetectGesture(ulong UserId, GestureType gesture) + { + List gesturesData = playerGesturesData.ContainsKey(UserId) ? playerGesturesData[UserId] : new List(); + int index = GetGestureIndex(gesture, ref gesturesData); + + if (index >= 0) + { + DeleteGesture(UserId, gesture); + } + + GestureData gestureData = new GestureData(); + + gestureData.userId = UserId; + gestureData.gesture = gesture; + gestureData.state = 0; + gestureData.joint = 0; + gestureData.progress = 0f; + gestureData.complete = false; + gestureData.cancelled = false; + + gestureData.checkForGestures = new List(); + switch (gesture) + { + case GestureType.ZoomIn: + gestureData.checkForGestures.Add(GestureType.ZoomOut); + gestureData.checkForGestures.Add(GestureType.Wheel); + break; + + case GestureType.ZoomOut: + gestureData.checkForGestures.Add(GestureType.ZoomIn); + gestureData.checkForGestures.Add(GestureType.Wheel); + break; + + case GestureType.Wheel: + gestureData.checkForGestures.Add(GestureType.ZoomIn); + gestureData.checkForGestures.Add(GestureType.ZoomOut); + break; + } + + gesturesData.Add(gestureData); + playerGesturesData[UserId] = gesturesData; + + if (!gesturesTrackingAtTime.ContainsKey(UserId)) + { + gesturesTrackingAtTime[UserId] = 0f; + } + } + + /// + /// Resets the gesture state for the given gesture of the specified user. + /// + /// true, if gesture was reset, false otherwise. + /// User ID + /// Gesture type + public bool ResetGesture(ulong UserId, GestureType gesture) + { + List gesturesData = playerGesturesData.ContainsKey(UserId) ? playerGesturesData[UserId] : null; + int index = gesturesData != null ? GetGestureIndex(gesture, ref gesturesData) : -1; + if (index < 0) + return false; + + GestureData gestureData = gesturesData[index]; + + gestureData.state = 0; + gestureData.joint = 0; + gestureData.progress = 0f; + gestureData.complete = false; + gestureData.cancelled = false; + gestureData.startTrackingAtTime = Time.realtimeSinceStartup + KinectInterop.Constants.MinTimeBetweenSameGestures; + + gesturesData[index] = gestureData; + playerGesturesData[UserId] = gesturesData; + + return true; + } + + /// + /// Resets the gesture states for all gestures of the specified user. + /// + /// User ID + public void ResetPlayerGestures(ulong UserId) + { + List gesturesData = playerGesturesData.ContainsKey(UserId) ? playerGesturesData[UserId] : null; + + if (gesturesData != null) + { + int listSize = gesturesData.Count; + + for (int i = 0; i < listSize; i++) + { + ResetGesture(UserId, gesturesData[i].gesture); + } + } + } + + /// + /// Deletes the gesture for the specified user. + /// + /// true, if gesture was deleted, false otherwise. + /// User ID + /// Gesture type + public bool DeleteGesture(ulong UserId, GestureType gesture) + { + List gesturesData = playerGesturesData.ContainsKey(UserId) ? playerGesturesData[UserId] : null; + int index = gesturesData != null ? GetGestureIndex(gesture, ref gesturesData) : -1; + if (index < 0) + return false; + + gesturesData.RemoveAt(index); + playerGesturesData[UserId] = gesturesData; + + return true; + } + + /// + /// Deletes all gestures for the specified user. + /// + /// User ID + public void ClearUserGestures(ulong UserId) + { + List gesturesData = playerGesturesData.ContainsKey(UserId) ? playerGesturesData[UserId] : null; + + if (gesturesData != null) + { + gesturesData.Clear(); + playerGesturesData[UserId] = gesturesData; + } + } + + /// + /// Gets the list of gestures for the specified user. + /// + /// The gestures list. + /// User ID + public List GetGesturesList(ulong UserId) + { + List list = new List(); + List gesturesData = playerGesturesData.ContainsKey(UserId) ? playerGesturesData[UserId] : null; + + if (gesturesData != null) + { + foreach (GestureData data in gesturesData) + list.Add(data.gesture); + } + + return list; + } + + /// + /// Gets the gestures count for the specified user. + /// + /// The gestures count. + /// User ID + public int GetGesturesCount(ulong UserId) + { + List gesturesData = playerGesturesData.ContainsKey(UserId) ? playerGesturesData[UserId] : null; + + if (gesturesData != null) + { + return gesturesData.Count; + } + + return 0; + } + + /// + /// Gets the gesture at the specified index for the given user. + /// + /// The gesture at specified index. + /// User ID + /// Index + public GestureType GetGestureAtIndex(ulong UserId, int i) + { + List gesturesData = playerGesturesData.ContainsKey(UserId) ? playerGesturesData[UserId] : null; + + if (gesturesData != null) + { + if (i >= 0 && i < gesturesData.Count) + { + return gesturesData[i].gesture; + } + } + + return GestureType.None; + } + + /// + /// Determines whether the given gesture is in the list of gestures for the specified user. + /// + /// true if the gesture is in the list of gestures for the specified user; otherwise, false. + /// User ID + /// Gesture type + public bool IsTrackingGesture(ulong UserId, GestureType gesture) + { + List gesturesData = playerGesturesData.ContainsKey(UserId) ? playerGesturesData[UserId] : null; + int index = gesturesData != null ? GetGestureIndex(gesture, ref gesturesData) : -1; + + return index >= 0; + } + + /// + /// Determines whether the given gesture for the specified user is complete. + /// + /// true if the gesture is complete; otherwise, false. + /// User ID + /// Gesture type + /// If set to true, resets the gesture state. + public bool IsGestureComplete(ulong UserId, GestureType gesture, bool bResetOnComplete) + { + List gesturesData = playerGesturesData.ContainsKey(UserId) ? playerGesturesData[UserId] : null; + int index = gesturesData != null ? GetGestureIndex(gesture, ref gesturesData) : -1; + + if (index >= 0) + { + GestureData gestureData = gesturesData[index]; + + if (bResetOnComplete && gestureData.complete) + { + ResetPlayerGestures(UserId); + return true; + } + + return gestureData.complete; + } + + return false; + } + + /// + /// Determines whether the given gesture for the specified user is canceled. + /// + /// true if the gesture is canceled; otherwise, false. + /// User ID + /// Gesture type + public bool IsGestureCancelled(ulong UserId, GestureType gesture) + { + List gesturesData = playerGesturesData.ContainsKey(UserId) ? playerGesturesData[UserId] : null; + int index = gesturesData != null ? GetGestureIndex(gesture, ref gesturesData) : -1; + + if (index >= 0) + { + GestureData gestureData = gesturesData[index]; + return gestureData.cancelled; + } + + return false; + } + + /// + /// Gets the progress (in range [0, 1]) of the given gesture for the specified user. + /// + /// The gesture progress. + /// User ID + /// Gesture type + public float GetGestureProgress(ulong UserId, GestureType gesture) + { + List gesturesData = playerGesturesData.ContainsKey(UserId) ? playerGesturesData[UserId] : null; + int index = gesturesData != null ? GetGestureIndex(gesture, ref gesturesData) : -1; + + if (index >= 0) + { + GestureData gestureData = gesturesData[index]; + return gestureData.progress; + } + + return 0f; + } + + /// + /// Gets the normalized screen position of the given gesture for the specified user. + /// + /// The normalized screen position. + /// User ID + /// Gesture type + public Vector3 GetGestureScreenPos(ulong UserId, GestureType gesture) + { + List gesturesData = playerGesturesData.ContainsKey(UserId) ? playerGesturesData[UserId] : null; + int index = gesturesData != null ? GetGestureIndex(gesture, ref gesturesData) : -1; + + if (index >= 0) + { + GestureData gestureData = gesturesData[index]; + return gestureData.screenPos; + } + + return Vector3.zero; + } + + /// + /// Gets latest gesture timestamp. + /// + /// User ID + /// Gesture type + /// Latest timestamp + public float GetGestureTimestamp(ulong UserId, GestureType gesture) + { + List gesturesData = playerGesturesData.ContainsKey(UserId) ? playerGesturesData[UserId] : null; + int index = gesturesData != null ? GetGestureIndex(gesture, ref gesturesData) : -1; + + if (index >= 0) + { + GestureData gestureData = gesturesData[index]; + return gestureData.timestamp; + } + + return 0f; + } + + /// + /// Gets current gesture state. + /// + /// User ID + /// Gesture type + /// Current gesture state + public int GetGestureState(ulong UserId, GestureType gesture) + { + List gesturesData = playerGesturesData.ContainsKey(UserId) ? playerGesturesData[UserId] : null; + int index = gesturesData != null ? GetGestureIndex(gesture, ref gesturesData) : -1; + + if (index >= 0) + { + GestureData gestureData = gesturesData[index]; + return gestureData.state; + } + + return 0; + } + + + /// + /// Locate the available gesture listeners. + /// + public void RefreshGestureListeners() + { + gestureListeners.Clear(); + + MonoBehaviour[] monoScripts = FindObjectsOfType() as MonoBehaviour[]; + foreach (MonoBehaviour monoScript in monoScripts) + { + if ((monoScript is GestureListenerInterface) && monoScript.enabled) + { + //GestureListenerInterface gl = (GestureListenerInterface)monoScript; + gestureListeners.Add(monoScript); + } + } + } + + + /// + /// Invoked when a new user gets detected. + /// + /// User ID + /// User index + public void UserWasAdded(ulong userId, int userIndex) + { + //Debug.Log("GM - UserAdded: " + userId); + + //// add the gestures to be detected by all users, if any + //foreach (GestureType gesture in playerCommonGestures) + //{ + // DetectGesture(userId, gesture); + //} + + // notify all gesture listeners of the newly detected user + foreach (GestureListenerInterface listener in gestureListeners) + { + if (listener != null) + { + listener.UserDetected(userId, userIndex); + } + } + } + + + /// + /// Invoked when user was removed. + /// + /// User ID + /// User index + public void UserWasRemoved(ulong userId, int userIndex) + { + //Debug.Log("GM - UserRemoved: " + userId); + + // notify all gesture listeners for losing this user + foreach (GestureListenerInterface listener in gestureListeners) + { + if (listener != null) + { + listener.UserLost(userId, userIndex); + } + } + + // clear the user gestures + ClearUserGestures(userId); + } + + + /// + /// Updates the progress of the given user's gestures. + /// + /// User ID + /// Reference to the KinectManager + public void UpdateUserGestures(ulong userId, KinectManager kinectManager) + { + if (!playerGesturesData.ContainsKey(userId)) + return; + + //Debug.Log("GM - UpdateGestures for user: " + userId); + + // Check for player's gestures + CheckForGestures(userId, kinectManager); + + // Check for complete gestures + List gesturesData = playerGesturesData[userId]; + int userIndex = kinectManager.GetUserIndexById(userId); + + for (int g = 0; g < gesturesData.Count; g++) + { + GestureData gestureData = gesturesData[g]; + + if (gestureData.complete) + { + foreach (GestureListenerInterface listener in gestureListeners) + { + if (listener != null && listener.GestureCompleted(userId, userIndex, gestureData.gesture, (KinectInterop.JointType)gestureData.joint, gestureData.screenPos)) + { + ResetPlayerGestures(userId); + } + } + } + else if (gestureData.cancelled) + { + foreach (GestureListenerInterface listener in gestureListeners) + { + if (listener != null && listener.GestureCancelled(userId, userIndex, gestureData.gesture, (KinectInterop.JointType)gestureData.joint)) + { + ResetGesture(userId, gestureData.gesture); + } + } + } + else if (gestureData.progress >= 0.1f) + { + foreach (GestureListenerInterface listener in gestureListeners) + { + if (listener != null) + { + listener.GestureInProgress(userId, userIndex, gestureData.gesture, gestureData.progress, + (KinectInterop.JointType)gestureData.joint, gestureData.screenPos); + } + } + } + + //gesturesData[g] = gestureData; + } + } + + + protected void Start() + { + // locate the available gesture listeners + RefreshGestureListeners(); + } + + + // Estimates the current state of the defined gestures + protected void CheckForGestures(ulong UserId, KinectManager kinectManager) + { + if (!playerGesturesData.ContainsKey(UserId) || !gesturesTrackingAtTime.ContainsKey(UserId)) + return; + + // check for gestures + if (Time.realtimeSinceStartup >= gesturesTrackingAtTime[UserId]) + { + // get joint positions and tracking + int iAllJointsCount = (int)KinectInterop.JointType.Count; + bool[] playerJointsTracked = new bool[iAllJointsCount]; + Vector3[] playerJointsPos = new Vector3[iAllJointsCount]; + + //// sensor orientation angle + //float orientAngle = kinectManager.GetPrimaryBodySensorOrientationAngle(); + //Vector3 sensorOri = new Vector3(0f, 0f, orientAngle); + //matBodySensor.SetTRS(Vector3.zero, Quaternion.Euler(sensorOri), Vector3.one); + + int[] aiNeededJointIndexes = GetNeededJointIndexes(); + int iNeededJointsCount = aiNeededJointIndexes.Length; + + if (jointDebugPrefab != null && debugJoints == null) + { + // array holding the skeleton joints + debugJoints = new GameObject[iNeededJointsCount]; + + for (int i = 0; i < iNeededJointsCount; i++) + { + debugJoints[i] = Instantiate(jointDebugPrefab) as GameObject; + debugJoints[i].transform.parent = transform; + debugJoints[i].name = ((KinectInterop.JointType)aiNeededJointIndexes[i]).ToString(); + debugJoints[i].SetActive(false); + } + } + + for (int i = 0; i < iNeededJointsCount; i++) + { + int joint = aiNeededJointIndexes[i]; + + if (joint >= 0) + { + playerJointsTracked[joint] = kinectManager.IsJointTracked(UserId, joint); + playerJointsPos[joint] = kinectManager.GetJointPosition(UserId, joint); + //playerJointsPos[joint] = matBodySensor.MultiplyPoint3x4(playerJointsPos[joint]); // apply sensor orientation + + if(debugJoints != null) + { + debugJoints[i].transform.position = playerJointsPos[joint]; + debugJoints[i].SetActive(playerJointsTracked[joint]); + } + } + } + + // check for gestures + List gesturesData = playerGesturesData[UserId]; + + int listGestureSize = gesturesData.Count; + float timestampNow = Time.realtimeSinceStartup; + string sDebugGestures = string.Empty; // "Tracked Gestures:\n"; + + for (int g = 0; g < listGestureSize; g++) + { + GestureData gestureData = gesturesData[g]; + + if ((timestampNow >= gestureData.startTrackingAtTime) && + !IsConflictingGestureInProgress(gestureData, ref gesturesData)) + { + CheckForGesture(UserId, ref gestureData, Time.realtimeSinceStartup, ref playerJointsPos, ref playerJointsTracked); + gesturesData[g] = gestureData; + + if (gestureData.complete) + { + gesturesTrackingAtTime[UserId] = timestampNow + minTimeBetweenGestures; + } + + if (gestureDebugText && (UserId == kinectManager.GetPrimaryUserID())) + { + sDebugGestures += string.Format("{0} - state: {1}, time: {2:F1}, progress: {3}%\n", + gestureData.gesture, gestureData.state, + gestureData.timestamp, + (int)(gestureData.progress * 100 + 0.5f)); + } + } + } + + playerGesturesData[UserId] = gesturesData; + + if (gestureDebugText && (UserId == kinectManager.GetPrimaryUserID())) + { + for (int i = 0; i < iNeededJointsCount; i++) + { + int joint = aiNeededJointIndexes[i]; + + sDebugGestures += string.Format("\n {0}: {1}", (KinectInterop.JointType)joint, + playerJointsTracked[joint] ? playerJointsPos[joint].ToString() : ""); + } + + gestureDebugText.text = sDebugGestures; + } + } + } + + + private bool IsConflictingGestureInProgress(GestureData gestureData, ref List gesturesData) + { + foreach (GestureType gesture in gestureData.checkForGestures) + { + int index = GetGestureIndex(gesture, ref gesturesData); + + if (index >= 0) + { + if (gesturesData[index].progress > 0f) + return true; + } + } + + return false; + } + + + // return the index of gesture in the list, or -1 if not found + private int GetGestureIndex(GestureType gesture, ref List gesturesData) + { + int listSize = gesturesData.Count; + + for (int i = 0; i < listSize; i++) + { + if (gesturesData[i].gesture == gesture) + return i; + } + + return -1; + } + + + /// + /// Gets the list of gesture joint indexes. + /// + /// The needed joint indexes. + public virtual int[] GetNeededJointIndexes() + { + leftHandIndex = (int)KinectInterop.JointType.HandLeft; + rightHandIndex = (int)KinectInterop.JointType.HandRight; + + leftFingerIndex = (int)KinectInterop.JointType.HandtipLeft; + rightFingerIndex = (int)KinectInterop.JointType.HandtipRight; + + leftElbowIndex = (int)KinectInterop.JointType.ElbowLeft; + rightElbowIndex = (int)KinectInterop.JointType.ElbowRight; + + leftShoulderIndex = (int)KinectInterop.JointType.ShoulderLeft; + rightShoulderIndex = (int)KinectInterop.JointType.ShoulderRight; + + leftClavicleIndex = (int)KinectInterop.JointType.ClavicleLeft; + rightClavicleIndex = (int)KinectInterop.JointType.ClavicleRight; + + hipCenterIndex = (int)KinectInterop.JointType.Pelvis; + neckIndex = (int)KinectInterop.JointType.Neck; + + leftHipIndex = (int)KinectInterop.JointType.HipLeft; + rightHipIndex = (int)KinectInterop.JointType.HipRight; + + leftKneeIndex = (int)KinectInterop.JointType.KneeLeft; + rightKneeIndex = (int)KinectInterop.JointType.KneeRight; + + leftAnkleIndex = (int)KinectInterop.JointType.AnkleLeft; + rightAnkleIndex = (int)KinectInterop.JointType.AnkleRight; + + int[] neededJointIndexes = { + leftHandIndex, rightHandIndex, leftFingerIndex, rightFingerIndex, leftElbowIndex, rightElbowIndex, leftShoulderIndex, rightShoulderIndex, + leftClavicleIndex, rightClavicleIndex, hipCenterIndex, neckIndex, + leftHipIndex, rightHipIndex, leftKneeIndex, rightKneeIndex, leftAnkleIndex, rightAnkleIndex + }; + + return neededJointIndexes; + } + + + // sets basic parameters of the gesture data + protected void SetGestureJoint(ref GestureData gestureData, float timestamp, int joint, Vector3 jointPos) + { + gestureData.joint = joint; + gestureData.jointPos = jointPos; + gestureData.timestamp = timestamp; + gestureData.state++; + } + + + // marks the gesture data as cancelled gesture + protected void SetGestureCancelled(ref GestureData gestureData) + { + gestureData.state = 0; + gestureData.progress = 0f; + gestureData.cancelled = true; + } + + + // checks if the pose persists for the whole duration set + protected void CheckPoseComplete(ref GestureData gestureData, float timestamp, Vector3 jointPos, bool isInPose, float durationToComplete) + { + if (isInPose) + { + float timeLeft = timestamp - gestureData.timestamp; + gestureData.progress = durationToComplete > 0f ? Mathf.Clamp01(timeLeft / durationToComplete) : 1.0f; + + if (timeLeft >= durationToComplete) + { + gestureData.timestamp = timestamp; + gestureData.jointPos = jointPos; + gestureData.state++; + gestureData.complete = true; + } + } + else + { + SetGestureCancelled(ref gestureData); + } + } + + + // sets gesture data current screen coords (useful for many gestures) + protected void SetScreenPos(ulong userId, ref GestureData gestureData, ref Vector3[] jointsPos, ref bool[] jointsTracked) + { + Vector3 handPos = jointsPos[rightHandIndex]; + bool calculateCoords = false; + + if (gestureData.joint == rightHandIndex) + { + if (jointsTracked[rightHandIndex] /**&& jointsTracked[rightElbowIndex] && jointsTracked[rightShoulderIndex]*/) + { + calculateCoords = true; + } + } + else if (gestureData.joint == leftHandIndex) + { + if (jointsTracked[leftHandIndex] /**&& jointsTracked[leftElbowIndex] && jointsTracked[leftShoulderIndex]*/) + { + handPos = jointsPos[leftHandIndex]; + calculateCoords = true; + } + } + + if (calculateCoords) + { + if (jointsTracked[hipCenterIndex] && jointsTracked[leftClavicleIndex] && jointsTracked[rightClavicleIndex] && + jointsTracked[leftShoulderIndex] && jointsTracked[rightShoulderIndex]) + { + Vector3 shoulderCenterPos = (jointsPos[leftClavicleIndex] + jointsPos[rightClavicleIndex]) / 2f; + Vector3 shoulderToHips = shoulderCenterPos - jointsPos[hipCenterIndex]; + Vector3 rightToLeft = jointsPos[rightShoulderIndex] - jointsPos[leftShoulderIndex]; + + gestureData.tagVector2.x = rightToLeft.x; // * 1.2f; + gestureData.tagVector2.y = shoulderToHips.y; // * 1.2f; + + if (gestureData.joint == rightHandIndex) + { + gestureData.tagVector.x = jointsPos[rightShoulderIndex].x - gestureData.tagVector2.x / 2f; + gestureData.tagVector.y = jointsPos[hipCenterIndex].y; + } + else + { + gestureData.tagVector.x = jointsPos[leftShoulderIndex].x - gestureData.tagVector2.x / 2f; + gestureData.tagVector.y = jointsPos[hipCenterIndex].y; + } + } + + if (gestureData.tagVector2.x != 0 && gestureData.tagVector2.y != 0) + { + Vector3 relHandPos = handPos - gestureData.tagVector; + gestureData.screenPos.x = Mathf.Clamp01(relHandPos.x / gestureData.tagVector2.x); + gestureData.screenPos.y = Mathf.Clamp01(relHandPos.y / gestureData.tagVector2.y); + } + + } + } + + + // sets the zoom factor value as screenPos.z (for zoom-in and zoom-out gestures) + protected void SetZoomFactor(ulong userId, ref GestureData gestureData, float initialZoom, ref Vector3[] jointsPos, ref bool[] jointsTracked) + { + Vector3 vectorZooming = jointsPos[rightHandIndex] - jointsPos[leftHandIndex]; + + if (gestureData.tagFloat == 0f || gestureData.userId != userId) + { + gestureData.tagFloat = 0.5f; // this is 100% + } + + float distZooming = vectorZooming.magnitude; + gestureData.screenPos.z = initialZoom + (distZooming / gestureData.tagFloat); + } + + + // sets the wheel rotation value as screenPos.z (for wheel-gesture) + protected void SetWheelRotation(ulong userId, ref GestureData gestureData, Vector3 initialPos, Vector3 currentPos) + { + float angle = Vector3.Angle(initialPos, currentPos) * Mathf.Sign(currentPos.y - initialPos.y); + gestureData.screenPos.z = angle; + } + + + /// + /// Estimate the state and progress of the given gesture. + /// + /// User ID + /// Gesture-data structure + /// Current time + /// Joints-position array + /// Joints-tracked array + public virtual void CheckForGesture(ulong userId, ref GestureData gestureData, float timestamp, ref Vector3[] jointsPos, ref bool[] jointsTracked) + { + if (gestureData.complete) + return; + + float bandTopY = jointsPos[rightShoulderIndex].y > jointsPos[leftShoulderIndex].y ? jointsPos[rightShoulderIndex].y : jointsPos[leftShoulderIndex].y; + float bandBotY = jointsPos[rightHipIndex].y < jointsPos[leftHipIndex].y ? jointsPos[rightHipIndex].y : jointsPos[leftHipIndex].y; + + float bandCenter = (bandTopY + bandBotY) / 2f; + float bandSize = (bandTopY - bandBotY); + + float gestureTop = bandCenter + bandSize * 1.2f / 2f; + float gestureBottom = bandCenter - bandSize * 1.3f / 4f; + float gestureRight = jointsPos[rightHipIndex].x; + float gestureLeft = jointsPos[leftHipIndex].x; + + switch (gestureData.gesture) + { + // check for RaiseRightHand + case GestureType.RaiseRightHand: + switch (gestureData.state) + { + case 0: // gesture detection + if (jointsTracked[rightHandIndex] && jointsTracked[leftHandIndex] && jointsTracked[leftShoulderIndex] && + (jointsPos[rightHandIndex].y - jointsPos[leftShoulderIndex].y) > 0.1f && + (jointsPos[leftHandIndex].y - jointsPos[leftShoulderIndex].y) < 0f) + { + SetGestureJoint(ref gestureData, timestamp, rightHandIndex, jointsPos[rightHandIndex]); + } + break; + + case 1: // gesture complete + bool isInPose = jointsTracked[rightHandIndex] && jointsTracked[leftHandIndex] && jointsTracked[leftShoulderIndex] && + (jointsPos[rightHandIndex].y - jointsPos[leftShoulderIndex].y) > 0.1f && + (jointsPos[leftHandIndex].y - jointsPos[leftShoulderIndex].y) < 0f; + + Vector3 jointPos = jointsPos[gestureData.joint]; + CheckPoseComplete(ref gestureData, timestamp, jointPos, isInPose, KinectInterop.Constants.PoseCompleteDuration); + break; + } + break; + + // check for RaiseLeftHand + case GestureType.RaiseLeftHand: + switch (gestureData.state) + { + case 0: // gesture detection + if (jointsTracked[leftHandIndex] && jointsTracked[rightHandIndex] && jointsTracked[rightShoulderIndex] && + (jointsPos[leftHandIndex].y - jointsPos[rightShoulderIndex].y) > 0.1f && + (jointsPos[rightHandIndex].y - jointsPos[rightShoulderIndex].y) < 0f) + { + SetGestureJoint(ref gestureData, timestamp, leftHandIndex, jointsPos[leftHandIndex]); + } + break; + + case 1: // gesture complete + bool isInPose = jointsTracked[leftHandIndex] && jointsTracked[rightHandIndex] && jointsTracked[rightShoulderIndex] && + (jointsPos[leftHandIndex].y - jointsPos[rightShoulderIndex].y) > 0.1f && + (jointsPos[rightHandIndex].y - jointsPos[rightShoulderIndex].y) < 0f; + + Vector3 jointPos = jointsPos[gestureData.joint]; + CheckPoseComplete(ref gestureData, timestamp, jointPos, isInPose, KinectInterop.Constants.PoseCompleteDuration); + break; + } + break; + + // check for Psi + case GestureType.Psi: + switch (gestureData.state) + { + case 0: // gesture detection + if (jointsTracked[rightHandIndex] && jointsTracked[leftHandIndex] && jointsTracked[leftClavicleIndex] && jointsTracked[rightClavicleIndex] && + (jointsPos[rightHandIndex].y - jointsPos[rightClavicleIndex].y) > 0.1f && + (jointsPos[leftHandIndex].y - jointsPos[leftClavicleIndex].y) > 0.1f) + { + SetGestureJoint(ref gestureData, timestamp, rightHandIndex, jointsPos[rightHandIndex]); + } + break; + + case 1: // gesture complete + bool isInPose = jointsTracked[rightHandIndex] && jointsTracked[leftHandIndex] && jointsTracked[leftClavicleIndex] && jointsTracked[rightClavicleIndex] && + (jointsPos[rightHandIndex].y - jointsPos[rightClavicleIndex].y) > 0.1f && + (jointsPos[leftHandIndex].y - jointsPos[leftClavicleIndex].y) > 0.1f; + + Vector3 jointPos = jointsPos[gestureData.joint]; + CheckPoseComplete(ref gestureData, timestamp, jointPos, isInPose, KinectInterop.Constants.PoseCompleteDuration); + break; + } + break; + + // check for Tpose + case GestureType.Tpose: + switch (gestureData.state) + { + case 0: // gesture detection + if (jointsTracked[rightHandIndex] && jointsTracked[rightElbowIndex] && jointsTracked[rightShoulderIndex] && + Mathf.Abs(jointsPos[rightElbowIndex].y - jointsPos[rightShoulderIndex].y) < 0.1f && // 0.07f + Mathf.Abs(jointsPos[rightHandIndex].y - jointsPos[rightElbowIndex].y) < 0.1f && // 0.7f + (jointsPos[rightElbowIndex].x - jointsPos[rightShoulderIndex].x) > 0.05f && + jointsTracked[leftHandIndex] && jointsTracked[leftElbowIndex] && jointsTracked[leftShoulderIndex] && + Mathf.Abs(jointsPos[leftElbowIndex].y - jointsPos[leftShoulderIndex].y) < 0.1f && + Mathf.Abs(jointsPos[leftHandIndex].y - jointsPos[leftElbowIndex].y) < 0.1f && + (jointsPos[leftElbowIndex].x - jointsPos[leftShoulderIndex].x) < 0.05f) + { + SetGestureJoint(ref gestureData, timestamp, rightHandIndex, jointsPos[rightHandIndex]); + } + break; + + case 1: // gesture complete + bool isInPose = jointsTracked[rightHandIndex] && jointsTracked[rightElbowIndex] && jointsTracked[rightShoulderIndex] && + Mathf.Abs(jointsPos[rightElbowIndex].y - jointsPos[rightShoulderIndex].y) < 0.1f && // 0.7f + Mathf.Abs(jointsPos[rightHandIndex].y - jointsPos[rightElbowIndex].y) < 0.1f && // 0.7f + (jointsPos[rightElbowIndex].x - jointsPos[rightShoulderIndex].x) > 0.05f && + jointsTracked[leftHandIndex] && jointsTracked[leftElbowIndex] && jointsTracked[leftShoulderIndex] && + Mathf.Abs(jointsPos[leftElbowIndex].y - jointsPos[leftShoulderIndex].y) < 0.1f && + Mathf.Abs(jointsPos[leftHandIndex].y - jointsPos[leftElbowIndex].y) < 0.1f && + (jointsPos[leftElbowIndex].x - jointsPos[leftShoulderIndex].x) < -0.05f; + + Vector3 jointPos = jointsPos[gestureData.joint]; + CheckPoseComplete(ref gestureData, timestamp, jointPos, isInPose, KinectInterop.Constants.PoseCompleteDuration); + break; + } + break; + + // check for Apose + case GestureType.Apose: + switch (gestureData.state) + { + case 0: // gesture detection + if (jointsTracked[rightHandIndex] && jointsTracked[rightHipIndex] && + Mathf.Abs(jointsPos[rightHandIndex].y - jointsPos[rightHipIndex].y) < 0.2f && + (jointsPos[rightHandIndex].x - jointsPos[rightHipIndex].x) >= 0.3f && + (jointsTracked[leftHandIndex] && jointsTracked[leftHipIndex] && + Mathf.Abs(jointsPos[leftHandIndex].y - jointsPos[leftHipIndex].y) < 0.2f && + (jointsPos[leftHandIndex].x - jointsPos[leftHipIndex].x) <= -0.3f)) + { + SetGestureJoint(ref gestureData, timestamp, rightHandIndex, jointsPos[rightHandIndex]); + } + break; + + case 1: // gesture complete + bool isInPose = (jointsTracked[rightHandIndex] && jointsTracked[rightHipIndex] && + Mathf.Abs(jointsPos[rightHandIndex].y - jointsPos[rightHipIndex].y) < 0.2f && + (jointsPos[rightHandIndex].x - jointsPos[rightHipIndex].x) >= 0.3f && + (jointsTracked[leftHandIndex] && jointsTracked[leftHipIndex] && + Mathf.Abs(jointsPos[leftHandIndex].y - jointsPos[leftHipIndex].y) < 0.2f && + (jointsPos[leftHandIndex].x - jointsPos[leftHipIndex].x) <= -0.3f)); + + Vector3 jointPos = jointsPos[gestureData.joint]; + CheckPoseComplete(ref gestureData, timestamp, jointPos, isInPose, KinectInterop.Constants.PoseCompleteDuration); + break; + } + break; + + // check for Stop + case GestureType.Stop: + switch (gestureData.state) + { + case 0: // gesture detection + if (jointsTracked[rightHandIndex] && jointsTracked[rightHipIndex] && + (jointsPos[rightHandIndex].y - jointsPos[rightHipIndex].y) < 0.2f && + (jointsPos[rightHandIndex].x - jointsPos[rightHipIndex].x) >= 0.4f) + { + SetGestureJoint(ref gestureData, timestamp, rightHandIndex, jointsPos[rightHandIndex]); + } + else if (jointsTracked[leftHandIndex] && jointsTracked[leftHipIndex] && + (jointsPos[leftHandIndex].y - jointsPos[leftHipIndex].y) < 0.2f && + (jointsPos[leftHandIndex].x - jointsPos[leftHipIndex].x) <= -0.4f) + { + SetGestureJoint(ref gestureData, timestamp, leftHandIndex, jointsPos[leftHandIndex]); + } + break; + + case 1: // gesture complete + bool isInPose = (gestureData.joint == rightHandIndex) ? + (jointsTracked[rightHandIndex] && jointsTracked[rightHipIndex] && + (jointsPos[rightHandIndex].y - jointsPos[rightHipIndex].y) < 0.2f && + (jointsPos[rightHandIndex].x - jointsPos[rightHipIndex].x) >= 0.4f) : + (jointsTracked[leftHandIndex] && jointsTracked[leftHipIndex] && + (jointsPos[leftHandIndex].y - jointsPos[leftHipIndex].y) < 0.2f && + (jointsPos[leftHandIndex].x - jointsPos[leftHipIndex].x) <= -0.4f); + + Vector3 jointPos = jointsPos[gestureData.joint]; + CheckPoseComplete(ref gestureData, timestamp, jointPos, isInPose, KinectInterop.Constants.PoseCompleteDuration); + break; + } + break; + + // check for raised right hand & horizontal left hand + case GestureType.RaisedRightHorizontalLeftHand: + switch (gestureData.state) + { + case 0: // gesture detection + if (jointsTracked[rightHandIndex] && jointsTracked[rightShoulderIndex] && // check right hand is straight up + (jointsPos[rightHandIndex].y - jointsPos[rightShoulderIndex].y) > 0.5f && // ensure right hand is higher than shoulder + Mathf.Abs(jointsPos[rightHandIndex].z - jointsPos[rightShoulderIndex].z) < 0.35f && // ensue hand is vertical straight enough + Mathf.Abs(jointsPos[rightHandIndex].x - jointsPos[rightShoulderIndex].x) < 0.35f && // ensue hand is vertical straight enough + jointsTracked[leftHandIndex] && jointsTracked[leftShoulderIndex] && // check left hand is straight flat + Mathf.Abs(jointsPos[leftHandIndex].y - jointsPos[leftShoulderIndex].y) < 0.25f && // ensure hand and shoulder are on close height + (jointsPos[leftHandIndex] - jointsPos[leftShoulderIndex]).sqrMagnitude > 0.25f) // ensure hand and shoulder are horizontal straight enough + { + SetGestureJoint(ref gestureData, timestamp, rightHandIndex, jointsPos[rightHandIndex]); + } + break; + + + case 1: // gesture complete + bool isInPose = jointsTracked[rightHandIndex] && jointsTracked[rightShoulderIndex] && // check right hand is straight up + (jointsPos[rightHandIndex].y - jointsPos[rightShoulderIndex].y) > 0.5f && // ensure right hand is higher than shoulder + Mathf.Abs(jointsPos[rightHandIndex].z - jointsPos[rightShoulderIndex].z) < 0.35f && // ensue hand is vertical straight enough + Mathf.Abs(jointsPos[rightHandIndex].x - jointsPos[rightShoulderIndex].x) < 0.35f && // ensue hand is vertical straight enough + jointsTracked[leftHandIndex] && jointsTracked[leftShoulderIndex] && // check left hand is straight flat + Mathf.Abs(jointsPos[leftHandIndex].y - jointsPos[leftShoulderIndex].y) < 0.25f && // ensure hand and shoulder are on close height + (jointsPos[leftHandIndex] - jointsPos[leftShoulderIndex]).sqrMagnitude > 0.25f; // ensure hand and shoulder are horizontal straight enough + + Vector3 jointPos = jointsPos[gestureData.joint]; + CheckPoseComplete(ref gestureData, timestamp, jointPos, isInPose, KinectInterop.Constants.PoseCompleteDuration); + break; + } + break; + + // check for raised left hand & horizontal right hand + case GestureType.RaisedLeftHorizontalRightHand: + switch (gestureData.state) + { + case 0: // gesture detection + if (jointsTracked[leftHandIndex] && jointsTracked[leftShoulderIndex] && // check left hand is straight up + (jointsPos[leftHandIndex].y - jointsPos[leftShoulderIndex].y) > 0.5f && // ensure left hand is higher than shoulder + Mathf.Abs(jointsPos[leftHandIndex].z - jointsPos[leftShoulderIndex].z) < 0.35f && // ensue hand is vertical straight enough + Mathf.Abs(jointsPos[leftHandIndex].x - jointsPos[leftShoulderIndex].x) < 0.35f && // ensue hand is vertical straight enough + jointsTracked[rightHandIndex] && jointsTracked[rightShoulderIndex] && // check right hand is straight flat + Mathf.Abs(jointsPos[rightHandIndex].y - jointsPos[rightShoulderIndex].y) < 0.25f && // ensure hand and shoulder are on close height + (jointsPos[rightHandIndex] - jointsPos[rightShoulderIndex]).sqrMagnitude > 0.25f) // ensure hand and shoulder are horizontal straight enough + { + SetGestureJoint(ref gestureData, timestamp, leftHandIndex, jointsPos[leftHandIndex]); + } + break; + + case 1: // gesture complete + bool isInPose = jointsTracked[leftHandIndex] && jointsTracked[leftShoulderIndex] && // check left hand is straight up + (jointsPos[leftHandIndex].y - jointsPos[leftShoulderIndex].y) > 0.5f && // ensure left hand is higher than shoulder + Mathf.Abs(jointsPos[leftHandIndex].z - jointsPos[leftShoulderIndex].z) < 0.35f && // ensue hand is vertical straight enough + Mathf.Abs(jointsPos[leftHandIndex].x - jointsPos[leftShoulderIndex].x) < 0.35f && // ensue hand is vertical straight enough + jointsTracked[rightHandIndex] && jointsTracked[rightShoulderIndex] && // check right hand is straight flat + Mathf.Abs(jointsPos[rightHandIndex].y - jointsPos[rightShoulderIndex].y) < 0.25f && // ensure hand and shoulder are on close height + (jointsPos[rightHandIndex] - jointsPos[rightShoulderIndex]).sqrMagnitude > 0.25f; // ensure hand and shoulder are horizontal straight enough + + Vector3 jointPos = jointsPos[gestureData.joint]; + CheckPoseComplete(ref gestureData, timestamp, jointPos, isInPose, KinectInterop.Constants.PoseCompleteDuration); + break; + } + break; + + // check for TouchedRightElbow + case GestureType.TouchRightElbow: + switch (gestureData.state) + { + case 0: // gesture detection + if (jointsTracked[leftFingerIndex] && jointsTracked[rightElbowIndex] && + Vector3.Distance(jointsPos[leftFingerIndex], jointsPos[rightElbowIndex]) <= 0.12f) + { + SetGestureJoint(ref gestureData, timestamp, leftFingerIndex, jointsPos[leftFingerIndex]); + } + + //Debug.Log ("TRE0 - Distance: " + Vector3.Distance(jointsPos[leftFingerIndex], jointsPos[rightElbowIndex])); + break; + + case 1: // gesture complete + bool isInPose = jointsTracked[leftFingerIndex] && jointsTracked[rightElbowIndex] && + Vector3.Distance(jointsPos[leftFingerIndex], jointsPos[rightElbowIndex]) <= 0.12f; + + //Debug.Log ("TRE1 - Distance: " + Vector3.Distance(jointsPos[leftFingerIndex], jointsPos[rightElbowIndex]) + ", progress: " + gestureData.progress); + + Vector3 jointPos = jointsPos[gestureData.joint]; + CheckPoseComplete(ref gestureData, timestamp, jointPos, isInPose, 1.5f /**KinectInterop.Constants.PoseCompleteDuration*/); + break; + } + break; + + // check for TouchedLeftElbow + case GestureType.TouchLeftElbow: + switch (gestureData.state) + { + case 0: // gesture detection + if (jointsTracked[rightFingerIndex] && jointsTracked[leftElbowIndex] && + Vector3.Distance(jointsPos[rightFingerIndex], jointsPos[leftElbowIndex]) <= 0.12f) + { + SetGestureJoint(ref gestureData, timestamp, rightFingerIndex, jointsPos[rightFingerIndex]); + } + + //Debug.Log ("TLE0 - Distance: " + Vector3.Distance(jointsPos[rightFingerIndex], jointsPos[leftElbowIndex])); + break; + + case 1: // gesture complete + bool isInPose = jointsTracked[rightFingerIndex] && jointsTracked[leftElbowIndex] && + Vector3.Distance(jointsPos[rightFingerIndex], jointsPos[leftElbowIndex]) <= 0.12f; + + //Debug.Log ("TLE1- Distance: " + Vector3.Distance(jointsPos[rightFingerIndex], jointsPos[leftElbowIndex])); + + Vector3 jointPos = jointsPos[gestureData.joint]; + CheckPoseComplete(ref gestureData, timestamp, jointPos, isInPose, 1.5f /**KinectInterop.Constants.PoseCompleteDuration*/); + break; + } + break; + + // check for Wave + case GestureType.Wave: + switch (gestureData.state) + { + case 0: // gesture detection - phase 1 + if (jointsTracked[rightHandIndex] && jointsTracked[rightElbowIndex] && + (jointsPos[rightHandIndex].y - jointsPos[rightElbowIndex].y) > 0.1f && + (jointsPos[rightHandIndex].x - jointsPos[rightElbowIndex].x) > 0.05f) + { + SetGestureJoint(ref gestureData, timestamp, rightHandIndex, jointsPos[rightHandIndex]); + gestureData.progress = 0.3f; + } + else if (jointsTracked[leftHandIndex] && jointsTracked[leftElbowIndex] && + (jointsPos[leftHandIndex].y - jointsPos[leftElbowIndex].y) > 0.1f && + (jointsPos[leftHandIndex].x - jointsPos[leftElbowIndex].x) < -0.05f) + { + SetGestureJoint(ref gestureData, timestamp, leftHandIndex, jointsPos[leftHandIndex]); + gestureData.progress = 0.3f; + } + break; + + case 1: // gesture - phase 2 + if ((timestamp - gestureData.timestamp) < 1.5f) + { + bool isInPose = gestureData.joint == rightHandIndex ? + jointsTracked[rightHandIndex] && jointsTracked[rightElbowIndex] && + (jointsPos[rightHandIndex].y - jointsPos[rightElbowIndex].y) > 0.1f && + (jointsPos[rightHandIndex].x - jointsPos[rightElbowIndex].x) < -0.05f : + jointsTracked[leftHandIndex] && jointsTracked[leftElbowIndex] && + (jointsPos[leftHandIndex].y - jointsPos[leftElbowIndex].y) > 0.1f && + (jointsPos[leftHandIndex].x - jointsPos[leftElbowIndex].x) > 0.05f; + + if (isInPose) + { + gestureData.timestamp = timestamp; + gestureData.state++; + gestureData.progress = 0.7f; + } + } + else + { + // cancel the gesture + SetGestureCancelled(ref gestureData); + } + break; + + case 2: // gesture phase 3 = complete + if ((timestamp - gestureData.timestamp) < 1.5f) + { + bool isInPose = gestureData.joint == rightHandIndex ? + jointsTracked[rightHandIndex] && jointsTracked[rightElbowIndex] && + (jointsPos[rightHandIndex].y - jointsPos[rightElbowIndex].y) > 0.1f && + (jointsPos[rightHandIndex].x - jointsPos[rightElbowIndex].x) > 0.05f : + jointsTracked[leftHandIndex] && jointsTracked[leftElbowIndex] && + (jointsPos[leftHandIndex].y - jointsPos[leftElbowIndex].y) > 0.1f && + (jointsPos[leftHandIndex].x - jointsPos[leftElbowIndex].x) < -0.05f; + + if (isInPose) + { + Vector3 jointPos = jointsPos[gestureData.joint]; + CheckPoseComplete(ref gestureData, timestamp, jointPos, isInPose, 0f); + } + } + else + { + // cancel the gesture + SetGestureCancelled(ref gestureData); + } + break; + } + break; + + // check for SwipeLeft + case GestureType.SwipeLeft: + switch (gestureData.state) + { + case 0: // gesture detection - phase 1 + if (jointsTracked[rightHandIndex] && jointsTracked[leftShoulderIndex] && jointsTracked[rightShoulderIndex] && + jointsTracked[leftHipIndex] && jointsTracked[rightHipIndex] && + jointsPos[rightHandIndex].y >= gestureBottom && jointsPos[rightHandIndex].y <= gestureTop && + jointsPos[rightHandIndex].x >= gestureRight /**&& jointsPos[rightHandIndex].x > gestureLeft*/) + { + SetGestureJoint(ref gestureData, timestamp, rightHandIndex, jointsPos[rightHandIndex]); + gestureData.progress = 0.1f; + } + break; + + case 1: // gesture phase 2 = complete + if ((timestamp - gestureData.timestamp) <= 1.0f) + { + bool isInPose = jointsTracked[rightHandIndex] && jointsTracked[leftShoulderIndex] && jointsTracked[rightShoulderIndex] && + jointsTracked[leftHipIndex] && jointsTracked[rightHipIndex] && + jointsPos[rightHandIndex].y >= gestureBottom && jointsPos[rightHandIndex].y <= gestureTop && + jointsPos[rightHandIndex].x <= gestureLeft; + + if (isInPose) + { + Vector3 jointPos = jointsPos[gestureData.joint]; + CheckPoseComplete(ref gestureData, timestamp, jointPos, isInPose, 0f); + } + else if (jointsPos[rightHandIndex].x <= gestureRight) + { + float gestureSize = gestureRight - gestureLeft; + gestureData.progress = gestureSize > 0.01f ? (gestureRight - jointsPos[rightHandIndex].x) / gestureSize : 0f; + } + + } + else + { + // cancel the gesture + SetGestureCancelled(ref gestureData); + } + break; + } + break; + + // check for SwipeRight + case GestureType.SwipeRight: + switch (gestureData.state) + { + case 0: // gesture detection - phase 1 + if (jointsTracked[leftHandIndex] && jointsTracked[leftShoulderIndex] && jointsTracked[rightShoulderIndex] && + jointsTracked[leftHipIndex] && jointsTracked[rightHipIndex] && + jointsPos[leftHandIndex].y >= gestureBottom && jointsPos[leftHandIndex].y <= gestureTop && + jointsPos[leftHandIndex].x <= gestureLeft /**&& jointsPos[leftHandIndex].x < gestureRight*/) + { + SetGestureJoint(ref gestureData, timestamp, leftHandIndex, jointsPos[leftHandIndex]); + gestureData.progress = 0.1f; + } + break; + + case 1: // gesture phase 2 = complete + if ((timestamp - gestureData.timestamp) <= 1.0f) + { + bool isInPose = jointsTracked[leftHandIndex] && jointsTracked[leftShoulderIndex] && jointsTracked[rightShoulderIndex] && + jointsTracked[leftHipIndex] && jointsTracked[rightHipIndex] && + jointsPos[leftHandIndex].y >= gestureBottom && jointsPos[leftHandIndex].y <= gestureTop && + jointsPos[leftHandIndex].x >= gestureRight; + + if (isInPose) + { + Vector3 jointPos = jointsPos[gestureData.joint]; + CheckPoseComplete(ref gestureData, timestamp, jointPos, isInPose, 0f); + } + else if (jointsPos[leftHandIndex].x >= gestureLeft) + { + float gestureSize = gestureRight - gestureLeft; + gestureData.progress = gestureSize > 0.01f ? (jointsPos[leftHandIndex].x - gestureLeft) / gestureSize : 0f; + } + } + else + { + // cancel the gesture + SetGestureCancelled(ref gestureData); + } + break; + } + break; + + // check for SwipeUp + case GestureType.SwipeUp: + switch (gestureData.state) + { + case 0: // gesture detection - phase 1 + if (jointsTracked[rightHandIndex] && jointsTracked[leftElbowIndex] && jointsTracked[leftShoulderIndex] && + (jointsPos[rightHandIndex].y - jointsPos[leftElbowIndex].y) < 0f && + (jointsPos[rightHandIndex].y - (jointsPos[leftElbowIndex].y + jointsPos[leftHandIndex].y) / 2f) > 0f) + { + SetGestureJoint(ref gestureData, timestamp, rightHandIndex, jointsPos[rightHandIndex]); + gestureData.progress = 0.5f; + } + else if (jointsTracked[leftHandIndex] && jointsTracked[rightElbowIndex] && jointsTracked[rightShoulderIndex] && + (jointsPos[leftHandIndex].y - jointsPos[rightElbowIndex].y) < 0f && + (jointsPos[leftHandIndex].y -( jointsPos[rightElbowIndex].y + jointsPos[rightHandIndex].y) / 2f) > 0f) + { + SetGestureJoint(ref gestureData, timestamp, leftHandIndex, jointsPos[leftHandIndex]); + gestureData.progress = 0.5f; + } + break; + + case 1: // gesture phase 2 = complete + if ((timestamp - gestureData.timestamp) < 1.5f) + { + bool isInPose = gestureData.joint == rightHandIndex ? + jointsTracked[rightHandIndex] && jointsTracked[leftShoulderIndex] && + (jointsPos[rightHandIndex].y - jointsPos[leftShoulderIndex].y) > -0.05f && + Mathf.Abs(jointsPos[rightHandIndex].x - gestureData.jointPos.x) <= 0.15f : + jointsTracked[leftHandIndex] && jointsTracked[rightShoulderIndex] && + (jointsPos[leftHandIndex].y - jointsPos[rightShoulderIndex].y) > -0.05f && + Mathf.Abs(jointsPos[leftHandIndex].x - gestureData.jointPos.x) <= 0.15f; + + if (isInPose) + { + Vector3 jointPos = jointsPos[gestureData.joint]; + CheckPoseComplete(ref gestureData, timestamp, jointPos, isInPose, 0f); + } + } + else + { + // cancel the gesture + SetGestureCancelled(ref gestureData); + } + break; + } + break; + + // check for SwipeDown + case GestureType.SwipeDown: + switch (gestureData.state) + { + case 0: // gesture detection - phase 1 + if (jointsTracked[rightHandIndex] && jointsTracked[leftShoulderIndex] && + (jointsPos[rightHandIndex].y - jointsPos[leftShoulderIndex].y) >= -0.05f) + { + SetGestureJoint(ref gestureData, timestamp, rightHandIndex, jointsPos[rightHandIndex]); + gestureData.progress = 0.5f; + } + else if (jointsTracked[leftHandIndex] && jointsTracked[rightShoulderIndex] && + (jointsPos[leftHandIndex].y - jointsPos[rightShoulderIndex].y) >= -0.05f) + { + SetGestureJoint(ref gestureData, timestamp, leftHandIndex, jointsPos[leftHandIndex]); + gestureData.progress = 0.5f; + } + break; + + case 1: // gesture phase 2 = complete + if ((timestamp - gestureData.timestamp) < 1.5f) + { + bool isInPose = gestureData.joint == rightHandIndex ? + jointsTracked[rightHandIndex] && jointsTracked[leftElbowIndex] && + (jointsPos[rightHandIndex].y - jointsPos[leftElbowIndex].y) < 0f && + Mathf.Abs(jointsPos[rightHandIndex].x - gestureData.jointPos.x) <= 0.15f : + jointsTracked[leftHandIndex] && jointsTracked[rightElbowIndex] && + (jointsPos[leftHandIndex].y - jointsPos[rightElbowIndex].y) < 0f && + Mathf.Abs(jointsPos[leftHandIndex].x - gestureData.jointPos.x) <= 0.15f; + + if (isInPose) + { + Vector3 jointPos = jointsPos[gestureData.joint]; + CheckPoseComplete(ref gestureData, timestamp, jointPos, isInPose, 0f); + } + } + else + { + // cancel the gesture + SetGestureCancelled(ref gestureData); + } + break; + } + break; + + // check for ZoomIn + case GestureType.ZoomIn: + Vector3 vectorZoomOut = (Vector3)jointsPos[rightHandIndex] - jointsPos[leftHandIndex]; + float distZoomOut = vectorZoomOut.magnitude; + + switch (gestureData.state) + { + case 0: // gesture detection - phase 1 + if (jointsTracked[leftHandIndex] && jointsTracked[rightHandIndex] && jointsTracked[leftShoulderIndex] && jointsTracked[rightShoulderIndex] && + jointsTracked[leftHipIndex] && jointsTracked[rightHipIndex] && + jointsPos[leftHandIndex].y >= gestureBottom && jointsPos[leftHandIndex].y <= gestureTop && + jointsPos[rightHandIndex].y >= gestureBottom && jointsPos[rightHandIndex].y <= gestureTop && + distZoomOut < 0.3f) + { + SetGestureJoint(ref gestureData, timestamp, rightHandIndex, jointsPos[rightHandIndex]); + gestureData.tagVector = Vector3.right; + gestureData.tagFloat = 0f; + gestureData.progress = 0.3f; + } + break; + + case 1: // gesture phase 2 = zooming + if ((timestamp - gestureData.timestamp) < 1.0f) + { + float angleZoomOut = Vector3.Angle(gestureData.tagVector, vectorZoomOut) * Mathf.Sign(vectorZoomOut.y - gestureData.tagVector.y); + bool isInPose = jointsTracked[leftHandIndex] && jointsTracked[rightHandIndex] && jointsTracked[leftShoulderIndex] && jointsTracked[rightShoulderIndex] && + jointsTracked[leftHipIndex] && jointsTracked[rightHipIndex] && + jointsPos[leftHandIndex].y >= gestureBottom && jointsPos[leftHandIndex].y <= gestureTop && + jointsPos[rightHandIndex].y >= gestureBottom && jointsPos[rightHandIndex].y <= gestureTop && + distZoomOut < 1.5f && Mathf.Abs(angleZoomOut) < 20f; + + if (isInPose) + { + SetZoomFactor(userId, ref gestureData, 1.0f, ref jointsPos, ref jointsTracked); + gestureData.timestamp = timestamp; + gestureData.progress = 0.7f; + } + } + else + { + // cancel the gesture + SetGestureCancelled(ref gestureData); + } + break; + } + break; + + // check for ZoomOut + case GestureType.ZoomOut: + Vector3 vectorZoomIn = (Vector3)jointsPos[rightHandIndex] - jointsPos[leftHandIndex]; + float distZoomIn = vectorZoomIn.magnitude; + + switch (gestureData.state) + { + case 0: // gesture detection - phase 1 + if (jointsTracked[leftHandIndex] && jointsTracked[rightHandIndex] && jointsTracked[leftShoulderIndex] && jointsTracked[rightShoulderIndex] && + jointsTracked[leftHipIndex] && jointsTracked[rightHipIndex] && + jointsPos[leftHandIndex].y >= gestureBottom && jointsPos[leftHandIndex].y <= gestureTop && + jointsPos[rightHandIndex].y >= gestureBottom && jointsPos[rightHandIndex].y <= gestureTop && + distZoomIn >= 0.7f) + { + SetGestureJoint(ref gestureData, timestamp, rightHandIndex, jointsPos[rightHandIndex]); + gestureData.tagVector = Vector3.right; + gestureData.tagFloat = distZoomIn; + gestureData.progress = 0.3f; + } + break; + + case 1: // gesture phase 2 = zooming + if ((timestamp - gestureData.timestamp) < 1.0f) + { + float angleZoomIn = Vector3.Angle(gestureData.tagVector, vectorZoomIn) * Mathf.Sign(vectorZoomIn.y - gestureData.tagVector.y); + bool isInPose = jointsTracked[leftHandIndex] && jointsTracked[rightHandIndex] && jointsTracked[leftShoulderIndex] && jointsTracked[rightShoulderIndex] && + jointsTracked[leftHipIndex] && jointsTracked[rightHipIndex] && + jointsPos[leftHandIndex].y >= gestureBottom && jointsPos[leftHandIndex].y <= gestureTop && + jointsPos[rightHandIndex].y >= gestureBottom && jointsPos[rightHandIndex].y <= gestureTop && + distZoomIn >= 0.2f && Mathf.Abs(angleZoomIn) < 20f; + + if (isInPose) + { + SetZoomFactor(userId, ref gestureData, 0.0f, ref jointsPos, ref jointsTracked); + gestureData.timestamp = timestamp; + gestureData.progress = 0.7f; + } + } + else + { + // cancel the gesture + SetGestureCancelled(ref gestureData); + } + break; + } + break; + + // check for Wheel + case GestureType.Wheel: + Vector3 vectorWheel = (Vector3)jointsPos[rightHandIndex] - jointsPos[leftHandIndex]; + float distWheel = vectorWheel.magnitude; + + // Debug.Log(string.Format("{0}. Dist: {1:F1}, Tag: {2:F1}, Diff: {3:F1}", gestureData.state, + // distWheel, gestureData.tagFloat, Mathf.Abs(distWheel - gestureData.tagFloat))); + + switch (gestureData.state) + { + case 0: // gesture detection - phase 1 + if (jointsTracked[leftHandIndex] && jointsTracked[rightHandIndex] && jointsTracked[leftShoulderIndex] && jointsTracked[rightShoulderIndex] && + jointsTracked[leftHipIndex] && jointsTracked[rightHipIndex] && + jointsPos[leftHandIndex].y >= gestureBottom && jointsPos[leftHandIndex].y <= gestureTop && + jointsPos[rightHandIndex].y >= gestureBottom && jointsPos[rightHandIndex].y <= gestureTop && + distWheel >= 0.3f && distWheel < 0.7f) + { + SetGestureJoint(ref gestureData, timestamp, rightHandIndex, jointsPos[rightHandIndex]); + gestureData.tagVector = Vector3.right; + gestureData.tagFloat = distWheel; + gestureData.progress = 0.3f; + } + break; + + case 1: // gesture phase 2 = rotating + if ((timestamp - gestureData.timestamp) < 0.5f) + { + float angle = Vector3.Angle(gestureData.tagVector, vectorWheel) * Mathf.Sign(vectorWheel.y - gestureData.tagVector.y); + bool isInPose = jointsTracked[leftHandIndex] && jointsTracked[rightHandIndex] && jointsTracked[leftShoulderIndex] && jointsTracked[rightShoulderIndex] && + jointsTracked[leftHipIndex] && jointsTracked[rightHipIndex] && + jointsPos[leftHandIndex].y >= gestureBottom && jointsPos[leftHandIndex].y <= gestureTop && + jointsPos[rightHandIndex].y >= gestureBottom && jointsPos[rightHandIndex].y <= gestureTop && + distWheel >= 0.3f && distWheel < 0.7f && + Mathf.Abs(distWheel - gestureData.tagFloat) < 0.1f; + + if (isInPose) + { + //SetWheelRotation(userId, ref gestureData, gestureData.tagVector, vectorWheel); + gestureData.screenPos.z = angle; // wheel angle + gestureData.timestamp = timestamp; + gestureData.tagFloat = distWheel; + gestureData.progress = 0.7f; + } + } + else + { + // cancel the gesture + SetGestureCancelled(ref gestureData); + } + break; + } + break; + + // check for Jump + case GestureType.Jump: + switch (gestureData.state) + { + case 0: // gesture detection - phase 1 + if (jointsTracked[hipCenterIndex] && + (jointsPos[hipCenterIndex].y > 0.6f) && (jointsPos[hipCenterIndex].y < 1.2f)) + { + SetGestureJoint(ref gestureData, timestamp, hipCenterIndex, jointsPos[hipCenterIndex]); + gestureData.progress = 0.5f; + } + break; + + case 1: // gesture phase 2 = complete + if ((timestamp - gestureData.timestamp) < 1.5f) + { + bool isInPose = jointsTracked[hipCenterIndex] && + (jointsPos[hipCenterIndex].y - gestureData.jointPos.y) > 0.15f && + Mathf.Abs(jointsPos[hipCenterIndex].x - gestureData.jointPos.x) < 0.2f; + + if (isInPose) + { + Vector3 jointPos = jointsPos[gestureData.joint]; + CheckPoseComplete(ref gestureData, timestamp, jointPos, isInPose, 0f); + } + } + else + { + // cancel the gesture + SetGestureCancelled(ref gestureData); + } + break; + } + break; + + // check for Squat + case GestureType.Squat: + switch (gestureData.state) + { + case 0: // gesture detection - phase 1 + if (jointsTracked[hipCenterIndex] && + (jointsPos[hipCenterIndex].y <= 0.7f)) + { + SetGestureJoint(ref gestureData, timestamp, hipCenterIndex, jointsPos[hipCenterIndex]); + gestureData.progress = 0.5f; + } + break; + + case 1: // gesture phase 2 = complete + if ((timestamp - gestureData.timestamp) < 1.5f) + { + bool isInPose = jointsTracked[hipCenterIndex] && + (jointsPos[hipCenterIndex].y - gestureData.jointPos.y) < -0.15f && + Mathf.Abs(jointsPos[hipCenterIndex].x - gestureData.jointPos.x) < 0.2f; + + if (isInPose) + { + Vector3 jointPos = jointsPos[gestureData.joint]; + CheckPoseComplete(ref gestureData, timestamp, jointPos, isInPose, 0f); + } + } + else + { + // cancel the gesture + SetGestureCancelled(ref gestureData); + } + break; + } + break; + + // check for Push + case GestureType.Push: + switch (gestureData.state) + { + case 0: // gesture detection - phase 1 + if (jointsTracked[rightHandIndex] && jointsTracked[leftElbowIndex] && jointsTracked[rightShoulderIndex] && + (jointsPos[rightHandIndex].y - jointsPos[leftElbowIndex].y) > -0.1f && + Mathf.Abs(jointsPos[rightHandIndex].x - jointsPos[rightShoulderIndex].x) < 0.2f && + (jointsPos[rightHandIndex].z - jointsPos[leftElbowIndex].z) < -0.2f) + { + SetGestureJoint(ref gestureData, timestamp, rightHandIndex, jointsPos[rightHandIndex]); + gestureData.progress = 0.5f; + } + else if (jointsTracked[leftHandIndex] && jointsTracked[rightElbowIndex] && jointsTracked[leftShoulderIndex] && + (jointsPos[leftHandIndex].y - jointsPos[rightElbowIndex].y) > -0.1f && + Mathf.Abs(jointsPos[leftHandIndex].x - jointsPos[leftShoulderIndex].x) < 0.2f && + (jointsPos[leftHandIndex].z - jointsPos[rightElbowIndex].z) < -0.2f) + { + SetGestureJoint(ref gestureData, timestamp, leftHandIndex, jointsPos[leftHandIndex]); + gestureData.progress = 0.5f; + } + break; + + case 1: // gesture phase 2 = complete + if ((timestamp - gestureData.timestamp) < 1.5f) + { + bool isInPose = gestureData.joint == rightHandIndex ? + jointsTracked[rightHandIndex] && jointsTracked[leftElbowIndex] && jointsTracked[rightShoulderIndex] && + (jointsPos[rightHandIndex].y - jointsPos[leftElbowIndex].y) > -0.1f && + Mathf.Abs(jointsPos[rightHandIndex].x - gestureData.jointPos.x) < 0.2f && + (jointsPos[rightHandIndex].z - gestureData.jointPos.z) < -0.2f : + jointsTracked[leftHandIndex] && jointsTracked[rightElbowIndex] && jointsTracked[leftShoulderIndex] && + (jointsPos[leftHandIndex].y - jointsPos[rightElbowIndex].y) > -0.1f && + Mathf.Abs(jointsPos[leftHandIndex].x - gestureData.jointPos.x) < 0.2f && + (jointsPos[leftHandIndex].z - gestureData.jointPos.z) < -0.2f; + + if (isInPose) + { + Vector3 jointPos = jointsPos[gestureData.joint]; + CheckPoseComplete(ref gestureData, timestamp, jointPos, isInPose, 0f); + } + } + else + { + // cancel the gesture + SetGestureCancelled(ref gestureData); + } + break; + } + break; + + // check for Pull + case GestureType.Pull: + switch (gestureData.state) + { + case 0: // gesture detection - phase 1 + if (jointsTracked[rightHandIndex] && jointsTracked[leftElbowIndex] && jointsTracked[rightShoulderIndex] && + (jointsPos[rightHandIndex].y - jointsPos[leftElbowIndex].y) > -0.1f && + Mathf.Abs(jointsPos[rightHandIndex].x - jointsPos[rightShoulderIndex].x) < 0.2f && + (jointsPos[rightHandIndex].z - jointsPos[leftElbowIndex].z) < -0.3f) + { + SetGestureJoint(ref gestureData, timestamp, rightHandIndex, jointsPos[rightHandIndex]); + gestureData.progress = 0.5f; + } + else if (jointsTracked[leftHandIndex] && jointsTracked[rightElbowIndex] && jointsTracked[leftShoulderIndex] && + (jointsPos[leftHandIndex].y - jointsPos[rightElbowIndex].y) > -0.1f && + Mathf.Abs(jointsPos[leftHandIndex].x - jointsPos[leftShoulderIndex].x) < 0.2f && + (jointsPos[leftHandIndex].z - jointsPos[rightElbowIndex].z) < -0.3f) + { + SetGestureJoint(ref gestureData, timestamp, leftHandIndex, jointsPos[leftHandIndex]); + gestureData.progress = 0.5f; + } + break; + + case 1: // gesture phase 2 = complete + if ((timestamp - gestureData.timestamp) < 1.5f) + { + bool isInPose = gestureData.joint == rightHandIndex ? + jointsTracked[rightHandIndex] && jointsTracked[leftElbowIndex] && jointsTracked[rightShoulderIndex] && + (jointsPos[rightHandIndex].y - jointsPos[leftElbowIndex].y) > -0.1f && + Mathf.Abs(jointsPos[rightHandIndex].x - gestureData.jointPos.x) < 0.2f && + (jointsPos[rightHandIndex].z - gestureData.jointPos.z) > 0.25f : + jointsTracked[leftHandIndex] && jointsTracked[rightElbowIndex] && jointsTracked[leftShoulderIndex] && + (jointsPos[leftHandIndex].y - jointsPos[rightElbowIndex].y) > -0.1f && + Mathf.Abs(jointsPos[leftHandIndex].x - gestureData.jointPos.x) < 0.2f && + (jointsPos[leftHandIndex].z - gestureData.jointPos.z) > 0.25f; + + if (isInPose) + { + Vector3 jointPos = jointsPos[gestureData.joint]; + CheckPoseComplete(ref gestureData, timestamp, jointPos, isInPose, 0f); + } + } + else + { + // cancel the gesture + SetGestureCancelled(ref gestureData); + } + break; + } + break; + + // check for ShoulderLeftFron + case GestureType.ShoulderLeftFront: + switch (gestureData.state) + { + case 0: // gesture detection - phase 1 + if (jointsTracked[leftShoulderIndex] && jointsTracked[rightShoulderIndex] && jointsTracked[leftHipIndex] && + (jointsPos[rightShoulderIndex].z - jointsPos[leftHipIndex].z) < 0f && + (jointsPos[rightShoulderIndex].z - jointsPos[leftShoulderIndex].z) > -0.15f) + { + SetGestureJoint(ref gestureData, timestamp, rightShoulderIndex, jointsPos[rightShoulderIndex]); + gestureData.progress = 0.5f; + } + break; + + case 1: // gesture phase 2 = complete + if ((timestamp - gestureData.timestamp) < 1.5f) + { + bool isInPose = jointsTracked[leftShoulderIndex] && jointsTracked[rightShoulderIndex] && jointsTracked[leftHipIndex] && + (jointsPos[rightShoulderIndex].z - jointsPos[leftShoulderIndex].z) < -0.2f; + + if (isInPose) + { + Vector3 jointPos = jointsPos[gestureData.joint]; + CheckPoseComplete(ref gestureData, timestamp, jointPos, isInPose, 0f); + } + } + else + { + // cancel the gesture + SetGestureCancelled(ref gestureData); + } + break; + } + break; + + // check for ShoulderRightFront + case GestureType.ShoulderRightFront: + switch (gestureData.state) + { + case 0: // gesture detection - phase 1 + if (jointsTracked[leftShoulderIndex] && jointsTracked[rightShoulderIndex] && jointsTracked[rightHipIndex] && + (jointsPos[leftShoulderIndex].z - jointsPos[rightHipIndex].z) < 0f && + (jointsPos[leftShoulderIndex].z - jointsPos[rightShoulderIndex].z) > -0.15f) + { + SetGestureJoint(ref gestureData, timestamp, leftShoulderIndex, jointsPos[leftShoulderIndex]); + gestureData.progress = 0.5f; + } + break; + + case 1: // gesture phase 2 = complete + if ((timestamp - gestureData.timestamp) < 1.5f) + { + bool isInPose = jointsTracked[leftShoulderIndex] && jointsTracked[rightShoulderIndex] && jointsTracked[rightHipIndex] && + (jointsPos[leftShoulderIndex].z - jointsPos[rightShoulderIndex].z) < -0.2f; + + if (isInPose) + { + Vector3 jointPos = jointsPos[gestureData.joint]; + CheckPoseComplete(ref gestureData, timestamp, jointPos, isInPose, 0f); + } + } + else + { + // cancel the gesture + SetGestureCancelled(ref gestureData); + } + break; + } + break; + + // check for LeanLeft + case GestureType.LeanLeft: + switch (gestureData.state) + { + case 0: // gesture detection - phase 1 (right shoulder is left of the right hip, means leaning left) + if (jointsTracked[rightShoulderIndex] && jointsTracked[rightHipIndex] && jointsTracked[neckIndex] && + (jointsPos[rightShoulderIndex].x - jointsPos[rightHipIndex].x) < 0f) + { + SetGestureJoint(ref gestureData, timestamp, rightShoulderIndex, jointsPos[rightShoulderIndex]); + gestureData.progress = 0.3f; + } + break; + + case 1: // gesture phase 2 = complete + if ((timestamp - gestureData.timestamp) < 0.5f) + { + // check if right shoulder is still left of the right hip (leaning left) + bool isInPose = jointsTracked[rightShoulderIndex] && jointsTracked[rightHipIndex] && jointsTracked[neckIndex] && + (jointsPos[rightShoulderIndex].x - jointsPos[rightHipIndex].x) < 0f; + + if (isInPose) + { + // calculate lean angle + Vector3 vSpineLL = jointsPos[neckIndex] - jointsPos[hipCenterIndex]; + gestureData.screenPos.z = Vector3.Angle(Vector3.up, vSpineLL); + + gestureData.timestamp = timestamp; + gestureData.progress = 0.7f; + } + } + else + { + // cancel the gesture + SetGestureCancelled(ref gestureData); + } + break; + } + break; + + // check for LeanRight + case GestureType.LeanRight: + switch (gestureData.state) + { + case 0: // gesture detection - phase 1 (left shoulder is right of the left hip, means leaning right) + if (jointsTracked[leftShoulderIndex] && jointsTracked[leftHipIndex] && jointsTracked[neckIndex] && + (jointsPos[leftShoulderIndex].x - jointsPos[leftHipIndex].x) > 0f) + { + SetGestureJoint(ref gestureData, timestamp, leftShoulderIndex, jointsPos[leftShoulderIndex]); + gestureData.progress = 0.3f; + } + break; + + case 1: // gesture phase 2 = complete + if ((timestamp - gestureData.timestamp) < 0.5f) + { + // check if left shoulder is still right of the left hip (leaning right) + bool isInPose = jointsTracked[leftShoulderIndex] && jointsTracked[leftHipIndex] && jointsTracked[neckIndex] && + (jointsPos[leftShoulderIndex].x - jointsPos[leftHipIndex].x) > 0f; + + if (isInPose) + { + // calculate lean angle + Vector3 vSpineLR = jointsPos[neckIndex] - jointsPos[hipCenterIndex]; + gestureData.screenPos.z = Vector3.Angle(Vector3.up, vSpineLR); + + gestureData.timestamp = timestamp; + gestureData.progress = 0.7f; + } + } + else + { + // cancel the gesture + SetGestureCancelled(ref gestureData); + } + break; + } + break; + + // check for LeanForward + case GestureType.LeanForward: + switch (gestureData.state) + { + case 0: // gesture detection - phase 1 (shoulder center in front of hip center, means leaning forward) + if (jointsTracked[neckIndex] && jointsTracked[hipCenterIndex] && + (jointsPos[neckIndex].z - jointsPos[hipCenterIndex].z) < -0.1f) + { + SetGestureJoint(ref gestureData, timestamp, neckIndex, jointsPos[neckIndex]); + gestureData.progress = 0.3f; + } + break; + + case 1: // gesture phase 2 = complete + if ((timestamp - gestureData.timestamp) < 0.5f) + { + // check if shoulder center is still in front of the hip center (leaning forward) + bool isInPose = jointsTracked[neckIndex] && jointsTracked[hipCenterIndex] && + (jointsPos[neckIndex].z - jointsPos[leftHipIndex].z) < -0.1f; + + if (isInPose) + { + // calculate lean angle + Vector3 vSpineLL = jointsPos[neckIndex] - jointsPos[hipCenterIndex]; + gestureData.screenPos.z = Vector3.Angle(Vector3.up, vSpineLL); + + gestureData.timestamp = timestamp; + gestureData.progress = 0.7f; + } + } + else + { + // cancel the gesture + SetGestureCancelled(ref gestureData); + } + break; + } + break; + + // check for LeanBack + case GestureType.LeanBack: + switch (gestureData.state) + { + case 0: // gesture detection - phase 1 (shoulder center behind hip center, means leaning back) + if (jointsTracked[neckIndex] && jointsTracked[hipCenterIndex] && + (jointsPos[neckIndex].z - jointsPos[hipCenterIndex].z) > 0.1f) + { + SetGestureJoint(ref gestureData, timestamp, neckIndex, jointsPos[neckIndex]); + gestureData.progress = 0.3f; + } + break; + + case 1: // gesture phase 2 = complete + if ((timestamp - gestureData.timestamp) < 0.5f) + { + // check if shoulder center is still behind of the hip center (leaning back) + bool isInPose = jointsTracked[neckIndex] && jointsTracked[hipCenterIndex] && + (jointsPos[neckIndex].z - jointsPos[leftHipIndex].z) > 0.1f; + + if (isInPose) + { + // calculate lean angle + Vector3 vSpineLR = jointsPos[neckIndex] - jointsPos[hipCenterIndex]; + gestureData.screenPos.z = Vector3.Angle(Vector3.up, vSpineLR); + + gestureData.timestamp = timestamp; + gestureData.progress = 0.7f; + } + } + else + { + // cancel the gesture + SetGestureCancelled(ref gestureData); + } + break; + } + break; + + // check for KickLeft + case GestureType.KickLeft: + switch (gestureData.state) + { + case 0: // gesture detection - phase 1 + if (jointsTracked[leftAnkleIndex] && jointsTracked[rightAnkleIndex] && jointsTracked[leftHipIndex] && + (jointsPos[leftAnkleIndex].z - jointsPos[leftHipIndex].z) < 0f && + (jointsPos[leftAnkleIndex].z - jointsPos[rightAnkleIndex].z) > -0.2f) + { + SetGestureJoint(ref gestureData, timestamp, leftAnkleIndex, jointsPos[leftAnkleIndex]); + gestureData.progress = 0.5f; + } + break; + + case 1: // gesture phase 2 = complete + if ((timestamp - gestureData.timestamp) < 1.5f) + { + bool isInPose = jointsTracked[leftAnkleIndex] && jointsTracked[rightAnkleIndex] && jointsTracked[leftHipIndex] && + (jointsPos[leftAnkleIndex].z - jointsPos[rightAnkleIndex].z) < -0.4f; + + if (isInPose) + { + Vector3 jointPos = jointsPos[gestureData.joint]; + CheckPoseComplete(ref gestureData, timestamp, jointPos, isInPose, 0f); + } + } + else + { + // cancel the gesture + SetGestureCancelled(ref gestureData); + } + break; + } + break; + + // check for KickRight + case GestureType.KickRight: + switch (gestureData.state) + { + case 0: // gesture detection - phase 1 + if (jointsTracked[leftAnkleIndex] && jointsTracked[rightAnkleIndex] && jointsTracked[rightHipIndex] && + (jointsPos[rightAnkleIndex].z - jointsPos[rightHipIndex].z) < 0f && + (jointsPos[rightAnkleIndex].z - jointsPos[leftAnkleIndex].z) > -0.2f) + { + SetGestureJoint(ref gestureData, timestamp, rightAnkleIndex, jointsPos[rightAnkleIndex]); + gestureData.progress = 0.5f; + } + break; + + case 1: // gesture phase 2 = complete + if ((timestamp - gestureData.timestamp) < 1.5f) + { + bool isInPose = jointsTracked[leftAnkleIndex] && jointsTracked[rightAnkleIndex] && jointsTracked[rightHipIndex] && + (jointsPos[rightAnkleIndex].z - jointsPos[leftAnkleIndex].z) < -0.4f; + + if (isInPose) + { + Vector3 jointPos = jointsPos[gestureData.joint]; + CheckPoseComplete(ref gestureData, timestamp, jointPos, isInPose, 0f); + } + } + else + { + // cancel the gesture + SetGestureCancelled(ref gestureData); + } + break; + } + break; + + case GestureType.Run: + switch (gestureData.state) + { + case 0: // gesture detection - phase 1 + // check if the left knee is up + if (jointsTracked[leftKneeIndex] && jointsTracked[rightKneeIndex] && + (jointsPos[leftKneeIndex].y - jointsPos[rightKneeIndex].y) > 0.1f) + { + SetGestureJoint(ref gestureData, timestamp, leftKneeIndex, jointsPos[leftKneeIndex]); + gestureData.progress = 0.3f; + } + break; + + case 1: // gesture complete + if ((timestamp - gestureData.timestamp) < 1.0f) + { + // check if the right knee is up + bool isInPose = jointsTracked[rightKneeIndex] && jointsTracked[leftKneeIndex] && + (jointsPos[rightKneeIndex].y - jointsPos[leftKneeIndex].y) > 0.1f; + + if (isInPose) + { + // go to state 2 + gestureData.timestamp = timestamp; + gestureData.progress = 0.7f; + gestureData.state = 2; + } + } + else + { + // cancel the gesture + SetGestureCancelled(ref gestureData); + } + break; + + case 2: // gesture complete + if ((timestamp - gestureData.timestamp) < 1.0f) + { + // check if the left knee is up again + bool isInPose = jointsTracked[leftKneeIndex] && jointsTracked[rightKneeIndex] && + (jointsPos[leftKneeIndex].y - jointsPos[rightKneeIndex].y) > 0.1f; + + if (isInPose) + { + // go back to state 1 + gestureData.timestamp = timestamp; + gestureData.progress = 0.8f; + gestureData.state = 1; + } + } + else + { + // cancel the gesture + SetGestureCancelled(ref gestureData); + } + break; + } + break; + + // check for MoveLeft + case GestureType.MoveLeft: + switch (gestureData.state) + { + case 0: // gesture detection - phase 1 + if (jointsTracked[hipCenterIndex]) + { + SetGestureJoint(ref gestureData, timestamp, hipCenterIndex, jointsPos[hipCenterIndex]); + gestureData.progress = 0.5f; + } + break; + + case 1: // gesture phase 2 = complete + if ((timestamp - gestureData.timestamp) < 1.5f) + { + bool isInPose = jointsTracked[hipCenterIndex] && + (jointsPos[hipCenterIndex].x - gestureData.jointPos.x) < -0.25f && + Mathf.Abs(jointsPos[hipCenterIndex].z - gestureData.jointPos.z) < 0.1f; + + if (isInPose) + { + Vector3 jointPos = jointsPos[gestureData.joint]; + CheckPoseComplete(ref gestureData, timestamp, jointPos, isInPose, 0f); + } + } + else + { + // cancel the gesture + SetGestureCancelled(ref gestureData); + } + break; + } + break; + + // check for MoveRight + case GestureType.MoveRight: + switch (gestureData.state) + { + case 0: // gesture detection - phase 1 + if (jointsTracked[hipCenterIndex]) + { + SetGestureJoint(ref gestureData, timestamp, hipCenterIndex, jointsPos[hipCenterIndex]); + gestureData.progress = 0.5f; + } + break; + + case 1: // gesture phase 2 = complete + if ((timestamp - gestureData.timestamp) < 1.5f) + { + bool isInPose = jointsTracked[hipCenterIndex] && + (jointsPos[hipCenterIndex].x - gestureData.jointPos.x) > 0.25f && + Mathf.Abs(jointsPos[hipCenterIndex].z - gestureData.jointPos.z) < 0.1f; + + if (isInPose) + { + Vector3 jointPos = jointsPos[gestureData.joint]; + CheckPoseComplete(ref gestureData, timestamp, jointPos, isInPose, 0f); + } + } + else + { + // cancel the gesture + SetGestureCancelled(ref gestureData); + } + break; + } + break; + + // here come more gesture-cases + } + } + + } +} \ No newline at end of file diff --git a/Assets/Azure/KinectScripts/KinectGestureManager.cs.meta b/Assets/Azure/KinectScripts/KinectGestureManager.cs.meta new file mode 100644 index 0000000..246dbb5 --- /dev/null +++ b/Assets/Azure/KinectScripts/KinectGestureManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4cbe8e7dfe7e4404185af4bb28494314 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/KinectInterop.cs b/Assets/Azure/KinectScripts/KinectInterop.cs new file mode 100644 index 0000000..f00437d --- /dev/null +++ b/Assets/Azure/KinectScripts/KinectInterop.cs @@ -0,0 +1,2776 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Reflection; +using System.Runtime.InteropServices; +using System.Threading; +using UnityEngine; + +namespace com.rfilkov.kinect +{ + /// + /// KinectInterop is a class containing utility and interop functions, to call the proper sensor interface. + /// + public class KinectInterop + { + // whether to persist the space tables to disk and then load them from there, or not. + internal const bool SAVE_SPACE_TABLES_TO_DISK = true; + + // multi-camera config file name + internal const string MULTI_CAM_CONFIG_FILE_NAME = "multicam_config.json"; + + // thread sleep time in milliseconds (to balance between cpu usage and performance) + internal const int THREAD_SLEEP_TIME_MS = 5; + + + /// + /// Constants used by this class and other K2-components + /// + public static class Constants + { + public const int MaxBodyCount = 50; + + public const float MinTimeBetweenSameGestures = 0.0f; + public const float PoseCompleteDuration = 1.0f; + public const float ClickMaxDistance = 0.05f; + public const float ClickStayDuration = 2.0f; + } + + + /// + /// Depth sensor platforms. + /// + public enum DepthSensorPlatform : int + { + None = 0, + KinectV1 = 1, + KinectV2 = 2, + RealSense = 3, + Kinect4Azure = 4, + ARKit = 5, + + WebCam = 50, + + DummyK2 = 102, + DummyK4A = 104, + + NetSensor = 110 + } + + /// + /// Device streaming modes. + /// + public enum DeviceStreamingMode + { + Disabled = 0, + ConnectedSensor = 1, + PlayRecording = 2, + SaveRecording = 3 + } + + // Data structures for interfacing C# with the native wrappers + + /// + /// Frame-source flags. + /// + [Flags] + public enum FrameSource : uint + { + TypeNone = 0x0, + TypeColor = 0x1, + TypeInfrared = 0x2, + TypeDepth = 0x8, + TypeBodyIndex = 0x10, + TypeBody = 0x20, + TypeAudio = 0x40, + TypePose = 0x80, + + TypeAll = 0xFF + } + + /// + /// Body joint types (with new joints added) + /// + public enum JointType : int + { + Pelvis = 0, + SpineNaval = 1, + SpineChest = 2, + Neck = 3, + Head = 4, + + ClavicleLeft = 5, + ShoulderLeft = 6, + ElbowLeft = 7, + WristLeft = 8, + HandLeft = 9, + + ClavicleRight = 10, + ShoulderRight = 11, + ElbowRight = 12, + WristRight = 13, + HandRight = 14, + + HipLeft = 15, + KneeLeft = 16, + AnkleLeft = 17, + FootLeft = 18, + + HipRight = 19, + KneeRight = 20, + AnkleRight = 21, + FootRight = 22, + + Nose = 23, + EyeLeft = 24, + EarLeft = 25, + EyeRight = 26, + EarRight = 27, + + HandtipLeft = 28, + ThumbLeft = 29, + HandtipRight = 30, + ThumbRight = 31, + + Count = 32 + } + + /// + /// Joint tracking state. + /// + public enum TrackingState + { + NotTracked = 0, + Inferred = 1, + Tracked = 2, + HighConf = 3 // reserved for future use + } + + /// + /// Hand state. + /// + public enum HandState + { + Unknown = 0, + NotTracked = 1, + Open = 2, + Closed = 3, + Lasso = 4 + } + + /// + /// Container for the body-joint data. + /// + //[System.Serializable] + [StructLayout(LayoutKind.Sequential)] + public struct JointData + { + // parameters filled in by the sensor interface + public JointType jointType; + public TrackingState trackingState; + + public Vector3 kinectPos; + public Vector3 position; + public Quaternion orientation; + + public Vector3 posPrev; + public Vector3 posRel; + public Vector3 posVel; + + // KM calculated parameters + public Vector3 direction; + public Quaternion normalRotation; + public Quaternion mirroredRotation; + + public float lastAngle; // used by the constraints filter + + + public override string ToString() + { + return $"{jointType} @ {position}, rot: {normalRotation.eulerAngles.ToString("F0")}"; + } + + public void CopyTo(ref JointData toJoint) + { + toJoint.jointType = jointType; + toJoint.trackingState = trackingState; + + toJoint.kinectPos.Set(kinectPos.x, kinectPos.y, kinectPos.z); + toJoint.position.Set(position.x, position.y, position.z); + toJoint.orientation.Set(orientation.x, orientation.y, orientation.z, orientation.w); + + toJoint.posPrev.Set(posPrev.x, posPrev.y, posPrev.z); + toJoint.posRel.Set(posRel.x, posRel.y, posRel.z); + toJoint.posVel.Set(posVel.x, posVel.y, posVel.z); + + toJoint.direction.Set(direction.x, direction.y, direction.z); + toJoint.normalRotation.Set(normalRotation.x, normalRotation.y, normalRotation.z, normalRotation.w); + toJoint.mirroredRotation.Set(mirroredRotation.x, mirroredRotation.y, mirroredRotation.z, mirroredRotation.w); + } + + public void AverageTo(ref JointData toJoint) + { + //toJoint.jointType = jointType; + //toJoint.trackingState = trackingState; + + //toJoint.kinectPos = (kinectPos + toJoint.kinectPos) * 0.5f; + //toJoint.position = (position + toJoint.position) * 0.5f; + toJoint.orientation = Quaternion.Slerp(orientation, toJoint.orientation, 0.5f); + + //toJoint.posPrev = (posPrev + toJoint.posPrev) * 0.5f; + //toJoint.posRel = (posRel + toJoint.posRel) * 0.5f; + //toJoint.posVel = (posVel + toJoint.posVel) * 0.5f; + + //toJoint.direction = (direction + toJoint.direction) * 0.5f; + toJoint.normalRotation = Quaternion.Slerp(normalRotation, toJoint.normalRotation, 0.5f); + toJoint.mirroredRotation = Quaternion.Slerp(mirroredRotation, toJoint.mirroredRotation, 0.5f); + } + + public bool IsTracked() + { + return trackingState >= TrackingState.Tracked; + } + } + + /// + /// Container for the body data. + /// + //[System.Serializable] + [StructLayout(LayoutKind.Sequential)] + public struct BodyData + { + // parameters filled in by the sensor interface + public ulong liTrackingID; + public int iBodyIndex; + public bool bIsTracked; + + public Vector3 kinectPos; + public Vector3 position; + public Quaternion orientation; + + [MarshalAs(UnmanagedType.ByValArray, SizeConst = (int)JointType.Count)] + public JointData[] joint; + + // KM calculated parameters + public Quaternion normalRotation; + public Quaternion mirroredRotation; + + // body merger parameter + public int sensorIndex; + + // last body timestamp + public ulong bodyTimestamp; + + // hand state parameters + public HandState leftHandState; + //public TrackingConfidence leftHandConfidence; + public HandState rightHandState; + //public TrackingConfidence rightHandConfidence; + + + public BodyData(int jointCount) + { + liTrackingID = 0; + iBodyIndex = 0; + bIsTracked = false; + + kinectPos = Vector3.zero; + position = Vector3.zero; + orientation = Quaternion.identity; + + normalRotation = Quaternion.identity; + mirroredRotation = Quaternion.identity; + + sensorIndex = 0; + bodyTimestamp = 0; + + leftHandState = HandState.NotTracked; + rightHandState = HandState.NotTracked; + + joint = new JointData[jointCount]; + for(int j = 0; j < jointCount; j++) + { + joint[j].jointType = (JointType)j; + joint[j].trackingState = TrackingState.NotTracked; + joint[j].kinectPos = Vector3.zero; + joint[j].position = Vector3.zero; + + joint[j].orientation = Quaternion.identity; + joint[j].normalRotation = Quaternion.identity; + joint[j].mirroredRotation = Quaternion.identity; + } + } + + public override string ToString() + { + return $"Body{iBodyIndex} id: {liTrackingID} @ {position.ToString("F2")}, rot: {normalRotation.eulerAngles.ToString("F0")}"; + } + + public void CopyTo(ref BodyData toBody) + { + toBody.liTrackingID = liTrackingID; + toBody.iBodyIndex = iBodyIndex; + toBody.bIsTracked = bIsTracked; + + toBody.kinectPos.Set(kinectPos.x, kinectPos.y, kinectPos.z); + toBody.position.Set(position.x, position.y, position.z); + toBody.orientation.Set(orientation.x, orientation.y, orientation.z, orientation.w); + + if (toBody.joint == null || toBody.joint.Length != joint.Length) + { + toBody.joint = new JointData[joint.Length]; + } + + for (int j = 0; j < joint.Length; j++) + { + joint[j].CopyTo(ref toBody.joint[j]); + } + + toBody.normalRotation.Set(normalRotation.x, normalRotation.y, normalRotation.z, normalRotation.w); + toBody.mirroredRotation.Set(mirroredRotation.x, mirroredRotation.y, mirroredRotation.z, mirroredRotation.w); + + toBody.sensorIndex = sensorIndex; + toBody.bodyTimestamp = bodyTimestamp; + + toBody.leftHandState = leftHandState; + toBody.rightHandState = rightHandState; + } + } + + /// + /// Sensor device info. + /// + public class SensorDeviceInfo + { + public string sensorId; + public string sensorName; + + public FrameSource sensorCaps; + } + + /// + /// Camera distortion type + /// + public enum DistortionType + { + None = 0, + ModifiedBrownConrady = 1, + InverseBrownConrady = 2, + Theta = 3, + BrownConrady = 4, + Polynomial3K = 5, + Rational6KT = 6 + } + + /// + /// Camera intrinsics + /// + [System.Serializable] + public class CameraIntrinsics + { + public int cameraType; // camera type (0=depth, 1=color) + public int width; // Camera image width + public int height; // Camera image height + public float ppx; // Principal point in image, x + public float ppy; // Principal point in image, y + public float fx; // Focal length x + public float fy; // Focal length y + public DistortionType distType; // distortion type + public float[] distCoeffs; // radial distortion coefficient + public float codx; // Center of distortion in Z=1 plane, x (only used for Rational6KT) + public float cody; // Center of distortion in Z=1 plane, y (only used for Rational6KT) + public float p2; // Tangential distortion coefficient 2 + public float p1; // Tangential distortion coefficient 1 + public float maxRadius; // Metric radius + + public float hFOV, vFOV; + } + + /// + /// Camera extrinsics. + /// + [System.Serializable] + public class CameraExtrinsics + { + public float[] rotation; + public float[] translation; + } + + /// + /// Intrinsics & extrinsics of the sensor + /// + [System.Serializable] + public class SensorIntrExtr + { + public CameraIntrinsics depthCamIntr; + public CameraIntrinsics colorCamIntr; + + public CameraExtrinsics depth2ColorExtr; + public CameraExtrinsics color2DepthExtr; + } + + + /// + /// Container for the sensor data, including color, depth, ir and body frames. + /// + public class SensorData + { + public DepthSensorInterface sensorInterface; + public DepthSensorPlatform sensorIntPlatform; + + public string sensorId; + public string sensorName; + public FrameSource sensorCaps; + + public long startTimeOffset; + public int sensorIndex; + + public Thread pollFramesThread = null; + public AutoResetEvent threadStopEvent = null; + + public CameraIntrinsics depthCamIntr = null; + public CameraIntrinsics colorCamIntr = null; + public CameraExtrinsics depth2ColorExtr = null; + public CameraExtrinsics color2DepthExtr = null; + + public Vector3 colorImageScale = Vector3.one; + public Vector3 depthImageScale = Vector3.one; + public Vector3 infraredImageScale = Vector3.one; + public Vector3 sensorSpaceScale = Vector3.one; + public float unitToMeterFactor = 1f; + + public int colorImageWidth; + public int colorImageHeight; + + public TextureFormat colorImageFormat = TextureFormat.RGBA32; + public int colorImageStride = 4; + + //public byte[] colorImage; + public Texture colorImageTexture = null; + public ulong lastColorFrameTime = 0; + public ulong prevColorFrameTime = 0; + + public int depthImageWidth; + public int depthImageHeight; + + public ushort[] depthImage; + public ulong lastDepthFrameTime = 0; + public ulong prevDepthFrameTime = 0; + + public ushort[] infraredImage; + public ulong lastInfraredFrameTime = 0; + public ulong prevInfraredFrameTime = 0; + + public Vector3 sensorPosePosition; + public Quaternion sensorPoseRotation; + public ulong lastSensorPoseFrameTime = 0; + //public bool sensorTransformUpdated = false; + + public byte[] bodyIndexImage; + public ulong lastBodyIndexFrameTime = 0; + + public uint trackedBodiesCount = 0; + public BodyData[] alTrackedBodies; + public ulong lastBodyFrameTime = 0; + //public int firstUserIndex = 255; + + //public int[] depthHistBufferData; + //public int depthHistTotalPoints; + //public ulong lastDepthHistTime = 0; + + public RenderTexture depthImageTexture; + public Material depthImageMaterial; + public ComputeBuffer depthImageBuffer; + public ComputeBuffer depthHistBuffer; + public ulong lastDepthImageTime = 0; + + public RenderTexture infraredImageTexture; + public Material infraredImageMaterial; + public ComputeBuffer infraredImageBuffer; + public ulong lastInfraredImageTime = 0; + + //public int[] bodyHistBufferData; + //public int bodyHistTotalPoints; + //public ulong lastBodyHistTime = 0; + + public RenderTexture bodyImageTexture; + public Material bodyImageMaterial; + public ComputeBuffer bodyIndexBuffer; + public ComputeBuffer bodyHistBuffer; + public ulong lastBodyImageTime = 0; + +// public Vector3[] depth2SpaceFrame = null; + public ulong lastDepth2SpaceFrameTime = 0; + +// public Vector2[] depth2ColorFrame = null; + public Texture depthCamColorImageTexture = null; + public ulong lastDepthCamColorFrameTime = 0; + +// public Vector2[] color2DepthFrame = null; + public ushort[] colorCamDepthImage; + public ulong lastColorCamDepthFrameTime = 0; + + public ushort[] colorCamInfraredImage; + public ulong lastColorCamInfraredFrameTime = 0; + + public byte[] colorCamBodyIndexImage; + public ulong lastColorCamBodyIndexFrameTime = 0; + + public ComputeBuffer colorDepthBuffer; + public RenderTexture colorDepthTexture; + public ulong lastColorDepthBufferTime = 0; + //public ulong usedColorDepthBufferTime = 0; + + public ComputeBuffer colorInfraredBuffer; + public RenderTexture colorInfraredTexture; + public ulong lastColorInfraredBufferTime = 0; + //public ulong usedColorInfraredBufferTime = 0; + public Material colorInfraredMaterial; + + public ComputeBuffer colorBodyIndexBuffer; + public RenderTexture colorBodyIndexTexture; + public ulong lastColorBodyIndexBufferTime = 0; + //public ulong usedColorBodyIndexBufferTime = 0; + + public RenderTexture depthTexTexture; + public Material depthTexMaterial; + public ulong lastDepthTexTime = 0; + + public RenderTexture infraredTexTexture; + public Material infraredTexMaterial; + public ulong lastInfraredTexTime = 0; + } + + + [System.Serializable] + public class NetSensorData + { + public int sensorType; + public string sensorId; + + public int colorImageWidth; + public int colorImageHeight; + + public int depthImageWidth; + public int depthImageHeight; + + public CameraIntrinsics depthCamIntr = null; + public CameraIntrinsics colorCamIntr = null; + public CameraExtrinsics depth2ColorExtr = null; + public CameraExtrinsics color2DepthExtr = null; + + public Vector3 colorImageScale = Vector3.one; + public Vector3 depthImageScale = Vector3.one; + public Vector3 infraredImageScale = Vector3.one; + public Vector3 sensorSpaceScale = Vector3.one; + public float unitToMeterFactor = 1f; + + public Vector3 sensorPosition = Vector3.zero; + public Vector3 sensorRotation = Vector3.zero; + + public Vector3 sensorRotOffset = Vector3.zero; + public bool sensorRotFlipZ = false; + public bool sensorRotIgnoreY = false; + } + + + [System.Serializable] + public class NetPoseData + { + public Vector3 sensorPosition; + public Vector3 sensorRotation; + //public Vector3 localPos; + //public Vector3 localRot; + + public ulong sensorPoseTime; + } + + + [System.Serializable] + public class CameraPose + { + public int sensorType; + public int sensorIndex; + public string sensorId; + + public Vector3 position; + public Vector3 rotation; + } + + + [System.Serializable] + public class MultiCameraPose + { + public int version; + public string[] settings; + public CameraPose[] camPose; + + public long estimatedAtTime; + public string estimatedDateTime; + } + + + // graphics shader level + private static int graphicsShaderLevel = 0; + // persistent data path + private static string persistentDataPath = string.Empty; + + + // sets the graphics shader level + public static void SetGraphicsShaderLevel(int shaderLevel) + { + graphicsShaderLevel = shaderLevel; + persistentDataPath = Application.persistentDataPath; + } + + + // checks if DirectX11/Direct3D-11 is turned on or not + public static bool IsDirectX11Available() + { + return (graphicsShaderLevel >= 50); + } + + + // returns true if the project is running on 64-bit architecture, false if 32-bit + public static bool Is64bitArchitecture() + { + int sizeOfPtr = Marshal.SizeOf(typeof(IntPtr)); + return (sizeOfPtr > 4); + } + + + // returns the text contained in the given resource asset, or null if not found + public static string GetResourceText(string resFileName) + { + TextAsset textRes = Resources.Load(resFileName, typeof(TextAsset)) as TextAsset; + if (textRes == null) + { + Debug.LogWarning("Resource not found: " + resFileName); + return null; + } + + return textRes.text; + } + + // returns the binary data contained in the given resource asset, or null if not found + public static byte[] GetResourceBytes(string resFileName) + { + TextAsset textRes = Resources.Load(resFileName, typeof(TextAsset)) as TextAsset; + if (textRes == null) + { + Debug.LogWarning("Resource not found: " + resFileName); + return null; + } + + return textRes.bytes; + } + + // copy resource asset to the target file + public static bool CopyResourceFile(string resFileName, string targetFilePath) + { + TextAsset textRes = Resources.Load(resFileName, typeof(TextAsset)) as TextAsset; + if (textRes == null) + { + Debug.LogWarning("Resource not found: " + resFileName); + return false; + } + + FileInfo targetFile = new FileInfo(targetFilePath); + if (!targetFile.Directory.Exists) + { + targetFile.Directory.Create(); + } + + if (!targetFile.Exists || targetFile.Length != textRes.bytes.Length) + { + Debug.Log("Copying '" + resFileName + "' to: " + targetFilePath); + + using (Stream resStream = new MemoryStream(textRes.bytes)) + { + BinaryReader resReader = new BinaryReader(resStream); + byte[] buffer = new byte[32768]; //set the size of your buffer (chunk) + + using (FileStream fileStream = new FileStream(targetFilePath, FileMode.Create, FileAccess.Write, FileShare.Read)) + { + while (true) //loop to the end of the file + { + int read = resReader.Read(buffer, 0, buffer.Length); + if (read <= 0) //check for end of file + break; + + fileStream.Write(buffer, 0, read); + } + } + } + + bool bFileCopied = File.Exists(targetFilePath); + + return bFileCopied; + } + + return true; + } + + + // checks if the file exists + public static bool IsFolderExist(string folderPath) + { + return Directory.Exists(folderPath); + } + + + // checks if the file exists + public static bool IsFileExist(string filePath) + { + return File.Exists(filePath); + } + + + // copy file from the source folder to the target folder + public static bool CopyFolderFile(string sourceFolderPath, string fileName, string targetFolderPath, bool hideWarning = false) + { + //if(!Directory.Exists(sourceFolderPath)) + //{ + // //Debug.Log("Folder not found: " + folderPath); + // return false; + //} + + if(!string.IsNullOrEmpty(sourceFolderPath) && sourceFolderPath[sourceFolderPath.Length - 1] != '/' && sourceFolderPath[sourceFolderPath.Length - 1] != '\\') + { + sourceFolderPath += "/"; + } + + string sourceFilePath = sourceFolderPath + fileName; + FileInfo sourceFile = new FileInfo(sourceFilePath); + + if (!sourceFile.Exists) + { + if(!hideWarning) + Debug.LogWarning("File not found: " + sourceFilePath /**+ ". Trying to find it in resources..."*/); + return false; + } + + if (!string.IsNullOrEmpty(targetFolderPath) && sourceFolderPath[targetFolderPath.Length - 1] != '/' && sourceFolderPath[targetFolderPath.Length - 1] != '\\') + { + targetFolderPath += "/"; + } + + string targetFilePath = targetFolderPath + fileName; + FileInfo targetFile = new FileInfo(targetFilePath); + + if (!Directory.Exists(targetFolderPath)) + { + Directory.CreateDirectory(targetFolderPath); + } + + if (!targetFile.Exists || targetFile.Length != sourceFile.Length || targetFile.LastWriteTime != sourceFile.LastWriteTime) + { + Debug.Log("Copying '" + fileName + "' from " + sourceFolderPath + " to '" + targetFolderPath + "'"); + File.Copy(sourceFilePath, targetFilePath, true); + + bool bFileCopied = File.Exists(targetFilePath); + + return bFileCopied; + } + + return true; + } + + + // creates new render texture with the given dimensions and format + public static RenderTexture CreateRenderTexture(RenderTexture currentTex, int width, int height, RenderTextureFormat texFormat = RenderTextureFormat.Default) + { + if(currentTex != null) + { + currentTex.Release(); + //UnityEngine.Object.Destroy(currentTex); + } + + RenderTexture renderTex = new RenderTexture(width, height, 0, texFormat); + renderTex.wrapMode = TextureWrapMode.Clamp; + renderTex.filterMode = FilterMode.Point; + renderTex.enableRandomWrite = true; + + return renderTex; + } + + + // creates new compute buffer with the given length and stride + public static ComputeBuffer CreateComputeBuffer(ComputeBuffer currentBuf, int bufLen, int bufStride) + { + if(currentBuf != null) + { + currentBuf.Release(); + currentBuf.Dispose(); + } + + ComputeBuffer computeBuf = new ComputeBuffer(bufLen, bufStride); + return computeBuf; + } + + + // initializes the secondary sensor data, after sensor initialization + public static void InitSensorData(SensorData sensorData, KinectManager kinectManager) + { + // init depth texture + if (IsDirectX11Available() && sensorData.depthImage != null && + kinectManager.getDepthFrames == KinectManager.DepthTextureType.DepthTexture) + { + Shader depthImageShader = Shader.Find("Kinect/DepthHistImageShader"); + if (depthImageShader != null) + { + if (sensorData.depthImageTexture == null || sensorData.depthImageTexture.width != sensorData.depthImageWidth || sensorData.depthImageTexture.height != sensorData.depthImageHeight) + { + sensorData.depthImageTexture = CreateRenderTexture(sensorData.depthImageTexture, sensorData.depthImageWidth, sensorData.depthImageHeight); + } + + sensorData.depthImageMaterial = new Material(depthImageShader); + + if(sensorData.depthImageBuffer == null) + { + int depthBufferLength = sensorData.depthImageWidth * sensorData.depthImageHeight / 2; + sensorData.depthImageBuffer = CreateComputeBuffer(sensorData.depthImageBuffer, depthBufferLength, sizeof(uint)); + } + + if(sensorData.depthHistBuffer == null) + { + sensorData.depthHistBuffer = CreateComputeBuffer(sensorData.depthHistBuffer, DepthSensorBase.MAX_DEPTH_DISTANCE_MM + 1, sizeof(int)); + } + } + } + + // init infrared texture + if (IsDirectX11Available() && sensorData.infraredImage != null && + kinectManager.getInfraredFrames == KinectManager.InfraredTextureType.InfraredTexture) + { + Shader infraredImageShader = Shader.Find("Kinect/InfraredImageShader"); + if (infraredImageShader != null) + { + if (sensorData.infraredImageTexture == null || sensorData.infraredImageTexture.width != sensorData.depthImageWidth || sensorData.infraredImageTexture.height != sensorData.depthImageHeight) + { + sensorData.infraredImageTexture = CreateRenderTexture(sensorData.infraredImageTexture, sensorData.depthImageWidth, sensorData.depthImageHeight); + } + + sensorData.infraredImageMaterial = new Material(infraredImageShader); + + if (sensorData.infraredImageBuffer == null) + { + int infraredBufferLength = sensorData.depthImageWidth * sensorData.depthImageHeight / 2; + sensorData.infraredImageBuffer = CreateComputeBuffer(sensorData.infraredImageBuffer, infraredBufferLength, sizeof(uint)); + } + } + } + + // init body texture + if (IsDirectX11Available() && sensorData.bodyIndexImage != null && + (kinectManager.getBodyFrames == KinectManager.BodyTextureType.BodyTexture || + kinectManager.getBodyFrames == KinectManager.BodyTextureType.UserTexture)) + { + Shader bodyImageShader = null; + + switch(kinectManager.getBodyFrames) + { + case KinectManager.BodyTextureType.BodyTexture: + bodyImageShader = Shader.Find("Kinect/UserBodyImageShader"); + break; + + case KinectManager.BodyTextureType.UserTexture: + bodyImageShader = Shader.Find("Kinect/UserHistImageShader"); + break; + } + + if (bodyImageShader != null) + { + if (sensorData.bodyImageTexture == null || sensorData.bodyImageTexture.width != sensorData.depthImageWidth || sensorData.bodyImageTexture.height != sensorData.depthImageHeight) + { + sensorData.bodyImageTexture = CreateRenderTexture(sensorData.bodyImageTexture, sensorData.depthImageWidth, sensorData.depthImageHeight); + } + + sensorData.bodyImageMaterial = new Material(bodyImageShader); + + if (sensorData.bodyIndexBuffer == null) + { + int bodyIndexBufferLength = sensorData.depthImageWidth * sensorData.depthImageHeight / 4; + sensorData.bodyIndexBuffer = CreateComputeBuffer(sensorData.bodyIndexBuffer, bodyIndexBufferLength, sizeof(uint)); + } + + if (sensorData.depthImageBuffer == null) + { + int depthBufferLength = sensorData.depthImageWidth * sensorData.depthImageHeight / 2; + sensorData.depthImageBuffer = CreateComputeBuffer(sensorData.depthImageBuffer, depthBufferLength, sizeof(uint)); + } + + if (sensorData.bodyHistBuffer == null) + { + sensorData.bodyHistBuffer = CreateComputeBuffer(sensorData.bodyHistBuffer, DepthSensorBase.MAX_DEPTH_DISTANCE_MM + 1, sizeof(int)); + } + } + } + + // invoke the sensor interface to init its proprietary data + if (sensorData.sensorInterface != null) + { + sensorData.sensorInterface.InitSensorData(sensorData, kinectManager); + } + } + + + // closes the sensor and releases the related buffers + public static void CloseSensor(SensorData sensorData) + { + if (sensorData == null) + return; + + //FinishBackgroundRemoval(sensorData); + + if (sensorData.sensorInterface != null) + { + sensorData.sensorInterface.CloseSensor(sensorData); + } + + if (sensorData.depthImageTexture) + { + sensorData.depthImageTexture.Release(); + sensorData.depthImageTexture = null; + } + + if (sensorData.depthImageBuffer != null) + { + sensorData.depthImageBuffer.Release(); + sensorData.depthImageBuffer.Dispose(); + sensorData.depthImageBuffer = null; + } + + if (sensorData.depthHistBuffer != null) + { + sensorData.depthHistBuffer.Release(); + sensorData.depthHistBuffer.Dispose(); + sensorData.depthHistBuffer = null; + } + + if (sensorData.infraredImageTexture) + { + sensorData.infraredImageTexture.Release(); + sensorData.infraredImageTexture = null; + } + + if (sensorData.infraredImageBuffer != null) + { + sensorData.infraredImageBuffer.Release(); + sensorData.infraredImageBuffer.Dispose(); + sensorData.infraredImageBuffer = null; + } + + if (sensorData.bodyImageTexture) + { + sensorData.bodyImageTexture.Release(); + sensorData.bodyImageTexture = null; + } + + if (sensorData.bodyIndexBuffer != null) + { + sensorData.bodyIndexBuffer.Release(); + sensorData.bodyIndexBuffer.Dispose(); + sensorData.bodyIndexBuffer = null; + } + + if (sensorData.bodyHistBuffer != null) + { + sensorData.bodyHistBuffer.Release(); + sensorData.bodyHistBuffer.Dispose(); + sensorData.bodyHistBuffer = null; + } + } + + + // infoked by the sensor thread to poll for frames + public static void PollSensorFrames(SensorData sensorData) + { + if (sensorData != null && sensorData.sensorInterface != null) + { + sensorData.sensorInterface.PollSensorFrames(sensorData); + sensorData.sensorInterface.PollCoordTransformFrames(sensorData); + sensorData.sensorInterface.PollSensorFrameTimes(sensorData); + } + } + + + // invoked periodically to update sensor data, if needed + public static bool UpdateSensorData(SensorData sensorData, KinectManager kinectManager, bool isPlayMode) + { + bool bResult = false; + + if (sensorData != null && sensorData.sensorInterface != null) + { + sensorData.prevDepthFrameTime = sensorData.lastDepthFrameTime; + sensorData.prevInfraredFrameTime = sensorData.lastInfraredFrameTime; + sensorData.prevColorFrameTime = sensorData.lastColorFrameTime; + + bResult = sensorData.sensorInterface.UpdateSensorData(sensorData, kinectManager, isPlayMode); + + if((sensorData.lastDepthFrameTime != sensorData.prevDepthFrameTime || + sensorData.lastColorFrameTime != sensorData.prevColorFrameTime) && !isPlayMode) + { + sensorData.sensorInterface.UpdateTransformedFrameTextures(sensorData, kinectManager); + } + } + + return bResult; + } + + + // invoked periodically to update sensor textures, as needed + public static bool UpdateSensorTextures(SensorData sensorData, KinectManager kinectManager) + { + bool bResult = false; + + if (sensorData != null && sensorData.sensorInterface != null) + { + bResult = sensorData.sensorInterface.UpdateSensorTextures(sensorData, kinectManager, + sensorData.prevDepthFrameTime, sensorData.prevInfraredFrameTime); + } + + return bResult; + } + + + // displays the given texture on the screen + public static void DisplayGuiTexture(int displayIndex, float screenWidthPercent, Vector2 imageScale, Texture imageTex) + { + if (imageTex == null || imageTex.width == 0 || imageTex.height == 0) + return; + + // get the screen width & height + float screenW = (float)Screen.width; + float screenH = (float)Screen.height; + + float rectWidthPercent = screenWidthPercent; + float rectHeightPercent = rectWidthPercent * (float)imageTex.height / (float)imageTex.width; + + float rectWidth = screenW * rectWidthPercent; + float rectHeight = screenW * rectHeightPercent; + + float rectX = screenW - (displayIndex + 1) * rectWidth; + float rectY = screenH - rectHeight; + + if (rectX < 0 || rectY < 0) + return; + + if (imageScale.x < 0) + { + rectX = screenW - displayIndex * rectWidth; + rectWidth = -rectWidth; + } + if (imageScale.y < 0) + { + rectY = screenH; + rectHeight = -rectHeight; + } + + Rect imageRect = new Rect(rectX, rectY, rectWidth, rectHeight); + + if (imageTex != null) + { + GUI.DrawTexture(imageRect, imageTex); + } + } + + + // returns the respective sensor-to-world matrix + public static Matrix4x4 GetSensorToWorldMatrix(SensorData sensorData) + { + if (sensorData != null && sensorData.sensorInterface != null) + { + return sensorData.sensorInterface.GetSensorToWorldMatrix(); + } + + return Matrix4x4.identity; + } + + + // returns sensor transform. Please note transform updates depend on the getPoseFrames-KM setting. + public static Transform GetSensorTransform(SensorData sensorData) + { + if (sensorData != null && sensorData.sensorInterface != null) + { + return sensorData.sensorInterface.GetSensorTransform(); + } + + return null; + } + + + // returns depth camera space coordinates for the given depth-image point + public static Vector3 MapDepthPointToSpaceCoords(SensorData sensorData, Vector2 depthPos, ushort depthVal) + { + Vector3 vPoint = Vector3.zero; + + if (sensorData != null && sensorData.sensorInterface != null) + { + vPoint = sensorData.sensorInterface.MapDepthPointToSpaceCoords(sensorData, depthPos, depthVal); + } + + return vPoint; + } + + + // returns depth image coordinates for the given depth camera space point + public static Vector2 MapSpacePointToDepthCoords(SensorData sensorData, Vector3 spacePos) + { + Vector2 vPoint = Vector2.zero; + + if (sensorData != null && sensorData.sensorInterface != null) + { + vPoint = sensorData.sensorInterface.MapSpacePointToDepthCoords(sensorData, spacePos); + } + + return vPoint; + } + + + // returns color camera space coordinates for the given color-image point + public static Vector3 MapColorPointToSpaceCoords(SensorData sensorData, Vector2 colorPos, ushort distance) + { + Vector3 vPoint = Vector3.zero; + + if (sensorData != null && sensorData.sensorInterface != null) + { + vPoint = sensorData.sensorInterface.MapColorPointToSpaceCoords(sensorData, colorPos, distance); + } + + return vPoint; + } + + + // returns color image coordinates for the given color camera space point + public static Vector2 MapSpacePointToColorCoords(SensorData sensorData, Vector3 spacePos) + { + Vector2 vPoint = Vector2.zero; + + if (sensorData != null && sensorData.sensorInterface != null) + { + vPoint = sensorData.sensorInterface.MapSpacePointToColorCoords(sensorData, spacePos); + } + + return vPoint; + } + + + // returns color-image coordinates for the given depth-image point + public static Vector2 MapDepthPointToColorCoords(SensorData sensorData, Vector2 depthPos, ushort depthVal) + { + Vector2 vPoint = Vector2.zero; + + if (sensorData != null && sensorData.sensorInterface != null) + { + vPoint = sensorData.sensorInterface.MapDepthPointToColorCoords(sensorData, depthPos, depthVal); + } + + return vPoint; + } + + + // returns depth-image coordinates for the given color-image point + public static Vector2 MapColorPointToDepthCoords(SensorData sensorData, Vector2 colorPos, int minDist, int maxDist) + { + Vector2 vPoint = Vector2.zero; + + if (sensorData != null && sensorData.sensorInterface != null) + { + vPoint = sensorData.sensorInterface.MapColorPointToDepthCoords(sensorData, colorPos, minDist, maxDist); + } + + return vPoint; + } + + + //// estimates depth-map coordinates for the given color coords + //public static Vector2 MapColorPointToDepthCoords(SensorData sensorData, Vector2 colorPos, bool bReadDepthCoordsIfNeeded) + //{ + // Vector2 vPoint = Vector2.zero; + + // if (sensorData != null && sensorData.sensorInterface != null && !float.IsInfinity(colorPos.x) && !float.IsInfinity(colorPos.y)) + // { + // int cIndex = (int)colorPos.y * sensorData.colorImageWidth + (int)colorPos.x; + + // //if (sensorData.color2DepthFrame != null) + // //{ + // // if (cIndex >= 0 && cIndex < sensorData.color2DepthFrame.Length) + // // { + // // vPoint = sensorData.color2DepthFrame[cIndex]; + // // } + // //} + // //else + // if (bReadDepthCoordsIfNeeded) + // { + // Vector2[] vDepthCoords = new Vector2[sensorData.colorImageWidth * sensorData.colorImageHeight]; + + // if (MapColorFrameToDepthCoords(sensorData, ref vDepthCoords)) + // { + // if (cIndex >= 0 && cIndex < vDepthCoords.Length) + // { + // vPoint = vDepthCoords[cIndex]; + // } + // } + + // vDepthCoords = null; + // } + // } + + // return vPoint; + //} + + + //// estimates space coordinates for the current depth frame + //public static bool MapDepthFrameToSpaceCoords(SensorData sensorData, ref Vector3[] vSpaceCoords) + //{ + // bool bResult = false; + + // if (sensorData != null && sensorData.sensorInterface != null) + // { + // bResult = sensorData.sensorInterface.MapDepthFrameToSpaceCoords(sensorData, ref vSpaceCoords); + // } + + // return bResult; + //} + + //// estimates color-map coordinates for the current depth frame + //public static bool MapDepthFrameToColorCoords(SensorData sensorData, ref Vector2[] vColorCoords) + //{ + // bool bResult = false; + + // if (sensorData != null && sensorData.sensorInterface != null) + // { + // bResult = sensorData.sensorInterface.MapDepthFrameToColorCoords(sensorData, ref vColorCoords); + // } + + // return bResult; + //} + + //// estimates depth-map coordinates for the current color frame + //public static bool MapColorFrameToDepthCoords(SensorData sensorData, ref Vector2[] vDepthCoords) + //{ + // bool bResult = false; + + // if (sensorData != null && sensorData.sensorInterface != null) + // { + // bResult = sensorData.sensorInterface.MapColorFrameToDepthCoords(sensorData, ref vDepthCoords); + // } + + // return bResult; + //} + + + private static readonly Dictionary dictParentJoint = new Dictionary + { + {JointType.Pelvis, JointType.Pelvis}, + {JointType.SpineNaval, JointType.Pelvis}, + {JointType.SpineChest, JointType.SpineNaval}, + {JointType.Neck, JointType.SpineChest}, + {JointType.Head, JointType.Neck}, + + {JointType.ClavicleLeft, JointType.SpineChest}, + {JointType.ShoulderLeft, JointType.ClavicleLeft}, + {JointType.ElbowLeft, JointType.ShoulderLeft}, + {JointType.WristLeft, JointType.ElbowLeft}, + + {JointType.HandLeft, JointType.WristLeft}, + {JointType.HandtipLeft, JointType.HandLeft}, + {JointType.ThumbLeft, JointType.WristLeft}, + + {JointType.ClavicleRight, JointType.SpineChest}, + {JointType.ShoulderRight, JointType.ClavicleRight}, + {JointType.ElbowRight, JointType.ShoulderRight}, + {JointType.WristRight, JointType.ElbowRight}, + + {JointType.HandRight, JointType.WristRight}, + {JointType.HandtipRight, JointType.HandRight}, + {JointType.ThumbRight, JointType.WristRight}, + + {JointType.HipLeft, JointType.Pelvis}, + {JointType.KneeLeft, JointType.HipLeft}, + {JointType.AnkleLeft, JointType.KneeLeft}, + {JointType.FootLeft, JointType.AnkleLeft}, + + {JointType.HipRight, JointType.Pelvis}, + {JointType.KneeRight, JointType.HipRight}, + {JointType.AnkleRight, JointType.KneeRight}, + {JointType.FootRight, JointType.AnkleRight}, + + {JointType.Nose, JointType.Head}, + {JointType.EyeLeft, JointType.Nose}, + {JointType.EarLeft, JointType.EyeLeft}, + {JointType.EyeRight, JointType.Nose}, + {JointType.EarRight, JointType.EyeRight}, + }; + + + // returns the parent joint of the given joint + public static JointType GetParentJoint(JointType joint) + { + return dictParentJoint[joint]; + } + + private static readonly Dictionary dictNextJoint = new Dictionary + { + {JointType.Pelvis, JointType.SpineNaval}, + {JointType.SpineNaval, JointType.SpineChest}, + {JointType.SpineChest, JointType.Neck}, + {JointType.Neck, JointType.Head}, + {JointType.Head, JointType.Nose}, + + {JointType.ClavicleLeft, JointType.ShoulderLeft}, + {JointType.ShoulderLeft, JointType.ElbowLeft}, + {JointType.ElbowLeft, JointType.WristLeft}, + {JointType.WristLeft, JointType.HandLeft}, + + {JointType.HandLeft, JointType.HandtipLeft}, + {JointType.HandtipLeft, JointType.HandtipLeft}, + {JointType.ThumbLeft, JointType.ThumbLeft}, + + {JointType.ClavicleRight, JointType.ShoulderRight}, + {JointType.ShoulderRight, JointType.ElbowRight}, + {JointType.ElbowRight, JointType.WristRight}, + {JointType.WristRight, JointType.HandRight}, + + {JointType.HandRight, JointType.HandtipRight}, + {JointType.HandtipRight, JointType.HandtipRight}, + {JointType.ThumbRight, JointType.ThumbRight}, + + {JointType.HipLeft, JointType.KneeLeft}, + {JointType.KneeLeft, JointType.AnkleLeft}, + {JointType.AnkleLeft, JointType.FootLeft}, + {JointType.FootLeft, JointType.FootLeft}, + + {JointType.HipRight, JointType.KneeRight}, + {JointType.KneeRight, JointType.AnkleRight}, + {JointType.AnkleRight, JointType.FootRight}, + {JointType.FootRight, JointType.FootRight}, + + {JointType.Nose, JointType.Nose}, + {JointType.EyeLeft, JointType.EarLeft}, + {JointType.EarLeft, JointType.EarLeft}, + {JointType.EyeRight, JointType.EarRight}, + {JointType.EarRight, JointType.EarRight}, + }; + + + // returns the next joint in the hierarchy, as to the given joint + public static JointType GetNextJoint(JointType joint) + { + return dictNextJoint[joint]; + } + + private static readonly Dictionary dictMirrorJoint = new Dictionary + { + {JointType.Pelvis, JointType.Pelvis}, + {JointType.SpineNaval, JointType.SpineNaval}, + {JointType.SpineChest, JointType.SpineChest}, + {JointType.Neck, JointType.Neck}, + {JointType.Head, JointType.Head}, + + {JointType.ClavicleLeft, JointType.ClavicleRight}, + {JointType.ShoulderLeft, JointType.ShoulderRight}, + {JointType.ElbowLeft, JointType.ElbowRight}, + {JointType.WristLeft, JointType.WristRight}, + + {JointType.HandLeft, JointType.HandRight}, + {JointType.HandtipLeft, JointType.HandtipRight}, + {JointType.ThumbLeft, JointType.ThumbRight}, + + {JointType.ClavicleRight, JointType.ClavicleLeft}, + {JointType.ShoulderRight, JointType.ShoulderLeft}, + {JointType.ElbowRight, JointType.ElbowLeft}, + {JointType.WristRight, JointType.WristLeft}, + + {JointType.HandRight, JointType.HandLeft}, + {JointType.HandtipRight, JointType.HandtipLeft}, + {JointType.ThumbRight, JointType.ThumbLeft}, + + {JointType.HipLeft, JointType.HipRight}, + {JointType.KneeLeft, JointType.KneeRight}, + {JointType.AnkleLeft, JointType.AnkleRight}, + {JointType.FootLeft, JointType.FootRight}, + + {JointType.HipRight, JointType.HipLeft}, + {JointType.KneeRight, JointType.KneeLeft}, + {JointType.AnkleRight, JointType.AnkleLeft}, + {JointType.FootRight, JointType.FootLeft}, + + {JointType.Nose, JointType.Nose}, + {JointType.EyeLeft, JointType.EyeRight}, + {JointType.EarLeft, JointType.EarRight}, + {JointType.EyeRight, JointType.EyeLeft}, + {JointType.EarRight, JointType.EarLeft}, + }; + + + // returns the mirror joint of the given joint + public static JointType GetMirrorJoint(JointType joint) + { + return dictMirrorJoint[joint]; + } + + + // memcpy declaration + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] + public delegate IntPtr MemCpyDelegate(IntPtr dest, IntPtr src, int count); + + internal static readonly MemCpyDelegate Memcpy = MemCpy.GetMethod(); + + [DllImport("libc", EntryPoint = "memcpy", CallingConvention = CallingConvention.Cdecl, SetLastError = false)] + internal static extern IntPtr unix_memcpy(IntPtr dest, IntPtr src, int count); + + [DllImport("msvcrt.dll", EntryPoint = "memcpy", CallingConvention = CallingConvention.Cdecl, SetLastError = false)] + internal static extern IntPtr win_memcpy(IntPtr dest, IntPtr src, int count); + + [System.Security.SuppressUnmanagedCodeSecurity] + internal static class MemCpy + { + internal static MemCpyDelegate GetMethod() + { + switch (System.Environment.OSVersion.Platform) + { + case PlatformID.Win32NT: + return win_memcpy; + case PlatformID.Unix: + case PlatformID.MacOSX: + return unix_memcpy; + default: + throw new PlatformNotSupportedException(System.Environment.OSVersion.ToString()); + } + } + } + + + // copies the given number of bytes from source to destination + public static void CopyBytes(IntPtr srcPtr, IntPtr dstPtr, int byteCount) + { + if (srcPtr == IntPtr.Zero) + throw new Exception("srcPtr should not be null."); + if (dstPtr == IntPtr.Zero) + throw new Exception("dstPtr should not be null."); + if (byteCount == 0) + throw new Exception("byteCount (" + byteCount + ") should be a positive number."); + + Memcpy(dstPtr, srcPtr, byteCount); + } + + + // copies the source array to the destination array + public static void CopyBytes(Array srcArray, int copyElemCount, int srcElemSize, IntPtr dstPtr, int dstBlockSize) + { + if (srcArray == null) + throw new Exception("srcArray should not be null."); + if (dstPtr == IntPtr.Zero) + throw new Exception("dstPtr should not be null."); + + int copyBytesCount = copyElemCount * srcElemSize; + if (copyBytesCount > dstBlockSize) + throw new Exception("Copied " + copyBytesCount + " bytes will overflow the destination memory. MemBlock size: " + dstBlockSize + " bytes"); + + if (copyBytesCount > 0) + { + var pSrcData = GCHandle.Alloc(srcArray, GCHandleType.Pinned); + Memcpy(dstPtr, pSrcData.AddrOfPinnedObject(), copyBytesCount); + pSrcData.Free(); + } + } + + + // copies the source array to the destination array + public static void CopyBytes(IntPtr srcPtr, int srcBlockSize, Array dstArray, int copyElemCount, int dstElemSize) + { + if (srcPtr == IntPtr.Zero) + throw new Exception("srcPtr should not be null."); + if (dstArray == null) + throw new Exception("dstArray should not be null."); + + int copyBytesCount = copyElemCount * dstElemSize; + if (srcBlockSize < copyBytesCount) + throw new Exception(copyBytesCount + " bytes are not available in the source memory. Size: " + srcBlockSize); + + if (copyBytesCount > 0) + { + var pDstData = GCHandle.Alloc(dstArray, GCHandleType.Pinned); + Memcpy(pDstData.AddrOfPinnedObject(), srcPtr, copyBytesCount); + pDstData.Free(); + } + } + + + // copies the source array to the destination array + public static void CopyBytes(Array srcArray, int srcElemSize, Array dstArray, int dstElemSize) + { + if (srcArray == null) + throw new Exception("srcArray should not be null."); + if (dstArray == null) + throw new Exception("dstArray should not be null."); + if ((srcArray.Length * srcElemSize) != (dstArray.Length * dstElemSize)) + throw new Exception(string.Format("srcArray (L:{0}*{1}) and dstArray (L:{2}*{3}) should have the same byte length.", srcArray.Length, srcElemSize, dstArray.Length, dstElemSize)); + + int copyBytesCount = dstArray.Length * dstElemSize; + if (copyBytesCount > 0) + { + var pSrcData = GCHandle.Alloc(srcArray, GCHandleType.Pinned); + var pDstData = GCHandle.Alloc(dstArray, GCHandleType.Pinned); + Memcpy(pDstData.AddrOfPinnedObject(), pSrcData.AddrOfPinnedObject(), copyBytesCount); + pDstData.Free(); + pSrcData.Free(); + } + } + + + //// copies the source array to the destination array + //public static void CopyBytes(T srcStruct, ref T dstStruct) + //{ + // if (srcStruct == null) + // throw new Exception("srcStruct should not be null."); + // if (dstStruct == null) + // throw new Exception("dstStruct should not be null."); + + // int copyBytesCount = Marshal.SizeOf(typeof(T)); + // Debug.Log("Copy " + copyBytesCount + " bytes"); + + // if (copyBytesCount > 0) + // { + // var pSrcData = GCHandle.Alloc(srcStruct, GCHandleType.Pinned); + // var pDstData = GCHandle.Alloc(dstStruct, GCHandleType.Pinned); + // CopyBytes(pSrcData.AddrOfPinnedObject(), pDstData.AddrOfPinnedObject(), copyBytesCount); + // pDstData.Free(); + // pSrcData.Free(); + // } + //} + + + // borrowed from @keijiro + private static MethodInfo _setNativeDataMethod; + private static object[] _setNativeDataArgs = new object[5]; + + // sets compute buffer data + public static void SetComputeBufferData(ComputeBuffer computeBuffer, IntPtr dataPointer, int elemCount, int elemSize) + { + if (_setNativeDataMethod == null) + { + _setNativeDataMethod = typeof(ComputeBuffer).GetMethod("InternalSetNativeData", + BindingFlags.InvokeMethod | BindingFlags.NonPublic | BindingFlags.Instance); + } + + _setNativeDataArgs[0] = dataPointer; + _setNativeDataArgs[1] = 0; // source offset + _setNativeDataArgs[2] = 0; // buffer offset + _setNativeDataArgs[3] = elemCount; + _setNativeDataArgs[4] = elemSize; + + _setNativeDataMethod.Invoke(computeBuffer, _setNativeDataArgs); + } + + + // sets compute buffer data + public static void SetComputeBufferData(ComputeBuffer computeBuffer, Array data, int elemCount, int elemSize) + { + var pData = GCHandle.Alloc(data, GCHandleType.Pinned); + SetComputeBufferData(computeBuffer, pData.AddrOfPinnedObject(), elemCount, elemSize); + pData.Free(); + } + + + private static int[] _csIntArgs2 = new int[2]; + + // sets compute shader int2 params + public static void SetComputeShaderInt2(ComputeShader computeShader, string name, int x, int y) + { + _csIntArgs2[0] = x; + _csIntArgs2[1] = y; + computeShader.SetInts(name, _csIntArgs2); + } + + + private static float[] _shFloatArgs2 = new float[2]; + + // sets compute shader float2 params + public static void SetComputeShaderFloat2(ComputeShader computeShader, string name, float x, float y) + { + _shFloatArgs2[0] = x; + _shFloatArgs2[1] = y; + computeShader.SetFloats(name, _shFloatArgs2); + } + + + // sets compute shader float2 params + public static void SetComputeShaderFloat2(ComputeShader computeShader, string name, Vector2 v) + { + _shFloatArgs2[0] = v.x; + _shFloatArgs2[1] = v.y; + computeShader.SetFloats(name, _shFloatArgs2); + } + + + private static float[] _shFloatArgs3 = new float[3]; + + // sets compute shader float3 params + public static void SetComputeShaderFloat3(ComputeShader computeShader, string name, float x, float y, float z) + { + _shFloatArgs3[0] = x; + _shFloatArgs3[1] = y; + _shFloatArgs3[2] = z; + computeShader.SetFloats(name, _shFloatArgs3); + } + + + // sets compute shader float3 params + public static void SetComputeShaderFloat3(ComputeShader computeShader, string name, Vector3 v) + { + _shFloatArgs3[0] = v.x; + _shFloatArgs3[1] = v.y; + _shFloatArgs3[2] = v.z; + computeShader.SetFloats(name, _shFloatArgs3); + } + + + // sets compute shader float2 params + public static void SetMatShaderFloat2(Material mat, string name, Vector2 vFloat2) + { + mat.SetVector(name, vFloat2); + } + + + // sets compute shader float2 params + public static void SetMatShaderFloat2(Material mat, string name, float x, float y) + { + Vector2 vFloat2 = new Vector2(x, y); + mat.SetVector(name, vFloat2); + } + + + // reads render texture contents into tex2d (it must have the same width and height). + public static bool RenderTex2Tex2D(RenderTexture rt, ref Texture2D tex) + { + if (!rt || !tex || rt.width != tex.width || rt.height != tex.height) + return false; + + RenderTexture currentActiveRT = RenderTexture.active; + RenderTexture.active = rt; + + tex.ReadPixels(new Rect(0, 0, tex.width, tex.height), 0, 0); + tex.Apply(); + + RenderTexture.active = currentActiveRT; + + return true; + } + + + // reads render texture contents into tex2d (it must have the same width and height). + public static bool RenderTex2Tex2D(RenderTexture rt, int rtX, int rtY, int rtW, int rtH, ref Texture2D tex) + { + if (!rt || !tex || rtW != tex.width || rtH != tex.height) + return false; + + RenderTexture currentActiveRT = RenderTexture.active; + RenderTexture.active = rt; + + tex.ReadPixels(new Rect(rtX, rtY, rtW, rtH), 0, 0); + tex.Apply(); + + RenderTexture.active = currentActiveRT; + + return true; + } + + + private static Material matRender = null; + + // sets up the render material, if needed + private static void SetRenderMat() + { + if (!matRender) + { + Shader shader = Shader.Find("Hidden/Internal-Colored"); + matRender = new Material(shader); + + matRender.hideFlags = HideFlags.HideAndDontSave; + matRender.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.SrcAlpha); + matRender.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha); + matRender.SetInt("_Cull", (int)UnityEngine.Rendering.CullMode.Off); + matRender.SetInt("_ZWrite", 0); + } + } + + + // draws point with the given size and color + public static void DrawPoint(int x, int y, float size, Color color) + { + Vector3 vPoint = new Vector3(x, y, 0); + DrawPoint(vPoint, size, color); + } + + // draws point with the given size and color + public static void DrawPoint(Vector3 vPoint, float quadSize, Color color) + { + if (!matRender) + { + SetRenderMat(); + } + + GL.PushMatrix(); + matRender.SetPass(0); + + GL.LoadPixelMatrix(); + GL.Begin(GL.QUADS); + GL.Color(color); + + _DrawPoint(vPoint, quadSize); + + GL.End(); + GL.PopMatrix(); + } + + // draws list of points with the given size and color + public static void DrawPoints(List alPoints, float quadSize, Color color) + { + if (alPoints == null) + return; + + if (!matRender) + { + SetRenderMat(); + } + + GL.PushMatrix(); + matRender.SetPass(0); + + GL.LoadPixelMatrix(); + GL.Begin(GL.QUADS); + GL.Color(color); + + foreach (Vector3 v in alPoints) + { + _DrawPoint(v, quadSize); + } + + GL.End(); + GL.PopMatrix(); + } + + // draws point with given size + private static void _DrawPoint(Vector3 v, float quadSize) + { + float q2 = quadSize / 2f; + GL.Vertex3(v.x - q2, v.y - q2, 0f); + GL.Vertex3(v.x - q2, v.y + q2, 0f); + GL.Vertex3(v.x + q2, v.y + q2, 0f); + GL.Vertex3(v.x + q2, v.y - q2, 0f); + } + + // draws a line with the given width and color + public static void DrawLine(int x0, int y0, int x1, int y1, float width, Color color) + { + Vector3 v0 = new Vector3(x0, y0, 0); + Vector3 v1 = new Vector3(x1, y1, 0); + DrawLine(v0, v1, width, color); + } + + // draws a line with the given width and color + public static void DrawLine(Vector3 v0, Vector3 v1, float lineWidth, Color color) + { + if (!matRender) + { + SetRenderMat(); + } + + GL.PushMatrix(); + matRender.SetPass(0); + + GL.LoadPixelMatrix(); + GL.Begin(GL.QUADS); + GL.Color(color); + + _DrawLine(v0, v1, lineWidth); + + GL.End(); + GL.PopMatrix(); + } + + // draws list of lines with the given width and color + public static void DrawLines(List alLinePoints, float lineWidth, Color color) + { + if (alLinePoints == null) + return; + + if (!matRender) + { + SetRenderMat(); + } + + GL.PushMatrix(); + matRender.SetPass(0); + + GL.LoadPixelMatrix(); + GL.Begin(GL.QUADS); + GL.Color(color); + + for (int i = 0; i < alLinePoints.Count; i += 2) + { + Vector3 v0 = alLinePoints[i]; + Vector3 v1 = alLinePoints[i + 1]; + + _DrawLine(v0, v1, lineWidth); + } + + GL.End(); + GL.PopMatrix(); + } + + // draws rectangle with the given width and color + public static void DrawRect(Rect rect, float width, Color color) + { + Vector3 topLeft = new Vector3(rect.xMin, rect.yMin, 0); + Vector3 bottomRight = new Vector3(rect.xMax, rect.yMax, 0); + DrawRect(topLeft, bottomRight, width, color); + } + + // draws rectangle with the given width and color + public static void DrawRect(Vector3 topLeft, Vector3 bottomRight, float lineWidth, Color color) + { + if (!matRender) + { + SetRenderMat(); + } + + GL.PushMatrix(); + matRender.SetPass(0); + + GL.LoadPixelMatrix(); + GL.Begin(GL.QUADS); + GL.Color(color); + + // top + Vector3 v0 = topLeft; + Vector3 v1 = topLeft; v1.x = bottomRight.x; + _DrawLine(v0, v1, lineWidth); + + // right + v0 = v1; + v1 = bottomRight; + _DrawLine(v0, v1, lineWidth); + + // bottom + v0 = v1; + v1 = topLeft; v1.y = bottomRight.y; + _DrawLine(v0, v1, lineWidth); + + // left + v0 = v1; + v1 = topLeft; + _DrawLine(v0, v1, lineWidth); + + GL.End(); + GL.PopMatrix(); + } + + // draws line from v0 to v1 with the given width + private static void _DrawLine(Vector3 v0, Vector3 v1, float lineWidth) + { + Vector3 n = ((new Vector3(v1.y, v0.x, 0f)) - (new Vector3(v0.y, v1.x, 0f))).normalized * lineWidth; + GL.Vertex3(v0.x - n.x, v0.y - n.y, 0f); + GL.Vertex3(v0.x + n.x, v0.y + n.y, 0f); + GL.Vertex3(v1.x + n.x, v1.y + n.y, 0f); + GL.Vertex3(v1.x - n.x, v1.y - n.y, 0f); + } + + // converts current body frame to a single csv line. returns empty string if there is no body data + public static string GetBodyFrameAsCsv(ref BodyData[] bodyData, uint bodyCount, ulong liRelTime, Vector3 spaceScale, ref float fUnityTime, char delimiter) + { + // check for invalid sensor data and if the frame is still the same + if (bodyData == null) + return string.Empty; + + // create the output string + System.Text.StringBuilder sbBuf = new System.Text.StringBuilder(); + System.Globalization.CultureInfo invCulture = System.Globalization.CultureInfo.InvariantCulture; + + sbBuf.Append("k4b").Append(delimiter); + sbBuf.Append(liRelTime).Append(delimiter); + + fUnityTime = Time.time; + int jointCount = (int)JointType.Count; + sbBuf.Append(bodyCount).Append(delimiter); + sbBuf.Append(jointCount).Append(delimiter); + + sbBuf.Append((int)spaceScale.x).Append(delimiter); + sbBuf.Append((int)spaceScale.y).Append(delimiter); + sbBuf.Append((int)spaceScale.z).Append(delimiter); + + // add information for all bodies + for (int i = 0; i < bodyCount; i++) + { + sbBuf.Append(bodyData[i].bIsTracked ? "1" : "0").Append(delimiter); + + if (bodyData[i].bIsTracked) + { + // add information for the tracked body - body-id and joints + sbBuf.Append(bodyData[i].liTrackingID).Append(delimiter); + + for (int j = 0; j < jointCount; j++) + { + JointData jointData = bodyData[i].joint[j]; + + sbBuf.Append((int)jointData.trackingState).Append(delimiter); + + if (jointData.trackingState != TrackingState.NotTracked) + { + Vector3 jointPos = jointData.kinectPos; + Vector3 jointRot = jointData.normalRotation.eulerAngles; + + sbBuf.AppendFormat(invCulture, "{0:F3}", jointPos.x).Append(delimiter); + sbBuf.AppendFormat(invCulture, "{0:F3}", jointPos.y).Append(delimiter); + sbBuf.AppendFormat(invCulture, "{0:F3}", jointPos.z).Append(delimiter); + + sbBuf.AppendFormat(invCulture, "{0:F3}", jointRot.x).Append(delimiter); + sbBuf.AppendFormat(invCulture, "{0:F3}", jointRot.y).Append(delimiter); + sbBuf.AppendFormat(invCulture, "{0:F3}", jointRot.z).Append(delimiter); + } + } + } + } + + // remove the last delimiter + if (sbBuf.Length > 0 && sbBuf[sbBuf.Length - 1] == delimiter) + { + sbBuf.Remove(sbBuf.Length - 1, 1); + } + + return sbBuf.ToString(); + } + + // sets current body frame from the given csv line. returns the number of bodies + public static uint SetBodyFrameFromCsv(string sCsvLine, string sDelim, SensorData sensorData, ref BodyData[] bodyData, + ref Matrix4x4 sensorToWorld, bool bIgnoreZCoords, out ulong liRelTime) + { + liRelTime = 0; + + // check for invalid sensor data and for same frame time + if (sCsvLine.Length == 0 || sensorData == null) + return 0; + + // split the csv line in parts + char[] delimiters = sDelim.ToCharArray(); + if (delimiters == null || delimiters.Length == 0) + return 0; + + string[] alCsvParts = sCsvLine.Split(delimiters); + if (alCsvParts.Length < 7) + return 0; + + System.Globalization.CultureInfo invCulture = System.Globalization.CultureInfo.InvariantCulture; + System.Globalization.NumberStyles numFloat = System.Globalization.NumberStyles.Float; + + // body count & joint count + int.TryParse(alCsvParts[2], out int bodyCount); + int.TryParse(alCsvParts[3], out int jointCount); + + // space scale + int.TryParse(alCsvParts[4], out int iSX); + int.TryParse(alCsvParts[5], out int iSY); + int.TryParse(alCsvParts[6], out int iSZ); + Vector3 sensorSpaceScale = new Vector3(iSX, iSY, iSZ); + sensorData.sensorSpaceScale = sensorSpaceScale; + + ulong.TryParse(alCsvParts[1], out liRelTime); + + if (alCsvParts[0] != "k4b" || bodyCount == 0 || jointCount == 0 || liRelTime == 0) + return 0; + //if (bodyCount != sensorData.bodyCount || jointCount != sensorData.jointCount) + // return 0; + + //// update body frame data + //bodyFrame.liPreviousTime = bodyFrame.liRelativeTime; + //bodyFrame.liRelativeTime = liRelTime; + + if (bodyData.Length < bodyCount) + { + Array.Resize(ref bodyData, bodyCount); + for (int i = 0; i < bodyCount; i++) + { + bodyData[i] = new BodyData((int)JointType.Count); + } + } + + int iIndex = 7; + for (int i = 0; i < bodyCount; i++) + { + if (alCsvParts.Length < (iIndex + 1)) + continue; + + // update the tracked-flag and body id + short bIsTracked = 0; + ulong liTrackingID = 0; + + short.TryParse(alCsvParts[iIndex], out bIsTracked); + iIndex++; + + if (bIsTracked != 0 && alCsvParts.Length >= (iIndex + 1)) + { + ulong.TryParse(alCsvParts[iIndex], out liTrackingID); + iIndex++; + + if (liTrackingID == 0) + { + bIsTracked = 0; + } + } + + bodyData[i].bIsTracked = (bIsTracked != 0); + bodyData[i].liTrackingID = liTrackingID; + + if (bIsTracked != 0) + { + if (jointCount != (int)JointType.Count) + { + // set the other joints as not tracked + for (int j = jointCount; j < (int)JointType.Count; j++) + { + bodyData[i].joint[j].trackingState = TrackingState.NotTracked; + } + } + + // update joints' data + for (int j = 0; j < jointCount; j++) + { + JointData jointData = bodyData[i].joint[j]; + int iTrackingState = 0; + + if (alCsvParts.Length >= (iIndex + 1)) + { + int.TryParse(alCsvParts[iIndex], out iTrackingState); + iIndex++; + + jointData.trackingState = (KinectInterop.TrackingState)iTrackingState; + + if (iTrackingState != (int)TrackingState.NotTracked && alCsvParts.Length >= (iIndex + 6)) + { + float.TryParse(alCsvParts[iIndex], numFloat, invCulture, out float x); + float.TryParse(alCsvParts[iIndex + 1], numFloat, invCulture, out float y); + float.TryParse(alCsvParts[iIndex + 2], numFloat, invCulture, out float z); + iIndex += 3; + + jointData.kinectPos = new Vector3(x, y, z); + + float.TryParse(alCsvParts[iIndex], numFloat, invCulture, out x); + float.TryParse(alCsvParts[iIndex + 1], numFloat, invCulture, out y); + float.TryParse(alCsvParts[iIndex + 2], numFloat, invCulture, out z); + iIndex += 3; + + jointData.normalRotation = Quaternion.Euler(x, y, z); + } + else + { + jointData.kinectPos = Vector3.zero; + jointData.normalRotation = Quaternion.identity; + } + + float jPosZ = (bIgnoreZCoords && j > 0) ? bodyData[i].joint[0].kinectPos.z : jointData.kinectPos.z; + jointData.position = sensorToWorld.MultiplyPoint3x4(new Vector3(jointData.kinectPos.x * sensorSpaceScale.x, jointData.kinectPos.y * sensorSpaceScale.y, jPosZ)); + jointData.orientation = Quaternion.identity; + + Vector3 mirroredAngles = jointData.normalRotation.eulerAngles; + mirroredAngles.y = -mirroredAngles.y; + mirroredAngles.z = -mirroredAngles.z; + jointData.mirroredRotation = Quaternion.Euler(mirroredAngles); + + if (j == 0) + { + // set body position + bodyData[i].kinectPos = jointData.kinectPos; + bodyData[i].position = jointData.position; + bodyData[i].orientation = jointData.orientation; + + bodyData[i].normalRotation = jointData.normalRotation; + bodyData[i].mirroredRotation = jointData.mirroredRotation; + //Debug.Log("User " + i + " kPos: " + jointData.kinectPos + ", pos: " + jointData.position); + } + } + + bodyData[i].joint[j] = jointData; + } + + // calculate bone directions + CalcBodyJointDirs(ref bodyData[i]); + + } + } + + return (uint)bodyCount; + } + + // sets current body frame from the given csv line. returns true on success, false otherwise + public static uint SetBodyFrameFromK2b(string sCsvLine, SensorData sensorData, KinectManager kinectManager, ref BodyData[] bodyData, + ref Matrix4x4 kinectToWorld, bool bIgnoreZCoords, out ulong liRelTime) + { + liRelTime = 0; + + // check for invalid sensor data and for same frame time + if (sensorData == null || kinectManager == null) + return 0; + if (sCsvLine.Length == 0) + return 0; + + // split the csv line in parts + char[] delimiters = { ',' }; + string[] alCsvParts = sCsvLine.Split(delimiters); + + if (alCsvParts.Length < 4) + return 0; + + System.Globalization.CultureInfo invCulture = System.Globalization.CultureInfo.InvariantCulture; + System.Globalization.NumberStyles numFloat = System.Globalization.NumberStyles.Float; + + // check the id, body count & joint count + int bodyCount = 0, jointCount = 0; + int.TryParse(alCsvParts[2], out bodyCount); + int.TryParse(alCsvParts[3], out jointCount); + + ulong.TryParse(alCsvParts[1], out liRelTime); + sensorData.sensorSpaceScale = Vector3.one; // the space scale of K2 + + if (alCsvParts[0] != "kb" || bodyCount == 0 || jointCount == 0 || liRelTime == 0) + return 0; + // if(bodyCount != sensorData.bodyCount || jointCount != sensorData.jointCount) + // return false; + + //// update body frame data + //bodyFrame.liPreviousTime = bodyFrame.liRelativeTime; + //bodyFrame.liRelativeTime = liRelTime; + + if (bodyData.Length < bodyCount) + { + Array.Resize(ref bodyData, bodyCount); + for (int i = 0; i < bodyCount; i++) + { + bodyData[i] = new BodyData((int)JointType.Count); + } + } + + int iIndex = 4; + for (int i = 0; i < bodyCount; i++) + { + if (alCsvParts.Length < (iIndex + 1)) + continue; + + // update the tracked-flag and body id + short bIsTracked = 0; + ulong liTrackingID = 0; + + short.TryParse(alCsvParts[iIndex], out bIsTracked); + iIndex++; + + if (bIsTracked != 0 && alCsvParts.Length >= (iIndex + 1)) + { + ulong.TryParse(alCsvParts[iIndex], out liTrackingID); + iIndex++; + + if (liTrackingID == 0) + { + bIsTracked = 0; + } + } + + bodyData[i].bIsTracked = (bIsTracked != 0); + bodyData[i].liTrackingID = liTrackingID; + + if (bIsTracked != 0) + { + // set all joints as not tracked + for (int j = 0; j < (int)JointType.Count; j++) + { + bodyData[i].joint[j].trackingState = TrackingState.NotTracked; + } + + // update joints' data + for (int j2b = 0; j2b < jointCount; j2b++) + { + int j = K2bJoint2JointType[j2b]; + + JointData jointData = bodyData[i].joint[j]; + int iTrackingState = 0; + + if (alCsvParts.Length >= (iIndex + 1)) + { + int.TryParse(alCsvParts[iIndex], out iTrackingState); + iIndex++; + + jointData.trackingState = (KinectInterop.TrackingState)iTrackingState; + + if (iTrackingState != (int)TrackingState.NotTracked && alCsvParts.Length >= (iIndex + 3)) + { + float x = 0f, y = 0f, z = 0f; + + float.TryParse(alCsvParts[iIndex], numFloat, invCulture, out x); + float.TryParse(alCsvParts[iIndex + 1], numFloat, invCulture, out y); + float.TryParse(alCsvParts[iIndex + 2], numFloat, invCulture, out z); + iIndex += 3; + + jointData.kinectPos = new Vector3(x, y, z); + } + else + { + jointData.kinectPos = Vector3.zero; + } + + jointData.position = kinectToWorld.MultiplyPoint3x4(jointData.kinectPos); + jointData.kinectPos = new Vector3(jointData.kinectPos.x, jointData.kinectPos.y, jointData.kinectPos.z); + jointData.orientation = Quaternion.identity; + + if (j == 0) + { + // set body position + bodyData[i].kinectPos = jointData.kinectPos; + bodyData[i].position = jointData.position; + bodyData[i].orientation = jointData.orientation; + } + } + + bodyData[i].joint[j] = jointData; + + if(j == (int)JointType.ClavicleLeft) + { + // clavicle right = clavicle left + int j2 = (int)JointType.ClavicleRight; + + bodyData[i].joint[j2].trackingState = jointData.trackingState; + bodyData[i].joint[j2].kinectPos = jointData.kinectPos; + bodyData[i].joint[j2].position = jointData.position; + bodyData[i].joint[j2].orientation = jointData.orientation; + } + } + + // spine naval + { + int p = (int)JointType.Pelvis; + int sc = (int)JointType.SpineChest; + int sn = (int)JointType.SpineNaval; + + JointData jointData = bodyData[i].joint[sn]; + jointData.trackingState = bodyData[i].joint[sc].trackingState; + jointData.orientation = bodyData[i].joint[sc].orientation; + + Vector3 posChest = bodyData[i].joint[sc].kinectPos; + Vector3 posPelvis = bodyData[i].joint[p].kinectPos; + jointData.kinectPos = (posPelvis + posChest) * 0.5f; + + posChest = bodyData[i].joint[sc].position; + posPelvis = bodyData[i].joint[p].position; + jointData.position = (posPelvis + posChest) * 0.5f; + + bodyData[i].joint[sn] = jointData; + } + + // calculate bone directions + CalcBodyJointDirs(ref bodyData[i]); + + // calculate joint orients + if (kinectManager.ignoreZCoordinates) + { + DepthSensorBase.DoCalcBodyJointOrients2D(ref bodyData[i], kinectManager.ignoreInferredJoints); + } + else + { + DepthSensorBase.DoCalcBodyJointOrients(ref bodyData[i], kinectManager.ignoreInferredJoints); + } + + // body orientation + bodyData[i].normalRotation = bodyData[i].joint[0].normalRotation; + bodyData[i].mirroredRotation = bodyData[i].joint[0].mirroredRotation; + } + } + + return (uint)bodyCount; + } + + // k2b joint to k4a joint + private static readonly int[] K2bJoint2JointType = + { + (int)JointType.Pelvis, + (int)JointType.SpineChest, + (int)JointType.Neck, + (int)JointType.Head, + + (int)JointType.ShoulderLeft, + (int)JointType.ElbowLeft, + (int)JointType.WristLeft, + (int)JointType.HandLeft, + + (int)JointType.ShoulderRight, + (int)JointType.ElbowRight, + (int)JointType.WristRight, + (int)JointType.HandRight, + + (int)JointType.HipLeft, + (int)JointType.KneeLeft, + (int)JointType.AnkleLeft, + (int)JointType.FootLeft, + + (int)JointType.HipRight, + (int)JointType.KneeRight, + (int)JointType.AnkleRight, + (int)JointType.FootRight, + + (int)JointType.ClavicleLeft, + + (int)JointType.HandtipLeft, + (int)JointType.ThumbLeft, + (int)JointType.HandtipRight, + (int)JointType.ThumbRight + }; + + // calculates all bone directions for the given body + public static void CalcBodyJointDirs(ref BodyData bodyData) + { + if (bodyData.bIsTracked) + { + for (int j = 0; j < (int)JointType.Count; j++) + { + if (j == 0) + { + bodyData.joint[j].direction = Vector3.zero; + } + else + { + int jParent = (int)GetParentJoint((JointType)j); + + if (bodyData.joint[j].trackingState != TrackingState.NotTracked && + bodyData.joint[jParent].trackingState != TrackingState.NotTracked) + { + bodyData.joint[j].direction = (bodyData.joint[j].position - bodyData.joint[jParent].position); //.normalized; + } + } + } + } + } + + // calculates all joint velocities for the given body + public static void CalcBodyFrameJointVels(ref BodyData bodyData, long lastBodyFrameTcks, long prevBodyFrameTcks) + { + // calculate the inter-frame time + float frameTime = (float)(lastBodyFrameTcks - prevBodyFrameTcks) / 10000000f; // 100000000000f + //Debug.Log(" calcJointVels - bodyId: " + bodyData.liTrackingID + ", frameTime: " + frameTime); + + if (bodyData.bIsTracked) + { + for (int j = 0; j < (int)JointType.Count; j++) + { + JointData jointData = bodyData.joint[j]; + + int p = (int)GetParentJoint((JointType)j); + Vector3 parentPos = bodyData.joint[p].position; + + if(jointData.trackingState != TrackingState.NotTracked && + bodyData.joint[p].trackingState != TrackingState.NotTracked) + { + jointData.posRel = jointData.position - parentPos; + jointData.posVel = frameTime > 0f ? (jointData.position - jointData.posPrev) / frameTime : Vector3.zero; + jointData.posPrev = jointData.position; + + bodyData.joint[j] = jointData; + } + } + } + + } + + // tries to loads the space table from a file. returns the space table as array, or null if the file is not found + public static Vector3[] LoadSpaceTable(DepthSensorPlatform sensorPlatform, string sensorId, string camType, int frameWidth, int frameHeight) + { + Vector3[] spaceTable = null; + + if (SAVE_SPACE_TABLES_TO_DISK) + { + string saveFolder = !string.IsNullOrEmpty(persistentDataPath) ? persistentDataPath : Application.persistentDataPath; +#if UNITY_EDITOR || UNITY_STANDALONE + saveFolder = "."; +#endif + if(saveFolder.Length > 0 && saveFolder[saveFolder.Length - 1] != '/' && saveFolder[saveFolder.Length - 1] != '\\') + { + saveFolder += "/"; + } + + string filePath = string.Format("{0}ST-{1}-{2}-{3}-{4}-{5}.bin", saveFolder, sensorPlatform.ToString(), sensorId, camType, frameWidth, frameHeight); + if (File.Exists(filePath)) + { + byte[] btSpaceTable = File.ReadAllBytes(filePath); + spaceTable = new Vector3[frameWidth * frameHeight]; + CopyBytes(btSpaceTable, 1, spaceTable, 3 * sizeof(float)); + } + } + + return spaceTable; + } + + // saves the space file to a file + public static void SaveSpaceTable(Vector3[] spaceTable, DepthSensorPlatform sensorPlatform, string sensorId, string camType, int frameWidth, int frameHeight) + { + if (!SAVE_SPACE_TABLES_TO_DISK || spaceTable == null || spaceTable.Length == 0) + return; + + string saveFolder = !string.IsNullOrEmpty(persistentDataPath) ? persistentDataPath : Application.persistentDataPath; +#if UNITY_EDITOR || UNITY_STANDALONE + saveFolder = "."; +#endif + if (saveFolder.Length > 0 && saveFolder[saveFolder.Length - 1] != '/' && saveFolder[saveFolder.Length - 1] != '\\') + { + saveFolder += "/"; + } + + string filePath = string.Format("{0}ST-{1}-{2}-{3}-{4}-{5}.bin", saveFolder, sensorPlatform.ToString(), sensorId, camType, frameWidth, frameHeight); + + byte[] btSpaceTable = new byte[spaceTable.Length * 3 * sizeof(float)]; + CopyBytes(spaceTable, 3 * sizeof(float), btSpaceTable, 1); + File.WriteAllBytes(filePath, btSpaceTable); + } + + // save intrinsics & extrinsics of the sensor + public static bool LoadSensorIntrExtr(SensorData sensorData) + { + if (sensorData == null || sensorData.sensorInterface == null) + return false; + + string saveFolder = !string.IsNullOrEmpty(persistentDataPath) ? persistentDataPath : Application.persistentDataPath; +#if UNITY_EDITOR || UNITY_STANDALONE + saveFolder = "."; +#endif + if (saveFolder.Length > 0 && saveFolder[saveFolder.Length - 1] != '/' && saveFolder[saveFolder.Length - 1] != '\\') + { + saveFolder += "/"; + } + + string filePath = string.Format("{0}IE-{1}-{2}-{3}-{4}-{5}-{6}.json", saveFolder, sensorData.sensorInterface.GetSensorPlatform().ToString(), sensorData.sensorInterface.GetSensorDeviceId(), + sensorData.depthImageWidth, sensorData.depthImageHeight, sensorData.colorImageWidth, sensorData.colorImageHeight); + + if (File.Exists(filePath)) + { + string sieJson = File.ReadAllText(filePath); + SensorIntrExtr sie = JsonUtility.FromJson(sieJson); + + if (sie != null) + { + sensorData.depthCamIntr = sie.depthCamIntr; + sensorData.colorCamIntr = sie.colorCamIntr; + sensorData.depth2ColorExtr = sie.depth2ColorExtr; + sensorData.color2DepthExtr = sie.color2DepthExtr; + + return true; + } + } + + return false; + } + + // save intrinsics & extrinsics of the sensor + public static void SaveSensorIntrExtr(SensorData sensorData) + { + if (sensorData == null || sensorData.sensorInterface == null) + return; + + SensorIntrExtr sie = new SensorIntrExtr(); + + sie.depthCamIntr = sensorData.depthCamIntr; + sie.colorCamIntr = sensorData.colorCamIntr; + sie.depth2ColorExtr = sensorData.depth2ColorExtr; + sie.color2DepthExtr = sensorData.color2DepthExtr; + + string saveFolder = !string.IsNullOrEmpty(persistentDataPath) ? persistentDataPath : Application.persistentDataPath; +#if UNITY_EDITOR || UNITY_STANDALONE + saveFolder = "."; +#endif + if (saveFolder.Length > 0 && saveFolder[saveFolder.Length - 1] != '/' && saveFolder[saveFolder.Length - 1] != '\\') + { + saveFolder += "/"; + } + + string filePath = string.Format("{0}IE-{1}-{2}-{3}-{4}-{5}-{6}.json", saveFolder, sensorData.sensorInterface.GetSensorPlatform().ToString(), sensorData.sensorInterface.GetSensorDeviceId(), + sensorData.depthImageWidth, sensorData.depthImageHeight, sensorData.colorImageWidth, sensorData.colorImageHeight); + + string sieJson = JsonUtility.ToJson(sie, true); + File.WriteAllText(filePath, sieJson); + + //Debug.Log("Saved intr-extr to: " + filePath); + } + + // returns the file name only, with or without extension + public static string GetFileName(string filePath, bool withExt) + { + if (string.IsNullOrEmpty(filePath)) + return null; + + int iP1 = filePath.LastIndexOf('/'); + if(iP1 < 0) + iP1 = filePath.LastIndexOf('\\'); + iP1++; + + int iP2 = filePath.LastIndexOf('.'); + if (withExt || iP2 < 0) + iP2 = filePath.Length; + + string sFileName = filePath.Substring(iP1, iP2 - iP1); + + return sFileName; + } + + // returns the content of a text file, or null if the file does not exist + public static bool IsFileExists(string fileName) + { + if (string.IsNullOrEmpty(fileName)) + return false; + + string saveFolder = !string.IsNullOrEmpty(persistentDataPath) ? persistentDataPath : Application.persistentDataPath; +#if UNITY_EDITOR || UNITY_STANDALONE + saveFolder = "."; +#endif + if (saveFolder.Length > 0 && saveFolder[saveFolder.Length - 1] != '/' && saveFolder[saveFolder.Length - 1] != '\\') + { + saveFolder += "/"; + } + + string filePath = saveFolder + fileName; + bool isFileExists = File.Exists(filePath); + + return isFileExists; + } + + // returns the content of a text file, or null if the file does not exist + public static string LoadTextFile(string fileName) + { + string sContent = null; + if (string.IsNullOrEmpty(fileName)) + return sContent; + + string saveFolder = !string.IsNullOrEmpty(persistentDataPath) ? persistentDataPath : Application.persistentDataPath; +#if UNITY_EDITOR || UNITY_STANDALONE + saveFolder = "."; +#endif + if (saveFolder.Length > 0 && saveFolder[saveFolder.Length - 1] != '/' && saveFolder[saveFolder.Length - 1] != '\\') + { + saveFolder += "/"; + } + + string filePath = saveFolder + fileName; + if (File.Exists(filePath)) + { + sContent = File.ReadAllText(filePath); + } + + return sContent; + } + + // saves the given content to a text file. + public static void SaveTextFile(string fileName, string content) + { + if (string.IsNullOrEmpty(fileName)) + return; + + string saveFolder = !string.IsNullOrEmpty(persistentDataPath) ? persistentDataPath : Application.persistentDataPath; +#if UNITY_EDITOR || UNITY_STANDALONE + saveFolder = "."; +#endif + if (saveFolder.Length > 0 && saveFolder[saveFolder.Length - 1] != '/' && saveFolder[saveFolder.Length - 1] != '\\') + { + saveFolder += "/"; + } + + string filePath = saveFolder + fileName; + File.WriteAllText(filePath, content); + } + + + //// calculates the average (mean) of multiple quaternions + //// note: this only works if all the quaternions are relatively close together. + //public static Quaternion AverageQuaternion(ref Vector4 cumulative, Quaternion newRotation, Quaternion firstRotation, int addAmount) + //{ + // float w = 0.0f; + // float x = 0.0f; + // float y = 0.0f; + // float z = 0.0f; + + // if (!AreQuaternionsClose(newRotation, firstRotation)) + // { + // newRotation = InverseSignQuaternion(newRotation); + // } + + // float addDet = 1f / (float)addAmount; + // cumulative.w += newRotation.w; + // w = cumulative.w * addDet; + // cumulative.x += newRotation.x; + // x = cumulative.x * addDet; + // cumulative.y += newRotation.y; + // y = cumulative.y * addDet; + // cumulative.z += newRotation.z; + // z = cumulative.z * addDet; + + // return NormalizeQuaternion(x, y, z, w); + //} + + // sums up multiple quaternions + public static void SumUpQuaternions(ref Vector4 cumulative, Quaternion newRotation, Quaternion firstRotation) + { + //Before we add the new rotation to the average (mean), we have to check whether the quaternion has to be inverted. Because + //q and -q are the same rotation, but cannot be averaged, we have to make sure they are all the same. + if (!AreQuaternionsClose(newRotation, firstRotation)) + { + newRotation = InverseSignQuaternion(newRotation); + } + + cumulative.w += newRotation.w; + cumulative.x += newRotation.x; + cumulative.y += newRotation.y; + cumulative.z += newRotation.z; + } + + // calculates the average (mean) of multiple quaternions + // note: this only works if all the quaternions are relatively close together. + public static Quaternion AverageQuaternions(Vector4 cumulative, int addAmount) + { + float addDet = 1f / (float)addAmount; + + float w = cumulative.w * addDet; + float x = cumulative.x * addDet; + float y = cumulative.y * addDet; + float z = cumulative.z * addDet; + + return NormalizeQuaternion(x, y, z, w); + } + + // normalizes a quaternion + private static Quaternion NormalizeQuaternion(float x, float y, float z, float w) + { + float lengthD = 1.0f / (w * w + x * x + y * y + z * z); + + w *= lengthD; + x *= lengthD; + y *= lengthD; + z *= lengthD; + + return new Quaternion(x, y, z, w); + } + + // inverts the sign of a quaternion + private static Quaternion InverseSignQuaternion(Quaternion q) + { + return new Quaternion(-q.x, -q.y, -q.z, -q.w); + } + + // checks if the two quaternions are close or not + private static bool AreQuaternionsClose(Quaternion q1, Quaternion q2) + { + float dot = Quaternion.Dot(q1, q2); + return dot >= 0f; + } + + + // transforms the source texture to target texture, by applying the needed resize, rotation and flip + public static void TransformTexture(Texture srcTex, RenderTexture tgtTex, int rotationAngle = 0, bool flipX = false, bool flipY = false) + { + if (srcTex == null || tgtTex == null) + return; + + int srcWidth = srcTex.width; + int srcHeight = srcTex.height; + + bool isPortraitMode = rotationAngle == 90 || rotationAngle == 270; + + if (isPortraitMode) + { + // swap width and height + (srcWidth, srcHeight) = (srcHeight, srcWidth); + } + + float camAspect = (float)srcWidth / srcHeight; + float tgtAspect = (float)tgtTex.width / tgtTex.height; + + //// fix bug on Android + //if (Application.platform == RuntimePlatform.Android) + //{ + // rotationAngle = -rotationAngle; + //} + + Matrix4x4 transMat = Matrix4x4.identity; + Vector4 texST = Vector4.zero; + + if (isPortraitMode) + { + transMat = GetTransformMat(rotationAngle, flipY, flipX); + texST = GetTexST(tgtAspect, camAspect); + } + else + { + transMat = GetTransformMat(rotationAngle, flipX, flipY); + texST = GetTexST(camAspect, tgtAspect); + } + + if(_textureMat == null) + { + _textureMat = new Material(Shader.Find("Kinect/TransformTexShader")); + } + + // blit the texture + if(_textureMat != null) + { + _textureMat.SetMatrix(_TransformMatParam, transMat); + _textureMat.SetVector(_TexSTParam, texST); + + Graphics.Blit(srcTex, tgtTex, _textureMat, 0); + } + } + + private static Material _textureMat = null; + private static readonly int _TransformMatParam = Shader.PropertyToID("_TransformMat"); + private static readonly int _TexSTParam = Shader.PropertyToID("_TexST"); + + // returns the camera transform matrix + private static Matrix4x4 GetTransformMat(float rotation, bool mirrorHorizontal, bool mirrorVertical) + { + Vector3 scale = new Vector3(mirrorHorizontal ? -1f : 1f, mirrorVertical ? -1f : 1f, 1f); + Matrix4x4 mat = Matrix4x4.TRS(Vector3.zero, Quaternion.Euler(0, 0, rotation), scale); + + return PUSH_MATRIX * mat * POP_MATRIX; + } + + private static readonly Matrix4x4 PUSH_MATRIX = Matrix4x4.Translate(new Vector3(0.5f, 0.5f, 0)); + private static readonly Matrix4x4 POP_MATRIX = Matrix4x4.Translate(new Vector3(-0.5f, -0.5f, 0)); + + // returns the camera texture offsets + private static Vector4 GetTexST(float srcAspect, float dstAspect) + { + if (srcAspect > dstAspect) + { + float s = dstAspect / srcAspect; + return new Vector4(s, 1, (1 - s) / 2, 0); + } + else + { + float s = srcAspect / dstAspect; + return new Vector4(1, s, 0, (1 - s) / 2); + } + } + + + // destroys the given object + public static void Destroy(UnityEngine.Object o) + { + if (o == null) + return; + + if (o is RenderTexture) + { + ((RenderTexture)o).Release(); + } + + if (Application.isPlaying) + UnityEngine.Object.Destroy(o); + else + UnityEngine.Object.DestroyImmediate(o); + } + + } +} diff --git a/Assets/Azure/KinectScripts/KinectInterop.cs.meta b/Assets/Azure/KinectScripts/KinectInterop.cs.meta new file mode 100644 index 0000000..132c045 --- /dev/null +++ b/Assets/Azure/KinectScripts/KinectInterop.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ebd602dc5968e0743b5c5fa9cd5268ee +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/KinectManager.cs b/Assets/Azure/KinectScripts/KinectManager.cs new file mode 100644 index 0000000..3e5c049 --- /dev/null +++ b/Assets/Azure/KinectScripts/KinectManager.cs @@ -0,0 +1,4113 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Threading; +using UnityEngine; + +namespace com.rfilkov.kinect +{ + /// + /// KinectManager is the the main and most basic depth-sensor related component. It controls the sensors and manages the data streams. + /// + public class KinectManager : MonoBehaviour + { + //[Header("Multiple Camera Config")] + + [Tooltip("Whether to create the sensor interfaces according to the multi-camera config, if one is available. Otherwise use the sensor interfaces, as configured in the child objects of this object.")] + public bool useMultiCamConfig = false; + + [Tooltip("Whether to synchronize the received frames, in case of master/sub cameras.")] + public bool syncMultiCamFrames = false; + + [Header("Sensor Data")] + + [Tooltip("Whether or not to start the depth sensor(s), when the scene starts.")] + public bool startDepthSensors = true; + + [Tooltip("Whether or not to keep the KinectManager instance across scenes.")] + public bool dontDestroyAcrossScenes = false; + + [Tooltip("Whether or not to get depth frames from the sensor(s).")] + public DepthTextureType getDepthFrames = DepthTextureType.RawDepthData; + public enum DepthTextureType : int { None = 0, RawDepthData = 1, DepthTexture = 2 } + + [Tooltip("Whether or not to get color frames from the sensor(s).")] + public ColorTextureType getColorFrames = ColorTextureType.None; + public enum ColorTextureType : int { None = 0, ColorTexture = 2 } + + [Tooltip("Whether or not to get infrared frames from the sensor(s).")] + public InfraredTextureType getInfraredFrames = InfraredTextureType.None; + public enum InfraredTextureType : int { None = 0, RawInfraredData = 1, InfraredTexture = 2 } + + [Tooltip("Whether or not to get pose frames from the sensor(s).")] + public PoseUsageType getPoseFrames = PoseUsageType.None; + public enum PoseUsageType : int { None = 0, RawPoseData = 1, DisplayInfo = 10, UpdateTransform = 20 } + + [Tooltip("Whether or not to get body frames from the body tracker.")] + public BodyTextureType getBodyFrames = BodyTextureType.BodyAndBodyIndexData; + public enum BodyTextureType : int { None = 0, BodyAndBodyIndexData = 1, BodyTexture = 2, UserTexture = 3, BodyDataOnly = 4, BodyIndexDataOnly = 5 } + + [Tooltip("Whether to poll the sensor frames in separate threads, or in the Update-method.")] + private bool pollFramesInThread = true; + + [Tooltip("Whether or not to synchronize depth and color frames.")] + public bool syncDepthAndColor = false; + + [Tooltip("Whether or not to synchronize body and depth frames.")] + public bool syncBodyAndDepth = false; + + //[Tooltip("List of additional data frames to be computed from the latest depth and color frames. Please note, these data frames require getting both depth & color frames, as well as sync between them.")] + //public List additionalFrames = new List(); + //public enum AdditionalFrameType : int { Depth2ColorCoordinatesFrame, Color2DepthCoordinatesFrame, AlignedDepth2ColorFrame, AlignedColor2DepthFrame, PointCloudMeshFrame, PointCloudVerticesFrame, PointCloudUvFrame, PointCloudColorFrame } + + [Header("User Detection")] + + [Tooltip("Minimum distance to user, in order to be considered for body processing. Value of 0 means no minimum distance limitation.")] + [Range(0f, 10f)] + public float minUserDistance = 0f; + + [Tooltip("Maximum distance to user, in order to be considered for body processing. Value of 0 means no maximum distance limitation.")] + [Range(0f, 10f)] + public float maxUserDistance = 0f; + + [Tooltip("Maximum left or right distance to user, in order to be considered for body processing. Value of 0 means no left/right distance limitation.")] + [Range(0f, 5f)] + public float maxLeftRightDistance = 0f; + + [Tooltip("Maximum number of users, who may be tracked simultaneously. Value of 0 means no limitation.")] + public int maxTrackedUsers = 0; + + [Tooltip("Whether to display only the users within the allowed distances, or all users.")] + public bool showAllowedUsersOnly = false; + + public enum UserDetectionOrder : int { Appearance = 0, Distance = 1, LeftToRight = 2, FixedStepIndices = 3 } + [Tooltip("How to assign users to player indices - by order of appearance, distance, left to right, or fixed step left to right.")] + public UserDetectionOrder userDetectionOrder = UserDetectionOrder.Appearance; + + [Tooltip("Whether to ignore the inferred joints, or consider them as tracked joints.")] + public bool ignoreInferredJoints = false; + + [Tooltip("Whether to ignore the Z-coordinates of the joints (for 2D-scenes) or not.")] + public bool ignoreZCoordinates = false; + + [Tooltip("Set of joint position smoothing parameters.")] + public SmoothingType jointPositionSmoothing = SmoothingType.Default; + + [Tooltip("Whether to estimate the body joints velocities.")] + public bool estimateJointVelocities = false; + + [Tooltip("Set of joint velocity smoothing parameters.")] + public SmoothingType jointVelocitySmoothing = SmoothingType.Light; + + [Tooltip("Whether to apply the bone orientation constraints.")] + public bool boneOrientationConstraints = true; + + [Tooltip("Whether to filter out the body spins. Feel free to disable it, if the users need to turn around.")] + public BodySpinType bodySpinFilter = BodySpinType.None; + + [Tooltip("Wait time in seconds, before a lost user gets removed. This is to prevent sporadical user switches.")] + protected float waitTimeBeforeRemove = 0.25f; + + [Tooltip("Calibration pose required, to start tracking the respective user.")] + public GestureType playerCalibrationPose = GestureType.None; + + [Tooltip("User manager, used to track the users. KM creates one, if not set.")] + public KinectUserManager userManager; + + //[Tooltip("List of the avatar controllers in the scene. If the list is empty, the available avatar controllers are detected at the scene start up.")] + //public List avatarControllers = new List(); + + [Header("Gesture Detection")] + + //[Tooltip("List of common gestures, to be detected for each player.")] + //public List playerCommonGestures = new List(); + + //[Tooltip("Minimum time between gesture detections (in seconds).")] + //public float minTimeBetweenGestures = 0.7f; + + [Tooltip("Gesture manager, used to detect user gestures. KM creates one, if not set.")] + public KinectGestureManager gestureManager; + + //[Tooltip("List of the gesture listeners in the scene. If the list is empty, the available gesture listeners will be detected at the scene start up.")] + //public List gestureListeners = new List(); + + [Header("On-Screen Info")] + + [Tooltip("List of images to display on the screen.")] + public List displayImages = new List(); + public enum DisplayImageType : int + { + None = 0, + Sensor0ColorImage = 0x01, Sensor0DepthImage = 0x02, Sensor0InfraredImage = 0x03, + Sensor1ColorImage = 0x11, Sensor1DepthImage = 0x12, Sensor1InfraredImage = 0x13, + Sensor2ColorImage = 0x21, Sensor2DepthImage = 0x22, Sensor2InfraredImage = 0x23, + UserBodyImageS0 = 0x101, UserBodyImageS1 = 0x102, UserBodyImageS2 = 0x103 + } + + [Tooltip("Single image width, as percent of the screen width. The height is estimated according to the image's aspect ratio.")] + [Range(0.1f, 0.5f)] + public float displayImageWidthPercent = 0.2f; + + [Tooltip("UI-Text to display status messages.")] + public UnityEngine.UI.Text statusInfoText; + + [Tooltip("Whether to log the KinectManager info messages to the console or not.")] + public bool consoleLogMessages = true; + + + [System.Serializable] + public class DepthSensorStartStopEvent : UnityEngine.Events.UnityEvent { } + + [Header("Events")] + + /// + /// Fired when the depth sensors get started. + /// + public DepthSensorStartStopEvent OnDepthSensorsStarted = new DepthSensorStartStopEvent(); + + /// + /// Fired when the depth sensors get stopped. + /// + //public event System.Action OnUserRemoved; + public DepthSensorStartStopEvent OnDepthSensorsStopped = new DepthSensorStartStopEvent(); + + + // Bool to keep track of whether Kinect has been initialized or has failed initialization + protected bool kinectInitialized = false; + protected bool kinectInitFailed = false; + + // The singleton instance of KinectManager + protected static KinectManager instance = null; + + // available sensor interfaces + protected List sensorInterfaces = new List(); + // the respective SensorData structures + protected List sensorDatas = new List(); + + // body frame data + protected ulong lastBodyFrameTime = 0; + protected uint trackedBodiesCount = 0; + protected KinectInterop.BodyData[] alTrackedBodies = new KinectInterop.BodyData[0]; // new List(); + + protected long lastBodyFrameTicks = 0; + protected long prevBodyFrameTicks = 0; + + protected int btSensorIndex = -1; + protected int selectedBodyIndex = 255; + protected bool bLimitedUsers = false; + + // filters & body merger + protected BoneOrientationConstraints boneConstraints = null; + protected KinectUserBodyMerger userBodyMerger = null; + + //protected JointPositionsFilter jointPositionFilter = null; + protected JointVelocitiesFilter jointVelocityFilter = null; + + // play mode + protected bool isPlayModeEnabled = false; + protected string playModeData = string.Empty; + + + /// + /// Gets the single KinectManager instance. + /// + /// The KinectManager instance. + public static KinectManager Instance + { + get + { + return instance; + } + } + + /// + /// Determines if the KinectManager-component is initialized and ready to use. + /// + /// true if KinectManager is initialized; otherwise, false. + public bool IsInitialized() + { + return kinectInitialized; + } + + /// + /// Checks if the sensor initialization has failed. + /// + /// + public bool IsInitFailed() + { + return kinectInitFailed; + } + + ///// + ///// Gets the joint position filter, if available. + ///// + ///// + //public JointPositionsFilter GetJointPositionFilter() + //{ + // return jointPositionFilter; + //} + + /// + /// Gets the joint velocity filter, if available. + /// + /// + public JointVelocitiesFilter GetJointVelocityFilter() + { + return jointVelocityFilter; + } + + /// + /// Returns the number of utilized depth sensors. + /// + /// The number of depth sensors. + public int GetSensorCount() + { + return sensorDatas.Count; + } + + ///// + ///// Gets the sensor-data structure of the 1st sensor (this structure should not be modified, because it is used internally). + ///// + ///// The sensor data. + //internal KinectInterop.SensorData GetSensorData() + //{ + // return GetSensorData(0); + //} + + /// + /// Gets the sensor-data structure of the given sensor (this structure should not be modified, because it is used internally). + /// + /// The sensor index. + /// The sensor data. + internal KinectInterop.SensorData GetSensorData(int sensorIndex) + { + if(sensorIndex >= 0 && sensorIndex < sensorDatas.Count) + { + //return sensorDatas[sensorIndex]; + + KinectInterop.SensorData sensorData = sensorDatas[sensorIndex]; + if (sensorData == null || sensorData.sensorInterface == null) + return null; + + if (!sensorData.sensorInterface.IsSensorDataValid()) + { + //Debug.LogWarning("Sensor data is invalid."); + return null; + } + + return sensorData; + } + + return null; + } + + /// + /// Gets the sensor capabilities (i.e. available sensor streams). + /// + /// The sensor index. + /// Sensor capabilities as source flags. + public KinectInterop.FrameSource GetSensorCaps(int sensorIndex) + { + if (sensorIndex >= 0 && sensorIndex < sensorDatas.Count) + { + KinectInterop.SensorData sensorData = sensorDatas[sensorIndex]; + if (sensorData != null) + { + return sensorData.sensorCaps; + } + } + + return KinectInterop.FrameSource.TypeNone; + } + + /// + /// Enables or disables sensor's pose data. + /// + /// The sensor index. + /// Whether to enable or disable the pose data. + public void EnableSensorPoseData(int sensorIndex, bool isEnable) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + if (sensorData != null && sensorData.sensorInterface != null) + { + sensorData.sensorInterface.EnablePoseStream(sensorData, isEnable); + } + } + + /// + /// Sets minimum & maximum infrared values, used in IR texture generation. + /// + /// The sensor index. + /// Minimum value. + /// Maximum value. + public void SetSensorMinMaxIrValues(int sensorIndex, float minValue, float maxValue) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + if (sensorData != null && sensorData.sensorInterface != null) + { + sensorData.sensorInterface.SetMinMaxInfraredValues(minValue, maxValue); + } + } + + /// + /// Gets the minimum distance tracked by the sensor, in meters. + /// + /// The sensor index. + /// Minimum distance tracked by the sensor, in meters. + public float GetSensorMinDistance(int sensorIndex) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + if(sensorData != null && sensorData.sensorInterface != null) + { + return ((DepthSensorBase)sensorData.sensorInterface).minDepthDistance; + } + + return 0f; + } + + /// + /// Gets the maximum distance tracked by the sensor, in meters. + /// + /// The sensor index. + /// Maximum distance tracked by the sensor, in meters. + public float GetSensorMaxDistance(int sensorIndex) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + if (sensorData != null && sensorData.sensorInterface != null) + { + return ((DepthSensorBase)sensorData.sensorInterface).maxDepthDistance; + } + + return 0f; + } + + /// + /// Gets the last color frame time, as returned by the sensor. + /// + /// The sensor index. + /// The color frame time. + public ulong GetColorFrameTime(int sensorIndex) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + return sensorData != null ? sensorData.lastColorFrameTime : 0; + } + + /// + /// Gets the width of the color image, returned by the sensor. + /// + /// The sensor index. + /// The color image width. + public int GetColorImageWidth(int sensorIndex) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + return sensorData != null ? sensorData.colorImageWidth : 0; + } + + /// + /// Gets the height of the color image, returned by the sensor. + /// + /// The sensor index. + /// The color image height. + public int GetColorImageHeight(int sensorIndex) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + return sensorData != null ? sensorData.colorImageHeight : 0; + } + + /// + /// Gets the color image scale. + /// + /// The sensor index. + /// The color image scale. + public Vector3 GetColorImageScale(int sensorIndex) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + return sensorData != null ? sensorData.colorImageScale : Vector3.one; + } + + /// + /// Gets the color image texture. + /// + /// The sensor index. + /// The color image texture. + public Texture GetColorImageTex(int sensorIndex) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + return sensorData != null ? sensorData.colorImageTexture : null; + } + + /// + /// Gets the last depth frame time, as returned by the sensor. + /// + /// The sensor index. + /// The depth frame time. + public ulong GetDepthFrameTime(int sensorIndex) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + return sensorData != null ? sensorData.lastDepthFrameTime : 0; + } + + /// + /// Gets the last IR frame time, as returned by the sensor. + /// + /// The sensor index. + /// The IR frame time. + public ulong GetInfraredFrameTime(int sensorIndex) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + return sensorData != null ? sensorData.lastInfraredFrameTime : 0; + } + + /// + /// Gets the width of the depth image, returned by the sensor. + /// + /// The sensor index. + /// The depth image width. + public int GetDepthImageWidth(int sensorIndex) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + return sensorData != null ? sensorData.depthImageWidth : 0; + } + + /// + /// Gets the height of the depth image, returned by the sensor. + /// + /// The sensor index. + /// The depth image height. + public int GetDepthImageHeight(int sensorIndex) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + return sensorData != null ? sensorData.depthImageHeight : 0; + } + + /// + /// Gets the raw depth data, if ComputeUserMap is true. + /// + /// The sensor index. + /// The raw depth map. + public ushort[] GetRawDepthMap(int sensorIndex) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + return sensorData != null ? sensorData.depthImage : null; + } + + /// + /// Gets the raw infrared data, if ComputeInfraredMap is true. + /// + /// The sensor index. + /// The raw infrared map. + public ushort[] GetRawInfraredMap(int sensorIndex) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + return sensorData != null ? sensorData.infraredImage : null; + } + + /// + /// Gets the depth image scale. + /// + /// The sensor index. + /// The depth image scale. + public Vector3 GetDepthImageScale(int sensorIndex) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + return sensorData != null ? sensorData.depthImageScale : Vector3.one; + } + + /// + /// Gets the infrared image scale. + /// + /// The sensor index. + /// The infrared image scale. + public Vector3 GetInfraredImageScale(int sensorIndex) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + return sensorData != null ? sensorData.infraredImageScale : Vector3.one; + } + + /// + /// Gets the sensor space scale. + /// + /// The sensor index. + /// The sensor space scale. + public Vector3 GetSensorSpaceScale(int sensorIndex) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + return sensorData != null ? sensorData.sensorSpaceScale : Vector3.one; + } + + /// + /// Gets the depth image texture. + /// + /// The sensor index. + /// The depth texture. + public Texture GetDepthImageTex(int sensorIndex) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + return sensorData != null ? sensorData.depthImageTexture : null; + } + + /// + /// Gets the infrared image texture. + /// + /// The sensor index. + /// The infrared texture. + public Texture GetInfraredImageTex(int sensorIndex) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + return sensorData != null ? sensorData.infraredImageTexture : null; + } + + /// + /// Gets the depth value for the specified depth image pixel. + /// + /// The sensor index. + /// Depth image coordinates. + /// Depth value in mm, or 0. + public ushort GetDepthForPixel(int sensorIndex, Vector2 depthPixel) + { + return GetDepthForPixel(sensorIndex, (int)depthPixel.x, (int)depthPixel.y); + } + + /// + /// Gets the depth value for the specified depth image pixel. + /// + /// Depth value in mm, or 0. + /// The sensor index. + /// The X coordinate of the depth pixel. + /// The Y coordinate of the depth pixel. + public ushort GetDepthForPixel(int sensorIndex, int x, int y) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + if (sensorData != null && sensorData.depthImage != null) + { + int index = y * sensorData.depthImageWidth + x; + + if (index >= 0 && index < sensorData.depthImage.Length) + { + return sensorData.depthImage[index]; + } + } + + return 0; + } + + /// + /// Gets the depth value for the specified pixel, if ComputeUserMap is true. + /// + /// The depth value. + /// The sensor index. + /// Depth index. + public ushort GetDepthForIndex(int sensorIndex, int index) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + if (sensorData != null && sensorData.depthImage != null) + { + if (index >= 0 && index < sensorData.depthImage.Length) + { + return sensorData.depthImage[index]; + } + } + + return 0; + } + + + /// + /// Returns the respective sensor-to-world matrix. + /// + /// The sensor index. + /// Sensor-to-world matrix. + public Matrix4x4 GetSensorToWorldMatrix(int sensorIndex) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + return KinectInterop.GetSensorToWorldMatrix(sensorData); + } + + + /// + /// Returns the sensor transform reference. Please note transform updates depend on the getPoseFrames-KM setting. + /// + /// The sensor index. + /// Sensor transorm or null, if sensorIndex is invalid. + public Transform GetSensorTransform(int sensorIndex) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + return KinectInterop.GetSensorTransform(sensorData); + } + + + /// + /// Returns the depth camera space coordinates of a depth-image point, or Vector3.zero if the sensor is not initialized. + /// + /// The space coordinates. + /// The sensor index. + /// Depth image coordinates + /// Depth value + /// If set to true, applies the sensor height and angle to the space coordinates. + public Vector3 MapDepthPointToSpaceCoords(int sensorIndex, Vector2 posPoint, ushort depthValue, bool bWorldCoords) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + if (sensorData != null) + { + Vector3 posSpace = KinectInterop.MapDepthPointToSpaceCoords(sensorData, posPoint, depthValue); + + if (bWorldCoords) + { + Vector3 spaceScale = sensorData.sensorSpaceScale; + posSpace = new Vector3(posSpace.x * spaceScale.x, posSpace.y * spaceScale.y, posSpace.z * spaceScale.z); + + Matrix4x4 sensorToWorld = KinectInterop.GetSensorToWorldMatrix(sensorData); + posSpace = sensorToWorld.MultiplyPoint3x4(posSpace); + } + + return posSpace; + } + + return Vector3.zero; + } + + + /// + /// Returns the depth-image coordinates of a depth camera space point, or Vector2.zero if the sensor is not initialized. + /// + /// The depth-image coordinates. + /// The sensor index. + /// Space point coordinates + public Vector2 MapSpacePointToDepthCoords(int sensorIndex, Vector3 posPoint) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + if (sensorData != null) + { + return KinectInterop.MapSpacePointToDepthCoords(sensorData, posPoint); + } + + return Vector2.zero; + } + + + /// + /// Returns the color camera space coordinates of a color-image point, or Vector3.zero if the sensor is not initialized. + /// + /// The space coordinates. + /// The sensor index. + /// Color image coordinates + /// Distance in mm + public Vector3 MapColorPointToSpaceCoords(int sensorIndex, Vector2 posPoint, ushort distance) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + if (sensorData != null) + { + return KinectInterop.MapColorPointToSpaceCoords(sensorData, posPoint, distance); + } + + return Vector3.zero; + } + + + /// + /// Returns the color-image coordinates of a color camera space point, or Vector2.zero if the sensor is not initialized. + /// + /// The color-image coordinates. + /// The sensor index. + /// Space point coordinates + public Vector2 MapSpacePointToColorCoords(int sensorIndex, Vector3 posPoint) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + if (sensorData != null) + { + return KinectInterop.MapSpacePointToColorCoords(sensorData, posPoint); + } + + return Vector2.zero; + } + + + /// + /// Returns the color-image coordinates of a depth-image point. + /// + /// The color-image coordinates. + /// The sensor index. + /// Depth image coordinates + /// Depth value + public Vector2 MapDepthPointToColorCoords(int sensorIndex, Vector2 posDepth, ushort depthValue) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + if (sensorData != null) + { + return KinectInterop.MapDepthPointToColorCoords(sensorData, posDepth, depthValue); + } + + return Vector2.zero; + } + + + /// + /// Returns the depth-image coordinates of a color-image point. + /// + /// The depth-image coordinates. + /// The sensor index. + /// Color image coordinates + /// Minimum distance in mm, or 0 to get the sensor interface's minDistance + /// Maximum distance in mm, or 0 to get the sensor interface's maxDistance + public Vector2 MapColorPointToDepthCoords(int sensorIndex, Vector2 posColor, int minDist, int maxDist) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + if (sensorData != null) + { + return KinectInterop.MapColorPointToDepthCoords(sensorData, posColor, minDist, maxDist); + } + + return Vector2.zero; + } + + + /// + /// Unprojects plane point into the space. This method is sensor space and unit scale factor specific. + /// + /// The sensor index + /// Camera intrinsics + /// Position of the plane point + /// Distance in meters + /// Position of the space point + public Vector3 SensorUnprojectPoint(int sensorIndex, KinectInterop.CameraIntrinsics intr, Vector2 pixel, float depth) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + if (sensorData != null && sensorData.sensorInterface != null) + { + DepthSensorBase sensorInt = (DepthSensorBase)sensorData.sensorInterface; + return sensorInt.UnprojectPoint(intr, pixel, depth); + } + + return Vector3.zero; + } + + + /// + /// Projects space point onto a plane. This method is sensor space and unit scale factor specific. + /// + /// The sensor index + /// Camera intrinsics + /// Position of the space point + /// Position of the plane point + public Vector2 SensorProjectPoint(int sensorIndex, KinectInterop.CameraIntrinsics intr, Vector3 point) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + if (sensorData != null && sensorData.sensorInterface != null) + { + DepthSensorBase sensorInt = (DepthSensorBase)sensorData.sensorInterface; + return sensorInt.ProjectPoint(intr, point); + } + + return Vector2.zero; + } + + + /// + /// Transforms a point from one space into another. This method is sensor space and unit scale factor specific. + /// + /// The sensor index + /// Inter-space extrinsics + /// Position of the point in the 1st space + /// Position of the point in the 2nd space + public Vector3 SensorTransformPoint(int sensorIndex, KinectInterop.CameraExtrinsics extr, Vector3 point) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + if (sensorData != null && sensorData.sensorInterface != null) + { + DepthSensorBase sensorInt = (DepthSensorBase)sensorData.sensorInterface; + return sensorInt.TransformPoint(extr, point); + } + + return Vector3.zero; + } + + + ///// + ///// Maps the depth frame to space coordinates. + ///// + ///// true on success, false otherwise. + ///// The sensor index. + ///// Buffer for the depth-to-space coordinates. + //public bool MapDepthFrameToSpaceCoords(int sensorIndex, ref Vector3[] avSpaceCoords) + //{ + // bool bResult = false; + + // KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + // if (sensorData != null && sensorData.depthImage != null) + // { + // if (avSpaceCoords == null || avSpaceCoords.Length == 0) + // { + // avSpaceCoords = new Vector3[sensorData.depthImageWidth * sensorData.depthImageHeight]; + // } + + // bResult = KinectInterop.MapDepthFrameToSpaceCoords(sensorData, ref avSpaceCoords); + // } + + // return bResult; + //} + + + ///// + ///// Returns the depth-map coordinates of a color point. + ///// + ///// The depth coords. + ///// The sensor index. + ///// Color position. + ///// If set to true allows reading of depth coords, if needed. + //public Vector2 MapColorPointToDepthCoords(int sensorIndex, Vector2 colorPos, bool bReadDepthCoordsIfNeeded) + //{ + // KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + // if (sensorData != null && sensorData.colorImageTexture != null && sensorData.depthImage != null) + // { + // return KinectInterop.MapColorPointToDepthCoords(sensorData, colorPos, bReadDepthCoordsIfNeeded); + // } + + // return Vector2.zero; + //} + + + ///// + ///// Maps the depth frame to color coordinates. + ///// + ///// true on success, false otherwise. + ///// The sensor index. + ///// Buffer for depth-to-color coordinates. + //public bool MapDepthFrameToColorCoords(int sensorIndex, ref Vector2[] avColorCoords) + //{ + // bool bResult = false; + + // KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + // if (sensorData != null && sensorData.depthImage != null && sensorData.colorImageTexture != null) + // { + // if (avColorCoords == null || avColorCoords.Length == 0) + // { + // avColorCoords = new Vector2[sensorData.depthImageWidth * sensorData.depthImageHeight]; + // } + + // bResult = KinectInterop.MapDepthFrameToColorCoords(sensorData, ref avColorCoords); + // } + + // return bResult; + //} + + + ///// + ///// Maps the color frame to depth coordinates. + ///// + ///// true on success, false otherwise. + ///// The sensor index. + ///// Buffer for color-to-depth coordinates. + //public bool MapColorFrameToDepthCoords(int sensorIndex, ref Vector2[] avDepthCoords) + //{ + // bool bResult = false; + + // KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + // if (sensorData != null && sensorData.colorImageTexture != null && sensorData.depthImage != null) + // { + // if (avDepthCoords == null || avDepthCoords.Length == 0) + // { + // avDepthCoords = new Vector2[sensorData.colorImageWidth * sensorData.colorImageWidth]; + // } + + // bResult = KinectInterop.MapColorFrameToDepthCoords(sensorData, ref avDepthCoords); + // } + + // return bResult; + //} + + + /// + /// Gets the last body frame time, as returned by the sensor. + /// + /// The sensor index. + /// The body frame time. + public ulong GetBodyFrameTime(int sensorIndex) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + return sensorData != null ? sensorData.lastBodyFrameTime : 0; + } + + /// + /// Gets the last body index frame time, as returned by the sensor. + /// + /// The sensor index. + /// The body index frame time. + public ulong GetBodyIndexFrameTime(int sensorIndex) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + return sensorData != null ? sensorData.lastBodyIndexFrameTime : 0; + } + + /// + /// Gets the users' image texture. + /// + /// The user bodies texture. + public Texture GetUsersImageTex() + { + return GetUsersImageTex(btSensorIndex); + } + + /// + /// Gets the users' image texture. + /// + /// The sensor index. + /// The user bodies texture. + public Texture GetUsersImageTex(int sensorIndex) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + if(sensorData != null) + { + return sensorData.bodyImageTexture != null ? sensorData.bodyImageTexture : sensorData.depthImageTexture; + } + + return null; + } + + /// + /// Gets number of bodies tracked by the respective sensor. + /// + /// Sensor index. + /// Number of bodies tracked by the sensor. + public uint GetSensorBodyCount(int sensorIndex) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + return sensorData != null ? sensorData.trackedBodiesCount : 0; + } + + /// + /// Determines whether the user with the specified index is currently detected by the sensor + /// + /// Sensor index. + /// Body index. + /// true if the user is detected; otherwise, false. + public bool IsSensorBodyDetected(int sensorIndex, int bodyIndex) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + if (sensorData != null && sensorData.alTrackedBodies != null && bodyIndex >= 0 && bodyIndex < sensorData.trackedBodiesCount) + { + return sensorData.alTrackedBodies[bodyIndex].bIsTracked; + } + + return false; + } + + /// + /// Gets body ID, as tracked by the respective sensor. + /// + /// Sensor index. + /// Body index. + /// Body ID, or 0 if not found + public ulong GetSensorBodyId(int sensorIndex, int bodyIndex) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + if(sensorData != null && sensorData.alTrackedBodies != null && bodyIndex >= 0 && bodyIndex < sensorData.trackedBodiesCount) + { + return sensorData.alTrackedBodies[bodyIndex].liTrackingID; + } + + return 0; + } + + /// + /// Gets body index, as tracked by the respective sensor. + /// + /// Sensor index. + /// Body ID + /// Sensor tracked body index, or -1 if not found. + public int GetSensorBodyIndex(int sensorIndex, ulong bodyId) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + uint sensorBodyCount = GetSensorBodyCount(sensorIndex); + + for (int i = 0; i < sensorBodyCount; i++) + { + if (sensorData.alTrackedBodies[i].liTrackingID == bodyId) + { + return i; + } + } + + return -1; + } + + ///// + ///// Gets body index, as tracked by the respective sensor. + ///// + ///// Sensor index. + ///// Body index. + ///// Sensor tracked body index, or -1 if not found. + //public int GetSensorBodyIndex(int sensorIndex, int bodyIndex) + //{ + // KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + // if (sensorData != null && sensorData.alTrackedBodies != null && bodyIndex >= 0 && bodyIndex < sensorData.trackedBodiesCount) + // { + // return sensorData.alTrackedBodies[bodyIndex].iBodyIndex; + // } + + // return -1; + //} + + /// + /// Gets the tracking state of the joint. + /// + /// The joint tracking state. + /// Sensor index. + /// Body index. + /// User joint + public KinectInterop.TrackingState GetSensorJointTrackingState(int sensorIndex, int bodyIndex, KinectInterop.JointType joint) + { + return GetSensorJointTrackingState(sensorIndex, bodyIndex, (int)joint); + } + + /// + /// Gets the tracking state of the joint. + /// + /// The joint tracking state. + /// Sensor index. + /// Body index. + /// Joint index + public KinectInterop.TrackingState GetSensorJointTrackingState(int sensorIndex, int bodyIndex, int joint) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + if (sensorData != null && sensorData.alTrackedBodies != null && bodyIndex >= 0 && bodyIndex < sensorData.trackedBodiesCount) + { + KinectInterop.JointData jointData = sensorData.alTrackedBodies[bodyIndex].joint[joint]; + return jointData.trackingState; + } + + return KinectInterop.TrackingState.NotTracked; + } + + /// + /// Determines whether the given joint of the specified user is being tracked. + /// + /// Sensor index. + /// Body index. + /// Joint. + /// true if this instance is joint tracked the specified userId joint; otherwise, false. + public bool IsSensorJointTracked(int sensorIndex, int bodyIndex, KinectInterop.JointType joint) + { + return IsSensorJointTracked(sensorIndex, bodyIndex, (int)joint); + } + + /// + /// Determines whether the given joint of the specified user is being tracked. + /// + /// Sensor index. + /// Body index. + /// Joint index. + /// true if this instance is joint tracked the specified userId joint; otherwise, false. + public bool IsSensorJointTracked(int sensorIndex, int bodyIndex, int joint) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + if (sensorData != null && sensorData.alTrackedBodies != null && bodyIndex >= 0 && bodyIndex < sensorData.trackedBodiesCount) + { + KinectInterop.JointData jointData = sensorData.alTrackedBodies[bodyIndex].joint[joint]; + + return ignoreInferredJoints ? ((int)jointData.trackingState >= (int)KinectInterop.TrackingState.Tracked) : + (jointData.trackingState != KinectInterop.TrackingState.NotTracked); + } + + return false; + } + + /// + /// Gets the joint position of the body, tracked by the respectuve sensor, in sensor's coordinate system, in meters. + /// + /// Sensor index. + /// Body index. + /// Joint. + /// Whether to apply the sensor space scale or not + /// The joint position in sensor's coordinate system. + public Vector3 GetSensorJointKinectPosition(int sensorIndex, int bodyIndex, KinectInterop.JointType joint, bool applySpaceScale) + { + return GetSensorJointKinectPosition(sensorIndex, bodyIndex, (int)joint, applySpaceScale); + } + + /// + /// Gets the joint position of the body, tracked by the respectuve sensor, in sensor's coordinate system, in meters. + /// + /// Sensor index. + /// Body index. + /// Joint index. + /// Whether to apply the sensor space scale or not + /// The joint position in sensor's coordinate system. + public Vector3 GetSensorJointKinectPosition(int sensorIndex, int bodyIndex, int joint, bool applySpaceScale) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + if (sensorData != null && sensorData.alTrackedBodies != null && bodyIndex >= 0 && bodyIndex < sensorData.trackedBodiesCount) + { + Vector3 jointKinectPos = sensorData.alTrackedBodies[bodyIndex].joint[joint].kinectPos; + + if (applySpaceScale && btSensorIndex >= 0 && btSensorIndex < sensorDatas.Count) + { + Vector3 spaceScale = sensorDatas[sensorIndex].sensorSpaceScale; + return new Vector3(jointKinectPos.x * spaceScale.x, jointKinectPos.y * spaceScale.y, jointKinectPos.z * spaceScale.z); + } + else + { + return jointKinectPos; + } + } + + return Vector3.zero; + } + + /// + /// Gets the joint position of the body, tracked by the respectuve sensor, in meters. + /// + /// Sensor index. + /// Body index. + /// Joint. + /// The joint position. + public Vector3 GetSensorJointPosition(int sensorIndex, int bodyIndex, KinectInterop.JointType joint) + { + return GetSensorJointPosition(sensorIndex, bodyIndex, (int)joint); + } + + /// + /// Gets the joint position of the body, tracked by the respectuve sensor, in meters. + /// + /// Sensor index. + /// Body index. + /// Joint index. + /// The joint position. + public Vector3 GetSensorJointPosition(int sensorIndex, int bodyIndex, int joint) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + if (sensorData != null && sensorData.alTrackedBodies != null && bodyIndex >= 0 && bodyIndex < sensorData.trackedBodiesCount) + { + return sensorData.alTrackedBodies[bodyIndex].joint[joint].position; + } + + return Vector3.zero; + } + + /// + /// Gets the joint orientation of the body, tracked by the respectuve sensor. + /// + /// Sensor index. + /// Body index. + /// Joint. + /// If set to true, this means non-mirrored rotation. + /// The joint rotation. + public Quaternion GetSensorJointOrientation(int sensorIndex, int bodyIndex, KinectInterop.JointType joint, bool flip) + { + return GetSensorJointOrientation(sensorIndex, bodyIndex, (int)joint, flip); + } + + /// + /// Gets the joint orientation of the body, tracked by the respectuve sensor. + /// + /// Sensor index. + /// Body index. + /// Joint index. + /// If set to true, this means non-mirrored rotation. + /// The joint rotation. + public Quaternion GetSensorJointOrientation(int sensorIndex, int bodyIndex, int joint, bool flip) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + if (sensorData != null && sensorData.alTrackedBodies != null && bodyIndex >= 0 && bodyIndex < sensorData.trackedBodiesCount) + { + if (flip) + return sensorData.alTrackedBodies[bodyIndex].joint[joint].normalRotation; + else + return sensorData.alTrackedBodies[bodyIndex].joint[joint].mirroredRotation; + } + + return Quaternion.identity; + } + + /// + /// Determines whether the user with the specified index is currently detected by the sensor + /// + /// true if the user is detected; otherwise, false. + /// The user index. + public bool IsUserDetected(int i) + { + if (i >= 0 && i < KinectInterop.Constants.MaxBodyCount) + { + return (userManager.aUserIndexIds[i] != 0); + } + + return false; + } + + /// + /// Determines whether the user with the specified userId is in the list of tracked users or not. + /// + /// true if the user with the specified userId is tracked; otherwise, false. + /// User identifier. + public bool IsUserTracked(ulong userId) + { + return userManager.dictUserIdToIndex.ContainsKey(userId); + } + + /// + /// Gets the number of currently tracked users. + /// + /// The users count. + public int GetUsersCount() + { + return userManager.alUserIds.Count; + } + + /// + /// Gets the IDs of all currently tracked users. + /// + /// The list of all currently tracked users. + public List GetAllUserIds() + { + return new List(userManager.alUserIds); + } + + /// + /// Gets the max player-index of the currently tracked users. + /// + /// The max player-index of the tracked users. + public int GetMaxUserIndex() + { + int maxIndex = -1; + + for (int i = KinectInterop.Constants.MaxBodyCount - 1; i >= 0; i--) + { + if (userManager.aUserIndexIds[i] != 0) + { + maxIndex = i; + break; + } + } + + return maxIndex; + } + + /// + /// Gets the player indices of all currently tracked users. + /// + /// The list of player-indices of all tracked users. + public List GetAllUserIndices() + { + List alIndices = new List(); + + for (int i = 0; i < KinectInterop.Constants.MaxBodyCount; i++) + { + if (userManager.aUserIndexIds[i] != 0) + { + alIndices.Add(i); + } + } + + return alIndices; + } + + /// + /// Gets the user ID by the specified user index. + /// + /// The user ID by index. + /// The user index. + public ulong GetUserIdByIndex(int i) + { + if (i >= 0 && i < KinectInterop.Constants.MaxBodyCount) + { + return userManager.aUserIndexIds[i]; + } + + return 0; + } + + /// + /// Gets the user index by the specified user ID. + /// + /// The user index by user ID. + /// User ID + public int GetUserIndexById(ulong userId) + { + if (userId == 0) + return -1; + + for (int i = 0; i < userManager.aUserIndexIds.Length; i++) + { + if (userManager.aUserIndexIds[i] == userId) + { + return i; + } + } + + return -1; + } + + /// + /// Gets the body index by the specified user ID, or -1 if the user ID does not exist. + /// + /// The body index by user ID. + /// User ID + public int GetBodyIndexByUserId(ulong userId) + { + if (userManager.dictUserIdToIndex.ContainsKey(userId)) + { + int index = userManager.dictUserIdToIndex[userId]; + + if (index >= 0 && index < trackedBodiesCount && alTrackedBodies[index].bIsTracked) + { + int bodyIndex = alTrackedBodies[index].iBodyIndex; + return bodyIndex; + } + } + + return -1; + } + + /// + /// Gets the list of tracked body indices. + /// + /// The list of body indices. + public List GetTrackedBodyIndices() + { + List alBodyIndices = new List(userManager.dictUserIdToIndex.Values); + return alBodyIndices; + } + + /// + /// Determines whether the tracked users are limited by their number or distance or not. + /// + /// true if the users are limited by number or distance; otherwise, false. + public bool IsTrackedUsersLimited() + { + return bLimitedUsers; + } + + /// + /// Gets the UserID of the primary user (the first or the closest one), or 0 if no user is detected. + /// + /// The primary user ID. + public ulong GetPrimaryUserID() + { + return userManager.liPrimaryUserId; + } + + /// + /// Sets the primary user ID, in order to change the active user. + /// + /// true, if primary user ID was set, false otherwise. + /// User ID + public bool SetPrimaryUserID(ulong userId) + { + bool bResult = false; + + if (userManager.alUserIds.Contains(userId) || (userId == 0)) + { + userManager.liPrimaryUserId = userId; + bResult = true; + } + + return bResult; + } + + /// + /// Gets the body index, if there is single body selected to be displayed on the user map, or -1 if all bodies are displayed. + /// + /// The displayed body index, or -1 if all bodies are displayed. + public int GetDisplayedBodyIndex() + { + return selectedBodyIndex != 255 ? selectedBodyIndex : -1; + } + + /// + /// Sets the body index, if a single body must be displayed on the user map, or -1 if all bodies must be displayed. + /// + /// true, if the change was successful, false otherwise. + /// The single body index, or -1 if all bodies must be displayed. + public void SetDisplayedBodyIndex(int iBodyIndex) + { + selectedBodyIndex = (byte)(iBodyIndex >= 0 ? iBodyIndex : 255); + } + + /// + /// Gets the last body frame timestamp. + /// + /// The last body frame timestamp. + public ulong GetBodyFrameTimestamp() + { + return lastBodyFrameTime; + } + + // do not change the data in the structure directly + /// + /// Gets all user body data (for internal use only) + /// + /// Array of the available user body data + internal KinectInterop.BodyData[] GetAllUserBodyData() + { + return alTrackedBodies; + } + + // do not change the data in the structure directly + /// + /// Gets the user body data (for internal purposes only). + /// + /// The user body data. + /// User ID + internal KinectInterop.BodyData GetUserBodyData(ulong userId) + { + if (userManager.dictUserIdToIndex.ContainsKey(userId)) + { + int index = userManager.dictUserIdToIndex[userId]; + + if (index >= 0 && index < trackedBodiesCount) + { + return alTrackedBodies[index]; + } + } + + return new KinectInterop.BodyData((int)KinectInterop.JointType.Count); + } + + /// + /// Gets the user body timestamp. + /// + /// User body timestamp. + /// User ID + public ulong GetUserTimestamp(ulong userId) + { + if (userManager.dictUserIdToIndex.ContainsKey(userId)) + { + int index = userManager.dictUserIdToIndex[userId]; + + if (index >= 0 && index < trackedBodiesCount) + { + return alTrackedBodies[index].bodyTimestamp; + } + } + + return 0; + } + + /// + /// Gets the user position in Kinect coordinate system, in meters. + /// + /// The user kinect position. + /// User ID + /// Whether to apply the sensor space scale or not + public Vector3 GetUserKinectPosition(ulong userId, bool applySpaceScale) + { + if (userManager.dictUserIdToIndex.ContainsKey(userId)) + { + int index = userManager.dictUserIdToIndex[userId]; + + if (index >= 0 && index < trackedBodiesCount && alTrackedBodies[index].bIsTracked) + { + Vector3 userKinectPos = alTrackedBodies[index].kinectPos; + + if (applySpaceScale && btSensorIndex >= 0 && btSensorIndex < sensorDatas.Count) + { + Vector3 spaceScale = sensorDatas[btSensorIndex].sensorSpaceScale; + return new Vector3(userKinectPos.x * spaceScale.x, userKinectPos.y * spaceScale.y, userKinectPos.z); + } + else + { + return userKinectPos; + } + } + } + + return Vector3.zero; + } + + /// + /// Gets the user position, relative to the sensor, in meters. + /// + /// The user position. + /// User ID + public Vector3 GetUserPosition(ulong userId) + { + if (userManager.dictUserIdToIndex.ContainsKey(userId)) + { + int index = userManager.dictUserIdToIndex[userId]; + + if (index >= 0 && index < trackedBodiesCount && alTrackedBodies[index].bIsTracked) + { + return alTrackedBodies[index].position; + } + } + + return Vector3.zero; + } + + /// + /// Gets the user orientation. + /// + /// The user rotation. + /// User ID + /// If set to true, this means non-mirrored rotation. + public Quaternion GetUserOrientation(ulong userId, bool flip) + { + if (userManager.dictUserIdToIndex.ContainsKey(userId)) + { + int index = userManager.dictUserIdToIndex[userId]; + + if (index >= 0 && index < trackedBodiesCount && alTrackedBodies[index].bIsTracked) + { + if (flip) + return alTrackedBodies[index].normalRotation; + else + return alTrackedBodies[index].mirroredRotation; + } + } + + return Quaternion.identity; + } + + /// + /// Gets the index of the sensor, used for the primary body tracking. + /// + /// + public int GetPrimaryBodySensorIndex() + { + return btSensorIndex; + } + + /// + /// Returns the sensor orientation angle (Z-angle), in degrees, of the primary sensor used for body tracking. + /// + /// Sensor orientation angle + public float GetPrimaryBodySensorOrientationAngle() + { + if(btSensorIndex >= 0 && btSensorIndex < sensorDatas.Count) + { + KinectInterop.SensorData sensorData = sensorDatas[btSensorIndex]; + + if (sensorData != null && sensorData.sensorInterface != null) + { + return sensorData.sensorInterface.GetBodyTrackerOrientationAngle(); + } + } + + return 0f; + } + + /// + /// Gets the number of bodies, tracked by the sensor. + /// + /// The body count. + public int GetBodyCount() + { + return (int)trackedBodiesCount; + } + + /// + /// Gets the maximum possible number of bodies, tracked by the sensor. + /// + /// The maximum body count. + public int GetMaxBodyCount() + { + return KinectInterop.Constants.MaxBodyCount; + } + + /// + /// Gets the the number of body joints, tracked by the sensor. + /// + /// The count of joints. + public int GetJointCount() + { + return (int)KinectInterop.JointType.Count; + } + + /// + /// Gets the parent joint of the given joint. + /// + /// The parent joint. + /// Joint. + public KinectInterop.JointType GetParentJoint(KinectInterop.JointType joint) + { + return KinectInterop.GetParentJoint(joint); + } + + /// + /// Gets the next joint of the given joint. + /// + /// The next joint. + /// Joint. + public KinectInterop.JointType GetNextJoint(KinectInterop.JointType joint) + { + return KinectInterop.GetNextJoint(joint); + } + + /// + /// Gets the tracking state of the joint. + /// + /// The joint tracking state. + /// User ID + /// User joint + public KinectInterop.TrackingState GetJointTrackingState(ulong userId, KinectInterop.JointType joint) + { + return GetJointTrackingState(userId, (int)joint); + } + + /// + /// Gets the tracking state of the joint. + /// + /// The joint tracking state. + /// User ID + /// Joint index + public KinectInterop.TrackingState GetJointTrackingState(ulong userId, int joint) + { + if (userManager.dictUserIdToIndex.ContainsKey(userId)) + { + int index = userManager.dictUserIdToIndex[userId]; + + if (index >= 0 && index < trackedBodiesCount && alTrackedBodies[index].bIsTracked) + { + if (joint >= 0 && joint < (int)KinectInterop.JointType.Count) + { + return alTrackedBodies[index].joint[joint].trackingState; + } + } + } + + return KinectInterop.TrackingState.NotTracked; + } + + /// + /// Determines whether the given joint of the specified user is being tracked. + /// + /// true if this instance is joint tracked the specified userId joint; otherwise, false. + /// User ID + /// User joint + public bool IsJointTracked(ulong userId, KinectInterop.JointType joint) + { + return IsJointTracked(userId, (int)joint); + } + + /// + /// Determines whether the given joint of the specified user is being tracked. + /// + /// true if this instance is joint tracked the specified userId joint; otherwise, false. + /// User ID + /// Joint index + public bool IsJointTracked(ulong userId, int joint) + { + if (userManager.dictUserIdToIndex.ContainsKey(userId)) + { + int index = userManager.dictUserIdToIndex[userId]; + + if (index >= 0 && index < trackedBodiesCount && alTrackedBodies[index].bIsTracked) + { + if (joint >= 0 && joint < (int)KinectInterop.JointType.Count) + { + KinectInterop.JointData jointData = alTrackedBodies[index].joint[joint]; + + return ignoreInferredJoints ? ((int)jointData.trackingState >= (int)KinectInterop.TrackingState.Tracked) : + (jointData.trackingState != KinectInterop.TrackingState.NotTracked); + } + } + } + + return false; + } + + /// + /// Gets the joint position of the specified user, in Kinect coordinate system, in meters. + /// + /// The joint kinect position. + /// User ID + /// User joint + /// Whether to apply the sensor space scale or not + public Vector3 GetJointKinectPosition(ulong userId, KinectInterop.JointType joint, bool applySpaceScale) + { + return GetJointKinectPosition(userId, (int)joint, applySpaceScale); + } + + /// + /// Gets the joint position of the specified user, in Kinect coordinate system, in meters. + /// + /// The joint kinect position. + /// User ID + /// Joint index + /// Whether to apply the sensor space scale or not + public Vector3 GetJointKinectPosition(ulong userId, int joint, bool applySpaceScale) + { + if (userManager.dictUserIdToIndex.ContainsKey(userId)) + { + int index = userManager.dictUserIdToIndex[userId]; + + if (index >= 0 && index < trackedBodiesCount && alTrackedBodies[index].bIsTracked) + { + if (joint >= 0 && joint < (int)KinectInterop.JointType.Count) + { + KinectInterop.JointData jointData = alTrackedBodies[index].joint[joint]; + Vector3 jointKinectPos = jointData.kinectPos; + + if (applySpaceScale && btSensorIndex >= 0 && btSensorIndex < sensorDatas.Count) + { + Vector3 spaceScale = sensorDatas[btSensorIndex].sensorSpaceScale; + return new Vector3(jointKinectPos.x * spaceScale.x, jointKinectPos.y * spaceScale.y, jointKinectPos.z); + } + else + { + return jointKinectPos; + } + } + } + } + + return Vector3.zero; + } + + /// + /// Gets the joint position of the specified user, in meters. + /// + /// The joint position. + /// User ID + /// User joint + public Vector3 GetJointPosition(ulong userId, KinectInterop.JointType joint) + { + return GetJointPosition(userId, (int)joint); + } + + /// + /// Gets the joint position of the specified user, in meters. + /// + /// The joint position. + /// User ID + /// Joint index + public Vector3 GetJointPosition(ulong userId, int joint) + { + if (userManager.dictUserIdToIndex.ContainsKey(userId)) + { + int index = userManager.dictUserIdToIndex[userId]; + + if (index >= 0 && index < trackedBodiesCount && alTrackedBodies[index].bIsTracked) + { + if (joint >= 0 && joint < (int)KinectInterop.JointType.Count) + { + KinectInterop.JointData jointData = alTrackedBodies[index].joint[joint]; + return jointData.position; + } + } + } + + return Vector3.zero; + } + + /// + /// Gets the joint velocity for the specified user and joint, in meters/s. + /// + /// The joint velocity. + /// User ID + /// Joint index. + public Vector3 GetJointVelocity(ulong userId, KinectInterop.JointType joint) + { + return GetJointVelocity(userId, (int)joint); + } + + /// + /// Gets the joint velocity for the specified user and joint, in meters/s. + /// + /// The joint velocity. + /// User ID + /// Joint index. + public Vector3 GetJointVelocity(ulong userId, int joint) + { + if (userManager.dictUserIdToIndex.ContainsKey(userId)) + { + int index = userManager.dictUserIdToIndex[userId]; + + if (index >= 0 && index < trackedBodiesCount && alTrackedBodies[index].bIsTracked) + { + if (joint >= 0 && joint < (int)KinectInterop.JointType.Count) + { + return alTrackedBodies[index].joint[joint].posVel; + } + } + } + + return Vector3.zero; + } + + + /// + /// Gets the joint direction of the specified user, relative to its parent joint. + /// + /// The joint direction. + /// User ID + /// User joint + /// If set to true flips the X-coordinate + /// If set to true flips the Z-coordinate + public Vector3 GetJointDirection(ulong userId, KinectInterop.JointType joint, bool flipX, bool flipZ) + { + return GetJointDirection(userId, (int)joint, flipX, flipZ); + } + + /// + /// Gets the joint direction of the specified user, relative to its parent joint. + /// + /// The joint direction. + /// User ID + /// Joint index + /// If set to true flips the X-coordinate + /// If set to true flips the Z-coordinate + public Vector3 GetJointDirection(ulong userId, int joint, bool flipX, bool flipZ) + { + if (userManager.dictUserIdToIndex.ContainsKey(userId)) + { + int index = userManager.dictUserIdToIndex[userId]; + + if (index >= 0 && index < trackedBodiesCount && alTrackedBodies[index].bIsTracked) + { + if (joint >= 0 && joint < (int)KinectInterop.JointType.Count) + { + KinectInterop.JointData jointData = alTrackedBodies[index].joint[joint]; + Vector3 jointDir = jointData.direction; + + if (flipX) + jointDir.x = -jointDir.x; + + if (flipZ) + jointDir.z = -jointDir.z; + + return jointDir; + } + } + } + + return Vector3.zero; + } + + /// + /// Gets the direction between the given joints of the specified user. + /// + /// The direction between joints. + /// User ID + /// First joint + /// Second joint + /// If set to true flips the X-coordinate + /// If set to true flips the Z-coordinate + public Vector3 GetDirectionBetweenJoints(ulong userId, KinectInterop.JointType firstJoint, KinectInterop.JointType secondJoint, bool flipX, bool flipZ) + { + return GetDirectionBetweenJoints(userId, (int)firstJoint, (int)secondJoint, flipX, flipZ); + } + + /// + /// Gets the direction between the given joints of the specified user. + /// + /// The direction between joints. + /// User ID + /// First joint index + /// Second joint index + /// If set to true flips the X-coordinate + /// If set to true flips the Z-coordinate + public Vector3 GetDirectionBetweenJoints(ulong userId, int firstJoint, int secondJoint, bool flipX, bool flipZ) + { + if (userManager.dictUserIdToIndex.ContainsKey(userId)) + { + int index = userManager.dictUserIdToIndex[userId]; + + if (index >= 0 && index < trackedBodiesCount && alTrackedBodies[index].bIsTracked) + { + KinectInterop.BodyData bodyData = alTrackedBodies[index]; + + if (firstJoint >= 0 && firstJoint < (int)KinectInterop.JointType.Count && + secondJoint >= 0 && secondJoint < (int)KinectInterop.JointType.Count) + { + Vector3 firstJointPos = bodyData.joint[firstJoint].position; + Vector3 secondJointPos = bodyData.joint[secondJoint].position; + Vector3 jointDir = secondJointPos - firstJointPos; + + if (flipX) + jointDir.x = -jointDir.x; + + if (flipZ) + jointDir.z = -jointDir.z; + + return jointDir; + } + } + } + + return Vector3.zero; + } + + /// + /// Gets the joint orientation of the specified user. + /// + /// The joint rotation. + /// User ID + /// User joint + /// If set to true, this means non-mirrored rotation + public Quaternion GetJointOrientation(ulong userId, KinectInterop.JointType joint, bool flip) + { + return GetJointOrientation(userId, (int)joint, flip); + } + + /// + /// Gets the joint orientation of the specified user. + /// + /// The joint rotation. + /// User ID + /// Joint index + /// If set to true, this means non-mirrored rotation + public Quaternion GetJointOrientation(ulong userId, int joint, bool flip) + { + if (userManager.dictUserIdToIndex.ContainsKey(userId)) + { + int index = userManager.dictUserIdToIndex[userId]; + + if (index >= 0 && index < trackedBodiesCount && alTrackedBodies[index].bIsTracked) + { + if (flip) + return alTrackedBodies[index].joint[joint].normalRotation; + else + return alTrackedBodies[index].joint[joint].mirroredRotation; + } + } + + return Quaternion.identity; + } + + /// + /// Gets the angle between bones at the given joint. + /// + /// The angle at joint. + /// User ID + /// User joint + public float GetAngleAtJoint(ulong userId, KinectInterop.JointType joint) + { + return GetAngleAtJoint(userId, (int)joint); + } + + /// + /// Gets the angle between bones at the given joint. + /// + /// The angle at joint. + /// User ID + /// Joint index + public float GetAngleAtJoint(ulong userId, int joint) + { + int pjoint = (int)KinectInterop.GetParentJoint((KinectInterop.JointType)joint); + int njoint = (int)KinectInterop.GetNextJoint((KinectInterop.JointType)joint); + + if (pjoint != joint && njoint != joint) + { + Vector3 pos1 = GetJointPosition(userId, pjoint); + Vector3 pos2 = GetJointPosition(userId, joint); + Vector3 pos3 = GetJointPosition(userId, njoint); + + if (pos1 != Vector3.zero && pos2 != Vector3.zero && pos3 != Vector3.zero) + { + Vector3 dirP = pos1 - pos2; + Vector3 dirN = pos3 - pos2; + float fAngle = Vector3.Angle(dirP, dirN); + + return fAngle; + } + } + + return 0f; + } + + // joints used for estimation of the user body bounds + private static int[] UBB_Joints = { + (int)KinectInterop.JointType.Pelvis, (int)KinectInterop.JointType.Neck, (int)KinectInterop.JointType.Head, (int)KinectInterop.JointType.EyeLeft, (int)KinectInterop.JointType.EyeRight, // up + (int)KinectInterop.JointType.ShoulderLeft, (int)KinectInterop.JointType.ElbowLeft, (int)KinectInterop.JointType.WristLeft, (int)KinectInterop.JointType.HandLeft, // left + (int)KinectInterop.JointType.ShoulderRight, (int)KinectInterop.JointType.ElbowRight, (int)KinectInterop.JointType.WristRight, (int)KinectInterop.JointType.HandRight, // right + (int)KinectInterop.JointType.KneeLeft, (int)KinectInterop.JointType.AnkleLeft, (int)KinectInterop.JointType.FootLeft, // down left + (int)KinectInterop.JointType.KneeRight, (int)KinectInterop.JointType.AnkleRight, (int)KinectInterop.JointType.FootRight, // down right + }; + + /// + /// Gets the user bounding box as min & max points, in space coordinates. + /// + /// User ID + /// Foreground camera, in case of color image overlay + /// Sensor index, in case of image overlay + /// Background rectangle, in case of color image overlay + /// Returned min point + /// Returned max point + /// true on success, false otherwise + public bool GetUserBoundingBox(ulong userId, Camera foregroundCamera, int sensorIndex, Rect backgroundRect, + out Vector3 posMin, out Vector3 posMax) + { + if(userId == 0 || !IsUserTracked(userId)) + { + posMin = Vector3.zero; + posMax = Vector3.zero; + return false; + } + + float xMin = float.MaxValue, xMax = float.MinValue; + float yMin = float.MaxValue, yMax = float.MinValue; + float zMin = float.MaxValue, zMax = float.MinValue; + + //float posMinY = float.MaxValue; int jointMinY = -1; + //float posMaxY = float.MinValue; int jointMaxY = -1; + + int iCount = UBB_Joints.Length; + for (int i = 0; i < iCount; i++) + { + int j = UBB_Joints[i]; + + if (IsJointTracked(userId, j)) + { + Vector3 jPos = foregroundCamera != null ? + GetJointPosColorOverlay(userId, j, sensorIndex, foregroundCamera, backgroundRect) : + GetJointPosition(userId, j); + //Debug.Log("User " + userId + " " + (KinectInterop.JointType)j + ", pos: " + jPos); + + if(jPos != Vector3.zero) + { + if (jPos.x < xMin) xMin = jPos.x; + if (jPos.y < yMin) yMin = jPos.y; + if (jPos.z < zMin) zMin = jPos.z; + + if (jPos.x > xMax) xMax = jPos.x; + if (jPos.y > yMax) yMax = jPos.y; + if (jPos.z > zMax) zMax = jPos.z; + + //if (jPos.y < posMinY) + //{ + // posMinY = jPos.y; + // jointMinY = j; + //} + + //if (jPos.y > posMaxY) + //{ + // posMaxY = jPos.y; + // jointMaxY = j; + //} + } + } + } + + //if(jointMinY >= 0) + //{ + // Vector3 jPos = GetJointPosColorOverlayToDepthSpace(userId, jointMinY, sensorIndex); + // Debug.Log("MinY " + (KinectInterop.JointType)jointMinY + " - " + jPos); + // if (jPos != Vector3.zero && jPos.y < yMin) + // yMin = jPos.y; + //} + + //if(jointMaxY >= 0) + //{ + // Vector3 jPos = GetJointPosColorOverlayToDepthSpace(userId, jointMaxY, sensorIndex); + // Debug.Log("MaxY " + (KinectInterop.JointType)jointMaxY + " - " + jPos); + // if (jPos != Vector3.zero && jPos.y > yMax) + // yMax = jPos.y; + //} + + posMin = new Vector3(xMin, yMin, zMin); + posMax = new Vector3(xMax, yMax, zMax); + + bool bSuccess = xMin != float.MaxValue && xMax != float.MinValue && + yMin != float.MaxValue && yMax != float.MinValue && + zMin != float.MaxValue && zMax != float.MinValue; + //Debug.Log("User " + userId + " - pMin: " + posMin + ", pMax: " + posMax + ", success: " + bSuccess); + + return bSuccess; + } + + /// + /// Gets the left hand state for the specified user. + /// + /// The left hand state. + /// User ID + public KinectInterop.HandState GetLeftHandState(ulong userId) + { + if (userManager.dictUserIdToIndex.ContainsKey(userId)) + { + int index = userManager.dictUserIdToIndex[userId]; + + if (index >= 0 && index < trackedBodiesCount && alTrackedBodies[index].bIsTracked) + { + return alTrackedBodies[index].leftHandState; + } + } + + return KinectInterop.HandState.NotTracked; + } + + /// + /// Gets the right hand state for the specified user. + /// + /// The right hand state. + /// User ID + public KinectInterop.HandState GetRightHandState(ulong userId) + { + if (userManager.dictUserIdToIndex.ContainsKey(userId)) + { + int index = userManager.dictUserIdToIndex[userId]; + + if (index >= 0 && index < trackedBodiesCount && alTrackedBodies[index].bIsTracked) + { + return alTrackedBodies[index].rightHandState; + } + } + + return KinectInterop.HandState.NotTracked; + } + + /// + /// Gets the left hand interaction box for the specified user. + /// + /// true, if left hand interaction box was gotten, false otherwise. + /// User ID + /// Vector containing the left, bottom and back coordinates, in meters + /// Vector containing the right, top and front coordinates, in meters + /// If set to true, the previously set coordinates are valid + public bool GetLeftHandInteractionBox(ulong userId, ref Vector3 leftBotBack, ref Vector3 rightTopFront, bool bValidBox) + { + if (userManager.dictUserIdToIndex.ContainsKey(userId)) + { + int index = userManager.dictUserIdToIndex[userId]; + + if (index >= 0 && index < trackedBodiesCount && alTrackedBodies[index].bIsTracked) + { + KinectInterop.BodyData bodyData = alTrackedBodies[index]; + bool bResult = true; + + if (bodyData.joint[(int)KinectInterop.JointType.ShoulderRight].trackingState != KinectInterop.TrackingState.NotTracked && + bodyData.joint[(int)KinectInterop.JointType.HipLeft].trackingState != KinectInterop.TrackingState.NotTracked) + { + rightTopFront.x = bodyData.joint[(int)KinectInterop.JointType.ShoulderRight].position.x; + leftBotBack.x = rightTopFront.x - 2 * (rightTopFront.x - bodyData.joint[(int)KinectInterop.JointType.HipLeft].position.x); + } + else + { + bResult = bValidBox; + } + + if (bodyData.joint[(int)KinectInterop.JointType.HipRight].trackingState != KinectInterop.TrackingState.NotTracked && + bodyData.joint[(int)KinectInterop.JointType.ShoulderRight].trackingState != KinectInterop.TrackingState.NotTracked) + { + leftBotBack.y = bodyData.joint[(int)KinectInterop.JointType.HipRight].position.y; + rightTopFront.y = bodyData.joint[(int)KinectInterop.JointType.ShoulderRight].position.y; + + float fDelta = (rightTopFront.y - leftBotBack.y) * 0.35f; // * 2 / 3; + leftBotBack.y += fDelta; + rightTopFront.y += fDelta; + } + else + { + bResult = bValidBox; + } + + if (bodyData.joint[(int)KinectInterop.JointType.Pelvis].trackingState != KinectInterop.TrackingState.NotTracked) + { + //leftBotBack.z = bodyData.joint[(int)KinectInterop.JointType.SpineBase].position.z; + leftBotBack.z = !ignoreZCoordinates ? bodyData.joint[(int)KinectInterop.JointType.Pelvis].position.z : + (bodyData.joint[(int)KinectInterop.JointType.HandLeft].position.z + 0.1f); + rightTopFront.z = leftBotBack.z - 0.5f; + } + else + { + bResult = bValidBox; + } + + return bResult; + } + } + + return false; + } + + /// + /// Gets the right hand interaction box for the specified user. + /// + /// true, if right hand interaction box was gotten, false otherwise. + /// User ID + /// Vector containing the left, bottom and back coordinates, in meters + /// ector containing the right, top and front coordinates, in meters + /// If set to true, the previously set coordinates are valid + public bool GetRightHandInteractionBox(ulong userId, ref Vector3 leftBotBack, ref Vector3 rightTopFront, bool bValidBox) + { + if (userManager.dictUserIdToIndex.ContainsKey(userId)) + { + int index = userManager.dictUserIdToIndex[userId]; + + if (index >= 0 && index < trackedBodiesCount && alTrackedBodies[index].bIsTracked) + { + KinectInterop.BodyData bodyData = alTrackedBodies[index]; + bool bResult = true; + + if (bodyData.joint[(int)KinectInterop.JointType.ShoulderLeft].trackingState != KinectInterop.TrackingState.NotTracked && + bodyData.joint[(int)KinectInterop.JointType.HipRight].trackingState != KinectInterop.TrackingState.NotTracked) + { + leftBotBack.x = bodyData.joint[(int)KinectInterop.JointType.ShoulderLeft].position.x; + rightTopFront.x = leftBotBack.x + 2 * (bodyData.joint[(int)KinectInterop.JointType.HipRight].position.x - leftBotBack.x); + } + else + { + bResult = bValidBox; + } + + if (bodyData.joint[(int)KinectInterop.JointType.HipLeft].trackingState != KinectInterop.TrackingState.NotTracked && + bodyData.joint[(int)KinectInterop.JointType.ShoulderLeft].trackingState != KinectInterop.TrackingState.NotTracked) + { + leftBotBack.y = bodyData.joint[(int)KinectInterop.JointType.HipLeft].position.y; + rightTopFront.y = bodyData.joint[(int)KinectInterop.JointType.ShoulderLeft].position.y; + + float fDelta = (rightTopFront.y - leftBotBack.y) * 0.35f; // * 2 / 3; + leftBotBack.y += fDelta; + rightTopFront.y += fDelta; + } + else + { + bResult = bValidBox; + } + + if (bodyData.joint[(int)KinectInterop.JointType.Pelvis].trackingState != KinectInterop.TrackingState.NotTracked) + { + //leftBotBack.z = bodyData.joint[(int)KinectInterop.JointType.SpineBase].position.z; + leftBotBack.z = !ignoreZCoordinates ? bodyData.joint[(int)KinectInterop.JointType.Pelvis].position.z : + (bodyData.joint[(int)KinectInterop.JointType.HandRight].position.z + 0.1f); + rightTopFront.z = leftBotBack.z - 0.5f; + } + else + { + bResult = bValidBox; + } + + return bResult; + } + } + + return false; + } + + /// + /// Gets the foreground rectangle of the depth image. + /// + /// Sensor index. + /// The foreground camera, or null if there is no foreground camera. + /// The foreground rectangle. + public Rect GetForegroundRectDepth(int sensorIndex, Camera foregroundCamera) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + if (sensorData == null) + return new Rect(); + + Rect cameraRect = foregroundCamera ? foregroundCamera.pixelRect : new Rect(0, 0, Screen.width, Screen.height); + float rectHeight = cameraRect.height; + float rectWidth = cameraRect.width; + + if (sensorData.depthImageWidth > sensorData.depthImageHeight) + rectWidth = rectHeight * sensorData.depthImageWidth / sensorData.depthImageHeight; + else + rectHeight = rectWidth * sensorData.depthImageHeight / sensorData.depthImageWidth; + + float foregroundOfsX = (cameraRect.width - rectWidth) / 2; + float foregroundOfsY = (cameraRect.height - rectHeight) / 2; + + Rect foregroundImgRect = new Rect(foregroundOfsX, foregroundOfsY, rectWidth, rectHeight); + + return foregroundImgRect; + } + + ///// + ///// Gets the foreground rectangle of the depth image. + ///// + ///// Sensor index. + ///// The foreground camera, or null if there is no foreground camera. + ///// Scale of the rectangle width. + ///// Scale of the rectangle height. + ///// The foreground rectangle. + //public Rect GetForegroundRectDepth(int sensorIndex, Camera foregroundCamera, float scaleX, float scaleY) + //{ + // KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + // if (sensorData == null) + // return new Rect(); + + // Rect cameraRect = foregroundCamera ? foregroundCamera.pixelRect : new Rect(0, 0, Screen.width, Screen.height); + // float rectHeight = scaleY * cameraRect.height; + // float rectWidth = scaleX * cameraRect.width; + + // if (sensorData.depthImageWidth > sensorData.depthImageHeight) + // rectWidth = scaleX * cameraRect.height * sensorData.depthImageWidth / sensorData.depthImageHeight; + // else + // rectHeight = scaleY * cameraRect.width * sensorData.depthImageHeight / sensorData.depthImageWidth; + + // float foregroundOfsX = (cameraRect.width - rectWidth) / 2; + // float foregroundOfsY = (cameraRect.height - rectHeight) / 2; + + // Rect foregroundImgRect = new Rect(foregroundOfsX, foregroundOfsY, rectWidth, rectHeight); + + // return foregroundImgRect; + //} + + /// + /// Gets the foreground rectangle of the color image. + /// + /// Sensor index. + /// The foreground camera, or null if there is no foreground camera. + /// The foreground rectangle. + public Rect GetForegroundRectColor(int sensorIndex, Camera foregroundCamera) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + if (sensorData == null) + return new Rect(); + + Rect cameraRect = foregroundCamera ? foregroundCamera.pixelRect : new Rect(0, 0, Screen.width, Screen.height); + float rectHeight = cameraRect.height; + float rectWidth = cameraRect.width; + + if (sensorData.colorImageWidth > sensorData.colorImageHeight) + rectWidth = rectHeight * sensorData.colorImageWidth / sensorData.colorImageHeight; + else + rectHeight = rectWidth * sensorData.colorImageHeight / sensorData.colorImageWidth; + + float foregroundOfsX = (cameraRect.width - rectWidth) / 2; + float foregroundOfsY = (cameraRect.height - rectHeight) / 2; + + Rect foregroundImgRect = new Rect(foregroundOfsX, foregroundOfsY, rectWidth, rectHeight); + + return foregroundImgRect; + } + + ///// + ///// Gets the foreground rectangle of the color image. + ///// + ///// Sensor index. + ///// The foreground camera, or null if there is no foreground camera. + ///// Scale of the rectangle width. + ///// Scale of the rectangle height. + ///// The foreground rectangle. + //public Rect GetForegroundRectColor(int sensorIndex, Camera foregroundCamera, float scaleX, float scaleY) + //{ + // KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + // if (sensorData == null) + // return new Rect(); + + // Rect cameraRect = foregroundCamera ? foregroundCamera.pixelRect : new Rect(0, 0, Screen.width, Screen.height); + // float rectHeight = scaleY * cameraRect.height; + // float rectWidth = scaleX * cameraRect.width; + + // if (sensorData.colorImageWidth > sensorData.colorImageHeight) + // rectWidth = scaleX * cameraRect.height * sensorData.colorImageWidth / sensorData.colorImageHeight; + // else + // rectHeight = scaleY * cameraRect.width * sensorData.colorImageHeight / sensorData.colorImageWidth; + + // float foregroundOfsX = (cameraRect.width - rectWidth) / 2; + // float foregroundOfsY = (cameraRect.height - rectHeight) / 2; + + // Rect foregroundImgRect = new Rect(foregroundOfsX, foregroundOfsY, rectWidth, rectHeight); + + // return foregroundImgRect; + //} + + /// + /// Gets the 3d overlay position of a point over the depth-image. + /// + /// The 3d position for depth overlay. + /// Depth image X + /// Depth image X + /// Distance in mm. If it is 0, the function will try to read the current depth value. + /// Camera used to visualize the 3d overlay position + /// Depth image rectangle on the screen + public Vector3 GetPosDepthOverlay(int dx, int dy, ushort depth, int sensorIndex, Camera camera, Rect imageRect) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + + float xScaled = (float)dx * imageRect.width / sensorData.depthImageWidth; + float yScaled = (float)dy * imageRect.height / sensorData.depthImageHeight; + + float xScreen = imageRect.x + (sensorData.depthImageScale.x > 0f ? xScaled : imageRect.width - xScaled); + float yScreen = imageRect.y + (sensorData.depthImageScale.y > 0f ? yScaled : imageRect.height - yScaled); + + if(depth == 0) + { + depth = sensorData.depthImage[dx + dy * sensorData.depthImageWidth]; + } + + if (depth != 0) + { + float zDistance = (float)depth / 1000f; + Vector3 vPosJoint = camera.ScreenToWorldPoint(new Vector3(xScreen, yScreen, zDistance)); + + return vPosJoint; + } + + return Vector3.zero; + } + + + /// + /// Gets the 3d overlay position of the given joint over the depth-image. + /// + /// The joint position for depth overlay. + /// User ID + /// User joint + /// Camera used to visualize the 3d overlay position + /// Depth image rectangle on the screen + public Vector3 GetJointPosDepthOverlay(ulong userId, KinectInterop.JointType joint, int sensorIndex, Camera camera, Rect imageRect) + { + return GetJointPosDepthOverlay(userId, (int)joint, sensorIndex, camera, imageRect); + } + + /// + /// Gets the 3d overlay position of the given joint over the depth-image. + /// + /// The joint position for depth overlay. + /// User ID + /// Joint index + /// Camera used to visualize the 3d overlay position + /// Depth image rectangle on the screen + public Vector3 GetJointPosDepthOverlay(ulong userId, int joint, int sensorIndex, Camera camera, Rect imageRect) + { + if (userManager.dictUserIdToIndex.ContainsKey(userId) && camera != null) + { + int index = userManager.dictUserIdToIndex[userId]; + + if (index >= 0 && index < trackedBodiesCount && alTrackedBodies[index].bIsTracked) + { + if (joint >= 0 && joint < (int)KinectInterop.JointType.Count) + { + Vector3 posJointRaw = Vector3.zero; + + if (sensorDatas.Count == 1) + { + KinectInterop.JointData jointData = alTrackedBodies[index].joint[joint]; + posJointRaw = jointData.kinectPos; + } + else + { + ulong bodyId = GetSensorBodyId(sensorIndex, userId); + int bodyIndex = GetSensorBodyIndex(sensorIndex, bodyId); + KinectInterop.SensorData sensorData = sensorIndex >= 0 && sensorIndex < sensorDatas.Count ? sensorDatas[sensorIndex] : null; + + if (sensorData != null && bodyIndex >= 0 && bodyIndex < sensorData.trackedBodiesCount) + { + KinectInterop.JointData jointData = sensorData.alTrackedBodies[bodyIndex].joint[joint]; + posJointRaw = jointData.kinectPos; + } + } + + return GetJointPosDepthOverlay(posJointRaw, sensorIndex, camera, imageRect); + } + } + } + + return Vector3.zero; + } + + /// + /// Gets the 3d overlay position of the given space point on the depth-image. + /// + /// Position in the sensor space + /// Sensor index + /// Camera used to visualize the 3d overlay position + /// Depth image rectangle on the screen + /// The overlay position on the depth image. + public Vector3 GetJointPosDepthOverlay(Vector3 posSensorSpace, int sensorIndex, Camera camera, Rect imageRect) + { + if (posSensorSpace != Vector3.zero) + { + // 3d position to depth + Vector2 posDepth = MapSpacePointToDepthCoords(sensorIndex, posSensorSpace); + + if (posDepth != Vector2.zero) + { + if (!float.IsInfinity(posDepth.x) && !float.IsInfinity(posDepth.y)) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + + float xScaled = (float)posDepth.x * imageRect.width / sensorData.depthImageWidth; + float yScaled = (float)posDepth.y * imageRect.height / sensorData.depthImageHeight; + + float xScreen = imageRect.x + (sensorData.depthImageScale.x > 0f ? xScaled : imageRect.width - xScaled); + //float yScreen = camera.pixelHeight - (imageRect.y + yScaled); + float yScreen = imageRect.y + (sensorData.depthImageScale.y > 0f ? yScaled : imageRect.height - yScaled); + + Plane cameraPlane = new Plane(camera.transform.forward, camera.transform.position); + float zDistance = cameraPlane.GetDistanceToPoint(posSensorSpace); + + Vector3 vPosJoint = camera.ScreenToWorldPoint(new Vector3(xScreen, yScreen, zDistance)); + + return vPosJoint; + } + } + } + + return Vector3.zero; + } + + /// + /// Gets the 3d overlay position of the given joint over the color-image. + /// + /// The joint position for color overlay. + /// User ID + /// User joint + /// Camera used to visualize the 3d overlay position + /// Color image rectangle on the screen + public Vector3 GetJointPosColorOverlay(ulong userId, KinectInterop.JointType joint, int sensorIndex, Camera camera, Rect imageRect) + { + return GetJointPosColorOverlay(userId, (int)joint, sensorIndex, camera, imageRect); + } + + /// + /// Gets the 3d overlay position of the given joint over the color-image. + /// + /// The joint position for color overlay. + /// User ID + /// Joint index + /// Camera used to visualize the 3d overlay position + /// Color image rectangle on the screen + public Vector3 GetJointPosColorOverlay(ulong userId, int joint, int sensorIndex, Camera camera, Rect imageRect) + { + if (userManager.dictUserIdToIndex.ContainsKey(userId) && camera != null) + { + int index = userManager.dictUserIdToIndex[userId]; + + if (index >= 0 && index < trackedBodiesCount && alTrackedBodies[index].bIsTracked) + { + if (joint >= 0 && joint < (int)KinectInterop.JointType.Count) + { + Vector3 posJointRaw = Vector3.zero; + + if (sensorDatas.Count == 1) + { + KinectInterop.JointData jointData = alTrackedBodies[index].joint[joint]; + posJointRaw = jointData.kinectPos; + } + else + { + ulong bodyId = GetSensorBodyId(sensorIndex, userId); + int bodyIndex = GetSensorBodyIndex(sensorIndex, bodyId); + KinectInterop.SensorData sensorData = sensorIndex >= 0 && sensorIndex < sensorDatas.Count ? sensorDatas[sensorIndex] : null; + + if (sensorData != null && bodyIndex >= 0 && bodyIndex < sensorData.trackedBodiesCount) + { + KinectInterop.JointData jointData = sensorData.alTrackedBodies[bodyIndex].joint[joint]; + posJointRaw = jointData.kinectPos; + } + } + + return GetJointPosColorOverlay(posJointRaw, sensorIndex, camera, imageRect); + } + } + } + + return Vector3.zero; + } + + /// + /// Gets the 3d overlay position of the given joint over the color-image. + /// + /// The joint position for color overlay. + /// Position in the sensor space + /// Camera used to visualize the 3d overlay position + /// Color image rectangle on the screen + public Vector3 GetJointPosColorOverlay(Vector3 posSensorSpace, int sensorIndex, Camera camera, Rect imageRect) + { + if (posSensorSpace != Vector3.zero) + { + // 3d position to depth + Vector2 posDepth = MapSpacePointToDepthCoords(sensorIndex, posSensorSpace); + ushort depthValue = GetDepthForPixel(sensorIndex, (int)posDepth.x, (int)posDepth.y); + + Vector2 posColor = Vector2.zero; + if (posDepth != Vector2.zero && depthValue > 0) + { + // depth pos to color pos + posColor = MapDepthPointToColorCoords(sensorIndex, posDepth, depthValue); + } + else if (posDepth != Vector2.zero && posSensorSpace.z > 0f) + { + // workaround - depth pos to color pos (use the sensor-pos-z instead) + depthValue = (ushort)(posSensorSpace.z * 1000f); + posColor = MapDepthPointToColorCoords(sensorIndex, posDepth, depthValue); + } + else + { + // workaround - try to use the color camera space, if depth is not available + KinectInterop.SensorData sensorData = sensorDatas[sensorIndex]; + if(sensorData != null && sensorData.depthCamIntr == null && sensorData.colorCamIntr != null) + { + posColor = MapSpacePointToColorCoords(sensorIndex, posSensorSpace); + } + } + + if (posColor.x != 0f && !float.IsInfinity(posColor.x)) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + + float xScaled = (float)posColor.x * imageRect.width / sensorData.colorImageWidth; + float yScaled = (float)posColor.y * imageRect.height / sensorData.colorImageHeight; + + float xScreen = imageRect.x + (sensorData.colorImageScale.x > 0f ? xScaled : imageRect.width - xScaled); + //float yScreen = camera.pixelHeight - (imageRect.y + yScaled); + float yScreen = imageRect.y + (sensorData.colorImageScale.y > 0f ? yScaled : imageRect.height - yScaled); + + //Plane cameraPlane = new Plane(camera.transform.forward, camera.transform.position); + //float zDistance = cameraPlane.GetDistanceToPoint(posSensorSpace); + ////float zDistance = (posSensorSpace - camera.transform.position).magnitude; + float zDistance = posSensorSpace.z; + + //Vector3 vPosJoint = camera.ViewportToWorldPoint(new Vector3(xNorm, yNorm, zDistance)); + Vector3 vPosJoint = camera.ScreenToWorldPoint(new Vector3(xScreen, yScreen, zDistance)); + + return vPosJoint; + } + } + + return Vector3.zero; + } + + /// + /// Gets the 2d overlay position of the given joint over the given image. + /// + /// The 2d joint position for color overlay. + /// User ID + /// User joint + /// Color image rectangle on the screen + public Vector2 GetJointPosColorOverlay(ulong userId, KinectInterop.JointType joint, int sensorIndex, Rect imageRect) + { + return GetJointPosColorOverlay(userId, (int)joint, sensorIndex, imageRect); + } + + /// + /// Gets the 2d overlay position of the given joint over the given image. + /// + /// The 2d joint position for color overlay. + /// User ID + /// Joint index + /// Color image rectangle on the screen + public Vector2 GetJointPosColorOverlay(ulong userId, int joint, int sensorIndex, Rect imageRect) + { + if (userManager.dictUserIdToIndex.ContainsKey(userId)) + { + int index = userManager.dictUserIdToIndex[userId]; + + if (index >= 0 && index < trackedBodiesCount && alTrackedBodies[index].bIsTracked) + { + if (joint >= 0 && joint < (int)KinectInterop.JointType.Count) + { + KinectInterop.JointData jointData = alTrackedBodies[index].joint[joint]; + Vector3 posJointRaw = jointData.kinectPos; + + return GetJointPosColorOverlay(posJointRaw, sensorIndex, imageRect); + } + } + } + + return Vector2.zero; + } + + /// + /// Gets the 2d overlay position of the given 3d point on the given image. + /// + /// Position in sensor's (depth camera) space. + /// Sensor index + /// Color image rectangle on the screen + /// + public Vector2 GetJointPosColorOverlay(Vector3 posSensorSpace, int sensorIndex, Rect imageRect) + { + if (posSensorSpace != Vector3.zero) + { + // 3d position to depth + Vector2 posDepth = MapSpacePointToDepthCoords(sensorIndex, posSensorSpace); + ushort depthValue = GetDepthForPixel(sensorIndex, (int)posDepth.x, (int)posDepth.y); + + Vector2 posColor = Vector2.zero; + if (posDepth != Vector2.zero && depthValue > 0) + { + // depth pos to color pos + posColor = MapDepthPointToColorCoords(sensorIndex, posDepth, depthValue); + } + else if (posDepth != Vector2.zero && posSensorSpace.z > 0f) + { + // workaround - depth pos to color pos (use the sensor-pos-z instead) + depthValue = (ushort)(posSensorSpace.z * 1000f); + posColor = MapDepthPointToColorCoords(sensorIndex, posDepth, depthValue); + } + else + { + // workaround - try to use the color camera space, if depth is not available + KinectInterop.SensorData sensorData = sensorDatas[sensorIndex]; + if (sensorData != null && sensorData.depthCamIntr == null && sensorData.colorCamIntr != null) + { + posColor = MapSpacePointToColorCoords(sensorIndex, posSensorSpace); + } + } + + if (posColor.x != 0f && !float.IsInfinity(posColor.x)) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + + float xScaled = (float)posColor.x * imageRect.width / sensorData.colorImageWidth; + float yScaled = (float)posColor.y * imageRect.height / sensorData.colorImageHeight; + + float xImage = imageRect.x + (sensorData.colorImageScale.x > 0f ? xScaled : imageRect.width - xScaled); + float yImage = imageRect.y + (sensorData.colorImageScale.y > 0f ? yScaled : imageRect.height - yScaled); + + return new Vector2(xImage, yImage); + } + } + + return Vector2.zero; + } + + /// + /// Gets the 3d overlay position of the given joint over the color-image and then back to the depth camera space. + /// + /// The joint position for color overlay. + /// User ID + /// Joint index + /// Sensor index + public Vector3 GetJointPosColorOverlayToDepthSpace(ulong userId, int joint, int sensorIndex) + { + if (userManager.dictUserIdToIndex.ContainsKey(userId)) + { + int index = userManager.dictUserIdToIndex[userId]; + + if (index >= 0 && index < trackedBodiesCount && alTrackedBodies[index].bIsTracked) + { + if (joint >= 0 && joint < (int)KinectInterop.JointType.Count) + { + KinectInterop.JointData jointData = alTrackedBodies[index].joint[joint]; + Vector3 posJointRaw = jointData.kinectPos; + + if (posJointRaw != Vector3.zero) + { + // 3d position to depth + Vector2 posDepth = MapSpacePointToDepthCoords(sensorIndex, posJointRaw); + ushort depthValue = GetDepthForPixel(sensorIndex, (int)posDepth.x, (int)posDepth.y); + + if(depthValue == 0 && posJointRaw.z > 0f) + { + depthValue = (ushort)(posJointRaw.z * 1000f); + } + + if (posDepth != Vector2.zero && depthValue > 0) + { + // depth pos to color pos + Vector2 posColor = MapDepthPointToColorCoords(sensorIndex, posDepth, depthValue); + + if(posColor != Vector2.zero) + { + // back to depth pos + Vector2 posDepth2 = MapColorPointToDepthCoords(sensorIndex, posColor, depthValue - 100, depthValue + 100); + + if(posDepth2 != Vector2.zero) + { + Vector3 vPosJoint = MapDepthPointToSpaceCoords(sensorIndex, posDepth2, depthValue, true); + return vPosJoint; + } + } + } + } + } + } + } + + return Vector3.zero; + } + + /// + /// Gets the joint position on the depth map texture. + /// + /// The joint position in texture coordinates. + /// User ID + /// User joint + public Vector2 GetJointDepthMapPos(ulong userId, KinectInterop.JointType joint, int sensorIndex) + { + return GetJointDepthMapPos(userId, (int)joint, sensorIndex); + } + + /// + /// Gets the joint position on the depth map texture. + /// + /// The joint position in texture coordinates. + /// User ID + /// Joint index + public Vector2 GetJointDepthMapPos(ulong userId, int joint, int sensorIndex) + { + Vector2 posDepth = Vector2.zero; + + Vector3 posJointRaw = GetJointKinectPosition(userId, joint, false); + if (posJointRaw != Vector3.zero) + { + posDepth = MapSpacePointToDepthCoords(sensorIndex, posJointRaw); + + if (posDepth != Vector2.zero) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + + float xScaled = (float)posDepth.x / sensorData.depthImageWidth; + float yScaled = (float)posDepth.y / sensorData.depthImageHeight; + + float xImage = sensorData.depthImageScale.x > 0f ? xScaled : 1f - xScaled; + float yImage = sensorData.depthImageScale.y > 0f ? yScaled : 1f - yScaled; + + posDepth = new Vector2(xImage, yImage); + } + } + + return posDepth; + } + + /// + /// Gets the joint position on the color map texture. + /// + /// The joint position in texture coordinates. + /// User ID + /// User joint + public Vector2 GetJointColorMapPos(ulong userId, KinectInterop.JointType joint, int sensorIndex) + { + return GetJointColorMapPos(userId, (int)joint, sensorIndex); + } + + /// + /// Gets the joint position on the color map texture. + /// + /// The joint position in texture coordinates. + /// User ID + /// Joint index + public Vector2 GetJointColorMapPos(ulong userId, int joint, int sensorIndex) + { + Vector2 posColor = Vector2.zero; + + Vector3 posJointRaw = GetJointKinectPosition(userId, joint, false); + if (posJointRaw != Vector3.zero) + { + // 3d position to depth + Vector2 posDepth = MapSpacePointToDepthCoords(sensorIndex, posJointRaw); + ushort depthValue = GetDepthForPixel(sensorIndex, (int)posDepth.x, (int)posDepth.y); + + if (posDepth != Vector2.zero && depthValue > 0) + { + // depth pos to color pos + posColor = MapDepthPointToColorCoords(sensorIndex, posDepth, depthValue); + + if (posColor.x != 0f && !float.IsInfinity(posColor.x)) + { + KinectInterop.SensorData sensorData = GetSensorData(sensorIndex); + + float xScaled = (float)posColor.x / sensorData.colorImageWidth; + float yScaled = (float)posColor.y / sensorData.colorImageHeight; + + float xImage = sensorData.colorImageScale.x > 0f ? xScaled : 1f - xScaled; + float yImage = sensorData.colorImageScale.y > 0f ? yScaled : 1f - yScaled; + + posColor = new Vector2(xScaled, 1f - yScaled); + } + else + { + posColor = Vector2.zero; + } + } + } + + return posColor; + } + + + /// + /// Returns array of colors, one for each body index. + /// + /// Array of body index colors. + public Color[] GetBodyIndexColors() + { + if(_initialBodyIndexColors == null) + { + _initialBodyIndexColors = new Color[KinectInterop.Constants.MaxBodyCount]; + for(int i = 0; i < _initialBodyIndexColors.Length; i++) + _initialBodyIndexColors[i] = showAllowedUsersOnly ? _bodyColorNone : Color.white; + } + + KinectInterop.CopyBytes(_initialBodyIndexColors, 4 * sizeof(float), clrUsers, 4 * sizeof(float)); + int numUserIndices = userManager.aUserIndexIds.Length; + + for (int i = 0; i < numUserIndices; i++) + { + ulong userId = userManager.aUserIndexIds[i]; + + if (userId != 0) + { + //Debug.Log("BI-Colors - UserId: " + userId); + int index = userManager.dictUserIdToIndex[userId]; + if (index >= 0 && index < trackedBodiesCount && alTrackedBodies[index].bIsTracked) + { + int bi = alTrackedBodies[index].iBodyIndex; + clrUsers[bi] = (i == 0) ? Color.yellow : _bodyIndexColors[i % _bodyIndexColors.Length]; + //Debug.Log(string.Format("{0} - id: {1}, bi: {2}, pos: {3}, clr: {4}", index, userId, bi, alTrackedBodies[index].position, clrUsers[bi])); + } + } + //else + //{ + // clrUsers[i] = showAllowedUsersOnly ? _bodyColorNone : Color.white; // + // //Debug.Log(string.Format("{0} - id: {1}, bi: {2}, clr: {3}", i, userId, -1, clrUsers[i])); + //} + } + + return clrUsers; + } + + // user colors + private static Color _bodyColorNone = new Color(0f, 0f, 0f, 0f); + private static readonly Color[] _bodyIndexColors = { Color.red, Color.green, Color.blue, Color.magenta }; + private Color[] clrUsers = new Color[KinectInterop.Constants.MaxBodyCount]; + + // initial body index color array + private static Color[] _initialBodyIndexColors = null; + + + /// + /// Resets the joint data filters. + /// + public void ResetJointFilters(ulong userId = 0) + { + foreach(var sensorData in sensorDatas) + { + if(sensorData.sensorInterface != null) + { + JointPositionsFilter jointPosFilter = ((DepthSensorBase)sensorData.sensorInterface).jointPositionFilter; + if (jointPosFilter != null) + { + jointPosFilter.Reset(userId); + } + + BodySpinFilter bodySpinFilter = ((DepthSensorBase)sensorData.sensorInterface).bodySpinFilter; + if (bodySpinFilter != null) + { + bodySpinFilter.Reset(userId); + } + } + } + + if (jointVelocityFilter != null) + { + jointVelocityFilter.Reset(); + } + } + + + /// + /// Removes all currently detected users, allowing new user-detection process to start. + /// + public void ClearKinectUsers() + { + if (!kinectInitialized) + return; + + // remove current users + for (int i = userManager.alUserIds.Count - 1; i >= 0; i--) + { + ulong userId = userManager.alUserIds[i]; + RemoveUser(userId); + } + + ResetJointFilters(); + } + + + /// + /// Gets the body frame as one csv line, or returns empty string if there is no new body frame. + /// + /// The body frame as a csv line. + /// Reference to variable, used to compare frame times. + /// Reference to variable, used to save the current Unity time. + public string GetBodyFrameData(ref float fUnityTime, char delimiter) + { + Vector3 spaceScale = GetSensorSpaceScale(btSensorIndex); + return KinectInterop.GetBodyFrameAsCsv(ref alTrackedBodies, trackedBodiesCount, lastBodyFrameTime, spaceScale, ref fUnityTime, delimiter); + } + + + /// + /// Determines whether the play mode is enabled or not. + /// + /// true if the play mode is enabled; otherwise, false. + public bool IsPlayModeEnabled() + { + return isPlayModeEnabled; + } + + + /// + /// Enables or displables the play mode. + /// + /// If set to true enables the play mode. + public void EnablePlayMode(bool bEnabled) + { + isPlayModeEnabled = bEnabled; + playModeData = string.Empty; + } + + /// + /// Sets the body frame from the given csv line. + /// + /// true on success, false otherwise. + /// The body frame as csv line. + public bool SetBodyFrameData(string sLine) + { + if (isPlayModeEnabled) + { + playModeData = sLine; + return true; + } + + return false; + } + + /// + /// Gets the active user body merger, or null if there is no body merger. + /// + /// The user body merger instance. + public KinectUserBodyMerger GetUserBodyMerger() + { + return userBodyMerger; + } + + /// + /// Gets the sensor-specific bodyId for the given sensor and user + /// + /// Sensor index + /// User Id + /// Sensor-specific body Id + public ulong GetSensorBodyId(int sensorIndex, ulong userId) + { + if(userBodyMerger != null) + { + return userBodyMerger.GetSensorTrackingId(sensorIndex, userId); + } + else + { + return userId; + } + } + + // internal methods + + void Awake() + { + // initializes the singleton instance of KinectManager + if (instance == null) + { + instance = this; + + if(dontDestroyAcrossScenes) + { + DontDestroyOnLoad(this); + } + } + else if (instance != this) + { + DestroyImmediate(gameObject); + return; + } + + // set graphics shader level + KinectInterop.SetGraphicsShaderLevel(SystemInfo.graphicsShaderLevel); + + // user manager by default + if (userManager == null) + { + userManager = gameObject.GetComponent(); + + if(userManager == null) + { + userManager = gameObject.AddComponent(); + } + } + + // gesture manager by default + if (gestureManager == null) + { + gestureManager = gameObject.GetComponent(); + + if(gestureManager == null) + { + gestureManager = gameObject.AddComponent(); + } + } + + // bone orientation constraints + //if (boneOrientationConstraints) + { + boneConstraints = new BoneOrientationConstraints(); + boneConstraints.AddDefaultConstraints(); + boneConstraints.SetDebugText(statusInfoText); + } + + // init joint filters + //if(jointSmoothing != SmoothingType.None) + //{ + // jointPositionFilter = new JointPositionsFilter(); + // jointPositionFilter.Init(jointSmoothing); + //} + + if(jointVelocitySmoothing != SmoothingType.None) + { + jointVelocityFilter = new JointVelocitiesFilter(); + jointVelocityFilter.Init(jointVelocitySmoothing); + } + + // locate and start the available depth-sensors + if(startDepthSensors) + { + StartDepthSensors(); + } + } + + + // gets the frame-source flags + private KinectInterop.FrameSource GetFrameSourceFlags() + { + KinectInterop.FrameSource dwFlags = KinectInterop.FrameSource.TypeNone; + + if (getDepthFrames != DepthTextureType.None) + dwFlags |= KinectInterop.FrameSource.TypeDepth; + if (getColorFrames != ColorTextureType.None) + dwFlags |= KinectInterop.FrameSource.TypeColor; + if (getInfraredFrames != InfraredTextureType.None) + dwFlags |= KinectInterop.FrameSource.TypeInfrared; + if (getPoseFrames != PoseUsageType.None) + dwFlags |= KinectInterop.FrameSource.TypePose; + if (getBodyFrames != BodyTextureType.None) + { + if (getBodyFrames != BodyTextureType.BodyIndexDataOnly) + dwFlags |= KinectInterop.FrameSource.TypeBody; + if (getBodyFrames != BodyTextureType.BodyDataOnly) + dwFlags |= KinectInterop.FrameSource.TypeBodyIndex; + } + + return dwFlags; + } + + + // creates sensor interface of the specified type on a child (sensor) object + private DepthSensorBase CreateSensorInterface(KinectInterop.DepthSensorPlatform sensorType, int deviceIndex) + { + DepthSensorBase sensorInt = null; + string intTypeName = string.Empty; + + GameObject sensorObj = new GameObject(sensorType.ToString() + deviceIndex); + sensorObj.transform.parent = gameObject.transform; + sensorObj.transform.position = Vector3.zero; + sensorObj.transform.rotation = Quaternion.identity; + + switch (sensorType) + { + case KinectInterop.DepthSensorPlatform.Kinect4Azure: + //sensorInt = sensorObj.AddComponent(); + intTypeName = "com.rfilkov.kinect.Kinect4AzureInterface"; + break; + +#if (UNITY_STANDALONE_WIN) + case KinectInterop.DepthSensorPlatform.KinectV2: + //sensorInt = sensorObj.AddComponent(); + intTypeName = "com.rfilkov.kinect.Kinect2Interface"; + break; +#endif + case KinectInterop.DepthSensorPlatform.RealSense: + //sensorInt = sensorObj.AddComponent(); + intTypeName = "com.rfilkov.kinect.RealSenseInterface"; + break; + + case KinectInterop.DepthSensorPlatform.DummyK4A: + //sensorInt = sensorObj.AddComponent(); + intTypeName = "com.rfilkov.kinect.DummyK4AInterface"; + break; + + case KinectInterop.DepthSensorPlatform.DummyK2: + //sensorInt = sensorObj.AddComponent(); + intTypeName = "com.rfilkov.kinect.DummyK2Interface"; + break; + + case KinectInterop.DepthSensorPlatform.NetSensor: + //sensorInt = sensorObj.AddComponent(); + intTypeName = "com.rfilkov.kinect.NetClientInterface"; + break; + + case KinectInterop.DepthSensorPlatform.ARKit: + intTypeName = "com.rfilkov.kinect.ARKitInterface"; + break; + + default: + throw new Exception("Unknown S" + deviceIndex + " sensor interface: " + sensorType); + } + + if(!string.IsNullOrEmpty(intTypeName)) + { + if (consoleLogMessages) + Debug.Log("Creating S" + deviceIndex + ": '" + sensorType + "' sensor interface..."); + + Type sensorIntType = Type.GetType(intTypeName); + sensorInt = (DepthSensorBase)sensorObj.AddComponent(sensorIntType); + } + + return sensorInt; + } + + + // converts the json settings to sensor settings + private DepthSensorBase.BaseSensorSettings GetSensorSettings(DepthSensorInterface sensorInt, /**KinectInterop.DepthSensorPlatform sensorType,*/ string sJsonSettings) + { + DepthSensorBase.BaseSensorSettings settings = null; + +// if(!string.IsNullOrEmpty(sJsonSettings)) +// { +// switch (sensorType) +// { +// case KinectInterop.DepthSensorPlatform.Kinect4Azure: +// settings = JsonUtility.FromJson(sJsonSettings); +// break; + +//#if (UNITY_STANDALONE_WIN) +// case KinectInterop.DepthSensorPlatform.KinectV2: +// settings = JsonUtility.FromJson(sJsonSettings); +// break; +//#endif +// case KinectInterop.DepthSensorPlatform.RealSense: +// settings = JsonUtility.FromJson(sJsonSettings); +// break; + +// case KinectInterop.DepthSensorPlatform.DummyK4A: +// settings = JsonUtility.FromJson(sJsonSettings); +// break; + +// case KinectInterop.DepthSensorPlatform.NetSensor: +// settings = JsonUtility.FromJson(sJsonSettings); +// break; + +// default: +// throw new Exception("Cannot create settings for sensor type: " + sensorType); +// } +// } + + Type settingsType = sensorInt.GetSensorSettingsType(); + settings = (DepthSensorBase.BaseSensorSettings)JsonUtility.FromJson(sJsonSettings, settingsType); + + return settings; + } + + + // locates and starts the available depth-sensors and their interfaces + public void StartDepthSensors() + { + try + { + // try to initialize the available sensors + KinectInterop.FrameSource dwFlags = GetFrameSourceFlags(); + + // locate the available depth-sensor interfaces in the scene + List sensorInts = new List(); + sensorInts.AddRange(gameObject.GetComponents()); // FindObjectsOfType(); + sensorInts.AddRange(gameObject.GetComponentsInChildren()); + + // check for multi-camera config + if (useMultiCamConfig) + { + if(!KinectInterop.IsFileExist(KinectInterop.MULTI_CAM_CONFIG_FILE_NAME)) + { + // copy the file from Resources-folder, if not found in the root folder + KinectInterop.CopyResourceFile(KinectInterop.MULTI_CAM_CONFIG_FILE_NAME, KinectInterop.MULTI_CAM_CONFIG_FILE_NAME); + } + + string multiCamJson = KinectInterop.LoadTextFile(KinectInterop.MULTI_CAM_CONFIG_FILE_NAME); + if (!string.IsNullOrEmpty(multiCamJson)) + { + KinectInterop.MultiCameraPose multiCamConfig = JsonUtility.FromJson(multiCamJson); + + // remove current sensors + for (int i = sensorInts.Count - 1; i >= 0; i--) + { + GameObject.Destroy(sensorInts[i].gameObject); + } + + sensorInts.Clear(); + + if (multiCamConfig.camPose == null || multiCamConfig.settings == null || multiCamConfig.camPose.Length != multiCamConfig.settings.Length) + { + throw new Exception("Invalid multi-camera config. Probably CamPoses and Settings don't match."); + } + + // create new sensor objects + for (int i = 0; i < multiCamConfig.camPose.Length; i++) + { + KinectInterop.DepthSensorPlatform sensorType = (KinectInterop.DepthSensorPlatform)multiCamConfig.camPose[i].sensorType; + int deviceIndex = multiCamConfig.camPose[i].sensorIndex; + + DepthSensorBase sensorInt = CreateSensorInterface(sensorType, deviceIndex); + if (sensorInt != null) + { + // set settings + DepthSensorBase.BaseSensorSettings settings = GetSensorSettings(sensorInt, /**sensorType,*/ multiCamConfig.settings[i]); + if (settings != null) + { + sensorInt.SetSensorSettings(settings); + } + + // set pose + sensorInt.SetSensorToWorldMatrix(multiCamConfig.camPose[i].position, Quaternion.Euler(multiCamConfig.camPose[i].rotation), true); + + sensorInts.Add(sensorInt); + } + } + } + else + { + Debug.LogError("Can't find config file: " + KinectInterop.MULTI_CAM_CONFIG_FILE_NAME); + } + } + + // try to open sensor interfaces + TryOpenSensors(sensorInts, dwFlags); + + if (sensorDatas.Count == 0) + { + sensorInts.Clear(); + + //// by-default add K4A interface + //transform.position = new Vector3(0f, 1f, 0f); + //transform.rotation = Quaternion.identity; + + //DepthSensorBase sensorInt = gameObject.AddComponent(); + //sensorInts.Add(sensorInt); + + string sensorIntJson = KinectInterop.GetResourceText("DefSensorInterface.json"); + if (!string.IsNullOrEmpty(sensorIntJson)) + { + DepthSensorDescriptor sensorIntDescr = JsonUtility.FromJson(sensorIntJson); + if (consoleLogMessages) + Debug.Log("Creating '" + sensorIntDescr.sensorType + "' sensor interface, v" + sensorIntDescr.sensorIntVersion + "..."); // + " - " + sensorIntDescr.sensorInterface); + Type sensorIntType = Type.GetType(sensorIntDescr.sensorInterface); + + GameObject sensorIntObj = new GameObject(sensorIntDescr.sensorType); + sensorIntObj.transform.SetParent(transform, true); + sensorIntObj.transform.position = sensorIntDescr.transformPos; + sensorIntObj.transform.rotation = Quaternion.Euler(sensorIntDescr.transformRot); + + DepthSensorBase sensorInt = (DepthSensorBase)sensorIntObj.AddComponent(sensorIntType); + if(sensorInt != null) + { + sensorInts.Add(sensorInt); + + // set settings + DepthSensorBase.BaseSensorSettings settings = GetSensorSettings(sensorInt, /**sensorInt.GetSensorPlatform(),*/ sensorIntDescr.sensorIntSettings); + if (settings != null) + { + sensorInt.SetSensorSettings(settings); + } + + // try to open the by-default sensor interface + TryOpenSensors(sensorInts, dwFlags); + + //if (sensorDatas.Count == 0) + //{ + // sensorInts.Clear(); + // Destroy(sensorInt.gameObject); + //} + } + } + } + + if (consoleLogMessages) + Debug.Log(string.Format("{0} sensor(s) opened.", sensorDatas.Count)); + + // set initialization status + if (sensorInterfaces.Count > 0) + { + kinectInitialized = true; + kinectInitFailed = false; + + if (sensorInterfaces.Count > 1) + { + // create body merger for multiple sensors + userBodyMerger = new KinectUserBodyMerger(sensorDatas); + + // enable frame sync between sensors, if needed + if(syncMultiCamFrames) + { + for (int i = 0; i < sensorInterfaces.Count; i++) + { + DepthSensorInterface sensorInt = sensorInterfaces[i]; + KinectInterop.SensorData sensorData = sensorDatas[i]; + + sensorInt.EnableSensorSync(sensorData, true); + } + } + } + + // fires the depth-sensors-started event + FireOnDepthSensorsStarted(); + } + else + { + kinectInitialized = false; + kinectInitFailed = true; + + string sErrorMessage = "No suitable depth-sensor found. Please check the connected devices and installed SDKs."; + Debug.LogError(sErrorMessage); + + if (statusInfoText != null) + { + statusInfoText.text = sErrorMessage; + } + } + } + //catch (DllNotFoundException ex) + //{ + // string message = ex.Message + " cannot be loaded. Please check the respective SDK installation."; + + // Debug.LogError(message); + // Debug.LogException(ex); + + // if (calibrationText != null) + // { + // calibrationText.text = message; + // } + + // return; + //} + catch (Exception ex) + { + kinectInitFailed = true; + string message = ex.Message; + + Debug.LogError(message); + Debug.LogException(ex); + + if (statusInfoText != null) + { + statusInfoText.text = message; + } + + return; + } + } + + + // tries to open the sensor interfaces + private void TryOpenSensors(List sensorInts, KinectInterop.FrameSource dwFlags) + { + for (int i = 0; i < sensorInts.Count; i++) + { + if (sensorInts[i] is DepthSensorBase) + { + DepthSensorBase sensorInt = (DepthSensorBase)sensorInts[i]; + if (!sensorInt.enabled || sensorInt.deviceStreamingMode == KinectInterop.DeviceStreamingMode.Disabled || sensorInt.deviceIndex < 0) + { + if (consoleLogMessages) + Debug.Log(string.Format("S{0}: {1} disabled.", i, sensorInt.GetType().Name)); + continue; + } + + try + { + if (consoleLogMessages) + Debug.Log(string.Format("Opening S{0}: {1}, device-index: {2}", i, sensorInt.GetType().Name, sensorInt.deviceIndex)); + KinectInterop.SensorData sensorData = sensorInt.OpenSensor(this, dwFlags, syncDepthAndColor, syncBodyAndDepth); + + if (sensorData != null) + { + //Debug.Log("Succeeded opening " + sensorInt.GetType().Name); + + sensorData.sensorInterface = sensorInt; + sensorData.sensorIndex = sensorInterfaces.Count; + KinectInterop.InitSensorData(sensorData, this); + + sensorInterfaces.Add(sensorInt); + sensorDatas.Add(sensorData); + + if (pollFramesInThread) + { + sensorData.threadStopEvent = new AutoResetEvent(false); + sensorData.pollFramesThread = new Thread(() => PollFramesThread(sensorData)); + sensorData.pollFramesThread.Name = sensorInt.GetType().Name + sensorInt.deviceIndex; + sensorData.pollFramesThread.IsBackground = true; + sensorData.pollFramesThread.Start(); + } + } + } + catch (Exception ex) + { + Debug.LogException(ex); + Debug.LogError("Failed opening " + sensorInt.GetType().Name + ", device-index: " + sensorInt.deviceIndex); + } + } + } + } + + + // polls for frames and updates the depth-sensor data in a thread + private void PollFramesThread(KinectInterop.SensorData sensorData) + { + if (sensorData == null) + return; + + while (!sensorData.threadStopEvent.WaitOne(0)) + { + if (kinectInitialized) + { + KinectInterop.PollSensorFrames(sensorData); + Thread.Sleep(KinectInterop.THREAD_SLEEP_TIME_MS); + } + } + } + + + // stops the polling threads and closes the depth sensors + public void StopDepthSensors() + { + // shut down the polling threads and stop the sensors + if (kinectInitialized) + { + // close the opened sensors and release respective data + for (int i = sensorDatas.Count - 1; i >= 0; i--) + { + KinectInterop.SensorData sensorData = sensorDatas[i]; + DepthSensorInterface sensorInt = sensorData.sensorInterface; + if (consoleLogMessages) + Debug.Log(string.Format("Closing S{0}: {1}", i, sensorInt.GetType().Name)); + + if (sensorData.pollFramesThread != null) + { + //Debug.Log("Stopping thread: " + sensorData.pollFramesThread.Name); + + // stop the frame-polling thread + sensorData.threadStopEvent.Set(); + sensorData.pollFramesThread.Join(); + + sensorData.pollFramesThread = null; + sensorData.threadStopEvent.Dispose(); + sensorData.threadStopEvent = null; + + //Debug.Log("Thread stopped."); + } + + // close the sensor + KinectInterop.CloseSensor(sensorData); + //Debug.Log("Sensor closed."); + + sensorDatas.RemoveAt(i); + sensorInterfaces.RemoveAt(i); + } + + kinectInitialized = false; + + // fires the depth-sensors-stopped event + FireOnDepthSensorsStopped(); + } + + kinectInitFailed = false; + } + + + // checks whether the configured depth sensors are started + public bool IsDepthSensorsStarted() + { + return kinectInitialized; + } + + + // fires the OnDepthSensorsStarted-event + internal void FireOnDepthSensorsStarted() + { + OnDepthSensorsStarted?.Invoke(); + } + + // fires the OnDepthSensorsStarted-event + internal void FireOnDepthSensorsStopped() + { + OnDepthSensorsStopped?.Invoke(); + } + + + void OnApplicationQuit() + { + OnDestroy(); + } + + + void OnDestroy() + { + if (instance == null || instance != this) + return; + + //Debug.Log("KM was destroyed"); + StopDepthSensors(); + + instance = null; + } + + + void Update() + { + if (!kinectInitialized) + return; + + if (!pollFramesInThread) + { + for (int i = 0; i < sensorDatas.Count; i++) + { + KinectInterop.SensorData sensorData = sensorDatas[i]; + KinectInterop.PollSensorFrames(sensorData); + } + } + + // update the sensor data, as needed + ulong prevBodyFrameTime = lastBodyFrameTime; + for (int i = 0; i < sensorDatas.Count; i++) + { + KinectInterop.SensorData sensorData = sensorDatas[i]; + if(KinectInterop.UpdateSensorData(sensorData, this, isPlayModeEnabled)) + { + UpdateTrackedBodies(i, sensorData, prevBodyFrameTime); + } + } + + //// filter orientation constraints - moved to UpdateTrackedBodies() + //if (lastBodyFrameTime != prevBodyFrameTime && boneOrientationConstraints && boneConstraints != null) + //{ + // for (int i = 0; i < trackedBodiesCount; i++) + // { + // boneConstraints.Constrain(ref alTrackedBodies[i]); + // } + //} + + if (!isPlayModeEnabled) + { + // update the sensor textures, if needed + for (int i = 0; i < sensorDatas.Count; i++) + { + KinectInterop.UpdateSensorTextures(sensorDatas[i], this); + } + } + } + + + void OnGUI() + { + if (!kinectInitialized) + return; + + // display the selected images on screen + for (int i = 0; i < displayImages.Count; i++) + { + Vector2 imageScale = Vector3.one; + Texture imageTex = null; + + DisplayImageType imageType = displayImages[i]; + switch (imageType) + { + case DisplayImageType.None: + break; + + case DisplayImageType.Sensor0ColorImage: + case DisplayImageType.Sensor1ColorImage: + case DisplayImageType.Sensor2ColorImage: + int si = imageType == DisplayImageType.Sensor0ColorImage ? 0 : imageType == DisplayImageType.Sensor1ColorImage ? 1 : imageType == DisplayImageType.Sensor2ColorImage ? 2 : -1; + if (si >= 0 && si < sensorDatas.Count) + { + KinectInterop.SensorData sensorData = sensorDatas[si]; + imageScale = sensorData.colorImageScale; + imageTex = sensorData.colorImageTexture; + } + break; + + case DisplayImageType.Sensor0DepthImage: + case DisplayImageType.Sensor1DepthImage: + case DisplayImageType.Sensor2DepthImage: + si = imageType == DisplayImageType.Sensor0DepthImage ? 0 : imageType == DisplayImageType.Sensor1DepthImage ? 1 : imageType == DisplayImageType.Sensor2DepthImage ? 2 : -1; + if (si >= 0 && si < sensorDatas.Count) + { + KinectInterop.SensorData sensorData = sensorDatas[si]; + imageScale = sensorData.depthImageScale; + imageTex = sensorData.depthImageTexture; + } + break; + + case DisplayImageType.Sensor0InfraredImage: + case DisplayImageType.Sensor1InfraredImage: + case DisplayImageType.Sensor2InfraredImage: + si = imageType == DisplayImageType.Sensor0InfraredImage ? 0 : imageType == DisplayImageType.Sensor1InfraredImage ? 1 : imageType == DisplayImageType.Sensor2InfraredImage ? 2 : -1; + if (si >= 0 && si < sensorDatas.Count) + { + KinectInterop.SensorData sensorData = sensorDatas[si]; + imageScale = sensorData.infraredImageScale; + imageTex = sensorData.infraredImageTexture; + } + break; + + case DisplayImageType.UserBodyImageS0: + case DisplayImageType.UserBodyImageS1: + case DisplayImageType.UserBodyImageS2: + si = imageType == DisplayImageType.UserBodyImageS0 ? 0 : imageType == DisplayImageType.UserBodyImageS1 ? 1 : imageType == DisplayImageType.UserBodyImageS2 ? 2 : -1; + if (si >= 0 && si < sensorDatas.Count) + { + KinectInterop.SensorData sensorData = sensorDatas[si]; + imageScale = sensorData.depthImageScale; + imageTex = sensorData.bodyImageTexture ? sensorData.bodyImageTexture : sensorData.depthImageTexture; + } + break; + } + + // display the image on screen + if(imageTex != null) + { + KinectInterop.DisplayGuiTexture(i, displayImageWidthPercent, imageScale, imageTex); + } + } + } + + + // updates the global list of tracked bodies + protected void UpdateTrackedBodies(int sensorIndex, KinectInterop.SensorData sensorData, ulong prevBodyFrameTime) + { + if(isPlayModeEnabled) + { + if(!string.IsNullOrEmpty(playModeData)) + { + // processed by the 1st sensor only + Matrix4x4 sensorToWorld = GetSensorToWorldMatrix(sensorIndex); + + if (playModeData.StartsWith("k4b")) + trackedBodiesCount = KinectInterop.SetBodyFrameFromCsv(playModeData, ";", sensorData, ref alTrackedBodies, ref sensorToWorld, ignoreZCoordinates, out lastBodyFrameTime); + else + trackedBodiesCount = KinectInterop.SetBodyFrameFromK2b(playModeData, sensorData, this, ref alTrackedBodies, ref sensorToWorld, ignoreZCoordinates, out lastBodyFrameTime); + + prevBodyFrameTicks = lastBodyFrameTicks; + lastBodyFrameTicks = DateTime.Now.Ticks; + + playModeData = string.Empty; + } + } + else if(sensorDatas.Count == 1 && sensorIndex == 0 && lastBodyFrameTime != sensorData.lastBodyFrameTime) + { + // first sensor + btSensorIndex = sensorIndex; + lastBodyFrameTime = sensorData.lastBodyFrameTime; + + prevBodyFrameTicks = lastBodyFrameTicks; + lastBodyFrameTicks = DateTime.Now.Ticks; + + // take the tracked bodies from sensor 0 + trackedBodiesCount = sensorData.trackedBodiesCount; + + if (alTrackedBodies.Length < trackedBodiesCount) + { + //alTrackedBodies.Add(new KinectInterop.BodyData((int)KinectInterop.JointType.Count)); + Array.Resize(ref alTrackedBodies, (int)trackedBodiesCount); + + for (int i = 0; i < trackedBodiesCount; i++) + { + alTrackedBodies[i] = new KinectInterop.BodyData((int)KinectInterop.JointType.Count); + } + } + + for (int i = 0; i < trackedBodiesCount; i++) + { + //alTrackedBodies[i] = sensorData.alTrackedBodies[i]; + sensorData.alTrackedBodies[i].CopyTo(ref alTrackedBodies[i]); + } + + // filter orientation constraints + if (boneOrientationConstraints && boneConstraints != null) + { + for (int i = 0; i < trackedBodiesCount; i++) + { + boneConstraints.Constrain(ref alTrackedBodies[i]); + } + } + } + //else if (sensorIndex > 0 && lastBodyFrameTime != prevBodyFrameTime) // is body data updated by s0? + //{ + // // subsequent sensor + // KinectInterop.BodyData sensorBodyData = new KinectInterop.BodyData(); + + // for (int i = 0; i < trackedBodiesCount; i++) + // { + // KinectInterop.BodyData bodyData = alTrackedBodies[i]; + + // if(GetNearestBodyData(sensorData, bodyData.position, 0.1f, ref sensorBodyData)) + // { + // if(bodyData.joint != null && sensorBodyData.joint != null && bodyData.joint.Length == sensorBodyData.joint.Length) + // { + // int jointCount = bodyData.joint.Length; + // bool bBodyUpdated = false; + + // for(int j = 0; j < jointCount; j++) + // { + // bBodyUpdated |= MergeBodyJoint(ref bodyData, ref sensorBodyData, j); + // } + + // if(bBodyUpdated) + // { + // alTrackedBodies[i] = bodyData; + // } + // } + // } + // } + //} + else if (sensorDatas.Count > 1 && sensorIndex == 0 && userBodyMerger != null) + { + btSensorIndex = sensorIndex; + List alMergedBodies = userBodyMerger.MergeUserBodies(ref lastBodyFrameTime, boneOrientationConstraints ? boneConstraints : null); + + prevBodyFrameTicks = lastBodyFrameTicks; + lastBodyFrameTicks = DateTime.Now.Ticks; + + trackedBodiesCount = (uint)alMergedBodies.Count; + if (alTrackedBodies.Length < trackedBodiesCount) + { + Array.Resize(ref alTrackedBodies, (int)trackedBodiesCount); + } + + for (int i = 0; i < trackedBodiesCount; i++) + { + alTrackedBodies[i] = alMergedBodies[i]; + //alMergedBodies[i].CopyTo(ref alTrackedBodies[i]); + alTrackedBodies[i].bIsTracked = true; + + //{ + // int j = (int)KinectInterop.JointType.WristLeft; + // Debug.Log(string.Format("KM {0:F3} {1} user: {2}, state: {3}\npos: {4}, rot: {5}", Time.time, (KinectInterop.JointType)j, + // alTrackedBodies[i].liTrackingID, alTrackedBodies[i].joint[j].trackingState, + // alTrackedBodies[i].joint[j].position, alTrackedBodies[i].joint[j].mirroredRotation.eulerAngles)); + //} + } + + alMergedBodies.Clear(); + alMergedBodies = null; + } + else + { + return; + } + + // estimate and filter joint velocities, if needed + if (estimateJointVelocities && prevBodyFrameTicks > 0) + { + for (int i = 0; i < trackedBodiesCount; i++) + { + KinectInterop.CalcBodyFrameJointVels(ref alTrackedBodies[i], lastBodyFrameTicks, prevBodyFrameTicks); + + if (jointVelocityFilter != null) + { + jointVelocityFilter.UpdateFilter(ref alTrackedBodies[i]); + } + } + + if (jointVelocityFilter != null) + { + jointVelocityFilter.CleanUpUserHistory(); + } + } + + // process the tracked bodies + ProcessTrackedBodies(); + + //// set first user index + //sensorData.firstUserIndex = (userManager.liPrimaryUserId != 0 && userManager.dictUserIdToIndex.ContainsKey(userManager.liPrimaryUserId) ? + // userManager.dictUserIdToIndex[userManager.liPrimaryUserId] : 255); + + //if (userManager.liPrimaryUserId != 0) + // Debug.Log("liPrimaryUserId: " + userManager.liPrimaryUserId + ", index: " + sensorData.firstUserIndex); + + // update user gestures + foreach (ulong userId in userManager.alUserIds) + { + gestureManager.UpdateUserGestures(userId, this); + } + } + + + // tries to find the nearest body to the given position within the specified distance + private bool GetNearestBodyData(KinectInterop.SensorData sensorData, Vector3 bodyPos, float maxDistance, ref KinectInterop.BodyData bodyData) + { + float fMinDistance = float.MaxValue; + + for(int i = 0; i < sensorData.trackedBodiesCount; i++) + { + Vector3 sensorBodyPos = sensorData.alTrackedBodies[i].position; + float fDistance = Vector3.Distance(bodyPos, sensorBodyPos); + + if (fDistance <= maxDistance && fDistance < fMinDistance) + { + fMinDistance = fDistance; + bodyData = sensorData.alTrackedBodies[i]; + } + } + + return (fMinDistance <= maxDistance); + } + + + // copies the joint of sensor-body-data, if needed + private bool MergeBodyJoint(ref KinectInterop.BodyData bodyData, ref KinectInterop.BodyData sensorBodyData, int jointIndex) + { + KinectInterop.TrackingState jointState = bodyData.joint[jointIndex].trackingState; + KinectInterop.TrackingState sensorJointState = sensorBodyData.joint[jointIndex].trackingState; + + if((int)jointState < (int)sensorJointState) + { + sensorBodyData.joint[jointIndex].CopyTo(ref bodyData.joint[jointIndex]); + //Debug.Log("updated " + (KinectInterop.JointType)jointIndex); + return true; + } + else if(jointState == sensorJointState && (int)jointState >= (int)KinectInterop.TrackingState.Tracked) + { + sensorBodyData.joint[jointIndex].AverageTo(ref bodyData.joint[jointIndex]); + //Debug.Log("averaged " + (KinectInterop.JointType)jointIndex); + return true; + } + + return false; + } + + + // processes the tracked bodies + private void ProcessTrackedBodies() + { + List addedUsers = new List(); + List addedIndexes = new List(); + + List lostUsers = new List(); + lostUsers.AddRange(userManager.alUserIds); + + bLimitedUsers = showAllowedUsersOnly && + (maxTrackedUsers > 0 || minUserDistance >= 0.01f || maxUserDistance >= 0.01f || maxLeftRightDistance >= 0.01f); + + for (int i = 0; i < trackedBodiesCount; i++) + { + KinectInterop.BodyData bodyData = alTrackedBodies[i]; + ulong userId = bodyData.liTrackingID; + + if (bodyData.bIsTracked && userId != 0 && Mathf.Abs(bodyData.position.z) >= minUserDistance && + (maxUserDistance < 0.01f || Mathf.Abs(bodyData.position.z) <= maxUserDistance) && + (maxLeftRightDistance < 0.01f || Mathf.Abs(bodyData.position.x) <= maxLeftRightDistance)) + { + // add userId to the list of new users + if (!addedUsers.Contains(userId)) + { + addedUsers.Add(userId); + addedIndexes.Add(i); + } + + lostUsers.Remove(userId); + userManager.dictUserIdToTime[userId] = Time.time; + } + else + { + // consider body as not tracked + bodyData.bIsTracked = false; + alTrackedBodies[i] = bodyData; + } + + //Debug.Log(" (M)User ID: " + userId + ", body: " + i + ", bi: " + bodyData.iBodyIndex + ", pos: " + bodyData.position + ", tracked: " + bodyData.bIsTracked); + } + + // remove the lost users, if any + if (lostUsers.Count > 0) + { + foreach (ulong userId in lostUsers) + { + // prevent user removal upon sporadical tracking failures + if ((Time.time - userManager.dictUserIdToTime[userId]) >= waitTimeBeforeRemove) + { + RemoveUser(userId); + } + } + + lostUsers.Clear(); + } + + if (addedUsers.Count > 0) + { + // calibrate the newly detected users + for (int i = 0; i < addedUsers.Count; i++) + { + ulong userId = addedUsers[i]; + int userIndex = addedIndexes[i]; + + if (!userManager.alUserIds.Contains(userId)) + { + if (maxTrackedUsers == 0 || userManager.alUserIds.Count < maxTrackedUsers) + { + CalibrateUser(userId, userIndex, alTrackedBodies[userIndex].position); + } + } + } + + // update body indices, as needed + for (int i = 0; i < addedUsers.Count; i++) + { + ulong userId = addedUsers[i]; + int userIndex = addedIndexes[i]; + + int ui = userManager.dictUserIdToIndex.ContainsKey(userId) ? userManager.dictUserIdToIndex[userId] : -1; + if (ui >= 0 && ui != userIndex) + { + // update body index if needed + userManager.dictUserIdToIndex[userId] = userIndex; + + //int uidIndex = Array.IndexOf(userManager.aUserIndexIds, userId); + //if (consoleLogMessages) + // Debug.Log("Updating user " + uidIndex + ", ID: " + userId + ", Body: " + userIndex + ", Time: " + Time.time); + + // re-arrange user indices if needed + userManager.RearrangeUserIndices(userDetectionOrder); + } + } + + if(addedUsers.Count > 0) + { + // update user indices, as needed + userManager.UpdateUserIndices(userDetectionOrder); + } + + addedUsers.Clear(); + addedIndexes.Clear(); + } + } + + + // Adds UserId to the list of users + private void CalibrateUser(ulong userId, int bodyIndex, Vector3 userPos) + { + int uidIndex = userManager.CalibrateUser(userId, bodyIndex, ref alTrackedBodies, userDetectionOrder, playerCalibrationPose, gestureManager); + + if (uidIndex >= 0) + { + if (consoleLogMessages) + Debug.Log("Adding user " + uidIndex + ", ID: " + userId + ", Body: " + bodyIndex + ", Pos: " + userPos + ", Time: " + userManager.dictUserIdToTime[userId]); + + // update userIds of the avatar controllers + //RefreshAvatarUserIds(); + + // notify the gesture manager for the newly detected user + gestureManager.UserWasAdded(userId, uidIndex); + + // reset filters + ResetJointFilters(userId); + + // fire event + userManager.FireOnUserAdded(userId, uidIndex); + } + } + + + // Remove a lost UserId + private void RemoveUser(ulong userId) + { + int bodyIndex = userManager.dictUserIdToIndex[userId]; + int uidIndex = userManager.RemoveUser(userId, userDetectionOrder); + + if(uidIndex >= 0) + { + if (consoleLogMessages) + Debug.Log("Removing user " + uidIndex + ", ID: " + userId + ", Body: " + bodyIndex + ", Time: " + Time.time); + + // clear gestures list for this user + gestureManager.UserWasRemoved(userId, uidIndex); + + // update userIds of the avatar controllers + //RefreshAvatarUserIds(); + + // fire event + userManager.FireOnUserRemoved(userId, uidIndex); + } + } + + } +} diff --git a/Assets/Azure/KinectScripts/KinectManager.cs.meta b/Assets/Azure/KinectScripts/KinectManager.cs.meta new file mode 100644 index 0000000..9801920 --- /dev/null +++ b/Assets/Azure/KinectScripts/KinectManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6b531f336dfee5f438f94ed501caefc7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/KinectNetServer.cs b/Assets/Azure/KinectScripts/KinectNetServer.cs new file mode 100644 index 0000000..5688d7c --- /dev/null +++ b/Assets/Azure/KinectScripts/KinectNetServer.cs @@ -0,0 +1,1510 @@ +using System.Collections; +using System.Collections.Generic; +using System.Net; +using System.Net.Sockets; +using System.Threading; +using UnityEngine; +using UnityEngine.UI; +using LZ4Sharp; + + +namespace com.rfilkov.kinect +{ + /// + /// Kinect net-server listens for client connections and sends the data from the given sensor's streams to its clients over the network. + /// + public class KinectNetServer : MonoBehaviour + { + [Tooltip("Depth sensor index - 0 is the 1st one, 1 - the 2nd one, etc.")] + public int sensorIndex = 0; + + [Tooltip("The base port for all sensor frame streams (each frame stream listens on separate port).")] + public int baseListenPort = 11000; + + [Tooltip("Whether to listen for auto-server-discovery broadcasts (local network only).")] + public bool listenForServerDiscovery = false; + + [Tooltip("Whether to serve the body index frames along with the body frames.")] + private bool serveBodyIndexFrames = true; + + [Tooltip("Whether to compress the raw data frames (like depth, body index, etc.) or not.")] + public bool compressRawFrames = true; + + [Tooltip("UI-Text to display the connection status messages.")] + public Text connStatusText; + + [Tooltip("UI-Text to display the server status messages.")] + public Text serverStatusText; + + [Tooltip("UI-Text to display the server console messages.")] + public Text consoleText; + + + // references + private KinectManager kinectManager = null; + private KinectInterop.SensorData sensorData = null; + + // keep-alive + private ulong lastKeepAliveFrameTime = 0; + private const int keepAliveInterval = 20000000; // 2 seconds + + // sensor frame servers + private TcpNetServer controlFrameServer = null; + private TcpNetServer colorFrameServer = null; + private TcpNetServer depthFrameServer = null; + private TcpNetServer infraredFrameServer = null; + private TcpNetServer bodyDataFrameServer = null; + private TcpNetServer bodyIndexFrameServer = null; + private TcpNetServer poseFrameServer = null; + private TcpNetServer depth2colorFrameServer = null; + private TcpNetServer color2depthFrameServer = null; + private TcpNetServer color2infraredFrameServer = null; + private TcpNetServer color2bodyIndexFrameServer = null; + + // auto-server-discovery broadcast server + private UdpBroadcastServer autoDiscoveryServer = null; + + // sensor frame timestamps + //private ulong lastControlFrameTime = 0; + private ulong lastColorFrameTime = 0; + private ulong lastDepthFrameTime = 0; + private ulong lastInfraredFrameTime = 0; + private ulong lastBodyDataFrameTime = 0; + private ulong lastBodyIndexFrameTime = 0; + private ulong lastPoseFrameTime = 0; + private ulong lastDepth2ColorFrameTime = 0; + private ulong lastColor2DepthFrameTime = 0; + private ulong lastColor2InfraredFrameTime = 0; + private ulong lastColor2BodyIndexFrameTime = 0; + + // stream 2d textures + //private Texture2D colorTex2d = null; + //private Texture2D depthTex2d = null; + private Texture2D infraredTex2d = null; + private Texture2D depth2colorTex2d = null; + private Texture2D color2infraredTex2d = null; + + // depth & bi frame bytes + byte[] colorCamDepthFrameData = null; + byte[] colorCamBodyIndexFrameData = null; + + // last sensor pose + private string lastSensorPoseStr = string.Empty; + + //// whether color2depth is enabled or not + //private bool color2depthEnabled = false; + //private bool color2bodyIndexEnabled = false; + + // compressors + private ILZ4Compressor controlFrameCompressor = null; + private ILZ4Compressor depthFrameCompressor = null; + private ILZ4Compressor bodyIndexFrameCompressor = null; + private ILZ4Compressor color2depthFrameCompressor = null; + private ILZ4Compressor color2bodyIndexFrameCompressor = null; + + // console buffer + private System.Text.StringBuilder sbConsole = new System.Text.StringBuilder(); + + + void Start() + { + kinectManager = KinectManager.Instance; + sensorData = kinectManager ? kinectManager.GetSensorData(sensorIndex) : null; + + if(sensorData != null && sensorData.sensorInterface != null) + { + // cache space tables + Debug.Log("Caching space tables of sensor " + sensorIndex + "..."); + sensorData.sensorInterface.GetDepthCameraSpaceTable(sensorData); + sensorData.sensorInterface.GetColorCameraSpaceTable(sensorData); + + // init servers + Debug.Log("Initing network servers of sensor " + sensorIndex + "..."); + KinectInterop.FrameSource dwFlags = ((DepthSensorBase)sensorData.sensorInterface).frameSourceFlags; + InitNetServers(dwFlags); + } + else + { + Debug.LogError("KinectManager not found or not initialized."); + + if (serverStatusText) + { + serverStatusText.text = "KinectManager not found or not initialized."; + } + } + } + + + void OnDestroy() + { + // close all net servers + CloseNetServers(); + } + + + void Update() + { + if(connStatusText) + { + // update conn status + int connCount = GetConnectionsCount(); + connStatusText.text = string.Format("NetServer running: {0} connections.", connCount); + } + + if(sbConsole.Length > 0) + { + // update console + lock(sbConsole) + { + if(consoleText) + consoleText.text += sbConsole.ToString(); + sbConsole.Clear(); + } + + // scroll to end + ScrollRect scrollRect = consoleText ? consoleText.gameObject.GetComponentInParent() : null; + if (scrollRect) + { + Canvas.ForceUpdateCanvases(); + scrollRect.verticalScrollbar.value = 0f; + Canvas.ForceUpdateCanvases(); + } + } + + // check for updated data + UpdateNetServers(); + } + + + // initializes the sensor net servers + private void InitNetServers(KinectInterop.FrameSource dwFlags) + { + try + { + lastKeepAliveFrameTime = 0; + lastSensorPoseStr = string.Empty; + int minPort = int.MaxValue, maxPort = int.MinValue; + + controlFrameServer = new TcpNetServer(baseListenPort + (int)NetMessageType.Control, "ControlServer", sbConsole); + controlFrameServer.ReceivedMessage += new ReceivedMessageEventHandler(ControlFrameReceived); + minPort = Mathf.Min(minPort, controlFrameServer.serverPort); maxPort = Mathf.Max(maxPort, controlFrameServer.serverPort); + + if (compressRawFrames) + controlFrameCompressor = LZ4CompressorFactory.CreateNew(); + + if ((dwFlags & KinectInterop.FrameSource.TypeColor) != 0 && sensorData.colorImageTexture != null) + { + colorFrameServer = new TcpNetServer(baseListenPort + (int)NetMessageType.Color, "ColorServer", sbConsole); + minPort = Mathf.Min(minPort, colorFrameServer.serverPort); maxPort = Mathf.Max(maxPort, colorFrameServer.serverPort); + } + + if((dwFlags & KinectInterop.FrameSource.TypeDepth) != 0) + { + depthFrameServer = new TcpNetServer(baseListenPort + (int)NetMessageType.Depth, "DepthServer", sbConsole); + minPort = Mathf.Min(minPort, depthFrameServer.serverPort); maxPort = Mathf.Max(maxPort, depthFrameServer.serverPort); + + if(compressRawFrames) + depthFrameCompressor = LZ4CompressorFactory.CreateNew(); + } + + if ((dwFlags & KinectInterop.FrameSource.TypeInfrared) != 0) + { + infraredTex2d = new Texture2D(sensorData.depthImageWidth, sensorData.depthImageHeight, TextureFormat.ARGB32, false); + infraredFrameServer = new TcpNetServer(baseListenPort + (int)NetMessageType.Infrared, "InfraredServer", sbConsole); + minPort = Mathf.Min(minPort, infraredFrameServer.serverPort); maxPort = Mathf.Max(maxPort, infraredFrameServer.serverPort); + } + + if ((dwFlags & KinectInterop.FrameSource.TypeBody) != 0) + { + bodyDataFrameServer = new TcpNetServer(baseListenPort + (int)NetMessageType.BodyData, "BodyDataServer", sbConsole); + minPort = Mathf.Min(minPort, bodyDataFrameServer.serverPort); maxPort = Mathf.Max(maxPort, bodyDataFrameServer.serverPort); + } + + if ((dwFlags & KinectInterop.FrameSource.TypeBodyIndex) != 0 && serveBodyIndexFrames) + { + bodyIndexFrameServer = new TcpNetServer(baseListenPort + (int)NetMessageType.BodyIndex, "BodyIndexServer", sbConsole); + minPort = Mathf.Min(minPort, bodyIndexFrameServer.serverPort); maxPort = Mathf.Max(maxPort, bodyIndexFrameServer.serverPort); + + if (compressRawFrames) + bodyIndexFrameCompressor = LZ4CompressorFactory.CreateNew(); + } + + if ((dwFlags & KinectInterop.FrameSource.TypePose) != 0) + { + poseFrameServer = new TcpNetServer(baseListenPort + (int)NetMessageType.Pose, "PoseServer", sbConsole); + minPort = Mathf.Min(minPort, poseFrameServer.serverPort); maxPort = Mathf.Max(maxPort, poseFrameServer.serverPort); + } + + if ((dwFlags & KinectInterop.FrameSource.TypeColor) != 0 && (dwFlags & KinectInterop.FrameSource.TypeDepth) != 0) + { + depth2colorFrameServer = new TcpNetServer(baseListenPort + (int)NetMessageType.Depth2Color, "TColorServer", sbConsole); + minPort = Mathf.Min(minPort, depth2colorFrameServer.serverPort); maxPort = Mathf.Max(maxPort, depth2colorFrameServer.serverPort); + } + + if ((dwFlags & KinectInterop.FrameSource.TypeColor) != 0 && (dwFlags & KinectInterop.FrameSource.TypeDepth) != 0) + { + color2depthFrameServer = new TcpNetServer(baseListenPort + (int)NetMessageType.Color2Depth, "TDepthServer", sbConsole); + minPort = Mathf.Min(minPort, color2depthFrameServer.serverPort); maxPort = Mathf.Max(maxPort, color2depthFrameServer.serverPort); + + if (compressRawFrames) + color2depthFrameCompressor = LZ4CompressorFactory.CreateNew(); + } + + if ((dwFlags & KinectInterop.FrameSource.TypeColor) != 0 && (dwFlags & KinectInterop.FrameSource.TypeDepth) != 0) + { + color2infraredFrameServer = new TcpNetServer(baseListenPort + (int)NetMessageType.Color2Infrared, "TInfraredServer", sbConsole); + minPort = Mathf.Min(minPort, color2infraredFrameServer.serverPort); maxPort = Mathf.Max(maxPort, color2infraredFrameServer.serverPort); + } + + if ((dwFlags & KinectInterop.FrameSource.TypeColor) != 0 && (dwFlags & KinectInterop.FrameSource.TypeDepth) != 0 && (dwFlags & KinectInterop.FrameSource.TypeBodyIndex) != 0) + { + color2bodyIndexFrameServer = new TcpNetServer(baseListenPort + (int)NetMessageType.Color2BodyIndex, "TBodyIndex", sbConsole); + minPort = Mathf.Min(minPort, color2bodyIndexFrameServer.serverPort); maxPort = Mathf.Max(maxPort, color2bodyIndexFrameServer.serverPort); + + if (compressRawFrames) + color2bodyIndexFrameCompressor = LZ4CompressorFactory.CreateNew(); + } + + // get server ip address + string serverName = GetLocalNameOrIP(); + + if (listenForServerDiscovery) + { + int sensorType = (int)sensorData.sensorInterface.GetSensorPlatform(); + string sensorId = sensorData.sensorInterface.GetSensorDeviceId(); + + string responseData = string.Format("KNS|{0}|{1}|{2}|{3}", serverName, baseListenPort, sensorType, sensorId); + autoDiscoveryServer = new UdpBroadcastServer(baseListenPort, "DiscoveryServer", "KNS", responseData, sbConsole); + } + + if (serverStatusText) + { + serverStatusText.text = string.Format("NetServer listens on {0}:{1}-{2}", serverName, minPort, maxPort); + } + } + catch (System.Exception ex) + { + Debug.LogError("Error initing NetServer: " + ex.Message); + Debug.Log(ex); + + if (serverStatusText) + { + serverStatusText.text = string.Format("Error initing NetServer: {0}", ex.Message); + } + } + } + + + // closes all sensor net servers + private void CloseNetServers() + { + try + { + if (controlFrameServer != null) + { + controlFrameServer.ReceivedMessage -= new ReceivedMessageEventHandler(ControlFrameReceived); + controlFrameServer.Close(); + controlFrameServer = null; + controlFrameCompressor = null; + } + + if (colorFrameServer != null) + { + colorFrameServer.Close(); + colorFrameServer = null; + } + + if (depthFrameServer != null) + { + depthFrameServer.Close(); + depthFrameServer = null; + depthFrameCompressor = null; + } + + if (infraredFrameServer != null) + { + infraredFrameServer.Close(); + infraredFrameServer = null; + } + + if (bodyDataFrameServer != null) + { + bodyDataFrameServer.Close(); + bodyDataFrameServer = null; + } + + if (bodyIndexFrameServer != null) + { + bodyIndexFrameServer.Close(); + bodyIndexFrameServer = null; + bodyIndexFrameCompressor = null; + } + + if (poseFrameServer != null) + { + poseFrameServer.Close(); + poseFrameServer = null; + } + + if (depth2colorFrameServer != null) + { + depth2colorFrameServer.Close(); + depth2colorFrameServer = null; + } + + if (color2depthFrameServer != null) + { + color2depthFrameServer.Close(); + color2depthFrameServer = null; + color2depthFrameCompressor = null; + } + + if (color2infraredFrameServer != null) + { + color2infraredFrameServer.Close(); + color2infraredFrameServer = null; + } + + if (color2bodyIndexFrameServer != null) + { + color2bodyIndexFrameServer.Close(); + color2bodyIndexFrameServer = null; + color2bodyIndexFrameCompressor = null; + } + + if(autoDiscoveryServer != null) + { + autoDiscoveryServer.Close(); + autoDiscoveryServer = null; + } + + if (serverStatusText) + { + serverStatusText.text = "NetServer closed."; + } + + } + catch (System.Exception ex) + { + Debug.LogError("Error closing NetServer: " + ex.Message); + Debug.Log(ex); + + if (serverStatusText) + { + serverStatusText.text = string.Format("Error closing NetServer: {0}", ex.Message); + } + } + } + + + // checks for updated sensor data and sends it to the connected clients + private void UpdateNetServers() + { + if (sensorData == null) + return; + + try + { + // control - keep alive + ulong ulTimeNow = (ulong)System.DateTime.Now.Ticks; + bool isControlClientActive = controlFrameServer != null ? controlFrameServer.IsActive() : false; + + if ((ulTimeNow - lastKeepAliveFrameTime) >= keepAliveInterval && isControlClientActive) + { + lastKeepAliveFrameTime = ulTimeNow; + SendControlMessage(ControlMessageType.KeepAlive); + } + + // wait all current messages to be sent + if (GetMessageCount(false) > 0) + return; + + // color frame + if (colorFrameServer != null && colorFrameServer.GetConnCount() > 0) + { + if(sensorData.lastColorFrameTime != lastColorFrameTime) + { + lastColorFrameTime = sensorData.lastColorFrameTime; + + byte[] btColorData = ((Texture2D)sensorData.colorImageTexture).EncodeToJPG(); + + NetMessageData message = new NetMessageData(NetMessageType.Color, FrameEncodeType.Jpeg, + sensorData.colorImageWidth, sensorData.colorImageHeight, lastColorFrameTime); + message.SetData(btColorData); + + colorFrameServer.SendMessageToAllConnections(message); + } + } + + // depth frame + if (depthFrameServer != null && depthFrameServer.GetConnCount() > 0) + { + if (sensorData.lastDepthFrameTime != lastDepthFrameTime) + { + lastDepthFrameTime = sensorData.lastDepthFrameTime; + + NetMessageData message = new NetMessageData(NetMessageType.Depth, FrameEncodeType.Raw, + sensorData.depthImageWidth, sensorData.depthImageHeight, lastDepthFrameTime); + message.SetData(sensorData.depthImage); + + if (compressRawFrames) + { + message.SetCompressor(depthFrameCompressor); + message.CompressData(); + } + + depthFrameServer.SendMessageToAllConnections(message); + } + } + + // infrared frame + if (infraredFrameServer != null && infraredFrameServer.GetConnCount() > 0) + { + if (sensorData.lastInfraredImageTime != lastInfraredFrameTime) + { + lastInfraredFrameTime = sensorData.lastInfraredImageTime; + + byte[] btInfraredData = GetTextureAsJpeg(sensorData.infraredImageTexture, infraredTex2d); + + NetMessageData message = new NetMessageData(NetMessageType.Color, FrameEncodeType.Jpeg, + sensorData.depthImageWidth, sensorData.depthImageHeight, lastInfraredFrameTime); + message.SetData(btInfraredData); + + infraredFrameServer.SendMessageToAllConnections(message); + } + } + + // body data frame + if (bodyDataFrameServer != null && bodyDataFrameServer.GetConnCount() > 0) + { + if (sensorData.lastBodyFrameTime != lastBodyDataFrameTime) + { + lastBodyDataFrameTime = sensorData.lastBodyFrameTime; + + float fUnityTime = 0f; + string sBodyFrame = KinectInterop.GetBodyFrameAsCsv(ref sensorData.alTrackedBodies, + sensorData.trackedBodiesCount, sensorData.lastBodyFrameTime, sensorData.sensorSpaceScale, ref fUnityTime, '\t'); + byte[] btBodyData = System.Text.Encoding.UTF8.GetBytes(sBodyFrame); + + NetMessageData message = new NetMessageData(NetMessageType.BodyData, FrameEncodeType.K4b, + sensorData.depthImageWidth, sensorData.depthImageHeight, lastBodyDataFrameTime); + message.SetData(btBodyData); + + bodyDataFrameServer.SendMessageToAllConnections(message); + } + } + + // body index frame + if (bodyIndexFrameServer != null && bodyIndexFrameServer.GetConnCount() > 0) + { + if (sensorData.lastBodyIndexFrameTime != lastBodyIndexFrameTime) + { + lastBodyIndexFrameTime = sensorData.lastBodyIndexFrameTime; + + NetMessageData message = new NetMessageData(NetMessageType.BodyIndex, FrameEncodeType.Raw, + sensorData.depthImageWidth, sensorData.depthImageHeight, lastBodyIndexFrameTime); + message.SetData(sensorData.bodyIndexImage); + + if (compressRawFrames) + { + message.SetCompressor(bodyIndexFrameCompressor); + message.CompressData(); + } + + bodyIndexFrameServer.SendMessageToAllConnections(message); + } + } + + // pose frame + if (poseFrameServer != null && poseFrameServer.GetConnCount() > 0) + { + if (sensorData.lastSensorPoseFrameTime != lastPoseFrameTime) + { + lastPoseFrameTime = sensorData.lastSensorPoseFrameTime; + + string curSensorPoseStr = sensorData.sensorPosePosition.ToString() + " " + sensorData.sensorPoseRotation.eulerAngles.ToString(); + if(lastSensorPoseStr != curSensorPoseStr) + { + lastSensorPoseStr = curSensorPoseStr; + + KinectInterop.NetPoseData netPoseData = sensorData.sensorInterface.GetSensorNetPoseData(sensorData); + string sPoseData = JsonUtility.ToJson(netPoseData); + byte[] btPoseData = System.Text.Encoding.UTF8.GetBytes(sPoseData); + + NetMessageData message = new NetMessageData(NetMessageType.Pose, FrameEncodeType.Json, 0, 0, lastPoseFrameTime); + message.SetData(btPoseData); + + poseFrameServer.SendMessageToAllConnections(message); + } + } + } + + // depth2color frame + if (depth2colorFrameServer != null && depth2colorFrameServer.GetConnCount() > 0) + { + if(depth2colorTex2d == null) + { + depth2colorTex2d = new Texture2D(sensorData.depthImageWidth, sensorData.depthImageHeight, sensorData.colorImageFormat, false); + sensorData.sensorInterface.EnableDepthCameraColorFrame(sensorData, true); + } + + ulong frameTime = 0; + Texture depth2colorTex = sensorData.sensorInterface.GetDepthCameraColorFrameTexture(sensorData, ref depth2colorTex2d, ref frameTime); + + if (depth2colorTex != null && frameTime != lastDepth2ColorFrameTime) + { + lastDepth2ColorFrameTime = frameTime; + + byte[] btFrameData = depth2colorTex2d.EncodeToPNG(); + //Debug.Log("Depth2ColorFrame length: " + btFrameData.Length); + + NetMessageData message = new NetMessageData(NetMessageType.Depth2Color, FrameEncodeType.Jpeg, + sensorData.depthImageWidth, sensorData.depthImageHeight, frameTime); + message.SetData(btFrameData); + + depth2colorFrameServer.SendMessageToAllConnections(message); + } + } + else if (depth2colorTex2d != null && depth2colorFrameServer != null && depth2colorFrameServer.GetConnCount() == 0) + { + // disable depth2color frame + depth2colorTex2d = null; + sensorData.sensorInterface.EnableDepthCameraColorFrame(sensorData, false); + } + + // color2depth frame + if (color2depthFrameServer != null && color2depthFrameServer.GetConnCount() > 0) + { + if(colorCamDepthFrameData == null) + { + colorCamDepthFrameData = new byte[sensorData.colorImageWidth * sensorData.colorImageHeight * sizeof(ushort)]; + sensorData.sensorInterface.EnableColorCameraDepthFrame(sensorData, true); + //color2depthEnabled = true; + } + + ulong frameTime = 0; + byte[] btFrameData = sensorData.sensorInterface.GetColorCameraDepthFrameBytes(sensorData, ref colorCamDepthFrameData, ref frameTime); + + if (btFrameData != null && frameTime != lastColor2DepthFrameTime) + { + lastColor2DepthFrameTime = frameTime; + + NetMessageData message = new NetMessageData(NetMessageType.Color2Depth, FrameEncodeType.Raw, + sensorData.colorImageWidth, sensorData.colorImageHeight, frameTime); + message.SetData(btFrameData); + + if (compressRawFrames) + { + message.SetCompressor(color2depthFrameCompressor); + message.CompressData(); + } + + color2depthFrameServer.SendMessageToAllConnections(message); + } + } + else if (colorCamDepthFrameData != null && color2depthFrameServer != null && color2depthFrameServer.GetConnCount() == 0) + { + // disable color2depth frame + //color2depthEnabled = false; + colorCamDepthFrameData = null; + sensorData.sensorInterface.EnableColorCameraDepthFrame(sensorData, false); + } + + // color2infrared frame + if (color2infraredFrameServer != null && color2infraredFrameServer.GetConnCount() > 0) + { + if (color2infraredTex2d == null) + { + color2infraredTex2d = new Texture2D(sensorData.colorImageWidth, sensorData.colorImageHeight, TextureFormat.ARGB32, false); + sensorData.sensorInterface.EnableColorCameraInfraredFrame(sensorData, false, true); + } + + ulong frameTime = 0; + Texture color2infraredTex = sensorData.sensorInterface.GetColorCameraInfraredFrameTexture(sensorData, ref color2infraredTex2d, ref frameTime); + + if (color2infraredTex != null && frameTime != lastColor2InfraredFrameTime) + { + lastColor2InfraredFrameTime = frameTime; + + byte[] btFrameData = color2infraredTex2d.EncodeToPNG(); + //Debug.Log("Color2InfraredFrame length: " + btFrameData.Length); + + NetMessageData message = new NetMessageData(NetMessageType.Color2Infrared, FrameEncodeType.Jpeg, + sensorData.colorImageWidth, sensorData.colorImageHeight, frameTime); + message.SetData(btFrameData); + + color2infraredFrameServer.SendMessageToAllConnections(message); + } + } + else if (color2infraredTex2d != null && color2infraredFrameServer != null && color2infraredFrameServer.GetConnCount() == 0) + { + // disable color2infrared frame + color2infraredTex2d = null; + sensorData.sensorInterface.EnableColorCameraInfraredFrame(sensorData, false, false); + } + + // color2bodyIndex frame + if (color2bodyIndexFrameServer != null && color2bodyIndexFrameServer.GetConnCount() > 0) + { + if(colorCamBodyIndexFrameData == null) + { + colorCamBodyIndexFrameData = new byte[sensorData.colorImageWidth * sensorData.colorImageHeight]; + sensorData.sensorInterface.EnableColorCameraBodyIndexFrame(sensorData, true); + //color2bodyIndexEnabled = true; + } + + ulong frameTime = 0; + byte[] btFrameData = sensorData.sensorInterface.GetColorCameraBodyIndexFrame(sensorData, ref colorCamBodyIndexFrameData, ref frameTime); + + if (btFrameData != null && frameTime != lastColor2BodyIndexFrameTime) + { + lastColor2BodyIndexFrameTime = frameTime; + + NetMessageData message = new NetMessageData(NetMessageType.Color2BodyIndex, FrameEncodeType.Raw, + sensorData.colorImageWidth, sensorData.colorImageHeight, frameTime); + message.SetData(btFrameData); + + if (compressRawFrames) + { + message.SetCompressor(color2bodyIndexFrameCompressor); + message.CompressData(); + } + + color2bodyIndexFrameServer.SendMessageToAllConnections(message); + } + } + else if (colorCamBodyIndexFrameData != null && color2bodyIndexFrameServer != null && color2bodyIndexFrameServer.GetConnCount() == 0) + { + // disable color2bodyIndex frame + //color2bodyIndexEnabled = false; + colorCamBodyIndexFrameData = null; + sensorData.sensorInterface.EnableColorCameraBodyIndexFrame(sensorData, false); + } + + } + catch (System.Exception ex) + { + Debug.LogError("Error updating NetServer: " + ex.Message); + Debug.LogError(ex); + } + } + + + // control frame received + private void ControlFrameReceived(object state, ReceivedMessageEventArgs args) + { + if (sensorData == null) + return; + + try + { + if(args.message.frameData != null && args.message.frameData.Length > 0) + { + ControlMessageType ctrlMsgType = (ControlMessageType)args.message.frameData[0]; + + switch(ctrlMsgType) + { + case ControlMessageType.GetSensorData: + CtrlSendGetSensorData(); + break; + + case ControlMessageType.KeepAlive: + // do nothing + break; + + case ControlMessageType.Disconnect: + // do nothing for now + break; + + case ControlMessageType.GetDST: + CtrlSendGetDST(); + break; + + case ControlMessageType.GetCST: + CtrlSendGetCST(); + break; + + default: + throw new System.Exception("Invalid control message: " + args.message.frameData[0]); + } + } + } + catch (System.Exception ex) + { + Debug.LogException(ex); + } + } + + + // sends the net-sensor-data to clients + private void CtrlSendGetSensorData() + { + KinectInterop.NetSensorData netSensorData = sensorData.sensorInterface.GetNetSensorData(sensorData); + string sNetSensorData = netSensorData != null ? JsonUtility.ToJson(netSensorData) : null; + byte[] btNetSensorData = System.Text.Encoding.UTF8.GetBytes(sNetSensorData); + + ulong ulTimeNow = (ulong)System.DateTime.Now.Ticks; + NetMessageData message = new NetMessageData(NetMessageType.Control, FrameEncodeType.SensorDataJson, 0, 0, ulTimeNow); + message.SetData(btNetSensorData); + + if (compressRawFrames) + { + message.SetCompressor(controlFrameCompressor); + message.CompressData(); + } + + controlFrameServer.SendMessageToAllConnections(message); + } + + + // sends the net-dst data to clients + private void CtrlSendGetDST() + { + Vector3[] avSpaceTable = sensorData.sensorInterface.GetDepthCameraSpaceTable(sensorData); + + if(avSpaceTable != null) + { + byte[] btSpaceTable = new byte[avSpaceTable.Length * 3 * sizeof(float)]; + KinectInterop.CopyBytes(avSpaceTable, 3 * sizeof(float), btSpaceTable, sizeof(byte)); + + ulong ulTimeNow = (ulong)System.DateTime.Now.Ticks; + NetMessageData message = new NetMessageData(NetMessageType.Control, FrameEncodeType.DSTraw, sensorData.depthImageWidth, sensorData.depthImageHeight, ulTimeNow); + message.SetData(btSpaceTable); + + if (compressRawFrames) + { + message.SetCompressor(controlFrameCompressor); + message.CompressData(); + } + + controlFrameServer.SendMessageToAllConnections(message); + } + } + + + // sends the net-cst data to clients + private void CtrlSendGetCST() + { + Vector3[] avSpaceTable = sensorData.sensorInterface.GetColorCameraSpaceTable(sensorData); + + if (avSpaceTable != null) + { + byte[] btSpaceTable = new byte[avSpaceTable.Length * 3 * sizeof(float)]; + KinectInterop.CopyBytes(avSpaceTable, 3 * sizeof(float), btSpaceTable, sizeof(byte)); + + ulong ulTimeNow = (ulong)System.DateTime.Now.Ticks; + NetMessageData message = new NetMessageData(NetMessageType.Control, FrameEncodeType.CSTraw, sensorData.colorImageWidth, sensorData.colorImageHeight, ulTimeNow); + message.SetData(btSpaceTable); + + if (compressRawFrames) + { + message.SetCompressor(controlFrameCompressor); + message.CompressData(); + } + + controlFrameServer.SendMessageToAllConnections(message); + } + } + + + // convert render texture to jpg format + private byte[] GetTextureAsJpeg(RenderTexture tex, Texture2D tex2d) + { + KinectInterop.RenderTex2Tex2D(tex, ref tex2d); + byte[] btJpeg = tex2d.EncodeToJPG(); + + return btJpeg; + } + + + // returns local host name or ip address + private string GetLocalNameOrIP() + { + string localIP = "localhost"; + + try + { + IPHostEntry host = Dns.GetHostEntry(Dns.GetHostName()); + + foreach (IPAddress ip in host.AddressList) + { + if (ip.AddressFamily == AddressFamily.InterNetwork) + { + localIP = ip.ToString(); + if (localIP == "0.0.0.0" || localIP.StartsWith("169.254.")) + continue; + + break; + } + } + } + catch (System.Exception ex) + { + Debug.LogException(ex); + } + + return localIP; + } + + + // returns the number of active connections + private int GetConnectionsCount() + { + int numConn = 0; + + if (controlFrameServer != null) + numConn += controlFrameServer.GetConnCount(); + if (colorFrameServer != null) + numConn += colorFrameServer.GetConnCount(); + if (depthFrameServer != null) + numConn += depthFrameServer.GetConnCount(); + if (infraredFrameServer != null) + numConn += infraredFrameServer.GetConnCount(); + if (bodyDataFrameServer != null) + numConn += bodyDataFrameServer.GetConnCount(); + if (bodyIndexFrameServer != null) + numConn += bodyIndexFrameServer.GetConnCount(); + if (poseFrameServer != null) + numConn += poseFrameServer.GetConnCount(); + if (depth2colorFrameServer != null) + numConn += depth2colorFrameServer.GetConnCount(); + if (color2depthFrameServer != null) + numConn += color2depthFrameServer.GetConnCount(); + if (color2infraredFrameServer != null) + numConn += color2infraredFrameServer.GetConnCount(); + if (color2bodyIndexFrameServer != null) + numConn += color2bodyIndexFrameServer.GetConnCount(); + + return numConn; + } + + // returns the number of unsent messages in all servers + private int GetMessageCount(bool inclCtrlMessages) + { + int numMessages = 0; + + if (inclCtrlMessages && controlFrameServer != null && controlFrameServer.IsConnected()) + numMessages += controlFrameServer.GetMessageCount(); + if (colorFrameServer != null && colorFrameServer.IsConnected()) + numMessages += colorFrameServer.GetMessageCount(); + if (depthFrameServer != null && depthFrameServer.IsConnected()) + numMessages += depthFrameServer.GetMessageCount(); + if (infraredFrameServer != null && infraredFrameServer.IsConnected()) + numMessages += infraredFrameServer.GetMessageCount(); + if (bodyDataFrameServer != null && bodyDataFrameServer.IsConnected()) + numMessages += bodyDataFrameServer.GetMessageCount(); + if (bodyIndexFrameServer != null && bodyIndexFrameServer.IsConnected()) + numMessages += bodyIndexFrameServer.GetMessageCount(); + if (poseFrameServer != null && poseFrameServer.IsConnected()) + numMessages += poseFrameServer.GetMessageCount(); + if (depth2colorFrameServer != null && depth2colorFrameServer.IsConnected()) + numMessages += depth2colorFrameServer.GetMessageCount(); + if (color2depthFrameServer != null && color2depthFrameServer.IsConnected()) + numMessages += color2depthFrameServer.GetMessageCount(); + if (color2infraredFrameServer != null && color2infraredFrameServer.IsConnected()) + numMessages += color2infraredFrameServer.GetMessageCount(); + if (color2bodyIndexFrameServer != null && color2bodyIndexFrameServer.IsConnected()) + numMessages += color2bodyIndexFrameServer.GetMessageCount(); + + return numMessages; + } + + + // sends control message to the server + private void SendControlMessage(ControlMessageType messageType) + { + if (controlFrameServer != null && controlFrameServer.IsActive()) + { + ulong ulTimeNow = (ulong)System.DateTime.Now.Ticks; + NetMessageData msg = new NetMessageData(NetMessageType.Control, FrameEncodeType.Raw, 0, 0, ulTimeNow); + + byte[] btMsgData = new byte[1]; + btMsgData[0] = (byte)messageType; + msg.SetData(btMsgData); + + controlFrameServer.SendMessageToAllConnections(msg); + //Debug.Log("Sending ctrl message " + messageType); + } + } + + } + + + /// + /// TcpNetServer provides network server functionality over tcp streams. + /// This class is based on the excellent work of Andy Wilson and Hrvoje Benko in "Room Alive Toolkit" - https://github.com/microsoft/RoomAliveToolkit + /// + internal class TcpNetServer + { + public int serverPort = 11000; + //private const int bufferSize = 10240000; + public int tmpBufferSize = 640000; + + private System.Text.StringBuilder sbConsole = null; + + private TcpListener server; + private List connections = new List(); + + public bool isServerRunning = false; + + // thread signal + public ManualResetEvent allDoneServer = new ManualResetEvent(false); + + public string serverName = string.Empty; + + public ReceivedMessageEventHandler ReceivedMessage = null; + + + public bool IsConnected() + { + return (connections.Count > 0); + } + + public int GetConnCount() + { + return connections.Count; + } + + public bool IsActive() + { + bool bActive = (connections.Count > 0) ? true : false; + + foreach (NetConnData conn in connections) + { + if (!conn.isActive) + { + bActive = false; + break; + } + } + + return bActive; + } + + public bool IsReadyToSend() + { + bool bReady = (connections.Count > 0) ? true : false; + + foreach (NetConnData conn in connections) + { + if (!conn.readyToSend) + { + bReady = false; + break; + } + } + + return bReady; + } + + public int GetMessageCount() + { + int count = 0; + + foreach (NetConnData conn in connections) + { + count += conn.messageQueue.Count; + } + + return count; + } + + //public void CloseConnection(int connId) + //{ + // foreach (NetConnData conn in connections) + // { + // if (conn.ID == connId) + // { + // //Debug.Log(serverName + " closing connection " + conn.ID + " to " + conn.remoteEP); + // LogToConsole(serverName + " closing connection to client " + conn.remoteIP); + // conn.isActive = false; + + // connections.Remove(conn); + // break; + // } + // } + //} + + public void CloseConnectionsTo(string remoteIP) + { + for (int i = connections.Count - 1; i >= 0; i--) + { + NetConnData conn = connections[i]; + + if (conn.remoteIP == remoteIP) + { + //Debug.Log(serverName + " closing connection " + conn.ID + " to " + conn.remoteEP); + LogToConsole(serverName + " closing connection to client " + conn.remoteIP); + conn.isActive = false; + + connections.Remove(conn); + } + } + } + + public void CloseAllConnections() + { + foreach (NetConnData conn in connections) + { + //Debug.Log(serverName + " closing connection " + conn.ID + " to " + conn.remoteEP); + LogToConsole(serverName + " closing connection to client " + conn.remoteIP); + conn.isActive = false; + } + + connections.Clear(); + } + + public void SendMessageToAllConnections(NetMessageData message) + { + foreach (NetConnData conn in connections) + { + lock (conn.messageQueue) + { + if (conn.messageQueue.Count < NetConnData.MaxMessageQueueLength) + { + conn.messageQueue.Enqueue(message); + } + } + } + } + + public void SendMessageToConnection(NetMessageData message, int connId) + { + foreach (NetConnData conn in connections) + { + if (conn.ID == connId) + { + lock (conn.messageQueue) + { + if (conn.messageQueue.Count < NetConnData.MaxMessageQueueLength) + { + conn.messageQueue.Enqueue(message); + } + } + + break; + } + } + } + + + public TcpNetServer(int port, string name, System.Text.StringBuilder sbConsole) + { + serverPort = port; + serverName = name; + this.sbConsole = sbConsole; + + isServerRunning = true; + Thread serverThread = new Thread(StartServer); + serverThread.Start(); + } + + public void Close() + { + isServerRunning = false; + allDoneServer.Set(); + + foreach (NetConnData cs in connections) + { + cs.isActive = false; + } + } + + private void StartServer() + { + try + { + IPHostEntry host = Dns.GetHostEntry(Dns.GetHostName()); + string localIP = "localhost"; + + foreach (IPAddress ip in host.AddressList) + { + if (ip.AddressFamily == AddressFamily.InterNetwork) + { + localIP = ip.ToString(); + if (localIP == "0.0.0.0" || localIP.StartsWith("169.254.")) + continue; + + break; + } + } + + IPEndPoint listenEP = new IPEndPoint(IPAddress.Any, serverPort); + server = new TcpListener(listenEP); + + server.Start(); + //Debug.Log(serverName + " started on " + localIP + ":" + serverPort); + LogToConsole(serverName + " started on " + localIP + ":" + serverPort); + + while (isServerRunning) + { + allDoneServer.Reset(); + server.BeginAcceptTcpClient(new System.AsyncCallback(HandleNetClientConnected), server); + + allDoneServer.WaitOne(); + } + } + catch (SocketException e) + { + LogErrorToConsole(serverName + " SocketException: " + e.ToString()); + } + finally + { + // Stop listening for new clients. + isServerRunning = false; + server.Stop(); + + LogToConsole(serverName + " stopped."); + } + } + + private void HandleNetClientConnected(System.IAsyncResult ar) + { + TcpListener server = (TcpListener)ar.AsyncState; + + try + { + NetConnData conn = new NetConnData(); + + conn.client = server.EndAcceptTcpClient(ar); + conn.stream = conn.client.GetStream(); + + conn.remoteIP = conn.client.Client.RemoteEndPoint.ToString(); + int iP = conn.remoteIP.IndexOf(':'); + if (iP >= 0) + conn.remoteIP = conn.remoteIP.Substring(0, iP); + + CloseConnectionsTo(conn.remoteIP); + connections.Add(conn); + allDoneServer.Set(); + + LogToConsole(serverName + " connected to client " + conn.remoteIP); + + NetClientProc(conn); + } + catch(System.ObjectDisposedException) + { + // do nothing + } + catch (System.Exception ex) + { + LogErrorToConsole(serverName + " error while connecting: " + ex.Message); + //Debug.LogException(ex); + allDoneServer.Set(); + } + } + + private void NetClientProc(NetConnData conn) + { + conn.isActive = true; + int bytesReceived = 0; + byte[] bufferTmp = new byte[tmpBufferSize]; + + try + { + while (conn.client.Connected && conn.isActive) + { + if (conn.readyToSend && conn.stream.CanWrite && conn.messageQueue.Count > 0) + { + byte[] sendBuffer; + lock (conn.messageQueue) + { + NetMessageData message = conn.messageQueue.Dequeue(); + //int messageLen = message.frameData.Length; + sendBuffer = message.WrapMessage(); + //if (message.msgType == NetMessageType.Depth) + // Debug.Log(" msg type: " + message.msgType + " - " + message.encType + ", ts: " + message.timestamp + ", frameLen: " + messageLen + " - " + message.frameData.Length + ", bufLen: " + sendBuffer.Length); + conn.readyToSend = false; + //Debug.Log("Sending message " + message.timestamp + " - " + message.msgType + " @ " + System.DateTime.Now.ToString("HH:mm:ss.fff")); + } + + conn.stream.BeginWrite(sendBuffer, 0, sendBuffer.Length, new System.AsyncCallback(MessageSentToClient), conn); + } + + bytesReceived = 0; + while (conn.stream.DataAvailable) + { + conn.messageReceiveTime = (ulong)System.DateTime.Now.Ticks; + bytesReceived = conn.stream.Read(bufferTmp, 0, bufferTmp.Length); + ProcessReceivedData(bufferTmp, bytesReceived, conn); + } + + Thread.Sleep(KinectInterop.THREAD_SLEEP_TIME_MS); + } + } + catch (System.Exception ex) + { + LogErrorToConsole(ex); + } + + conn.isActive = false; + conn.messageQueue.Clear(); + + LogToConsole(serverName + " connection to client " + conn.remoteIP + " closed."); + + conn.stream.Close(); + conn.client.Close(); + + if(connections.Contains(conn)) + { + connections.Remove(conn); + } + } + + private void MessageSentToClient(System.IAsyncResult ar) + { + NetConnData conn = (NetConnData)ar.AsyncState; + + try + { + conn.stream.EndWrite(ar); + } + catch (System.Exception ex) + { + if(conn.isActive) + { + LogErrorToConsole(serverName + " error sending to client: " + ex.Message); + //Debug.LogException(ex); + + conn.isActive = false; + } + } + + conn.readyToSend = true; + } + + private void ProcessReceivedData(byte[] buffer, int bytesReceived, NetConnData conn) + { + if (conn.bytesReceived == 0 && bytesReceived > 3) //new message + { + int newMessageSize = System.BitConverter.ToInt32(buffer, 0) + sizeof(int); //prefix is one int + + if (newMessageSize != conn.messageSize) + { + conn.messageSize = newMessageSize; + conn.messageBuffer = new byte[newMessageSize]; + } + } + + int availableLength = conn.messageSize - conn.bytesReceived; + int copyLen = Mathf.Min(availableLength, bytesReceived); + conn.packetCounter++; + + System.Array.Copy(buffer, 0, conn.messageBuffer, conn.bytesReceived, copyLen); + conn.bytesReceived += copyLen; + + if (conn.bytesReceived == conn.messageSize) + { + conn.ResetCounters(); + + NetMessageData message = new NetMessageData(); + //message.SetDecompressor(decompressor); + message.UnwrapMessage(conn.messageBuffer); + + ReceivedMessage?.Invoke(conn, new ReceivedMessageEventArgs(message)); + } + + if (copyLen != bytesReceived) + { + byte[] newBuffer = new byte[bytesReceived - copyLen]; + System.Array.Copy(buffer, copyLen, newBuffer, 0, bytesReceived - copyLen); + ProcessReceivedData(newBuffer, bytesReceived - copyLen, conn); + } + } + + // logs message to the console + private void LogToConsole(string sMessage) + { + Debug.Log(sMessage); + + lock(sbConsole) + { + sbConsole.Append(sMessage).AppendLine(); + } + } + + // logs error message to the console + private void LogErrorToConsole(string sMessage) + { + Debug.LogError(sMessage); + + lock (sbConsole) + { + sbConsole.Append(sMessage).AppendLine(); + } + } + + + // logs error message to the console + private void LogErrorToConsole(System.Exception ex) + { + LogErrorToConsole(ex.Message + "\n" + ex.StackTrace); + } + + } + + + /// + /// UdpBroadcastServer provides broadcast functionality over the network. + /// + internal class UdpBroadcastServer + { + public int serverPort = 11000; + + private UdpClient server; + + public bool isServerRunning = false; + + // thread signal + public ManualResetEvent allDoneServer = new ManualResetEvent(false); + + public string serverName = string.Empty; + + public string sRequestKey = string.Empty; + public string sResponseData = string.Empty; + public byte[] btResponseData = new byte[0]; + + private System.Text.StringBuilder sbConsole = null; + + + public UdpBroadcastServer(int port, string name, string requestKey, string responseData, System.Text.StringBuilder sbConsole) + { + serverPort = port; + serverName = name; + + sRequestKey = requestKey; + sResponseData = responseData; + btResponseData = System.Text.Encoding.UTF8.GetBytes(sResponseData); + + this.sbConsole = sbConsole; + + isServerRunning = true; + Thread serverThread = new Thread(StartServer); + serverThread.Start(); + } + + public void Close() + { + isServerRunning = false; + allDoneServer.Set(); + } + + private void StartServer() + { + try + { + IPEndPoint ep = new IPEndPoint(IPAddress.Any, serverPort); + server = new UdpClient(ep); + + //Debug.Log(serverName + " started on " + localIP + ":" + serverPort); + LogToConsole(serverName + " started on udp port " + serverPort); + + while (isServerRunning) + { + allDoneServer.Reset(); + + UdpState state = new UdpState(); + state.ep = ep; + state.uc = server; + + //Debug.Log("Listening for udp requests."); + server.BeginReceive(new System.AsyncCallback(HandleNetClientConnected), state); + + allDoneServer.WaitOne(); + } + } + catch (SocketException e) + { + LogErrorToConsole(serverName + " SocketException: " + e.ToString()); + } + finally + { + isServerRunning = false; + server.Close(); + + LogToConsole(serverName + " stopped."); + } + } + + private void HandleNetClientConnected(System.IAsyncResult ar) + { + UdpState state = (UdpState)ar.AsyncState; + + try + { + UdpClient uc = state.uc; + IPEndPoint ep = state.ep; + + byte[] receiveBytes = uc.EndReceive(ar, ref ep); + + string receiveString = System.Text.Encoding.UTF8.GetString(receiveBytes); + if (receiveString == sRequestKey) + { + LogToConsole(serverName + " received broadcast request from " + ep.Address.ToString()); + uc.BeginSend(btResponseData, btResponseData.Length, ep, new System.AsyncCallback(MessageSentToClient), uc); + } + else + { + LogErrorToConsole(serverName + " received false request '" + receiveString + "' from " + ep.ToString()); + } + } + catch (System.ObjectDisposedException) + { + // do nothing + } + catch (System.Exception ex) + { + LogErrorToConsole(serverName + " error while connecting: " + ex.Message); + //Debug.LogException(ex); + } + + allDoneServer.Set(); + } + + private void MessageSentToClient(System.IAsyncResult ar) + { + UdpClient uc = (UdpClient)ar.AsyncState; + + try + { + uc.EndSend(ar); + } + catch (System.Exception ex) + { + LogErrorToConsole(serverName + " error sending to client: " + ex.Message); + //Debug.LogException(ex); + } + } + + // logs message to the console + private void LogToConsole(string sMessage) + { + Debug.Log(sMessage); + + lock (sbConsole) + { + sbConsole.Append(sMessage).AppendLine(); + } + } + + // logs error message to the console + private void LogErrorToConsole(string sMessage) + { + Debug.LogError(sMessage); + + lock (sbConsole) + { + sbConsole.Append(sMessage).AppendLine(); + } + } + + + // logs error message to the console + private void LogErrorToConsole(System.Exception ex) + { + LogErrorToConsole(ex.Message + "\n" + ex.StackTrace); + } + + } + +} diff --git a/Assets/Azure/KinectScripts/KinectNetServer.cs.meta b/Assets/Azure/KinectScripts/KinectNetServer.cs.meta new file mode 100644 index 0000000..dc1aa89 --- /dev/null +++ b/Assets/Azure/KinectScripts/KinectNetServer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6bc9e8fa68b47d149b43526cb8d11a19 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/KinectNetTools.cs b/Assets/Azure/KinectScripts/KinectNetTools.cs new file mode 100644 index 0000000..f34efa5 --- /dev/null +++ b/Assets/Azure/KinectScripts/KinectNetTools.cs @@ -0,0 +1,250 @@ +using LZ4Sharp; +using System.Collections; +using System.Collections.Generic; +using System.Net.Sockets; +using UnityEngine; + +namespace com.rfilkov.kinect +{ + // message-received delegate + internal delegate void ReceivedMessageEventHandler(object sender, ReceivedMessageEventArgs e); + + + // received message event + internal class ReceivedMessageEventArgs : System.EventArgs + { + public NetMessageData message; + public bool synched; + + public ReceivedMessageEventArgs(NetMessageData message) + { + this.message = message; + this.synched = false; + } + + public ReceivedMessageEventArgs(NetMessageData message, bool synched) + { + this.message = message; + this.synched = synched; + } + } + + + // network connection data + internal class NetConnData + { + public TcpClient client = null; + public NetworkStream stream = null; + public string remoteIP = string.Empty; + + private static int counter = 1; + public int messageSize = 0; + + public int ID = 0; //counter of clients (each is unique) + public bool readyToSend = true; + + public bool isActive = false; + + public const int MaxMessageQueueLength = 10; // 50; 2; + public Queue messageQueue = new Queue(MaxMessageQueueLength); + + public byte[] messageBuffer = null; + public int bytesReceived = 0; + public int packetCounter = 0; + public ulong messageReceiveTime = 0; + + + public NetConnData() + { + ID = counter; + counter++; + messageBuffer = new byte[messageSize]; + } + + public void ResetCounters() + { + bytesReceived = 0; + packetCounter = 0; + } + } + + + // network message type + public enum NetMessageType : int { Control = 0, Color = 1, Depth = 2, Infrared = 3, BodyData = 4, BodyIndex = 5, Pose = 6, Depth2Color = 7, Color2Depth = 8, Color2BodyIndex = 9, Color2Infrared = 10 } + // frame encode type + public enum FrameEncodeType : int { None = 0, Raw = 1, Jpeg = 2, K4b = 3, Json = 4, SensorDataJson = 5, DSTraw = 6, CSTraw = 7, Compressed = 8 }; + // control message type + public enum ControlMessageType : int { GetSensorData = 0, KeepAlive = 1, Disconnect = 2, GetDST = 3, GetCST = 4 } + + + // network message data + internal class NetMessageData + { + public NetMessageType msgType; + public FrameEncodeType encType; + + public int frameWidth; + public int frameHeight; + + public ulong timestamp; + public byte[] frameData; + + private const int headerSize = 2 * sizeof(byte) + 2 * sizeof(ushort) + sizeof(ulong); + private const int compHeaderSize = 1 + sizeof(int); // compressed data header + + + private ILZ4Compressor compressor = null; + private ILZ4Decompressor decompressor = null; + + public long timeCreated; + + + public NetMessageData() + { + timeCreated = System.DateTime.UtcNow.Ticks; + } + + public NetMessageData(NetMessageType msgType, FrameEncodeType encType) + { + this.msgType = msgType; + this.encType = encType; + this.timeCreated = System.DateTime.UtcNow.Ticks; + } + + public NetMessageData(NetMessageType msgType, FrameEncodeType encType, int frameWidth, int frameHeight, ulong timestamp) + { + this.msgType = msgType; + this.encType = encType; + + this.frameWidth = frameWidth; + this.frameHeight = frameHeight; + + this.timestamp = timestamp; + } + + public void SetData(byte[] data) + { + frameData = data; + } + + public void SetData(ushort[] data) + { + int frameLen = data.Length * sizeof(ushort); + frameData = new byte[frameLen]; + KinectInterop.CopyBytes(data, sizeof(ushort), frameData, sizeof(byte)); + } + + public void SetCompressor(ILZ4Compressor compressor) + { + this.compressor = compressor; + } + + public void SetDecompressor(ILZ4Decompressor decompressor) + { + this.decompressor = decompressor; + } + + public void CompressData() + { + if (compressor != null && frameData != null && encType != FrameEncodeType.Compressed) + { + byte[] compressBuffer = new byte[frameData.Length + compHeaderSize]; + + compressBuffer[0] = (byte)encType; + byte[] elemBytes = System.BitConverter.GetBytes(frameData.Length); + elemBytes.CopyTo(compressBuffer, 1); + + int compSize = compressor.Compress(frameData, 0, frameData.Length, compressBuffer, compHeaderSize) + compHeaderSize; + //if (msgType == NetMessageType.Depth) + // Debug.Log(" compress: " + msgType + " - " + encType + ", ts: " + timestamp + ", frameLen: " + frameData.Length + ", compLen: " + compSize); + encType = FrameEncodeType.Compressed; + frameData = new byte[compSize]; + System.Buffer.BlockCopy(compressBuffer, 0, frameData, 0, compSize); + + compressBuffer = null; + } + } + + public void DecompressData() + { + if(decompressor != null && frameData != null && frameData.Length > compHeaderSize && encType == FrameEncodeType.Compressed) + { + encType = (FrameEncodeType)frameData[0]; + int frameSize = System.BitConverter.ToInt32(frameData, 1); + + byte[] decompressBuffer = new byte[frameSize]; + int decompSize = decompressor.Decompress(frameData, compHeaderSize, decompressBuffer, 0, frameData.Length - compHeaderSize); + frameData = decompressBuffer; + + decompressBuffer = null; + } + } + + public byte[] WrapMessage() + { + if (frameData == null) + return null; + + if (compressor != null) + { + CompressData(); + } + + int msgOffset = sizeof(int); + int msgLength = headerSize + frameData.Length; + + byte[] msgBytes = new byte[msgOffset + msgLength]; + + byte[] lenBytes = System.BitConverter.GetBytes(msgLength); + lenBytes.CopyTo(msgBytes, 0); + + msgBytes[msgOffset] = (byte)msgType; msgOffset++; + msgBytes[msgOffset] = (byte)encType; msgOffset++; + + byte[] elemBytes = System.BitConverter.GetBytes((ushort)frameWidth); + elemBytes.CopyTo(msgBytes, msgOffset); msgOffset += sizeof(ushort); + + elemBytes = System.BitConverter.GetBytes((ushort)frameHeight); + elemBytes.CopyTo(msgBytes, msgOffset); msgOffset += sizeof(ushort); + + elemBytes = System.BitConverter.GetBytes(timestamp); + elemBytes.CopyTo(msgBytes, msgOffset); msgOffset += sizeof(ulong); + + frameData.CopyTo(msgBytes, msgOffset); msgOffset += frameData.Length; + + return msgBytes; + } + + public void UnwrapMessage(byte[] message) + { + int msgOffset = sizeof(int); + + msgType = (NetMessageType)message[msgOffset]; msgOffset++; + encType = (FrameEncodeType)message[msgOffset]; msgOffset++; + + frameWidth = System.BitConverter.ToUInt16(message, msgOffset); msgOffset += sizeof(ushort); + frameHeight = System.BitConverter.ToUInt16(message, msgOffset); msgOffset += sizeof(ushort); + + timestamp = System.BitConverter.ToUInt64(message, msgOffset); msgOffset += sizeof(ulong); + + int frameSize = message.Length - msgOffset; + frameData = new byte[frameSize]; + System.Array.Copy(message, msgOffset, frameData, 0, frameSize); + + if(decompressor != null) + { + DecompressData(); + } + } + + } + + + // udp state to pass to async methods + public struct UdpState + { + public UdpClient uc; + public System.Net.IPEndPoint ep; + } + +} diff --git a/Assets/Azure/KinectScripts/KinectNetTools.cs.meta b/Assets/Azure/KinectScripts/KinectNetTools.cs.meta new file mode 100644 index 0000000..02d524b --- /dev/null +++ b/Assets/Azure/KinectScripts/KinectNetTools.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1477b4a074b67064bab2384d17b71838 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/KinectStatusChecker.cs b/Assets/Azure/KinectScripts/KinectStatusChecker.cs new file mode 100644 index 0000000..86a7d13 --- /dev/null +++ b/Assets/Azure/KinectScripts/KinectStatusChecker.cs @@ -0,0 +1,135 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace com.rfilkov.kinect +{ + /// + /// Checks the status of the connected sensors and restarts the sensors, if needed + /// + public class KinectStatusChecker : MonoBehaviour + { + [Tooltip("Time between sensor-status checks, in seconds.")] + public float timeBetweenChecks = 1f; + + [Tooltip("Max wait time before restart (in seconds), when the check is not successful.")] + public float maxWaitTime = 5f; + + [Tooltip("Whether to restart the sensors or not, after the max wait time after unsuccessful checks is reached.")] + public bool restartAfterMaxWait = true; + + [Tooltip("Whether all sensors are currently alive or not.")] + [HideInInspector] + public bool areSensorsAlive = false; + + + // references + private IEnumerator checkRoutine = null; + private KinectManager kinectManager = null; + + private int numSensors = 0; + private float lastCheckTime = 0f; + private ulong[] lastColorFrameTimestamps = null; + private ulong[] lastDepthFrameTimestamps = null; + + + void OnEnable() + { + //Debug.Log("Starting check-sensors routine..."); + checkRoutine = CheckSensorStatus(); + StartCoroutine(checkRoutine); + } + + + void OnDisable() + { + if(checkRoutine != null) + { + //Debug.Log("Stopping check-sensors routine..."); + StopCoroutine(checkRoutine); + checkRoutine = null; + } + } + + + // co-routine to check the sensor status periodically + private IEnumerator CheckSensorStatus() + { + while(true) + { + if (kinectManager == null) + { + kinectManager = KinectManager.Instance; + //Debug.Log("Got kinect manager: " + kinectManager); + + if (kinectManager != null) + { + numSensors = kinectManager.GetSensorCount(); + lastColorFrameTimestamps = new ulong[numSensors]; + lastDepthFrameTimestamps = new ulong[numSensors]; + } + } + + if (kinectManager != null) + { + if(CheckAllSensors() || lastCheckTime == 0f) + { + // all sensor have new frames + areSensorsAlive = true; + lastCheckTime = Time.time; + //Debug.Log("Success checking sensor states at " + lastCheckTime); + } + else + { + // no frames from at least one sensor + areSensorsAlive = false; + float waitTime = Time.time - lastCheckTime; + Debug.LogWarning(string.Format("Failed checking sensor states. Wait time: {0:F1} s.", waitTime)); + + if (waitTime >= maxWaitTime) + { + if(restartAfterMaxWait) + { + Debug.LogWarning("Trying to restart sensors..."); + kinectManager.StopDepthSensors(); + kinectManager.StartDepthSensors(); + Debug.LogWarning("Depth sensors successfully restarted!"); + } + + kinectManager = null; + lastCheckTime = 0f; + } + } + } + + yield return new WaitForSeconds(timeBetweenChecks); + } + } + + + // checks if all sensors have produced frames in the meantime + private bool CheckAllSensors() + { + for(int s = 0; s < numSensors; s++) + { + ulong curColorFrameTimestamp = kinectManager.GetColorFrameTime(s); + ulong curDepthFrameTimestamp = kinectManager.GetDepthFrameTime(s); + + if(lastColorFrameTimestamps[s] != curColorFrameTimestamp || lastDepthFrameTimestamps[s] != curDepthFrameTimestamp) + { + // color or depth frame has been updated in the meantime + lastColorFrameTimestamps[s] = curColorFrameTimestamp; + lastDepthFrameTimestamps[s] = curDepthFrameTimestamp; + } + else + { + // no frames have been received in the meantime + return false; + } + } + + return true; + } + + } +} diff --git a/Assets/Azure/KinectScripts/KinectStatusChecker.cs.meta b/Assets/Azure/KinectScripts/KinectStatusChecker.cs.meta new file mode 100644 index 0000000..02d6ce9 --- /dev/null +++ b/Assets/Azure/KinectScripts/KinectStatusChecker.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a9d68af49647d3b44b68dff42ec3ca15 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/KinectUserBodyMerger-Attribution.txt b/Assets/Azure/KinectScripts/KinectUserBodyMerger-Attribution.txt new file mode 100644 index 0000000..70bb873 --- /dev/null +++ b/Assets/Azure/KinectScripts/KinectUserBodyMerger-Attribution.txt @@ -0,0 +1,4 @@ +The KinectUserBodyMerger-class is based on the BodyMerger-class, provided by Cy-Fighter (http://cy-fighter.com/). +They are developing a VR boxing simulator with a real, robot-controlled opponent. + +Big thanks to Cy-Fighter for their excellent work! diff --git a/Assets/Azure/KinectScripts/KinectUserBodyMerger-Attribution.txt.meta b/Assets/Azure/KinectScripts/KinectUserBodyMerger-Attribution.txt.meta new file mode 100644 index 0000000..a9fc103 --- /dev/null +++ b/Assets/Azure/KinectScripts/KinectUserBodyMerger-Attribution.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: fa897a3a65d889c49b8a36408a789f30 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/KinectUserBodyMerger.cs b/Assets/Azure/KinectScripts/KinectUserBodyMerger.cs new file mode 100644 index 0000000..10da26e --- /dev/null +++ b/Assets/Azure/KinectScripts/KinectUserBodyMerger.cs @@ -0,0 +1,614 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace com.rfilkov.kinect +{ + /// + /// KinectUserBodyMerger merges user bodies detected by multiple connected sensors. + /// Attribution: This class is based on the BodyMerger-class, provided by Cy-Fighter.com (http://cy-fighter.com/). + /// See: KinectUserBodyMerger-Attribution.txt + /// + public class KinectUserBodyMerger + { + // references to sensor-data objects + private List sensorDatas = null; + private Dictionary[] adUserIdToSensorTrackingId = null; + + // sensor user Id to merged user Id + private Dictionary dictSensorUserIdToUserId = new Dictionary(); + private Dictionary dictSensorUserIdToLastUsed = new Dictionary(); + private Dictionary dictSensorUserIdToFirstUsed = new Dictionary(); + private ulong nextUserId = 0; + + // first sensor data + private KinectInterop.SensorData firstSensorData = null; + + // log-file name + //private string logFileName = string.Empty; + + // maximum distance between close bodies + private const float MAX_DISTANCE_TO_CLOSE_BODY = 0.35f; + + // if only one sensor needs to be considered, set its index here + private const int SINGLE_SENSOR_INDEX = -1; + + // wait time in seconds, before sensor user gets removed from the dictionaries + private const float WAIT_TIME_BEFORE_REMOVAL = 0.3f; + + + public KinectUserBodyMerger(List sensorDatas) + { + this.sensorDatas = sensorDatas; + + if(sensorDatas.Count > 0) + { + firstSensorData = sensorDatas[0]; + } + + adUserIdToSensorTrackingId = new Dictionary[sensorDatas.Count]; + for(int i = 0; i < adUserIdToSensorTrackingId.Length; i++) + { + adUserIdToSensorTrackingId[i] = new Dictionary(); + } + + dictSensorUserIdToUserId.Clear(); + dictSensorUserIdToFirstUsed.Clear(); + dictSensorUserIdToLastUsed.Clear(); + + nextUserId = 1; + + //logFileName = DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss") + ".log"; + //Debug.Log("Logging merger to: " + logFileName); + } + + + /// + /// Merges the user bodies, detected by the multiple sensors. + /// + public List MergeUserBodies(ref ulong lastBodyFrameTime, BoneOrientationConstraints boneConstraints) + { + // get list of all bodies + List alAllBodies = GetAllBodiesList(ref lastBodyFrameTime, boneConstraints); + + //System.Text.StringBuilder sbDebug = new System.Text.StringBuilder(); + //sbDebug.AppendFormat("Time: {0:F3} - {1:T}", Time.time, DateTime.Now); + + //sbDebug.AppendFormat("\nAll({0}): ", alAllBodies.Count); + //foreach (KinectInterop.BodyData body in alAllBodies) + // sbDebug.AppendFormat("{0}_{1} {2} ", body.sensorIndex, body.liTrackingID, body.position); + + // build mergeable body sets + List> mergeableBodySets = new List>(); + //sbDebug.Append("\nMergeable: "); + + while (alAllBodies.Count > 0) + { + List alCloseBodies = new List(); + alCloseBodies.Add(alAllBodies[0]); + alAllBodies.RemoveAt(0); + + FindOverlappingBodies(alCloseBodies, alAllBodies, MAX_DISTANCE_TO_CLOSE_BODY, mergeableBodySets.Count); + mergeableBodySets.Add(alCloseBodies); + + //sbDebug.AppendFormat("({0}): ", alCloseBodies.Count); + //foreach (KinectInterop.BodyData body in alCloseBodies) + // sbDebug.AppendFormat("{0}_{1} {2} D:{3:F2} ", body.sensorIndex, body.liTrackingID, body.position, Vector3.Distance(alCloseBodies[0].position, body.position)); + //sbDebug.Append("; "); + } + + // merge the bodies + List alMergedBodies = new List(); + + for(int i = 0; i < adUserIdToSensorTrackingId.Length; i++) + { + adUserIdToSensorTrackingId[i].Clear(); + } + + Matrix4x4 world2SensorMat = Matrix4x4.identity; + if (firstSensorData != null) + { + Matrix4x4 sensor2WorldMat = firstSensorData.sensorInterface.GetSensorToWorldMatrix(); + world2SensorMat = sensor2WorldMat.inverse; + } + + List lostUsers = new List(); + lostUsers.AddRange(dictSensorUserIdToUserId.Keys); + + for (int i = 0; i < mergeableBodySets.Count; i++) + { + KinectInterop.BodyData mergedBody = GetMergedBody(mergeableBodySets[i], i, ref world2SensorMat, lostUsers, alMergedBodies); + alMergedBodies.Add(mergedBody); + } + + //sbDebug.AppendFormat("\nMerged({0}): ", alMergedBodies.Count); + //foreach (KinectInterop.BodyData body in alMergedBodies) + // sbDebug.AppendFormat("{0} {1} ", body.liTrackingID, body.position); + + // clean up + mergeableBodySets.Clear(); + mergeableBodySets = null; + alAllBodies = null; + + if (lostUsers.Count > 0) + { + //sbDebug.AppendFormat("\nLost({0}): ", lostUsers.Count); + + foreach (string sensorUserId in lostUsers) + { + //sbDebug.Append(sensorUserId); + + if (dictSensorUserIdToUserId.ContainsKey(sensorUserId) && (Time.time - dictSensorUserIdToLastUsed[sensorUserId]) >= WAIT_TIME_BEFORE_REMOVAL) + { + dictSensorUserIdToUserId.Remove(sensorUserId); + dictSensorUserIdToFirstUsed.Remove(sensorUserId); + dictSensorUserIdToLastUsed.Remove(sensorUserId); + + //Debug.Log("Removed lost sensor-user-id from dict: " + sensorUserId); + //sbDebug.Append("*"); + } + + //sbDebug.Append(" "); + } + + lostUsers.Clear(); + lostUsers = null; + } + + //sbDebug.Append("\n\n"); + //if (!string.IsNullOrEmpty(logFileName)) + // System.IO.File.AppendAllText(logFileName, sbDebug.ToString()); + //sbDebug.Clear(); + + return alMergedBodies; + } + + // returns list of all bodies, tracked by all sensors + private List GetAllBodiesList(ref ulong lastBodyFrameTime, BoneOrientationConstraints boneConstraints) + { + List alAllBodies = new List(); + + for (int s = 0; s < sensorDatas.Count; s++) + { + if (SINGLE_SENSOR_INDEX >= 0 && s != SINGLE_SENSOR_INDEX) + continue; + + KinectInterop.SensorData sensorData = sensorDatas[s]; + uint sensorBodyCount = sensorData.trackedBodiesCount; + + if(sensorBodyCount > 0 && sensorData.lastBodyFrameTime > lastBodyFrameTime) + { + lastBodyFrameTime = sensorData.lastBodyFrameTime; + } + + for (uint b = 0; b < sensorBodyCount; b++) + { + KinectInterop.BodyData bodyData = new KinectInterop.BodyData((int)KinectInterop.JointType.Count); + + sensorData.alTrackedBodies[b].CopyTo(ref bodyData); + bodyData.sensorIndex = s; + + // filter orientation constraints + if (boneConstraints != null) + { + boneConstraints.Constrain(ref bodyData); + } + + alAllBodies.Add(bodyData); + } + + //break; + } + + if(alAllBodies.Count > 0) + { + //Debug.Log("Found " + alAllBodies.Count + " total bodies."); + } + + return alAllBodies; + } + + + /// + /// Returns the sensor-specific userId, given the merged userId. + /// + /// Sensor index + /// Merged user ID + /// Sensor-specific user ID + public ulong GetSensorTrackingId(int sensorIndex, ulong userId) + { + if (adUserIdToSensorTrackingId == null || adUserIdToSensorTrackingId.Length < sensorIndex) + return 0; + + if (adUserIdToSensorTrackingId[sensorIndex].ContainsKey(userId)) + { + return adUserIdToSensorTrackingId[sensorIndex][userId]; + } + + return 0; + } + + + // finds all other overlapping bodies in the list + private void FindOverlappingBodies(List alCloseBodies, List alAllBodies, + float mergeDistance, int mBodyIndex) + { + Vector3 pelvisAvgPos = GetBodyJointAvgPos(alCloseBodies, (int)KinectInterop.JointType.Pelvis); + //Vector3 headAvgPos = GetBodyJointAvgPos(alCloseBodies, (int)KinectInterop.JointType.Head); + + string sensorUserId0 = alCloseBodies.Count > 0 ? alCloseBodies[0].sensorIndex.ToString() + "_" + alCloseBodies[0].liTrackingID.ToString() : string.Empty; + ulong firstUserId = dictSensorUserIdToUserId.ContainsKey(sensorUserId0) ? dictSensorUserIdToUserId[sensorUserId0] : 0; + + int bodyIndex = 0; + while((bodyIndex = GetClosestBodyIndex(alAllBodies, firstUserId, pelvisAvgPos, mergeDistance, alCloseBodies)) >= 0) + { + alCloseBodies.Add(alAllBodies[bodyIndex]); + alAllBodies.RemoveAt(bodyIndex); + } + + //Debug.Log("mBodyIndex " + mBodyIndex + " has " + alCloseBodies.Count + " mergeable bodies."); + } + + // returns the index of the closest body + private int GetClosestBodyIndex(List alAllBodies, ulong userId, Vector3 pelvisPos, float maxDistance, + List alCloseBodies) + { + int bodyIndex = -1; + float minDistance2 = float.MaxValue; + float maxDistance2 = maxDistance * maxDistance; + + int bodyCount = alAllBodies.Count; + for (int i = 0; i < bodyCount; i++) + { + int sensorIndex = alAllBodies[i].sensorIndex; + string sensorUserId = sensorIndex.ToString() + "_" + alAllBodies[i].liTrackingID.ToString(); + ulong curUserId = dictSensorUserIdToUserId.ContainsKey(sensorUserId) ? dictSensorUserIdToUserId[sensorUserId] : 0; + + Vector3 pelvisUserPos = alAllBodies[i].joint[(int)KinectInterop.JointType.Pelvis].position; + float pelvisDist2 = Vector3.SqrMagnitude(pelvisUserPos - pelvisPos); + + if (((userId != 0 && curUserId == userId) || pelvisDist2 <= maxDistance2) && pelvisDist2 < minDistance2 && + !IsBodyListContainsSensorIndex(alCloseBodies, sensorIndex)) // prevent sensor-body duplications (more than one body from the same sensor in the list) + { + bodyIndex = i; + minDistance2 = pelvisDist2; + } + } + + return bodyIndex; + } + + // checks whether the list of body data already contains body with the specified sensor-index, or not + private bool IsBodyListContainsSensorIndex(List alBodies, int sensorIndex) + { + foreach(KinectInterop.BodyData body in alBodies) + { + if (body.sensorIndex == sensorIndex) + return true; + } + + return false; + } + + // returns averaged position of a body joint in a list of bodies + private Vector3 GetBodyJointAvgPos(List alBodyList, int jointIndex) + { + Vector3 avgJointPos = Vector3.zero; + int bodyCount = alBodyList.Count; + int jointPosCount = 0; + + for (int i = 0; i < alBodyList.Count; i++) + { + if((int)alBodyList[i].joint[jointIndex].trackingState >= (int)KinectInterop.TrackingState.Tracked) + { + avgJointPos += alBodyList[i].joint[jointIndex].position; + jointPosCount++; + } + } + + avgJointPos = jointPosCount > 0 ? avgJointPos / jointPosCount : Vector3.zero; + + return avgJointPos; + } + + // averages the bodies in the list and returns the single merged body + private KinectInterop.BodyData GetMergedBody(List alCloseBodies, int bodyIndex, ref Matrix4x4 world2SensorMat, + List lostUsers, List alMergedBodies) + { + int jointCount = (int)KinectInterop.JointType.Count; + KinectInterop.BodyData mergedBody = new KinectInterop.BodyData(jointCount); + + for (int j = 0; j < jointCount; j++) + { + //int maxTrackingState = GetBodyJointMaxState(alCloseBodies, j); + int minTrackingState = GetBodyJointMinState(alCloseBodies, j); + + CalcAverageBodyJoint(alCloseBodies, j, minTrackingState, ref world2SensorMat, ref mergedBody); + } + + mergedBody.liTrackingID = GetMergedBodyId(alCloseBodies, lostUsers, alMergedBodies); + mergedBody.iBodyIndex = bodyIndex; + + for(int i = 0; i < alCloseBodies.Count; i++) + { + adUserIdToSensorTrackingId[alCloseBodies[i].sensorIndex][mergedBody.liTrackingID] = alCloseBodies[i].liTrackingID; + } + + KinectInterop.JointData pelvisData = mergedBody.joint[0]; + mergedBody.bIsTracked = pelvisData.trackingState != KinectInterop.TrackingState.NotTracked; + + //Debug.Log(string.Format("MBody {0} Id: {1}, pos: {2}, rot: {3}", bodyIndex, mergedBody.liTrackingID, pelvisData.position, pelvisData.normalRotation.eulerAngles)); + + mergedBody.kinectPos = pelvisData.kinectPos; + mergedBody.position = pelvisData.position; + + mergedBody.orientation = pelvisData.orientation; + mergedBody.normalRotation = pelvisData.normalRotation; + mergedBody.mirroredRotation = pelvisData.mirroredRotation; + + KinectInterop.CalcBodyJointDirs(ref mergedBody); + + return mergedBody; + } + + // returns max tracking state of a body joint in a list of bodies + private int GetBodyJointMaxState(List alBodyList, int jointIndex) + { + int maxState = (int)KinectInterop.TrackingState.NotTracked; + int bodyCount = alBodyList.Count; + + for (int i = 0; i < bodyCount; i++) + { + if ((int)alBodyList[i].joint[jointIndex].trackingState > maxState) + { + maxState = (int)alBodyList[i].joint[jointIndex].trackingState; + } + } + + return maxState; + } + + // returns min tracking state of a body joint in a list of bodies + private int GetBodyJointMinState(List alBodyList, int jointIndex) + { + int minState = (int)KinectInterop.TrackingState.HighConf; + int bodyCount = alBodyList.Count; + + for (int i = 0; i < bodyCount; i++) + { + if ((int)alBodyList[i].joint[jointIndex].trackingState < minState) + { + minState = (int)alBodyList[i].joint[jointIndex].trackingState; + } + } + + return minState; + } + + // whether the joint is + private static readonly bool[] isSingleSensorJoint = + { + false, // Pelvis + false, // SpineNaval + false, // SpineChest + false, // Neck + false, // Head + + false, // ClavicleLeft + false, // ShoulderLeft + false, // ElbowLeft + true, // WristLeft + true, // HandLeft + + false, // ClavicleRight + false, // ShoulderRight + false, // ElbowRight + true, // WristRight + true, // HandRight + + false, // HipLeft + false, // KneeLeft + true, // AnkleLeft + true, // FootLeft + + false, // HipRight + false, // KneeRight + true, // AnkleRight + true, // FootRight + + true, // Nose + true, // EyeLeft + true, // EarLeft + true, // EyeRight + true, // EarRight + + true, // HandtipLeft + true, // ThumbLeft + true, // HandtipRight + true // ThumbRight + }; + + // returns averaged position of a body joint in a list of bodies + private void CalcAverageBodyJoint(List alBodyList, int jointIndex, int minTrackingState, ref Matrix4x4 world2SensorMat, + ref KinectInterop.BodyData bodyData) + { + Vector3 avgJointPos = Vector3.zero; + //Vector3 firstKinectPos = Vector3.zero; + + Quaternion avgJointRot = Quaternion.identity; + Quaternion firstJointOri = Quaternion.identity; + Quaternion firstJointRot = Quaternion.identity; + float x = 0f, y = 0f, z = 0f, w = 0f; + + float jointAvgCount = 0f; + int bodyCount = alBodyList.Count; + + for (int i = 0; i < bodyCount; i++) + { + //if (SINGLE_SENSOR_INDEX >= 0 && alBodyList[i].sensorIndex != SINGLE_SENSOR_INDEX) + // continue; + + //if (jointIndex == (int)KinectInterop.JointType.WristRight) + //{ + // Debug.Log(string.Format("BM {0:F3} {1}: {2}_{3}, state: {4}\npos: {5}, rot: {6}", Time.time, (KinectInterop.JointType)jointIndex, + // alBodyList[i].sensorIndex, alBodyList[i].liTrackingID, alBodyList[i].joint[jointIndex].trackingState, + // alBodyList[i].joint[jointIndex].position, alBodyList[i].joint[jointIndex].mirroredRotation.eulerAngles)); + //} + + //if (jointIndex == (int)KinectInterop.JointType.WristLeft) + //{ + // Debug.Log(string.Format("BM {0:F3} {1}: {2}_{3}, state: {4}\npos: {5}, rot: {6}", Time.time, (KinectInterop.JointType)jointIndex, + // alBodyList[i].sensorIndex, alBodyList[i].liTrackingID, alBodyList[i].joint[jointIndex].trackingState, + // alBodyList[i].joint[jointIndex].position, alBodyList[i].joint[jointIndex].mirroredRotation.eulerAngles)); + //} + + KinectInterop.TrackingState jointState = alBodyList[i].joint[jointIndex].trackingState; + //if ((int)jointState == maxTrackingState) + if(jointState != KinectInterop.TrackingState.NotTracked) + { + Quaternion jointRot = alBodyList[i].joint[jointIndex].normalRotation; + + if (avgJointPos == Vector3.zero) + { + //firstKinectPos = alBodyList[i].joint[jointIndex].kinectPos; + firstJointOri = alBodyList[i].joint[jointIndex].orientation; + firstJointRot = jointRot; + } + + //if(jointIndex == 0) + //{ + // //Debug.Log(string.Format("Body Id: {0}_{1}, pos: {2}, rot: {3}", alBodyList[i].sensorIndex, alBodyList[i].liTrackingID, alBodyList[i].joint[jointIndex].position, alBodyList[i].joint[jointIndex].normalRotation.eulerAngles)); + //} + + float jointWeight = 1f; // jointState != KinectInterop.TrackingState.Inferred ? 1f : 0.5f; + avgJointPos += alBodyList[i].joint[jointIndex].position * jointWeight; + + if(Quaternion.Dot(jointRot, firstJointRot) < 0f) + jointRot = new Quaternion(-jointRot.x, -jointRot.y, -jointRot.z, -jointRot.w); // inverse the sign + if (jointWeight < 0.9f) + jointRot = Quaternion.Slerp(Quaternion.identity, jointRot, jointWeight); + x += jointRot.x; y += jointRot.y; z += jointRot.z; w += jointRot.w; + + jointAvgCount += jointWeight; // (jointState != KinectInterop.TrackingState.Inferred ? 1f : 0.5f); + + if (isSingleSensorJoint[jointIndex]) + { + //minTrackingState = (int)jointState; + //break; + } + } + } + + if(jointAvgCount > 0) + { + float addDet = 1f / jointAvgCount; + avgJointPos = avgJointPos * addDet; + + x *= addDet; y *= addDet; z *= addDet; w *= addDet; + float lengthD = 1.0f / (w * w + x * x + y * y + z * z); + x *= lengthD; y *= lengthD; z *= lengthD; w *= lengthD; + avgJointRot = new Quaternion(x, y, z, w); + } + + // avg kinect pos + Vector3 avgKinectPos = world2SensorMat.MultiplyPoint3x4(avgJointPos); + Vector3 spaceScale = firstSensorData != null ? firstSensorData.sensorSpaceScale : Vector3.one; + avgKinectPos = new Vector3(avgKinectPos.x * spaceScale.x, avgKinectPos.y * spaceScale.y, avgKinectPos.z * spaceScale.z); + + // set joint data + KinectInterop.JointData jointData = bodyData.joint[jointIndex]; + jointData.trackingState = (KinectInterop.TrackingState)minTrackingState; + jointData.kinectPos = avgKinectPos; // firstKinectPos; + jointData.position = avgJointPos; + + jointData.orientation = firstJointOri; + jointData.normalRotation = avgJointRot; + + Vector3 mirroredRot = avgJointRot.eulerAngles; + mirroredRot.y = -mirroredRot.y; + mirroredRot.z = -mirroredRot.z; + jointData.mirroredRotation = Quaternion.Euler(mirroredRot); + + //if (jointIndex == (int)KinectInterop.JointType.WristRight) + //{ + // Debug.Log(string.Format("BM1 {0}: pos: {1}, rot: {2}\n", (KinectInterop.JointType)jointIndex, jointData.position, jointData.mirroredRotation.eulerAngles)); + //} + + bodyData.joint[jointIndex] = jointData; + } + + + // averages the bodies in the list and returns the single merged body + private ulong GetMergedBodyId(List alCloseBodies, List lostUsers, + List alMergedBodies) + { + int bodyCount = alCloseBodies.Count; + float minStartTime = float.MaxValue; + ulong userBodyId = 0; + + // look for the oldest available user id + for (int i = 0; i < bodyCount; i++) + { + string sensorUserId = alCloseBodies[i].sensorIndex.ToString() + "_" + alCloseBodies[i].liTrackingID.ToString(); + + if(dictSensorUserIdToUserId.ContainsKey(sensorUserId) && dictSensorUserIdToFirstUsed[sensorUserId] < minStartTime && + !IsBodyListContainsUserId(alMergedBodies, dictSensorUserIdToUserId[sensorUserId])) // prevent userId duplications in merged-body list + { + userBodyId = dictSensorUserIdToUserId[sensorUserId]; + minStartTime = dictSensorUserIdToFirstUsed[sensorUserId]; + } + } + + for (int i = 0; i < bodyCount; i++) + { + string sensorUserId = alCloseBodies[i].sensorIndex.ToString() + "_" + alCloseBodies[i].liTrackingID.ToString(); + + if (userBodyId == 0) + { + if (!dictSensorUserIdToUserId.ContainsKey(sensorUserId) || + IsBodyListContainsUserId(alMergedBodies, dictSensorUserIdToUserId[sensorUserId])) // prevent userId duplications in merged-body list + { + //Debug.Log("Creating new userId '" + nextUserId + "' for sensor-user-id '" + sensorUserId + "'"); + dictSensorUserIdToUserId[sensorUserId] = nextUserId; + dictSensorUserIdToFirstUsed[sensorUserId] = Time.time; + dictSensorUserIdToLastUsed[sensorUserId] = Time.time; + nextUserId++; + } + + userBodyId = dictSensorUserIdToUserId[sensorUserId]; + } + else if (!dictSensorUserIdToUserId.ContainsKey(sensorUserId) || dictSensorUserIdToUserId[sensorUserId] != userBodyId) + { + //ulong oldUserId = dictSensorUserIdToUserId.ContainsKey(sensorUserId) ? dictSensorUserIdToUserId[sensorUserId] : 0; + //Debug.Log("Updating userId for sensor-user-id '" + sensorUserId + "' from '" + oldUserId + "' to '" + userBodyId + "'"); + + dictSensorUserIdToUserId[sensorUserId] = userBodyId; + if (!dictSensorUserIdToFirstUsed.ContainsKey(sensorUserId)) + dictSensorUserIdToFirstUsed[sensorUserId] = Time.time; + dictSensorUserIdToLastUsed[sensorUserId] = Time.time; + } + + if (lostUsers.Contains(sensorUserId)) + { + lostUsers.Remove(sensorUserId); + } + } + + return userBodyId; + } + + // checks whether the list of body data already contains body with the specified userId, or not + private bool IsBodyListContainsUserId(List alBodies, ulong userId) + { + foreach (KinectInterop.BodyData body in alBodies) + { + if (body.liTrackingID == userId) + return true; + } + + return false; + } + + } +} diff --git a/Assets/Azure/KinectScripts/KinectUserBodyMerger.cs.meta b/Assets/Azure/KinectScripts/KinectUserBodyMerger.cs.meta new file mode 100644 index 0000000..77d2656 --- /dev/null +++ b/Assets/Azure/KinectScripts/KinectUserBodyMerger.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3cac9e00e3dda6840ae3bffac5d67a2b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/KinectUserManager.cs b/Assets/Azure/KinectScripts/KinectUserManager.cs new file mode 100644 index 0000000..d21e972 --- /dev/null +++ b/Assets/Azure/KinectScripts/KinectUserManager.cs @@ -0,0 +1,503 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Events; + +namespace com.rfilkov.kinect +{ + /// + /// Kinect user manager is the component that tracks the users in front of the sensor. + /// + public class KinectUserManager : MonoBehaviour + { + + [System.Serializable] + public class KinectUserEvent : UnityEvent { } + + + /// + /// Fired when new user gets detected. + /// + [Tooltip("This event is fired, when new user gets detected.")] + //public event System.Action OnUserAdded; + public KinectUserEvent OnUserAdded = new KinectUserEvent(); + + /// + /// Fired when user gets removed. + /// + [Tooltip("This event is fired, when user gets removed.")] + //public event System.Action OnUserRemoved; + public KinectUserEvent OnUserRemoved = new KinectUserEvent(); + + + // List of all users + internal List alUserIds = new List(); + internal Dictionary dictUserIdToIndex = new Dictionary(); + internal ulong[] aUserIndexIds = new ulong[KinectInterop.Constants.MaxBodyCount]; + internal Dictionary dictUserIdToTime = new Dictionary(); + + // Primary (first or closest) user ID + internal ulong liPrimaryUserId = 0; + + // Calibration gesture data for each player + internal Dictionary playerCalibrationData = new Dictionary(); + + // reference to KM + private KinectManager kinectManager = null; + + // transformation matrix of the primary body sensor (used to apply the sensor orientation transformation) + //protected Matrix4x4 matBodySensor = Matrix4x4.identity; + + // parameters used by the FixedStepIndices order + [Tooltip("Minimum (leftmost) position, used by the FixedStepIndices-order, in meters.")] + public float fixedPosMin = -2f; // minimum (leftmost) fixed position, in meters + [Tooltip("Maximum (rightmost) position, used by the FixedStepIndices-order, in meters.")] + public float fixedPosMax = 2f; // maximum (rightmost) fixed position, in meters + [Tooltip("Fixed step between indices, used by the FixedStepIndices-order, in meters.")] + public float fixedPosStep = 1f; // fixed step between indices, in meters + + [Tooltip("Central position (in meters from the sensor), used by the Distance-user detection order.")] + public Vector3 centralPosition = Vector3.zero; + + + protected virtual void Start() + { + kinectManager = KinectManager.Instance; + } + + + // returns the fixed step user index, according to the user position in space. + private int GetFixedStepUserIndex(Vector3 userPos) + { + float xDist = Mathf.Clamp(userPos.x, fixedPosMin, fixedPosMax); + int userIndex = Mathf.FloorToInt((xDist - fixedPosMin) / fixedPosStep); + + return userIndex; + } + + + /// + /// Updates the user indices as needed, according to the detection order + /// + /// + public virtual void UpdateUserIndices(KinectManager.UserDetectionOrder userDetectionOrder) + { + switch(userDetectionOrder) + { + case KinectManager.UserDetectionOrder.Appearance: + break; + case KinectManager.UserDetectionOrder.Distance: + case KinectManager.UserDetectionOrder.LeftToRight: + RearrangeUserIndices(userDetectionOrder); + break; + case KinectManager.UserDetectionOrder.FixedStepIndices: + // clear all indices + System.Array.Clear(aUserIndexIds, 0, aUserIndexIds.Length); + + // set current user indices + for (int i = 0; i < alUserIds.Count; i++) + { + ulong userId = alUserIds[i]; + + if (userId != 0) + { + Vector3 userPos = kinectManager.GetUserPosition(userId); + int userIndex = GetFixedStepUserIndex(userPos); + //Debug.Log(string.Format(" UpdateUserIndices - UserId: {0}, xPos: {1:F2}, index: {2}", userId, userPos.x, userIndex)); + aUserIndexIds[userIndex] = userId; + } + } + break; + } + } + + + /// + /// Rearranges the user indices, according to the current criteria + /// + public virtual void RearrangeUserIndices(KinectManager.UserDetectionOrder userDetectionOrder) + { + if (userDetectionOrder != KinectManager.UserDetectionOrder.Appearance && + userDetectionOrder != KinectManager.UserDetectionOrder.FixedStepIndices) + { + // get current user positions + Vector3[] userPos = new Vector3[aUserIndexIds.Length]; + for (int i = 0; i < aUserIndexIds.Length; i++) + { + ulong userId = aUserIndexIds[i]; + userPos[i] = userId != 0 ? kinectManager.GetUserPosition(userId) : Vector3.zero; + } + + // bubble sort + bool reorderDone = false; + for (int i = aUserIndexIds.Length - 1; i >= 1; i--) + { + bool switchDone = false; + + for (int j = 0; j < i; j++) + { + if (userPos[j] == Vector3.zero || userPos[j + 1] == Vector3.zero) + continue; + + float userDist1 = 0f; + if (userDetectionOrder == KinectManager.UserDetectionOrder.Distance) + userDist1 = Mathf.Abs(userPos[j].x - centralPosition.x) + Mathf.Abs(userPos[j].z - centralPosition.z); + else if (userDetectionOrder == KinectManager.UserDetectionOrder.LeftToRight) + userDist1 = userPos[j].x; + + if (Mathf.Abs(userDist1) < 0.01f) + userDist1 = 1000f; // far away + + float userDist2 = 0f; + if (userDetectionOrder == KinectManager.UserDetectionOrder.Distance) + userDist2 = Mathf.Abs(userPos[j + 1].x - centralPosition.x) + Mathf.Abs(userPos[j + 1].z - centralPosition.z); + else if (userDetectionOrder == KinectManager.UserDetectionOrder.LeftToRight) + userDist2 = userPos[j + 1].x; + + if (Mathf.Abs(userDist2) < 0.01f) + userDist2 = 1000f; // far away + + if (userDist1 > userDist2) + { + // switch them + ulong tmpUserId = aUserIndexIds[j]; + aUserIndexIds[j] = aUserIndexIds[j + 1]; + aUserIndexIds[j + 1] = tmpUserId; + + reorderDone = switchDone = true; + } + } + + if (!switchDone) // check for sorted array + break; + } + + if (reorderDone) + { + //System.Text.StringBuilder sbUsersOrder = new System.Text.StringBuilder(); + //sbUsersOrder.Append("Users rearranged: "); + + //for (int i = 0; i < aUserIndexIds.Length; i++) + //{ + // if (aUserIndexIds[i] != 0) + // { + // sbUsersOrder.Append(i).Append(":").Append(aUserIndexIds[i]).Append(" "); + // } + //} + + //Debug.Log(sbUsersOrder.ToString()); + } + } + } + + + // Returns empty user slot for the given user Id + protected virtual int GetEmptyUserSlot(ulong userId, int bodyIndex, ref KinectInterop.BodyData[] alTrackedBodies, KinectManager.UserDetectionOrder userDetectionOrder) + { + // rearrange current users + RearrangeUserIndices(userDetectionOrder); + int uidIndex = -1; + + if(userDetectionOrder == KinectManager.UserDetectionOrder.FixedStepIndices) + { + Vector3 userPos = alTrackedBodies[bodyIndex].position; + int userIndex = GetFixedStepUserIndex(userPos); + //Debug.Log(string.Format("GetEmptyUserSlot - UserId: {0}, xPos: {1:F2}, index: {2}, IndexId: {3}", userId, userPos.x, userIndex, aUserIndexIds[userIndex])); + + if (aUserIndexIds[userIndex] == 0) + { + uidIndex = userIndex; + } + } + else if (userDetectionOrder != KinectManager.UserDetectionOrder.Appearance) + { + // add the new user, depending on the distance + Vector3 userPos = alTrackedBodies[bodyIndex].position; + + float userDist = 0f; + if (userDetectionOrder == KinectManager.UserDetectionOrder.Distance) + userDist = Mathf.Abs(userPos.x - centralPosition.x) + Mathf.Abs(userPos.z - centralPosition.z); + else if (userDetectionOrder == KinectManager.UserDetectionOrder.LeftToRight) + userDist = userPos.x; + + for (int i = 0; i < aUserIndexIds.Length; i++) + { + if (aUserIndexIds[i] == 0) + { + // free user slot + uidIndex = i; + break; + } + else + { + ulong uidUserId = aUserIndexIds[i]; + Vector3 uidUserPos = kinectManager.GetUserPosition(uidUserId); + + float uidUserDist = 0; + if (userDetectionOrder == KinectManager.UserDetectionOrder.Distance) + uidUserDist = Mathf.Abs(uidUserPos.x - centralPosition.x) + Mathf.Abs(uidUserPos.z - centralPosition.z); + else if (userDetectionOrder == KinectManager.UserDetectionOrder.LeftToRight) + uidUserDist = uidUserPos.x; + + if (userDist < uidUserDist) + { + // current user is left to the compared one + for (int u = (aUserIndexIds.Length - 2); u >= i; u--) + { + aUserIndexIds[u + 1] = aUserIndexIds[u]; + + if (aUserIndexIds[u] != 0) + { + Debug.Log(string.Format("Reindexing user {0} to {1}, ID: {2}, pos: {3}, other-pos: {4}.", u, u + 1, aUserIndexIds[u], userPos, uidUserPos)); + } + } + + aUserIndexIds[i] = 0; // cleanup current index + uidIndex = i; + break; + } + } + } + + } + else + { + // look for the 1st available slot + for (int i = 0; i < aUserIndexIds.Length; i++) + { + if (aUserIndexIds[i] == 0) + { + uidIndex = i; + break; + } + } + } + + return uidIndex; + } + + + // releases the user slot. rearranges the remaining users. + protected virtual void FreeEmptyUserSlot(int uidIndex, KinectManager.UserDetectionOrder userDetectionOrder) + { + aUserIndexIds[uidIndex] = 0; + + if (userDetectionOrder != KinectManager.UserDetectionOrder.Appearance && + userDetectionOrder != KinectManager.UserDetectionOrder.FixedStepIndices) + { + // rearrange the remaining users + for (int u = uidIndex; u < (aUserIndexIds.Length - 1); u++) + { + aUserIndexIds[u] = aUserIndexIds[u + 1]; + + if (aUserIndexIds[u + 1] != 0) + { + Debug.Log(string.Format("Reindexing user {0} to {1}, ID: {2}.", u + 1, u, aUserIndexIds[u + 1])); + } + } + + // make sure the last slot is free + aUserIndexIds[aUserIndexIds.Length - 1] = 0; + } + + // rearrange the remaining users + RearrangeUserIndices(userDetectionOrder); + } + + + // Adds UserId to the list of users + public virtual int CalibrateUser(ulong userId, int bodyIndex, ref KinectInterop.BodyData[] alTrackedBodies, + KinectManager.UserDetectionOrder userDetectionOrder, GestureType playerCalibrationPose, KinectGestureManager gestureManager) + { + if (!alUserIds.Contains(userId)) + { + if (CheckForCalibrationPose(userId, bodyIndex, playerCalibrationPose, gestureManager, ref alTrackedBodies)) + { + //int uidIndex = alUserIds.Count; + int uidIndex = GetEmptyUserSlot(userId, bodyIndex, ref alTrackedBodies, userDetectionOrder); + + if (uidIndex >= 0) + { + aUserIndexIds[uidIndex] = userId; + } + else + { + // no empty user-index slot + return -1; + } + + dictUserIdToIndex[userId] = bodyIndex; + dictUserIdToTime[userId] = Time.time; + alUserIds.Add(userId); + + // set primary user-id, if there is none + if (liPrimaryUserId == 0 && aUserIndexIds.Length > 0) + { + liPrimaryUserId = aUserIndexIds[0]; // userId + } + + return uidIndex; + } + } + + return -1; + } + + + // fires the OnUserAdded-event + internal void FireOnUserAdded(ulong userId, int userIndex) + { + OnUserAdded?.Invoke(userId, userIndex); + } + + + // Remove a lost UserId + public virtual int RemoveUser(ulong userId, KinectManager.UserDetectionOrder userDetectionOrder) + { + //int uidIndex = alUserIds.IndexOf(userId); + int uidIndex = System.Array.IndexOf(aUserIndexIds, userId); + + // clear calibration data for this user + if (playerCalibrationData.ContainsKey(userId)) + { + playerCalibrationData.Remove(userId); + } + + // clean up the outdated calibration data in the data dictionary + List alCalDataKeys = new List(playerCalibrationData.Keys); + + foreach (ulong calUserID in alCalDataKeys) + { + KinectGestureManager.GestureData gestureData = playerCalibrationData[calUserID]; + + if ((gestureData.timestamp + 60f) < Time.realtimeSinceStartup) + { + playerCalibrationData.Remove(calUserID); + } + } + + alCalDataKeys.Clear(); + + // remove user-id from the global users lists + dictUserIdToIndex.Remove(userId); + dictUserIdToTime.Remove(userId); + alUserIds.Remove(userId); + + if (uidIndex >= 0) + { + FreeEmptyUserSlot(uidIndex, userDetectionOrder); + } + + // if this was the primary user, update the primary user-id + if (liPrimaryUserId == userId) + { + if (aUserIndexIds.Length > 0) + { + liPrimaryUserId = aUserIndexIds[0]; + } + else + { + liPrimaryUserId = 0; + } + } + + if (alUserIds.Count == 0) + { + //Debug.Log("Waiting for users."); + } + + return uidIndex; + } + + + // fires the OnUserRemoved-event + internal void FireOnUserRemoved(ulong userId, int userIndex) + { + OnUserRemoved?.Invoke(userId, userIndex); + } + + + // check if the calibration pose is complete for given user + protected virtual bool CheckForCalibrationPose(ulong UserId, int bodyIndex, GestureType calibrationGesture, + KinectGestureManager gestureManager, ref KinectInterop.BodyData[] alTrackedBodies) + { + if (calibrationGesture == GestureType.None) + return true; + if (!gestureManager) + return false; + + KinectGestureManager.GestureData gestureData = playerCalibrationData.ContainsKey(UserId) ? + playerCalibrationData[UserId] : new KinectGestureManager.GestureData(); + + // init gesture data if needed + if (gestureData.userId != UserId) + { + gestureData.userId = UserId; + gestureData.gesture = calibrationGesture; + gestureData.state = 0; + gestureData.timestamp = Time.realtimeSinceStartup; + gestureData.joint = 0; + gestureData.progress = 0f; + gestureData.complete = false; + gestureData.cancelled = false; + } + + // get joint positions and tracking + int iAllJointsCount = (int)KinectInterop.JointType.Count; + bool[] playerJointsTracked = new bool[iAllJointsCount]; + Vector3[] playerJointsPos = new Vector3[iAllJointsCount]; + + int[] aiNeededJointIndexes = gestureManager.GetNeededJointIndexes(); + int iNeededJointsCount = aiNeededJointIndexes.Length; + + //// sensor orientation angle + //float orientAngle = kinectManager.GetPrimaryBodySensorOrientationAngle(); + //Vector3 sensorOri = new Vector3(0f, 0f, orientAngle); + //matBodySensor.SetTRS(Vector3.zero, Quaternion.Euler(sensorOri), Vector3.one); + + for (int i = 0; i < iNeededJointsCount; i++) + { + int joint = aiNeededJointIndexes[i]; + + if (joint >= 0) + { + KinectInterop.JointData jointData = alTrackedBodies[bodyIndex].joint[joint]; + + playerJointsTracked[joint] = jointData.trackingState != KinectInterop.TrackingState.NotTracked; + playerJointsPos[joint] = jointData.position; //.kinectPos; + //playerJointsPos[joint] = matBodySensor.MultiplyPoint3x4(playerJointsPos[joint]); // apply sensor orientation + + if (!playerJointsTracked[joint] && (joint == (int)KinectInterop.JointType.Neck)) + { + KinectInterop.JointData lShoulderData = alTrackedBodies[bodyIndex].joint[(int)KinectInterop.JointType.ShoulderLeft]; + KinectInterop.JointData rShoulderData = alTrackedBodies[bodyIndex].joint[(int)KinectInterop.JointType.ShoulderRight]; + + if (lShoulderData.trackingState != KinectInterop.TrackingState.NotTracked && rShoulderData.trackingState != KinectInterop.TrackingState.NotTracked) + { + playerJointsTracked[joint] = true; + playerJointsPos[joint] = (lShoulderData.position + rShoulderData.position) / 2f; + } + } + } + } + + // estimate the gesture progess + gestureManager.CheckForGesture(UserId, ref gestureData, Time.realtimeSinceStartup, + ref playerJointsPos, ref playerJointsTracked); + playerCalibrationData[UserId] = gestureData; + + // check if gesture is complete + if (gestureData.complete) + { + gestureData.userId = 0; + playerCalibrationData[UserId] = gestureData; + + return true; + } + + return false; + } + + } +} + diff --git a/Assets/Azure/KinectScripts/KinectUserManager.cs.meta b/Assets/Azure/KinectScripts/KinectUserManager.cs.meta new file mode 100644 index 0000000..45b9ea1 --- /dev/null +++ b/Assets/Azure/KinectScripts/KinectUserManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0abb1e31e28600f428649c5ac1d12702 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/LZ4Sharp.meta b/Assets/Azure/KinectScripts/LZ4Sharp.meta new file mode 100644 index 0000000..39b0576 --- /dev/null +++ b/Assets/Azure/KinectScripts/LZ4Sharp.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fdd54733f994d3b4f8022ca6f5804f47 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/LZ4Sharp/LZ4Sharp.dll.meta b/Assets/Azure/KinectScripts/LZ4Sharp/LZ4Sharp.dll.meta new file mode 100644 index 0000000..2b22543 --- /dev/null +++ b/Assets/Azure/KinectScripts/LZ4Sharp/LZ4Sharp.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 165d7c534b0578d4b95bf22d7cd2eaaa +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/MouseControl.cs b/Assets/Azure/KinectScripts/MouseControl.cs new file mode 100644 index 0000000..4ba5d7e --- /dev/null +++ b/Assets/Azure/KinectScripts/MouseControl.cs @@ -0,0 +1,258 @@ +// This script can be used to control the system mouse - position of the mouse cursor and clicks +// Author: Akhmad Makhsadov +// + +using UnityEngine; +using System.Collections; +using System.Runtime.InteropServices; +using System; + +public class MouseControl +{ + // Import function mouse_event() from WinApi + [DllImport("User32.dll")] + private static extern void mouse_event(MouseFlags dwFlags, int dx, int dy, int dwData, System.UIntPtr dwExtraInfo); + + // Flags needed to specify the mouse action + [System.Flags] + private enum MouseFlags + { + Move = 0x0001, + LeftDown = 0x0002, + LeftUp = 0x0004, + RightDown = 0x0008, + RightUp = 0x0010, + Absolute = 0x8000, + } + +// public static int MouseXSpeedCoef = 45000; // Cursor rate in Х direction +// public static int MouseYSpeedCoef = 45000; // Cursor rate in Y direction + + [StructLayout(LayoutKind.Sequential)] + public struct RECT + { + public int Left; // x position of upper-left corner + public int Top; // y position of upper-left corner + public int Right; // x position of lower-right corner + public int Bottom; // y position of lower-right corner + } + + [DllImport("user32.dll")] + //[return: MarshalAs(UnmanagedType.Bool)] + static extern bool GetWindowRect(IntPtr hWnd, out RECT lpRect); + + [DllImport("user32.dll")] + static extern IntPtr GetActiveWindow(); + + enum GetWindow_Cmd : uint + { + GW_HWNDFIRST = 0, + GW_HWNDLAST = 1, + GW_HWNDNEXT = 2, + GW_HWNDPREV = 3, + GW_OWNER = 4, + GW_CHILD = 5, + GW_ENABLEDPOPUP = 6 + } + + [DllImport("user32.dll", SetLastError = true)] + static extern IntPtr GetWindow(IntPtr hWnd, GetWindow_Cmd uCmd); + + const int MONITOR_DEFAULTTONULL = 0; + const int MONITOR_DEFAULTTOPRIMARY = 1; + const int MONITOR_DEFAULTTONEAREST = 2; + + [DllImport("user32.dll")] + static extern IntPtr MonitorFromWindow(IntPtr hwnd, uint dwFlags); + + [StructLayout(LayoutKind.Sequential)] + private struct MONITORINFO + { + public int cbSize; + public RECT rcMonitor; + public RECT rcWork; + public uint dwFlags; + } + + [DllImport("user32.dll")] + static extern bool GetMonitorInfo(IntPtr hMonitor, ref MONITORINFO lpmi); + + +// private static int windowX = 0; +// private static int windowY = 0; +// private static int winSizeX = 0; +// private static int winSizeY = 0; + + private static Vector2 monitorSize = Vector2.zero; + private static MONITORINFO monitorInfo = new MONITORINFO(); + private static bool winRectPrinted = false; + + + // Public function to move the mouse cursor to the specified position + public static void MouseMove(Vector3 screenCoordinates, UnityEngine.UI.Text debugText) + { + int windowX = 0; + int windowY = 0; + int winSizeX = 0; + int winSizeY = 0; + + bool isConvertToFullScreen = Screen.fullScreen; + + IntPtr hWnd = GetActiveWindow(); + hWnd = GetClosestWindow(hWnd, Screen.width, Screen.height); + + if (hWnd != IntPtr.Zero) + { + RECT winRect; + + if (GetWindowRect(hWnd, out winRect)) + { + winSizeX = winRect.Right - winRect.Left; + winSizeY = winRect.Bottom - winRect.Top; + + windowX = winRect.Left + (winSizeX - (int)Screen.width) / 2; + + if (!isConvertToFullScreen) + { + windowY = winRect.Top + (winSizeY - (int)Screen.height + 36) / 2; + } + else + { + windowY = winRect.Top + (winSizeY - (int)Screen.height) / 2; + } + + // get display resolution + if (monitorSize == Vector2.zero) + { + monitorInfo.cbSize = Marshal.SizeOf (monitorInfo); + + IntPtr hMonitoŕ = MonitorFromWindow (hWnd, MONITOR_DEFAULTTONEAREST); + if (!GetMonitorInfo (hMonitoŕ, ref monitorInfo)) + { + monitorInfo.rcMonitor.Left = monitorInfo.rcMonitor.Top = 0; + monitorInfo.rcMonitor.Right = Screen.currentResolution.width - 1; + monitorInfo.rcMonitor.Bottom = Screen.currentResolution.height - 1; + + monitorInfo.rcWork.Left = monitorInfo.rcWork.Top = 0; + monitorInfo.rcWork.Right = Screen.currentResolution.width - 1; + monitorInfo.rcWork.Bottom = Screen.currentResolution.height - 1; + } + + monitorSize.x = monitorInfo.rcMonitor.Right - monitorInfo.rcMonitor.Left + 1; + monitorSize.y = monitorInfo.rcMonitor.Bottom - monitorInfo.rcMonitor.Top + 1; + } + + if (!winRectPrinted) + { + Debug.Log (string.Format ("monSize: ({0}, {1})", monitorSize.x, monitorSize.y)); + Debug.Log (string.Format ("scrSize: ({0}, {1})", Screen.width, Screen.height)); + Debug.Log (string.Format ("winRect: ({0}, {1}, {2}, {3})", winRect.Left, winRect.Top, winRect.Right, winRect.Bottom)); + Debug.Log (string.Format ("winPos: ({0}, {1})", windowX, windowY)); + winRectPrinted = true; + } + } + } + else + { + if (monitorSize == Vector2.zero) + { + monitorSize.x = Screen.currentResolution.width; + monitorSize.y = Screen.currentResolution.height; + } + } + + int mouseX = 0; + int mouseY = 0; + + if(!isConvertToFullScreen) + { + float screenX = windowX + screenCoordinates.x * Screen.width; + float screenY = windowY + (1f - screenCoordinates.y) * Screen.height; + + float screenRelX = screenX / monitorSize.x; + float screenRelY = screenY / monitorSize.y; + +// if(debugText) +// { +// if(!debugText.text.Contains("ScrPos")) +// { +// string sDebug = string.Format("\nScrPos: ({0:F0}, {1:F0})", screenX, screenY); +// debugText.text += sDebug; +// //Debug.Log (sDebug); +// } +// } + + mouseX = (int)(screenRelX * 65535); + mouseY = (int)(screenRelY * 65535); + } + else + { + mouseX = (int)(screenCoordinates.x * 65535); + mouseY = (int)((1f - screenCoordinates.y) * 65535); + } + + mouse_event(MouseFlags.Absolute | MouseFlags.Move, mouseX, mouseY, 0, System.UIntPtr.Zero); + } + + // find the closest matching child window to the screen size + private static IntPtr GetClosestWindow(IntPtr hWndMain, int scrWidth, int scrHeight) + { + if(hWndMain == IntPtr.Zero) + return hWndMain; + + IntPtr hWnd = hWndMain; + RECT winRect; + + if(GetWindowRect(hWndMain, out winRect)) + { + int winSizeX = winRect.Right - winRect.Left; + int winSizeY = winRect.Bottom - winRect.Top; + int winDiff = Math.Abs(winSizeX - scrWidth) + Math.Abs(winSizeY - scrHeight); + + IntPtr hWndChild = GetWindow(hWndMain, GetWindow_Cmd.GW_CHILD); + int winDiffMin = winDiff; + + while(hWndChild != IntPtr.Zero) + { + if(GetWindowRect(hWndChild, out winRect)) + { + winSizeX = winRect.Right - winRect.Left; + winSizeY = winRect.Bottom - winRect.Top; + winDiff = Math.Abs(winSizeX - scrWidth) + Math.Abs(winSizeY - scrHeight - 36); + + if(scrWidth <= winSizeX && scrHeight <= winSizeY && winDiff <= winDiffMin) + { + hWnd = hWndChild; + winDiffMin = winDiff; + } + } + + hWndChild = GetWindow(hWndChild, GetWindow_Cmd.GW_HWNDNEXT); + } + } + + return hWnd; + } + + // Public function to emulate a mouse button click (left button) + public static void MouseClick() + { + mouse_event(MouseFlags.LeftDown, 0, 0, 0, System.UIntPtr.Zero); + mouse_event(MouseFlags.LeftUp, 0, 0, 0, System.UIntPtr.Zero); + } + + // Public function to emulate a mouse drag event (left button) + public static void MouseDrag() + { + mouse_event(MouseFlags.LeftDown, 0, 0, 0, System.UIntPtr.Zero); + } + + // Public function to emulate a mouse release event (left button) + public static void MouseRelease() + { + mouse_event(MouseFlags.LeftUp, 0, 0, 0, System.UIntPtr.Zero); + } + +} + + diff --git a/Assets/Azure/KinectScripts/MouseControl.cs.meta b/Assets/Azure/KinectScripts/MouseControl.cs.meta new file mode 100644 index 0000000..c60bd4e --- /dev/null +++ b/Assets/Azure/KinectScripts/MouseControl.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 51ccaee230a24eb4abe3552b7db99d0e +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Azure/KinectScripts/MultiCameraSyncher.cs b/Assets/Azure/KinectScripts/MultiCameraSyncher.cs new file mode 100644 index 0000000..5704b63 --- /dev/null +++ b/Assets/Azure/KinectScripts/MultiCameraSyncher.cs @@ -0,0 +1,36 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using com.rfilkov.kinect; + + +namespace com.rfilkov.components +{ + /// + /// MultiCameraSyncher enables synchronization of frames between the master and the subordinate sensors. + /// + public class MultiCameraSyncher : MonoBehaviour + { + + void Start() + { + KinectManager kinectManager = KinectManager.Instance; + int numSensors = kinectManager ? kinectManager.GetSensorCount() : 0; + + for (int i = 0; i < numSensors; i++) + { + KinectInterop.SensorData sensorData = kinectManager.GetSensorData(i); + + if(sensorData != null && sensorData.sensorInterface != null) + { + // enable master-sub frame sync + bool bSuccess = sensorData.sensorInterface.EnableSensorSync(sensorData, true); + if (bSuccess) + Debug.Log("Enabled frame sync for S" + i + " - " + sensorData.sensorIntPlatform.ToString() + ", Id:" + sensorData.sensorInterface.GetSensorDeviceId()); + } + } + + } + + } +} diff --git a/Assets/Azure/KinectScripts/MultiCameraSyncher.cs.meta b/Assets/Azure/KinectScripts/MultiCameraSyncher.cs.meta new file mode 100644 index 0000000..295aba9 --- /dev/null +++ b/Assets/Azure/KinectScripts/MultiCameraSyncher.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a56b1319a84db344fb526cbd14a3748d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/MultiScene.meta b/Assets/Azure/KinectScripts/MultiScene.meta new file mode 100644 index 0000000..d227558 --- /dev/null +++ b/Assets/Azure/KinectScripts/MultiScene.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 25b1c999a0736924eae0dfb6ff32bb90 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/MultiScene/LoadFirstLevel.cs b/Assets/Azure/KinectScripts/MultiScene/LoadFirstLevel.cs new file mode 100644 index 0000000..ee76fec --- /dev/null +++ b/Assets/Azure/KinectScripts/MultiScene/LoadFirstLevel.cs @@ -0,0 +1,31 @@ +using UnityEngine; +using System.Collections; +using UnityEngine.SceneManagement; +using com.rfilkov.kinect; + +namespace com.rfilkov.components +{ + /// + /// This component loads the first real scene of the game, after the startup scene. + /// + public class LoadFirstLevel : MonoBehaviour + { + // prevents multiple loads + private bool levelLoaded = false; + + + void Update() + { + KinectManager kinectManager = KinectManager.Instance; + + if (!levelLoaded && kinectManager && kinectManager.IsInitialized()) + { + levelLoaded = true; + + Debug.Log($"Loading level 1..."); + SceneManager.LoadScene(1); + } + } + + } +} diff --git a/Assets/Azure/KinectScripts/MultiScene/LoadFirstLevel.cs.meta b/Assets/Azure/KinectScripts/MultiScene/LoadFirstLevel.cs.meta new file mode 100644 index 0000000..f5835c7 --- /dev/null +++ b/Assets/Azure/KinectScripts/MultiScene/LoadFirstLevel.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2d2f2bc9ba7308f46af72d41646ded12 +timeCreated: 1425907070 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/MultiScene/LoadLevelWithDelay.cs b/Assets/Azure/KinectScripts/MultiScene/LoadLevelWithDelay.cs new file mode 100644 index 0000000..4706081 --- /dev/null +++ b/Assets/Azure/KinectScripts/MultiScene/LoadLevelWithDelay.cs @@ -0,0 +1,71 @@ +using UnityEngine; +using System.Collections; +using UnityEngine.SceneManagement; +using com.rfilkov.kinect; + + +namespace com.rfilkov.components +{ + /// + /// This component loads the next level after the given delay in seconds. + /// + public class LoadLevelWithDelay : MonoBehaviour + { + [Tooltip("Seconds to wait before loading next level.")] + public float waitSeconds = 0f; + + [Tooltip("Next level number. No level is loaded, if the number is negative.")] + public int nextLevel = -1; + + [Tooltip("Whether to check for initialized KinectManager or not.")] + public bool validateKinectManager = true; + + [Tooltip("UI-Text used to display the debug messages.")] + public UnityEngine.UI.Text debugText; + + private float timeToLoadLevel = 0f; + private bool levelLoaded = false; + + + void Start() + { + timeToLoadLevel = Time.realtimeSinceStartup + waitSeconds; + + if (validateKinectManager && debugText != null) + { + KinectManager kinectManager = KinectManager.Instance; + + if (kinectManager == null || !kinectManager.IsInitialized()) + { + debugText.text = "KinectManager is not initialized!"; + levelLoaded = true; + } + } + } + + + void Update() + { + if (!levelLoaded && nextLevel >= 0) + { + if (Time.realtimeSinceStartup >= timeToLoadLevel) + { + levelLoaded = true; + + Debug.Log($"Loading level {nextLevel}..."); + SceneManager.LoadScene(nextLevel); + } + else + { + float timeRest = timeToLoadLevel - Time.realtimeSinceStartup; + + if (debugText != null) + { + debugText.text = string.Format("Time to the next level: {0:F0} s.", timeRest); + } + } + } + } + + } +} diff --git a/Assets/Azure/KinectScripts/MultiScene/LoadLevelWithDelay.cs.meta b/Assets/Azure/KinectScripts/MultiScene/LoadLevelWithDelay.cs.meta new file mode 100644 index 0000000..9fb0de5 --- /dev/null +++ b/Assets/Azure/KinectScripts/MultiScene/LoadLevelWithDelay.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 75b9f3e8a6366ae45a0a3a4e85dcee57 +timeCreated: 1425907070 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/MultiScene/RefreshGestureListeners.cs b/Assets/Azure/KinectScripts/MultiScene/RefreshGestureListeners.cs new file mode 100644 index 0000000..9f76a74 --- /dev/null +++ b/Assets/Azure/KinectScripts/MultiScene/RefreshGestureListeners.cs @@ -0,0 +1,30 @@ +using UnityEngine; +using System.Collections; +using com.rfilkov.kinect; + + +namespace com.rfilkov.components +{ + public class RefreshGestureListeners : MonoBehaviour + { + + void Start() + { + KinectManager kinectManager = KinectManager.Instance; + + if (kinectManager) + { + // remove all users & filters + kinectManager.ClearKinectUsers(); + + // refresh gesture listeners + KinectGestureManager gestureManager = kinectManager.gestureManager; + if(gestureManager) + { + gestureManager.RefreshGestureListeners(); + } + } + } + + } +} diff --git a/Assets/Azure/KinectScripts/MultiScene/RefreshGestureListeners.cs.meta b/Assets/Azure/KinectScripts/MultiScene/RefreshGestureListeners.cs.meta new file mode 100644 index 0000000..19747f1 --- /dev/null +++ b/Assets/Azure/KinectScripts/MultiScene/RefreshGestureListeners.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 10c5832264d4548429d5e2827ab79d0d +timeCreated: 1425907070 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/PhotoShooter.cs b/Assets/Azure/KinectScripts/PhotoShooter.cs new file mode 100644 index 0000000..9d60886 --- /dev/null +++ b/Assets/Azure/KinectScripts/PhotoShooter.cs @@ -0,0 +1,152 @@ +using UnityEngine; +using System.Collections; +using System.IO; +using System; +using com.rfilkov.kinect; + + +namespace com.rfilkov.components +{ + /// + /// PhotoShooter provides public functions to take pictures of the currently rendered scene. + /// + public class PhotoShooter : MonoBehaviour + { + [Tooltip("Camera used to render the scene. If not set, the main camera will be used.")] + public Camera foregroundCamera; + + [Tooltip("Array of sprite transforms that will be used for displaying the countdown until image shot.")] + public Transform[] countdown; + + [Tooltip("UI-Text used to display information messages.")] + public UnityEngine.UI.Text infoText; + + + // reference to the currently executed routine + private IEnumerator currentRoutine = null; + + + /// + /// Checks if the photo making is currently in progress. + /// + public bool IsInProgress() + { + return (currentRoutine != null); + } + + + /// + /// Counts down (from 3 for instance), then takes a picture and opens it + /// + public void CountdownAndMakePhoto() + { + if (currentRoutine != null) + return; + + currentRoutine = CoCountdownAndMakePhoto(); + StartCoroutine(currentRoutine); + } + + + // counts down (from 3 for instance), then makes a photo and opens it + private IEnumerator CoCountdownAndMakePhoto() + { + if (countdown != null && countdown.Length > 0) + { + for (int i = 0; i < countdown.Length; i++) + { + if (countdown[i]) + countdown[i].gameObject.SetActive(true); + + yield return new WaitForSeconds(1f); + + if (countdown[i]) + countdown[i].gameObject.SetActive(false); + } + } + + MakePhoto(); + + yield return null; + currentRoutine = null; + } + + + /// + /// Saves the screen image as png picture, and then opens the saved file. + /// + public void MakePhoto() + { + MakePhoto(true); + } + + /// + /// Saves the screen image as png picture, and optionally opens the saved file. + /// + /// The file name. + /// If set to true opens the saved file. + public string MakePhoto(bool openIt) + { + int resWidth = Screen.width; + int resHeight = Screen.height; + + Texture2D screenShot = new Texture2D(resWidth, resHeight, TextureFormat.RGB24, false); //Create new texture + RenderTexture rt = new RenderTexture(resWidth, resHeight, 24); + + // hide the info-text, if any + if (infoText) + { + infoText.text = string.Empty; + } + + if(!foregroundCamera) + { + foregroundCamera = Camera.main; + } + + // render the camera + if (foregroundCamera && foregroundCamera.enabled) + { + foregroundCamera.targetTexture = rt; + foregroundCamera.Render(); + foregroundCamera.targetTexture = null; + } + + // get the screenshot + RenderTexture prevActiveTex = RenderTexture.active; + RenderTexture.active = rt; + + screenShot.ReadPixels(new Rect(0, 0, resWidth, resHeight), 0, 0); + + // clean-up + RenderTexture.active = prevActiveTex; + Destroy(rt); + + byte[] btScreenShot = screenShot.EncodeToJPG(); + Destroy(screenShot); + + // save the screenshot as jpeg file + string sDirName = Application.persistentDataPath + "/Screenshots"; + if (!Directory.Exists(sDirName)) + Directory.CreateDirectory(sDirName); + + string sFileName = sDirName + "/" + string.Format("{0:F0}", Time.realtimeSinceStartup * 10f) + ".jpg"; + File.WriteAllBytes(sFileName, btScreenShot); + + Debug.Log("Photo saved to: " + sFileName); + if (infoText) + { + infoText.text = "Saved to: " + sFileName; + } + + // open file + if (openIt) + { + System.Diagnostics.Process.Start(sFileName); + } + + return sFileName; + } + + } +} diff --git a/Assets/Azure/KinectScripts/PhotoShooter.cs.meta b/Assets/Azure/KinectScripts/PhotoShooter.cs.meta new file mode 100644 index 0000000..0170927 --- /dev/null +++ b/Assets/Azure/KinectScripts/PhotoShooter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a273e35c2904bb442bc367cf2ad1b8cb +timeCreated: 1484259322 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/PointCloudTarget.cs b/Assets/Azure/KinectScripts/PointCloudTarget.cs new file mode 100644 index 0000000..ec50b89 --- /dev/null +++ b/Assets/Azure/KinectScripts/PointCloudTarget.cs @@ -0,0 +1,84 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using com.rfilkov.kinect; +using static com.rfilkov.kinect.DepthSensorBase; + + +namespace com.rfilkov.components +{ + /// + /// PointCloudTarget sets the point cloud resolution of the respective sensor, as well as the target render textures. + /// + public class PointCloudTarget : MonoBehaviour + { + [Tooltip("Depth sensor index - 0 is the 1st one, 1 - the 2nd one, etc.")] + public int sensorIndex = 0; + + [Tooltip("Resolution of the generated point-cloud textures.")] + public PointCloudResolution pointCloudResolution = PointCloudResolution.DepthCameraResolution; + + [Tooltip("Render texture, used for point-cloud vertex mapping. The texture resolution should match the depth or color image resolution.")] + public RenderTexture pointCloudVertexTexture = null; + + [Tooltip("Render texture, used for point-cloud color mapping. The texture resolution should match the depth or color image resolution.")] + public RenderTexture pointCloudColorTexture = null; + + [Tooltip("List of comma-separated player indices to be included in the point cloud. Use -1 for all players, or empty list for full point cloud.")] + public string pointCloudPlayerList = string.Empty; + + + // references + private KinectManager kinectManager = null; + private KinectInterop.SensorData sensorData = null; + private DepthSensorBase sensorInt = null; + + + void Start() + { + kinectManager = KinectManager.Instance; + sensorData = kinectManager != null && kinectManager.IsInitialized() ? kinectManager.GetSensorData(sensorIndex) : null; + + if(sensorData != null && sensorData.sensorInterface != null) + { + sensorInt = (DepthSensorBase)sensorData.sensorInterface; + + sensorInt.pointCloudResolution = pointCloudResolution; + sensorInt.pointCloudVertexTexture = pointCloudVertexTexture; + sensorInt.pointCloudColorTexture = pointCloudColorTexture; + sensorInt.pointCloudPlayerList = pointCloudPlayerList; + //Debug.Log("PointCloudResolution: " + pointCloudResolution + ", PointCloudVertexTexture: " + pointCloudVertexTexture + ", PointCloudColorTexture: " + pointCloudColorTexture); + } + } + + + //void Update() + //{ + // if (sensorInt == null) + // return; + + // Vector2Int texRes = sensorInt.GetPointCloudTexResolution(sensorData); + + // if (pointCloudVertexTexture != null && (pointCloudVertexTexture.width != texRes.x || pointCloudVertexTexture.height != texRes.y)) + // { + // pointCloudVertexTexture.Release(); + // pointCloudVertexTexture.width = texRes.x; + // pointCloudVertexTexture.height = texRes.y; + // pointCloudVertexTexture.Create(); + + // //Debug.Log("Updated PointCloudVertexTexture with w: " + pointCloudVertexTexture.width + " and h: " + pointCloudVertexTexture.height); + // } + + // if (pointCloudColorTexture != null && (pointCloudColorTexture.width != texRes.x || pointCloudColorTexture.height != texRes.y)) + // { + // pointCloudColorTexture.Release(); + // pointCloudColorTexture.width = texRes.x; + // pointCloudColorTexture.height = texRes.y; + // pointCloudColorTexture.Create(); + + // //Debug.Log("Updated PointCloudColorTexture with w: " + pointCloudColorTexture.width + " and h: " + pointCloudColorTexture.height); + // } + //} + + } +} diff --git a/Assets/Azure/KinectScripts/PointCloudTarget.cs.meta b/Assets/Azure/KinectScripts/PointCloudTarget.cs.meta new file mode 100644 index 0000000..ca0c548 --- /dev/null +++ b/Assets/Azure/KinectScripts/PointCloudTarget.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 07bbbaae9d09b4acdb6d30984818c8a0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/PortraitBackground.cs b/Assets/Azure/KinectScripts/PortraitBackground.cs new file mode 100644 index 0000000..912b57a --- /dev/null +++ b/Assets/Azure/KinectScripts/PortraitBackground.cs @@ -0,0 +1,206 @@ +using UnityEngine; +using System.Collections; +using com.rfilkov.kinect; + + +namespace com.rfilkov.components +{ + /// + /// Portrait background is the component that sets the background image in the required screen resolution. + /// + public class PortraitBackground : MonoBehaviour + { + [Tooltip("Index of the sensor, whose color image will be used as background image.")] + public int sensorIndex = 0; + + [Tooltip("Target aspect ratio. If left at 0:0, it will determine the aspect ratio from the current screen resolution.")] + public Vector2 targetAspectRatio = Vector2.zero; // new Vector2 (9f, 16f); + + private bool isInitialized = false; + private Rect pixelInsetRect; + private Rect backgroundRect; + private Rect inScreenRect; + private Rect shaderUvRect; + + private static PortraitBackground instance = null; + + private KinectManager kinectManager = null; + private KinectInterop.SensorData sensorData = null; + private UnityEngine.UI.RawImage rawImage = null; + private int staticImageW = 0, staticImageH = 0; + + private int screenW = 0; + private int screenH = 0; + private int imageW = 0; + private int imageH = 0; + + + /// + /// Gets the singleton PortraitBackground instance. + /// + /// The PortraitBackground instance. + public static PortraitBackground Instance + { + get + { + return instance; + } + } + + /// + /// Determines whether the instance is initialized or not. + /// + /// true if the instance is initialized; otherwise, false. + public bool IsInitialized() + { + return isInitialized; + } + + /// + /// Gets the background rectangle in pixels. This rectangle can be provided as an argument to the GetJointPosColorOverlay()-KM function. + /// + /// The background rectangle, in pixels + public Rect GetBackgroundRect() + { + return backgroundRect; + } + + /// + /// Gets the in-screen rectangle in pixels. + /// + /// The in-screen rectangle, in pixels. + public Rect GetInScreenRect() + { + return inScreenRect; + } + + /// + /// Gets the shader uv rectangle. Can be used by custom shaders that need the portrait image uv-offsets and sizes. + /// + /// The shader uv rectangle. + public Rect GetShaderUvRect() + { + return shaderUvRect; + } + + /// + /// Gets the color-image scaled screen width. The scaled screen height is equal to the color-image height. + /// + /// Color-image scaled screen width. + public float GetColorScaledScreenWidth() + { + KinectManager kinectManager = KinectManager.Instance; + float fScaledScreenW = kinectManager ? (float)Screen.width * (float)kinectManager.GetColorImageHeight(sensorIndex) / (float)Screen.height : 0f; + + return fScaledScreenW; + } + + + //////////////////////////////////////////////////////////////////////// + + + void Awake() + { + instance = this; + } + + void Start() + { + rawImage = GetComponent(); + if(rawImage != null && rawImage.texture != null) + { + //staticImageW = rawImage.texture.width; + //staticImageH = rawImage.texture.height; + //Debug.Log("staticImageW: " + staticImageW + ", staticImageH: " + staticImageH); + } + + kinectManager = KinectManager.Instance; + if(kinectManager && kinectManager.IsInitialized()) + { + sensorData = kinectManager.GetSensorData(sensorIndex); + + int colorImageW = staticImageW > 0 ? staticImageW : sensorData.colorImageWidth; // kinectManager.GetColorImageWidth(sensorIndex); + int colorImageH = staticImageH > 0 ? staticImageH : sensorData.colorImageHeight; // kinectManager.GetColorImageHeight(sensorIndex); + UpdateBackgroundParams(colorImageW, colorImageH); + } + } + + void Update() + { + if (kinectManager && kinectManager.IsInitialized()) + { + int colorImageW = staticImageW > 0 ? staticImageW : sensorData.colorImageWidth; // kinectManager.GetColorImageWidth(sensorIndex); + int colorImageH = staticImageH > 0 ? staticImageH : sensorData.colorImageHeight; // kinectManager.GetColorImageHeight(sensorIndex); + + if (screenW != Screen.width || screenH != Screen.height || + imageW != colorImageW || imageH != colorImageH) + { + isInitialized = false; + UpdateBackgroundParams(colorImageW, colorImageH); + } + + if (rawImage != null && sensorData != null && sensorData.sensorInterface != null) + { + Vector2 updatedAnchorPos = sensorData.sensorInterface.GetBackgroundImageAnchorPos(sensorData); + if (rawImage.rectTransform.anchoredPosition != updatedAnchorPos) + { + rawImage.rectTransform.anchoredPosition = updatedAnchorPos; + //Debug.Log("anchoredPosition: " + rawImage.rectTransform.anchoredPosition); + } + } + } + } + + + + // updates the background parameters + private void UpdateBackgroundParams(int colorImageW, int colorImageH) + { + if (colorImageW > 0 && colorImageH > 0) + { + screenW = Screen.width; + screenH = Screen.height; + imageW = colorImageW; + imageH = colorImageH; + //Debug.Log("UpdateBackgroundParams() - scrW: " + screenW + ", scrH: " + screenH + ", imgW: " + imageW + ", imgH: " + imageH); + + // determine the target screen aspect ratio + float screenAspectRatio = targetAspectRatio != Vector2.zero ? (targetAspectRatio.x / targetAspectRatio.y) : + ((float)Screen.width / (float)Screen.height); + + float fFactorDW = (float)colorImageW / (float)colorImageH - + //(float)colorImageH / (float)colorImageW; + screenAspectRatio; + + float fDeltaWidth = (float)Screen.height * fFactorDW; + float dOffsetX = -fDeltaWidth / 2f; + + float fFactorSW = (float)colorImageW / (float)colorImageH; + + float fScreenWidth = (float)Screen.height * fFactorSW; + float fAbsOffsetX = fDeltaWidth / 2f; + + pixelInsetRect = new Rect(dOffsetX, 0, fDeltaWidth, 0); + backgroundRect = new Rect(dOffsetX, 0, fScreenWidth, Screen.height); + + inScreenRect = new Rect(fAbsOffsetX, 0, fScreenWidth - fDeltaWidth, Screen.height); + shaderUvRect = new Rect(fAbsOffsetX / fScreenWidth, 0, (fScreenWidth - fDeltaWidth) / fScreenWidth, 1); + //Debug.Log("Background rect: " + backgroundRect + ", shaderRect: " + shaderUvRect + "\nScreenW: " + Screen.width + ", ScreenH: " + Screen.height); + + //GUITexture guiTexture = GetComponent(); + //if(guiTexture) + //{ + // guiTexture.pixelInset = pixelInsetRect; + //} + + if (rawImage) + { + rawImage.uvRect = shaderUvRect; + } + + isInitialized = true; + } + } + + } +} diff --git a/Assets/Azure/KinectScripts/PortraitBackground.cs.meta b/Assets/Azure/KinectScripts/PortraitBackground.cs.meta new file mode 100644 index 0000000..14ef1ed --- /dev/null +++ b/Assets/Azure/KinectScripts/PortraitBackground.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 78b5cd09b2fe6a74b822705cd59951f1 +timeCreated: 1441012328 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/PoseModelHelper.cs b/Assets/Azure/KinectScripts/PoseModelHelper.cs new file mode 100644 index 0000000..6e5f8c0 --- /dev/null +++ b/Assets/Azure/KinectScripts/PoseModelHelper.cs @@ -0,0 +1,201 @@ +using UnityEngine; + +using System; +using System.Collections; +using System.Collections.Generic; +using com.rfilkov.kinect; + + +namespace com.rfilkov.components +{ + /// + /// Pose model helper matches the sensor-tracked joints to model transforms. + /// + [RequireComponent(typeof(Animator))] + public class PoseModelHelper : MonoBehaviour + { + // Variable to hold all them bones. It will initialize the same size as initialRotations. + protected Transform[] bones; + + + /// + /// Gets the number of bone transforms (array length). + /// + /// The number of bone transforms. + public int GetBoneTransformCount() + { + return bones != null ? bones.Length : 0; + } + + /// + /// Gets the bone transform by index. + /// + /// The bone transform. + /// Index + public Transform GetBoneTransform(int index) + { + if (index >= 0 && index < bones.Length) + { + return bones[index]; + } + + return null; + } + + /// + /// Gets the bone index by joint type. + /// + /// The bone index. + /// Joint type + /// If set to true gets the mirrored joint index. + public int GetBoneIndexByJoint(KinectInterop.JointType joint, bool bMirrored) + { + int boneIndex = -1; + + if (jointMap2boneIndex.ContainsKey(joint)) + { + boneIndex = !bMirrored ? jointMap2boneIndex[joint] : mirrorJointMap2boneIndex[joint]; + } + + return boneIndex; + } + + + // transform caching gives performance boost since Unity calls GetComponent() each time you call transform + protected Transform _transformCache; + public new Transform transform + { + get + { + if (!_transformCache) + { + _transformCache = base.transform; + } + + return _transformCache; + } + } + + + public void Awake() + { + // check for double start + if (bones != null) + return; + if (!gameObject.activeInHierarchy) + return; + + // inits the bones array + bones = new Transform[21]; + + // Map bones to the points the Kinect tracks + MapBones(); + } + + + // If the bones to be mapped have been declared, map that bone to the model. + protected virtual void MapBones() + { + // get bone transforms from the animator component + Animator animatorComponent = GetComponent(); + + for (int boneIndex = 0; boneIndex < bones.Length; boneIndex++) + { + if (!boneIndex2MecanimMap.ContainsKey(boneIndex)) + continue; + + bones[boneIndex] = animatorComponent ? animatorComponent.GetBoneTransform(boneIndex2MecanimMap[boneIndex]) : null; + } + } + + + // dictionaries to speed up bone processing + protected static readonly Dictionary boneIndex2MecanimMap = new Dictionary + { + {0, HumanBodyBones.Hips}, + {1, HumanBodyBones.Spine}, + {2, HumanBodyBones.Chest}, + {3, HumanBodyBones.Neck}, +// {4, HumanBodyBones.Head}, + + {5, HumanBodyBones.LeftShoulder}, + {6, HumanBodyBones.LeftUpperArm}, + {7, HumanBodyBones.LeftLowerArm}, + {8, HumanBodyBones.LeftHand}, + + {9, HumanBodyBones.RightShoulder}, + {10, HumanBodyBones.RightUpperArm}, + {11, HumanBodyBones.RightLowerArm}, + {12, HumanBodyBones.RightHand}, + + {13, HumanBodyBones.LeftUpperLeg}, + {14, HumanBodyBones.LeftLowerLeg}, + {15, HumanBodyBones.LeftFoot}, +// {16, HumanBodyBones.LeftToes}, + + {17, HumanBodyBones.RightUpperLeg}, + {18, HumanBodyBones.RightLowerLeg}, + {19, HumanBodyBones.RightFoot}, +// {20, HumanBodyBones.RightToes}, + }; + + protected static readonly Dictionary jointMap2boneIndex = new Dictionary + { + {KinectInterop.JointType.Pelvis, 0}, + {KinectInterop.JointType.SpineNaval, 1}, + {KinectInterop.JointType.SpineChest, 2}, + {KinectInterop.JointType.Neck, 3}, + {KinectInterop.JointType.Head, 4}, + + {KinectInterop.JointType.ClavicleLeft, 5}, + {KinectInterop.JointType.ShoulderLeft, 6}, + {KinectInterop.JointType.ElbowLeft, 7}, + {KinectInterop.JointType.WristLeft, 8}, + + {KinectInterop.JointType.ClavicleRight, 9}, + {KinectInterop.JointType.ShoulderRight, 10}, + {KinectInterop.JointType.ElbowRight, 11}, + {KinectInterop.JointType.WristRight, 12}, + + {KinectInterop.JointType.HipLeft, 13}, + {KinectInterop.JointType.KneeLeft, 14}, + {KinectInterop.JointType.AnkleLeft, 15}, + {KinectInterop.JointType.FootLeft, 16}, + + {KinectInterop.JointType.HipRight, 17}, + {KinectInterop.JointType.KneeRight, 18}, + {KinectInterop.JointType.AnkleRight, 19}, + {KinectInterop.JointType.FootRight, 20}, + }; + + protected static readonly Dictionary mirrorJointMap2boneIndex = new Dictionary + { + {KinectInterop.JointType.Pelvis, 0}, + {KinectInterop.JointType.SpineNaval, 1}, + {KinectInterop.JointType.SpineChest, 2}, + {KinectInterop.JointType.Neck, 3}, + {KinectInterop.JointType.Head, 4}, + + {KinectInterop.JointType.ClavicleRight, 5}, + {KinectInterop.JointType.ShoulderRight, 6}, + {KinectInterop.JointType.ElbowRight, 7}, + {KinectInterop.JointType.WristRight, 8}, + + {KinectInterop.JointType.ClavicleLeft, 9}, + {KinectInterop.JointType.ShoulderLeft, 10}, + {KinectInterop.JointType.ElbowLeft, 11}, + {KinectInterop.JointType.WristLeft, 12}, + + {KinectInterop.JointType.HipRight, 13}, + {KinectInterop.JointType.KneeRight, 14}, + {KinectInterop.JointType.AnkleRight, 15}, + {KinectInterop.JointType.FootRight, 16}, + + {KinectInterop.JointType.HipLeft, 17}, + {KinectInterop.JointType.KneeLeft, 18}, + {KinectInterop.JointType.AnkleLeft, 19}, + {KinectInterop.JointType.FootLeft, 20}, + }; + + } +} diff --git a/Assets/Azure/KinectScripts/PoseModelHelper.cs.meta b/Assets/Azure/KinectScripts/PoseModelHelper.cs.meta new file mode 100644 index 0000000..dcc3dbf --- /dev/null +++ b/Assets/Azure/KinectScripts/PoseModelHelper.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 01b562c99f7410c408567281ef62ff02 +timeCreated: 1455291066 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/PoseModelHelperClassic.cs b/Assets/Azure/KinectScripts/PoseModelHelperClassic.cs new file mode 100644 index 0000000..7626917 --- /dev/null +++ b/Assets/Azure/KinectScripts/PoseModelHelperClassic.cs @@ -0,0 +1,72 @@ +using UnityEngine; + + +namespace com.rfilkov.components +{ + /// + /// Pose model helper matches the sensor-tracked joints to model transforms (with manual assignment). + /// + [RequireComponent(typeof(Animator))] + public class PoseModelHelperClassic : PoseModelHelper + { + + // Public variables that will get matched to bones. If empty, the Kinect will simply not track it. + public Transform Pelvis; + public Transform SpineNaval; + public Transform SpineChest; + public Transform Neck; + //public Transform Head; + + public Transform ClavicleLeft; + public Transform ShoulderLeft; + public Transform ElbowLeft; + public Transform WristLeft; + + public Transform ClavicleRight; + public Transform ShoulderRight; + public Transform ElbowRight; + public Transform WristRight; + + public Transform HipLeft; + public Transform KneeLeft; + public Transform AnkleLeft; + //private Transform FootLeft = null; + + public Transform HipRight; + public Transform KneeRight; + public Transform AnkleRight; + //private Transform FootRight = null; + + + // map the bones to the model. + protected override void MapBones() + { + bones[0] = Pelvis; + bones[1] = SpineNaval; + bones[2] = SpineChest; + bones[3] = Neck; + //bones[4] = Head; + + bones[5] = ClavicleLeft; + bones[6] = ShoulderLeft; + bones[7] = ElbowLeft; + bones[8] = WristLeft; + + bones[9] = ClavicleRight; + bones[10] = ShoulderRight; + bones[11] = ElbowRight; + bones[12] = WristRight; + + bones[13] = HipLeft; + bones[14] = KneeLeft; + bones[15] = AnkleLeft; + //bones[16] = FootLeft; + + bones[17] = HipRight; + bones[18] = KneeRight; + bones[19] = AnkleRight; + //bones[20] = FootRight; + } + + } +} diff --git a/Assets/Azure/KinectScripts/PoseModelHelperClassic.cs.meta b/Assets/Azure/KinectScripts/PoseModelHelperClassic.cs.meta new file mode 100644 index 0000000..b70665a --- /dev/null +++ b/Assets/Azure/KinectScripts/PoseModelHelperClassic.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 15783b176ee38fe4d92aeb0c91178cf3 +timeCreated: 1558538987 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/Samples.meta b/Assets/Azure/KinectScripts/Samples.meta new file mode 100644 index 0000000..f04c798 --- /dev/null +++ b/Assets/Azure/KinectScripts/Samples.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d8c6d84acb2a2b94689eef34b270069e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/Samples/BlurredColorBackground.cs b/Assets/Azure/KinectScripts/Samples/BlurredColorBackground.cs new file mode 100644 index 0000000..194f2d6 --- /dev/null +++ b/Assets/Azure/KinectScripts/Samples/BlurredColorBackground.cs @@ -0,0 +1,94 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; +using com.rfilkov.kinect; + +namespace com.rfilkov.components +{ + /// + /// Blurs the color camera image and applies it to the background. Thanks to Edgaras Artemciukas. + /// + public class BlurredColorBackground : MonoBehaviour + { + [Tooltip("Depth sensor index - 0 is the 1st one, 1 - the 2nd one, etc.")] + public int sensorIndex = 0; + + [Tooltip("RawImage to display the blurred background")] + public RawImage backgroundImage; + + [Tooltip("Blur pixel offset")] + [Range(0, 20)] + public int pixelOffset = 8; + + [Tooltip("Blur pixel step")] + [Range(1, 5)] + public int pixelStep = 2; + + + // reference to the KinectManager + private KinectManager kinectManager; + private KinectInterop.SensorData sensorData = null; + + // blur background material & texture + private Material blurBackMat; + private RenderTexture blurredTexture = null; + + // last color frame time + private ulong lastColorFrameTime = 0; + + + void Start() + { + kinectManager = KinectManager.Instance; + sensorData = kinectManager != null ? kinectManager.GetSensorData(sensorIndex) : null; + + // blur material + Shader blurShader = Shader.Find("Kinect/BlurShader"); + blurBackMat = new Material(blurShader); + } + + void OnDestroy() + { + // release the texture + blurredTexture.Release(); + Destroy(blurredTexture); + + blurredTexture = null; + blurBackMat = null; + } + + void Update() + { + if(kinectManager && kinectManager.IsInitialized() && sensorData != null && lastColorFrameTime != sensorData.lastColorFrameTime) + { + lastColorFrameTime = sensorData.lastColorFrameTime; + + // create the blurred texture, if needed + if(blurredTexture == null || blurredTexture.width != sensorData.colorImageWidth || blurredTexture.height != sensorData.colorImageHeight) + { + if(blurredTexture != null) + { + blurredTexture.Release(); + Destroy(blurredTexture); + } + + blurredTexture = new RenderTexture(sensorData.colorImageWidth, sensorData.colorImageHeight, 0, RenderTextureFormat.ARGB32); + + if(backgroundImage) + { + backgroundImage.texture = blurredTexture; + backgroundImage.rectTransform.localScale = sensorData.colorImageScale; + backgroundImage.color = Color.white; + } + } + + // render the blurred texture + blurBackMat.SetFloat("_PixOffset", pixelOffset); + blurBackMat.SetFloat("_PixStep", pixelStep); + Graphics.Blit(kinectManager.GetColorImageTex(sensorIndex), blurredTexture, blurBackMat); + } + } + + } +} diff --git a/Assets/Azure/KinectScripts/Samples/BlurredColorBackground.cs.meta b/Assets/Azure/KinectScripts/Samples/BlurredColorBackground.cs.meta new file mode 100644 index 0000000..df1d37c --- /dev/null +++ b/Assets/Azure/KinectScripts/Samples/BlurredColorBackground.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c13fa6f9cde1f8149989c5bbd7e243e2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/Samples/DisplayUserInfo.cs b/Assets/Azure/KinectScripts/Samples/DisplayUserInfo.cs new file mode 100644 index 0000000..d0e5a53 --- /dev/null +++ b/Assets/Azure/KinectScripts/Samples/DisplayUserInfo.cs @@ -0,0 +1,50 @@ +using com.rfilkov.kinect; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace com.rfilkov.components +{ + /// + /// Displays userId, positional and rotational information for the specified user on screen. + /// + public class DisplayUserInfo : MonoBehaviour + { + [Tooltip("Index of the player, tracked by this component. 0 means the 1st player, 1 - the 2nd one, 2 - the 3rd one, etc.")] + public int playerIndex = 0; + + [Tooltip("UI Text to display debug information.")] + public UnityEngine.UI.Text debugText; + + + void Update() + { + KinectManager kinectManager = KinectManager.Instance; + if (debugText != null && kinectManager != null && kinectManager.IsInitialized()) + { + if (kinectManager.IsUserDetected(playerIndex)) + { + ulong userId = kinectManager.GetUserIdByIndex(playerIndex); + KinectInterop.BodyData body = kinectManager.GetUserBodyData(userId); + + Vector3 userPos = body.position; // kinectManager.GetUserPosition(userId); + Vector3 userSensorPos = body.kinectPos; // kinectManager.GetUserKinectPosition(userId, true); + Vector3 userRot = body.normalRotation.eulerAngles; //kinectManager.GetUserOrientation(userId, true).eulerAngles; + + Vector3 headRot = body.joint[(int)KinectInterop.JointType.Head].normalRotation.eulerAngles; // kinectManager.GetJointOrientation(userId, KinectInterop.JointType.Head, true).eulerAngles; + Vector3 neckRot = body.joint[(int)KinectInterop.JointType.Neck].normalRotation.eulerAngles; // kinectManager.GetJointOrientation(userId, KinectInterop.JointType.Neck, true).eulerAngles; + Vector3 bodyRot = body.orientation.eulerAngles; + + string sText = $"User: {userId}, Pos: {userPos.ToString("F2")}, KPos: {userSensorPos.ToString("F2")}, Rotation: {userRot.ToString("F0")}" + + $"\nHeadRot: {headRot.ToString("F0")}, NeckRot: {neckRot.ToString("F0")}\nBodyRot: {bodyRot.ToString("F0")}"; + debugText.text = sText; + } + else + { + debugText.text = string.Empty; + } + } + } + + } +} diff --git a/Assets/Azure/KinectScripts/Samples/DisplayUserInfo.cs.meta b/Assets/Azure/KinectScripts/Samples/DisplayUserInfo.cs.meta new file mode 100644 index 0000000..f52a7a1 --- /dev/null +++ b/Assets/Azure/KinectScripts/Samples/DisplayUserInfo.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5faa6ed3ca6c587449088a3dc1e62e95 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/Samples/JointAngleCalculator.cs b/Assets/Azure/KinectScripts/Samples/JointAngleCalculator.cs new file mode 100644 index 0000000..4b3c584 --- /dev/null +++ b/Assets/Azure/KinectScripts/Samples/JointAngleCalculator.cs @@ -0,0 +1,66 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using com.rfilkov.kinect; + + +namespace com.rfilkov.components +{ + public class JointAngleCalculator : MonoBehaviour + { + [Tooltip("Index of the player, tracked by this component. 0 means the 1st player, 1 - the 2nd one, 2 - the 3rd one, etc.")] + public int playerIndex = 0; + + [Tooltip("First end joint.")] + public KinectInterop.JointType endJoint1 = KinectInterop.JointType.KneeRight; + + [Tooltip("Middle joint.")] + public KinectInterop.JointType middleJoint = KinectInterop.JointType.AnkleRight; + + [Tooltip("Second end joint.")] + public KinectInterop.JointType endJoint2 = KinectInterop.JointType.FootRight; + + [Tooltip("UI Text to display the information messages.")] + public UnityEngine.UI.Text infoText; + + + // reference to the KinectManager + private KinectManager kinectManager; + + + void Start() + { + kinectManager = KinectManager.Instance; + } + + // Update is called once per frame + void Update() + { + if (kinectManager && kinectManager.IsInitialized()) + { + ulong userId = kinectManager.GetUserIdByIndex(playerIndex); + + if (userId != 0 && + kinectManager.IsJointTracked(userId, endJoint1) && + kinectManager.IsJointTracked(userId, middleJoint) && + kinectManager.IsJointTracked(userId, endJoint2)) + { + Vector3 posEndJoint1 = kinectManager.GetJointPosition(userId, endJoint1); + Vector3 posMiddleJoint = kinectManager.GetJointPosition(userId, middleJoint); + Vector3 posEndJoint2 = kinectManager.GetJointPosition(userId, endJoint2); + + Vector3 dirMidEnd1 = (posEndJoint1 - posMiddleJoint).normalized; + Vector3 dirMidEnd2 = (posEndJoint2 - posMiddleJoint).normalized; + float angleMidJoint = Vector3.Angle(dirMidEnd1, dirMidEnd2); + + if (infoText != null) + { + infoText.text = string.Format("{0} angle: {1:F0} deg.", middleJoint, angleMidJoint); + } + } + } + } + + } +} + diff --git a/Assets/Azure/KinectScripts/Samples/JointAngleCalculator.cs.meta b/Assets/Azure/KinectScripts/Samples/JointAngleCalculator.cs.meta new file mode 100644 index 0000000..c1cc73c --- /dev/null +++ b/Assets/Azure/KinectScripts/Samples/JointAngleCalculator.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ccb652fe9ac5416469a9a58af15d3b6b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/Samples/JointOrientationView.cs b/Assets/Azure/KinectScripts/Samples/JointOrientationView.cs new file mode 100644 index 0000000..9be5111 --- /dev/null +++ b/Assets/Azure/KinectScripts/Samples/JointOrientationView.cs @@ -0,0 +1,75 @@ +using UnityEngine; +using System.Collections; +using com.rfilkov.kinect; + + +namespace com.rfilkov.components +{ + public class JointOrientationView : MonoBehaviour + { + [Tooltip("Depth sensor index - 0 is the 1st one, 1 - the 2nd one, etc. -1 means the sensor doesn't matter")] + public int sensorIndex = -1; + + [Tooltip("Index of the player, tracked by this component. 0 means the 1st player, 1 - the 2nd one, 2 - the 3rd one, etc.")] + public int playerIndex = 0; + + [Tooltip("The Kinect joint we want to track.")] + public KinectInterop.JointType trackedJoint = KinectInterop.JointType.Pelvis; + + [Tooltip("Whether the joint view is mirrored or not.")] + public bool mirroredView = false; + + [Tooltip("Smooth factor used for the joint orientation smoothing.")] + public float smoothFactor = 0f; + + [Tooltip("UI-Text to display the current joint rotation.")] + public UnityEngine.UI.Text debugText; + + private Quaternion initialRotation = Quaternion.identity; + private Quaternion qRotJoint = Quaternion.identity; + + void Start() + { + initialRotation = transform.rotation; + //transform.rotation = Quaternion.identity; + } + + void Update() + { + KinectManager kinectManager = KinectManager.Instance; + + if (kinectManager && kinectManager.IsInitialized()) + { + if (sensorIndex >= 0 || kinectManager.IsUserDetected(playerIndex)) + { + ulong userId = sensorIndex < 0 ? kinectManager.GetUserIdByIndex(playerIndex) : (ulong)playerIndex; + + if (sensorIndex >= 0 || kinectManager.IsJointTracked(userId, trackedJoint)) + { + if(sensorIndex < 0) + qRotJoint = kinectManager.GetJointOrientation(userId, trackedJoint, !mirroredView); + else + qRotJoint = kinectManager.GetSensorJointOrientation(sensorIndex, (int)userId, trackedJoint, !mirroredView); + + qRotJoint = initialRotation * qRotJoint; + + if (debugText) + { + Vector3 vRotAngles = qRotJoint.eulerAngles; + debugText.text = string.Format("{0} - R({1:000}, {2:000}, {3:000})", trackedJoint, + vRotAngles.x, vRotAngles.y, vRotAngles.z); + } + + if (smoothFactor != 0f) + transform.rotation = Quaternion.Slerp(transform.rotation, qRotJoint, smoothFactor * Time.deltaTime); + else + transform.rotation = qRotJoint; + } + + } + + } + } + + } +} diff --git a/Assets/Azure/KinectScripts/Samples/JointOrientationView.cs.meta b/Assets/Azure/KinectScripts/Samples/JointOrientationView.cs.meta new file mode 100644 index 0000000..0953855 --- /dev/null +++ b/Assets/Azure/KinectScripts/Samples/JointOrientationView.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9a3c4d032774761408f8f6565235782d +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Azure/KinectScripts/Samples/JointPositionView.cs b/Assets/Azure/KinectScripts/Samples/JointPositionView.cs new file mode 100644 index 0000000..0279171 --- /dev/null +++ b/Assets/Azure/KinectScripts/Samples/JointPositionView.cs @@ -0,0 +1,113 @@ +using UnityEngine; +using System.Collections; +using com.rfilkov.kinect; + + +namespace com.rfilkov.components +{ + public class JointPositionView : MonoBehaviour + { + [Tooltip("Depth sensor index - 0 is the 1st one, 1 - the 2nd one, etc. -1 means the sensor doesn't matter")] + public int sensorIndex = -1; + + [Tooltip("Index of the player, tracked by this component. 0 means the 1st player, 1 - the 2nd one, 2 - the 3rd one, etc.")] + public int playerIndex = 0; + + [Tooltip("The Kinect joint we want to track.")] + public KinectInterop.JointType trackedJoint = KinectInterop.JointType.Pelvis; + + [Tooltip("Whether the movement is relative to transform's initial position, or is in absolute coordinates.")] + public bool relToInitialPos = false; + + [Tooltip("Whether the z-movement is inverted or not.")] + public bool invertedZMovement = false; + + [Tooltip("Scene object that will be used to represent the sensor's position and rotation in the scene.")] + public Transform sensorTransform; + + //public bool moveTransform = true; + + [Tooltip("Smooth factor used for the joint position smoothing.")] + public float smoothFactor = 0f; + + [Tooltip("UI-Text to display the current joint position.")] + public UnityEngine.UI.Text debugText; + + + private Vector3 initialPosition = Vector3.zero; + private ulong currentUserId = 0; + private Vector3 initialUserOffset = Vector3.zero; + + private Vector3 vPosJoint = Vector3.zero; + + + void Start() + { + initialPosition = transform.position; + } + + void Update() + { + KinectManager kinectManager = KinectManager.Instance; + + if (kinectManager && kinectManager.IsInitialized()) + { + if (sensorIndex >= 0 || kinectManager.IsUserDetected(playerIndex)) + { + ulong userId = sensorIndex < 0 ? kinectManager.GetUserIdByIndex(playerIndex) : (ulong)playerIndex; + + if (sensorIndex >= 0 || kinectManager.IsJointTracked(userId, trackedJoint)) + { + if (sensorTransform != null) + { + if(sensorIndex < 0) + vPosJoint = kinectManager.GetJointKinectPosition(userId, trackedJoint, true); + else + vPosJoint = kinectManager.GetSensorJointKinectPosition(sensorIndex, (int)userId, trackedJoint, true); + } + else + { + if (sensorIndex < 0) + vPosJoint = kinectManager.GetJointPosition(userId, trackedJoint); + else + vPosJoint = kinectManager.GetSensorJointPosition(sensorIndex, (int)userId, trackedJoint); + } + + vPosJoint.z = invertedZMovement ? -vPosJoint.z : vPosJoint.z; + + + if (sensorTransform) + { + vPosJoint = sensorTransform.TransformPoint(vPosJoint); + } + + if (userId != currentUserId) + { + currentUserId = userId; + initialUserOffset = vPosJoint; + } + + Vector3 vPosObject = relToInitialPos ? initialPosition + (vPosJoint - initialUserOffset) : vPosJoint; + + if (debugText) + { + debugText.text = string.Format("{0} - ({1:F2}, {2:F2}, {3:F2})", trackedJoint, + vPosObject.x, vPosObject.y, vPosObject.z); + } + + //if(moveTransform) + { + if (smoothFactor != 0f) + transform.position = Vector3.Lerp(transform.position, vPosObject, smoothFactor * Time.deltaTime); + else + transform.position = vPosObject; + } + } + + } + + } + } + + } +} diff --git a/Assets/Azure/KinectScripts/Samples/JointPositionView.cs.meta b/Assets/Azure/KinectScripts/Samples/JointPositionView.cs.meta new file mode 100644 index 0000000..36d2ebe --- /dev/null +++ b/Assets/Azure/KinectScripts/Samples/JointPositionView.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 16256177fe75ff240a01e30c192f3c7e +timeCreated: 1426428468 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/Samples/JointValuesSaver.cs b/Assets/Azure/KinectScripts/Samples/JointValuesSaver.cs new file mode 100644 index 0000000..1e4a4d5 --- /dev/null +++ b/Assets/Azure/KinectScripts/Samples/JointValuesSaver.cs @@ -0,0 +1,95 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using com.rfilkov.kinect; + + +namespace com.rfilkov.components +{ + public class JointValuesSaver : MonoBehaviour + { + public string fileName = "saved_joints.csv"; + + public KinectInterop.JointType[] joints = + { + KinectInterop.JointType.Pelvis, + KinectInterop.JointType.ShoulderLeft, + KinectInterop.JointType.ShoulderRight, + KinectInterop.JointType.HipLeft, + KinectInterop.JointType.HipRight, + KinectInterop.JointType.KneeLeft, + KinectInterop.JointType.KneeRight, + KinectInterop.JointType.AnkleLeft, + KinectInterop.JointType.AnkleRight, + KinectInterop.JointType.FootLeft, + KinectInterop.JointType.FootRight + }; + + public UnityEngine.UI.Text infoText; + + + private const char delim = ','; + private KinectManager kinectManager; + + // Start is called before the first frame update + void Start() + { + kinectManager = KinectManager.Instance; + + if (System.IO.File.Exists(fileName)) + { + System.IO.File.Delete(fileName); + } + } + + // Update is called once per frame + void Update() + { + if (kinectManager && kinectManager.IsUserDetected(0)) + { + ulong userId = kinectManager.GetUserIdByIndex(0); + System.Text.StringBuilder sbBuf = new System.Text.StringBuilder(); + + // header + if (!System.IO.File.Exists(fileName)) + { + sbBuf.Append("Time"); + foreach (var joint in joints) + { + sbBuf.Append(delim).AppendFormat("{0}-P", joint); + sbBuf.Append(delim).AppendFormat("{0}-R", joint); + } + + sbBuf.AppendLine(); + System.IO.File.AppendAllText(fileName, sbBuf.ToString()); + sbBuf.Clear(); + } + + float curTime = Time.time; + sbBuf.AppendFormat("{0:F3}", curTime); + if (infoText) + infoText.text = "Time: " + curTime; + + foreach (var joint in joints) + { + bool jTracked = kinectManager.IsJointTracked(userId, joint); + Vector3 jPos = kinectManager.GetJointPosition(userId, joint); + Vector3 jRot = kinectManager.GetJointOrientation(userId, joint, true).eulerAngles; + + string sTracked = jTracked ? "1" : "0"; + sbBuf.Append(";").AppendFormat("{0}/({1:F2}|{2:F2}|{3:F2})", sTracked, jPos.x, jPos.y, jPos.z); + + //sbBuf.Append(";").AppendFormat("({0:F0}|{1:F0}|{2:F0})", jRot.x, jRot.y, jRot.z); + sbBuf.Append(";").AppendFormat("{0:F0}", jRot.y); + } + + sbBuf.AppendLine(); + sbBuf = sbBuf.Replace(',', '.').Replace(';', delim); + + System.IO.File.AppendAllText(fileName, sbBuf.ToString()); + sbBuf.Clear(); + } + } + + } +} diff --git a/Assets/Azure/KinectScripts/Samples/JointValuesSaver.cs.meta b/Assets/Azure/KinectScripts/Samples/JointValuesSaver.cs.meta new file mode 100644 index 0000000..182fdbb --- /dev/null +++ b/Assets/Azure/KinectScripts/Samples/JointValuesSaver.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8a21309f5f894f449a2741751e5c04e0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/Samples/KinectEventLogger.cs b/Assets/Azure/KinectScripts/Samples/KinectEventLogger.cs new file mode 100644 index 0000000..c964d14 --- /dev/null +++ b/Assets/Azure/KinectScripts/Samples/KinectEventLogger.cs @@ -0,0 +1,179 @@ +using com.rfilkov.kinect; +using System.Collections; +using System.Collections.Generic; +using System.Text; +using UnityEngine; + + +namespace com.rfilkov.components +{ + /// + /// KinectEventLogger is a simple class, containing log methods for testing KinectEventManager. + /// + public class KinectEventLogger : MonoBehaviour + { + + [Tooltip("RawImage used to display the color image.")] + public UnityEngine.UI.RawImage colorImage; + + [Tooltip("RawImage used to display the depth image.")] + public UnityEngine.UI.RawImage depthImage; + + [Tooltip("RawImage used to display the infrared image.")] + public UnityEngine.UI.RawImage infraredImage; + + [Tooltip("RawImage used to display the body-index image.")] + public UnityEngine.UI.RawImage bodyIndexImage; + + [Tooltip("RawImage used to display the transformed color image.")] + public UnityEngine.UI.RawImage transformedColorImage; + + [Tooltip("RawImage used to display the transformed infrared image.")] + public UnityEngine.UI.RawImage transformedInfraredImage; + + + public void OnDepthSensorsStarted() + { + Debug.Log("OnDepthSensorsStarted"); + } + + public void OnDepthSensorsStopped() + { + Debug.Log("OnDepthSensorsStopped"); + } + + public void OnSensorDisconnect(ulong lastFrameTime) + { + Debug.Log("OnSensorDisconnect at time: " + lastFrameTime); + } + + public void OnNewColorImage(Texture colorTex, ulong lastFrameTime) + { + Debug.Log("OnNewColorImage at time: " + lastFrameTime); + + if(colorImage != null) + { + colorImage.texture = colorTex; + } + } + + public void OnNewDepthFrame(ushort[] depthFrame, int frameWidth, int frameHeight, ulong lastFrameTime) + { + Debug.Log("OnNewDepthFrame at time: " + lastFrameTime + "\n" + GetDataString(depthFrame, frameWidth, frameHeight)); + } + + public void OnNewInfraredFrame(ushort[] infraredFrame, int frameWidth, int frameHeight, ulong lastFrameTime) + { + Debug.Log("OnNewInfraredFrame at time: " + lastFrameTime + "\n" + GetDataString(infraredFrame, frameWidth, frameHeight)); + } + + public void OnNewBodyFrame(KinectInterop.BodyData[] alBodies, uint bodyCount, ulong lastFrameTime) + { + Debug.Log("OnNewBodyFrame at time: " + lastFrameTime + "\nFound" + alBodies.Length + " bodies."); + } + + public void OnNewBodyIndexFrame(byte[] bodyIndexFrame, int frameWidth, int frameHeight, ulong lastFrameTime) + { + Debug.Log("OnNewBodyIndexFrame at time: " + lastFrameTime + "\n" + GetDataString(bodyIndexFrame, frameWidth, frameHeight)); + } + + public void OnNewDepthImage(Texture depthTex, ulong lastFrameTime) + { + Debug.Log("OnNewDepthImage at time: " + lastFrameTime); + + if (depthImage != null) + { + depthImage.texture = depthTex; + } + } + + public void OnNewInfraredImage(Texture infraredTex, ulong lastFrameTime) + { + Debug.Log("OnNewInfraredImage at time: " + lastFrameTime); + + if (infraredImage != null) + { + infraredImage.texture = infraredTex; + } + } + + public void OnNewBodyIndexImage(Texture bodyIndexTex, ulong lastFrameTime) + { + Debug.Log("OnNewBodyIndexImage at time: " + lastFrameTime); + + if (bodyIndexImage != null) + { + bodyIndexImage.texture = bodyIndexTex; + } + } + + public void OnNewDepthCameraColorImage(Texture tcolorTex, ulong lastFrameTime) + { + Debug.Log("OnNewDepthCameraColorImage at time: " + lastFrameTime); + + if (transformedColorImage != null) + { + transformedColorImage.texture = tcolorTex; + } + } + + public void OnNewColorCameraDepthFrame(ushort[] depthFrame, int frameWidth, int frameHeight, ulong lastFrameTime) + { + Debug.Log("OnNewColorCameraDepthFrame at time: " + lastFrameTime + "\n" + GetDataString(depthFrame, frameWidth, frameHeight)); + } + + public void OnNewColorCameraInfraredImage(Texture tinfraredTex, ulong lastFrameTime) + { + Debug.Log("OnNewColorCameraInfraredImage at time: " + lastFrameTime); + + if (transformedInfraredImage != null) + { + transformedInfraredImage.texture = tinfraredTex; + } + } + + public void OnNewColorCameraBodyIndexFrame(byte[] bodyIndexFrame, int frameWidth, int frameHeight, ulong lastFrameTime) + { + Debug.Log("OnNewColorCameraBodyIndexFrame at time: " + lastFrameTime + "\n" + GetDataString(bodyIndexFrame, frameWidth, frameHeight)); + } + + + // returns several data elements as string + private string GetDataString(ushort[] frame, int frameWidth, int frameHeight) + { + StringBuilder sbBuf = new StringBuilder(); + + int p1 = frameHeight / 2 * frameWidth + frameWidth / 2 - 4; + int p2 = p1 + 8; + + sbBuf.Append("..."); + for (int i = p1; i < p2; i++) + { + sbBuf.Append(frame[i]).Append(' '); + } + sbBuf.Append("..."); + + return sbBuf.ToString(); + } + + // returns several data elements as string + private string GetDataString(byte[] frame, int frameWidth, int frameHeight) + { + StringBuilder sbBuf = new StringBuilder(); + + int p1 = frameHeight / 2 * frameWidth + frameWidth / 2 - 4; + int p2 = p1 + 8; + + sbBuf.Append("..."); + for (int i = p1; i < p2; i++) + { + sbBuf.Append(frame[i]).Append(' '); + } + sbBuf.Append("..."); + + return sbBuf.ToString(); + } + + } +} + diff --git a/Assets/Azure/KinectScripts/Samples/KinectEventLogger.cs.meta b/Assets/Azure/KinectScripts/Samples/KinectEventLogger.cs.meta new file mode 100644 index 0000000..b76a8b1 --- /dev/null +++ b/Assets/Azure/KinectScripts/Samples/KinectEventLogger.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 142850a2ab857564dbd55ab138d43ce8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/Samples/MouseCameraOrbit.cs b/Assets/Azure/KinectScripts/Samples/MouseCameraOrbit.cs new file mode 100644 index 0000000..63bafb2 --- /dev/null +++ b/Assets/Azure/KinectScripts/Samples/MouseCameraOrbit.cs @@ -0,0 +1,79 @@ +using UnityEngine; +using System.Collections; + +namespace com.rfilkov.components +{ + public class MouseCameraOrbit : MonoBehaviour + { + public Vector3 centerPos; + public float distance = 5.0f; + public float xSpeed = 120.0f; + public float ySpeed = 120.0f; + + public float yMinLimit = -20f; + public float yMaxLimit = 80f; + + public float distanceMin = .5f; + public float distanceMax = 15f; + + float x = 0.0f; + float y = 0.0f; + + + void Start() + { + Vector3 angles = transform.eulerAngles; + x = angles.y; + y = angles.x; + } + + + //public void SetTransformRotation(Quaternion transformRot) + //{ + // transform.rotation = transformRot; + + // Vector3 angles = transformRot.eulerAngles; + // x = angles.y; + // y = angles.x; + //} + + + void LateUpdate() + { + // check for Alt + mouse button + if (Input.GetMouseButton(0) && (Input.GetKey(KeyCode.LeftAlt) || Input.GetKey(KeyCode.RightAlt))) + { + x += Input.GetAxis("Mouse X") * xSpeed * distance * 0.02f; + y -= Input.GetAxis("Mouse Y") * ySpeed * 0.02f; + + y = ClampAngle(y, yMinLimit, yMaxLimit); + + Quaternion rotation = Quaternion.Euler(y, x, 0); + + //distance = Mathf.Clamp(distance - Input.GetAxis("Mouse ScrollWheel") * 5, distanceMin, distanceMax); + + //RaycastHit hit; + //if (Physics.Linecast(centerPos, transform.position, out hit)) + //{ + // distance -= hit.distance; + //} + + Vector3 negDistance = new Vector3(0.0f, 0.0f, -distance); + Vector3 position = rotation * negDistance + centerPos; + + transform.rotation = rotation; + transform.position = position; + } + } + + public static float ClampAngle(float angle, float min, float max) + { + if (angle < -360F) + angle += 360F; + if (angle > 360F) + angle -= 360F; + + return Mathf.Clamp(angle, min, max); + } + } +} diff --git a/Assets/Azure/KinectScripts/Samples/MouseCameraOrbit.cs.meta b/Assets/Azure/KinectScripts/Samples/MouseCameraOrbit.cs.meta new file mode 100644 index 0000000..9c46867 --- /dev/null +++ b/Assets/Azure/KinectScripts/Samples/MouseCameraOrbit.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: dad37145084481e47b0f45e9e18175d7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/Samples/PlayMultipleRecordings.cs b/Assets/Azure/KinectScripts/Samples/PlayMultipleRecordings.cs new file mode 100644 index 0000000..4a66eef --- /dev/null +++ b/Assets/Azure/KinectScripts/Samples/PlayMultipleRecordings.cs @@ -0,0 +1,113 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using com.rfilkov.kinect; + +namespace com.rfilkov.components +{ + /// + /// This component tries to play back multiple recording files, if applicable. + /// + public class PlayMultipleRecordings : MonoBehaviour + { + [Tooltip("Depth sensor index - 0 is the 1st one, 1 - the 2nd one, etc.")] + public int sensorIndex = 0; + + [Tooltip("List of full paths to recording files that need to be played back.")] + public string[] recordingFiles = new string[0]; + + + // references to KM & sensor data + private KinectManager kinectManager = null; + private DepthSensorBase sensorInterface = null; + + private int recFileIndex = -1; + private ulong lastDepthFrameTime = 0; + private float lastUnityTime = 0f; + private bool isGoToNextRec = false; + + + void Update() + { + // find the KinectManager-component in the scene + if(kinectManager == null) + { + kinectManager = FindObjectOfType(); + + if(kinectManager == null) + { + Debug.LogError("Can't find the KinectManager-component! Please check your scene setup."); + } + } + + // find the sensor-interface component in the scene + if(sensorInterface == null) + { + DepthSensorBase[] sensorInterfaces = FindObjectsOfType(); + + for(int i = 0; i < sensorInterfaces.Length; i++) + { + if(sensorInterfaces[i].deviceStreamingMode != KinectInterop.DeviceStreamingMode.Disabled) + { + sensorInterface = sensorInterfaces[i]; + } + } + + if (sensorInterface == null) + { + Debug.LogError("Can't find any active sensor interface component! Please check your scene setup."); + } + } + + if (kinectManager && sensorInterface && recordingFiles.Length > 0) + { + // update the recording file if needed + if(isGoToNextRec || recFileIndex < 0) + { + // stop depth sensor + if (kinectManager.IsInitialized()) + { + Debug.Log("Stopping depth sensors..."); + kinectManager.StopDepthSensors(); + } + + // change the recording file + recFileIndex = (recFileIndex + 1) % recordingFiles.Length; + string recordingFile = recordingFiles[recFileIndex]; + + sensorInterface.deviceStreamingMode = KinectInterop.DeviceStreamingMode.PlayRecording; + sensorInterface.recordingFile = recordingFile; + Debug.Log("Setting new playback file: " + recordingFile); + + if(kinectManager && kinectManager.statusInfoText) + { + kinectManager.statusInfoText.text = string.Empty; + } + + // restart depth sensor + Debug.Log("Restarting depth sensors..."); + kinectManager.StartDepthSensors(); + + lastUnityTime = Time.time; + isGoToNextRec = false; + } + + if(lastDepthFrameTime != kinectManager.GetDepthFrameTime(sensorIndex)) + { + lastDepthFrameTime = kinectManager.GetDepthFrameTime(sensorIndex); + lastUnityTime = Time.time; + } + else + { + if((Time.time - lastUnityTime) >= 3f) // no depth data for 3 seconds + { + Debug.Log("Timed out. Switch to the next recording."); + isGoToNextRec = true; + } + } + + } + } + + } +} diff --git a/Assets/Azure/KinectScripts/Samples/PlayMultipleRecordings.cs.meta b/Assets/Azure/KinectScripts/Samples/PlayMultipleRecordings.cs.meta new file mode 100644 index 0000000..12a72de --- /dev/null +++ b/Assets/Azure/KinectScripts/Samples/PlayMultipleRecordings.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 78bb7a5c0a7f7974ba99407a6ee2f33b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/Samples/RawDataTexture.cs b/Assets/Azure/KinectScripts/Samples/RawDataTexture.cs new file mode 100644 index 0000000..171a29e --- /dev/null +++ b/Assets/Azure/KinectScripts/Samples/RawDataTexture.cs @@ -0,0 +1,100 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; +using com.rfilkov.kinect; +using System; + +namespace com.rfilkov.components +{ + public class RawDataTexture : MonoBehaviour + { + [Tooltip("Depth sensor index - 0 is the 1st one, 1 - the 2nd one, etc.")] + public int sensorIndex = 0; + + [Tooltip("RawImage used to display the raw data texture.")] + public RawImage rawImage; + + [Tooltip("Image value factor.")] + public ushort valueFactor = 100; + + + // references + private KinectManager kinectManager = null; + private KinectInterop.SensorData sensorData = null; + + private ushort[] rawImageData = null; + private byte[] rawImageDataBytes = null; + private ulong lastFrameTime = 0; + + + void Start() + { + kinectManager = KinectManager.Instance; + + if (kinectManager && kinectManager.IsInitialized()) + { + sensorData = kinectManager.GetSensorData(sensorIndex); + } + + if (rawImage == null) + { + rawImage = GetComponent(); + } + } + + + void Update() + { + if (rawImage != null && sensorData != null && kinectManager != null && kinectManager.IsInitialized()) + { + ushort[] rawData = sensorData.depthImage; // sensorData.infraredImage; // + ulong rawDataTime = sensorData.lastDepthFrameTime; // sensorData.lastInfraredFrameTime; // + + if (rawData != null && lastFrameTime != rawDataTime) + { + // Create texture. + if (rawImage.texture == null) + { + int width = sensorData.depthImageWidth; + int height = sensorData.depthImageHeight; + int pixelCount = width * height; + + rawImage.texture = new Texture2D(width, height, TextureFormat.R16, false); + rawImage.texture.wrapMode = TextureWrapMode.Clamp; + rawImage.texture.filterMode = FilterMode.Point; + rawImage.texture.name = "KinectDepth"; + + rawImageData = new ushort[pixelCount]; + rawImageDataBytes = new byte[pixelCount * sizeof(ushort)]; + + rawImage.rectTransform.localScale = kinectManager.GetColorImageScale(sensorIndex); + rawImage.color = Color.white; + } + + if (rawImageDataBytes != null) + { + for (int i = 0; i < rawData.Length; i++) + { + rawImageData[i] = (ushort)(rawData[i] * valueFactor); + } + + // ushort[] to byte[]. + // https://stackoverflow.com/questions/37213819/convert-ushort-into-byte-and-back + Buffer.BlockCopy(rawImageData, 0, rawImageDataBytes, 0, rawImageDataBytes.Length); + + // Load into texture. + ((Texture2D)rawImage.texture).LoadRawTextureData(rawImageDataBytes); + ((Texture2D)rawImage.texture).Apply(); + + Debug.Log("lastFrameTime: " + rawDataTime); + } + + lastFrameTime = rawDataTime; + } + + } + } + + } +} diff --git a/Assets/Azure/KinectScripts/Samples/RawDataTexture.cs.meta b/Assets/Azure/KinectScripts/Samples/RawDataTexture.cs.meta new file mode 100644 index 0000000..20d5495 --- /dev/null +++ b/Assets/Azure/KinectScripts/Samples/RawDataTexture.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 554bf9cc74a51b647a32ab21493665df +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/Samples/ScenePointCoordinates.cs b/Assets/Azure/KinectScripts/Samples/ScenePointCoordinates.cs new file mode 100644 index 0000000..8b69ddf --- /dev/null +++ b/Assets/Azure/KinectScripts/Samples/ScenePointCoordinates.cs @@ -0,0 +1,72 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using com.rfilkov.kinect; + + +namespace com.rfilkov.components +{ + /// + /// ScenePointCoordinates demonstrates how to get the scene point cloud coordinates as an array of Vector3 + /// + public class ScenePointCoordinates : MonoBehaviour + { + [Tooltip("Depth sensor index - 0 is the 1st one, 1 - the 2nd one, etc.")] + public int sensorIndex = 0; + + [Tooltip("Timestamp of the last update.")] + public ulong lastUpdateTime = 0; + + // The point cloud coordinates + [HideInInspector] + public Vector3[] pointCloud = null; + + // reference to the KinectManager & sensor data + private KinectManager kinectManager = null; + private KinectInterop.SensorData sensorData = null; + + // space table + private Vector3[] spaceTable = null; + + + void Start() + { + kinectManager = KinectManager.Instance; + sensorData = kinectManager != null ? kinectManager.GetSensorData(sensorIndex) : null; + } + + void Update() + { + if (sensorData == null || sensorData.sensorInterface == null) // check if the sensor was initialized + return; + if (sensorData.depthImageWidth == 0 || sensorData.depthImageHeight == 0) // check if the depth stream was started + return; + + // init or reinit the output array and the space table, as needed + int numPoints = sensorData.depthImageWidth * sensorData.depthImageHeight; + if (pointCloud == null || pointCloud.Length != numPoints) + { + pointCloud = new Vector3[numPoints]; + spaceTable = sensorData.sensorInterface.GetDepthCameraSpaceTable(sensorData); + } + + // calculate the point cloud coordinates. this block is slow, but easily readable (I think it can be further optimized, if needed) + if(spaceTable != null && sensorData.depthImage != null && lastUpdateTime != sensorData.lastDepthFrameTime) + { + lastUpdateTime = sensorData.lastDepthFrameTime; + + for(int i = 0; i < numPoints; i++) + { + float fDepth = (float)sensorData.depthImage[i] / 1000f; + pointCloud[i] = spaceTable[i] * fDepth; + } + + // show a sample at the center of the image. feel free to comment it out + int iC = (sensorData.depthImageHeight >> 1) * sensorData.depthImageWidth + (sensorData.depthImageWidth >> 1); + Debug.Log(string.Format("center values: {0:F2} {1:F2} {2:F2}", pointCloud[iC - 1], pointCloud[iC], pointCloud[iC + 1])); + } + + } + + } +} diff --git a/Assets/Azure/KinectScripts/Samples/ScenePointCoordinates.cs.meta b/Assets/Azure/KinectScripts/Samples/ScenePointCoordinates.cs.meta new file mode 100644 index 0000000..1b0457b --- /dev/null +++ b/Assets/Azure/KinectScripts/Samples/ScenePointCoordinates.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a73b32381ea94614ebd412e74f54d845 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/Samples/SensorSkeletonView.cs b/Assets/Azure/KinectScripts/Samples/SensorSkeletonView.cs new file mode 100644 index 0000000..561ad6b --- /dev/null +++ b/Assets/Azure/KinectScripts/Samples/SensorSkeletonView.cs @@ -0,0 +1,247 @@ +using UnityEngine; +using System.Collections; +using com.rfilkov.kinect; + + +namespace com.rfilkov.components +{ + /// + /// SensorSkeletonOverlayer displays the the body joints and bones, as detected by a specific sensor, with spheres and lines. + /// + public class SensorSkeletonView : MonoBehaviour + { + [Tooltip("Depth sensor index - 0 is the 1st one, 1 - the 2nd one, etc.")] + public int sensorIndex = 0; + + [Tooltip("Index of the body, tracked by the sensor.")] + public int bodyIndex = 0; + + [Tooltip("Game object used to overlay the joints.")] + public GameObject jointPrefab; + + [Tooltip("Line object used to overlay the bones.")] + public LineRenderer linePrefab; + //public float smoothFactor = 10f; + + [Tooltip("Camera that will be used to overlay the 3D-objects over the background.")] + public Camera foregroundCamera; + + [Tooltip("Scene object that will be used to represent the sensor's position and rotation in the scene.")] + public Transform sensorTransform; + + [Tooltip("Color of the skeleton bones.")] + public Color skeletonColor = Color.blue; + + //public UnityEngine.UI.Text debugText; + + private GameObject[] joints = null; + private LineRenderer[] lines = null; + + // initial body rotation + private Quaternion initialRotation = Quaternion.identity; + + // reference to KM + private KinectManager kinectManager = null; + + // background rectangle + private Rect backgroundRect = Rect.zero; + + + void Start() + { + kinectManager = KinectManager.Instance; + + if (kinectManager && kinectManager.IsInitialized()) + { + } + + // always mirrored + initialRotation = Quaternion.Euler(new Vector3(0f, 180f, 0f)); + + //if (!foregroundCamera) + //{ + // // by default - the main camera + // foregroundCamera = Camera.main; + //} + } + + void Update() + { + if (kinectManager && kinectManager.IsInitialized()) + { + if(foregroundCamera) + { + // get the background rectangle (use the portrait background, if available) + backgroundRect = foregroundCamera.pixelRect; + PortraitBackground portraitBack = PortraitBackground.Instance; + + if (portraitBack && portraitBack.enabled) + { + backgroundRect = portraitBack.GetBackgroundRect(); + } + } + + // overlay all joints in the skeleton + if (kinectManager.IsSensorBodyDetected(sensorIndex, bodyIndex)) + { + int jointsCount = kinectManager.GetJointCount(); + + if (joints == null && jointPrefab != null) + { + // array holding the skeleton joints + joints = new GameObject[jointsCount]; + + for (int i = 0; i < joints.Length; i++) + { + joints[i] = Instantiate(jointPrefab) as GameObject; + joints[i].transform.parent = transform; + joints[i].name = ((KinectInterop.JointType)i).ToString(); + joints[i].SetActive(false); + + Renderer renderer = joints[i].GetComponent(); + if (renderer != null) + { + renderer.material.color = skeletonColor; + } + } + } + + if (lines == null) + { + // array holding the skeleton lines + lines = new LineRenderer[jointsCount]; + } + + for (int i = 0; i < jointsCount; i++) + { + int joint = i; + + if (kinectManager.IsSensorJointTracked(sensorIndex, bodyIndex, joint)) + { + Vector3 posJoint = GetJointPosition(joint); + if (sensorTransform) + { + posJoint = sensorTransform.TransformPoint(posJoint); + } + + if (joints != null) + { + // overlay the joint + if (posJoint != Vector3.zero) + { + joints[i].SetActive(true); + joints[i].transform.position = posJoint; + + Quaternion rotJoint = kinectManager.GetSensorJointOrientation(sensorIndex, bodyIndex, joint, false); + rotJoint = initialRotation * rotJoint; + joints[i].transform.rotation = rotJoint; + + //if (i == (int)KinectInterop.JointType.WristLeft) + //{ + // Debug.Log(string.Format("SSO {0:F3} {1} user: {2}, state: {3}\npos: {4}, rot: {5}", Time.time, (KinectInterop.JointType)i, + // playerIndex, kinectManager.GetSensorJointTrackingState(sensorIndex, playerIndex, joint), + // kinectManager.GetSensorJointPosition(sensorIndex, playerIndex, joint), + // kinectManager.GetSensorJointOrientation(sensorIndex, playerIndex, joint, false).eulerAngles)); + //} + } + else + { + joints[i].SetActive(false); + } + } + + if (lines[i] == null && linePrefab != null) + { + lines[i] = Instantiate(linePrefab) as LineRenderer; + lines[i].transform.parent = transform; + lines[i].gameObject.SetActive(false); + + lines[i].startColor = skeletonColor; + lines[i].endColor = skeletonColor; + } + + if (lines[i] != null) + { + // overlay the line to the parent joint + int jointParent = (int)kinectManager.GetParentJoint((KinectInterop.JointType)joint); + Vector3 posParent = GetJointPosition(jointParent); + + if (sensorTransform) + { + posParent = sensorTransform.TransformPoint(posParent); + } + + if (posJoint != Vector3.zero && posParent != Vector3.zero) + { + lines[i].gameObject.SetActive(true); + + //lines[i].SetVertexCount(2); + lines[i].SetPosition(0, posParent); + lines[i].SetPosition(1, posJoint); + } + else + { + lines[i].gameObject.SetActive(false); + } + } + } + else + { + if (joints != null && joints[i] != null) + { + joints[i].SetActive(false); + } + + if (lines != null && lines[i] != null) + { + lines[i].gameObject.SetActive(false); + } + } + } + + } + else + { + // disable the skeleton + int jointsCount = kinectManager.GetJointCount(); + + for (int i = 0; i < jointsCount; i++) + { + if (joints != null && joints[i] != null) + { + joints[i].SetActive(false); + } + + if (lines != null && lines[i] != null) + { + lines[i].gameObject.SetActive(false); + } + } + } + } + } + + // returns body joint position + private Vector3 GetJointPosition(int joint) + { + Vector3 posJoint = Vector3.zero; + + if (foregroundCamera) + { + Vector3 posJointKinect = kinectManager.GetSensorJointKinectPosition(sensorIndex, bodyIndex, joint, false); + posJoint = kinectManager.GetJointPosColorOverlay(posJointKinect, sensorIndex, foregroundCamera, backgroundRect); + } + else if (sensorTransform) + { + posJoint = kinectManager.GetSensorJointKinectPosition(sensorIndex, bodyIndex, joint, true); + } + else + { + posJoint = kinectManager.GetSensorJointPosition(sensorIndex, bodyIndex, joint); + } + + return posJoint; + } + + } +} diff --git a/Assets/Azure/KinectScripts/Samples/SensorSkeletonView.cs.meta b/Assets/Azure/KinectScripts/Samples/SensorSkeletonView.cs.meta new file mode 100644 index 0000000..3f6097f --- /dev/null +++ b/Assets/Azure/KinectScripts/Samples/SensorSkeletonView.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 75d2161a5aa63bd44944e4830dfd16ce +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Azure/KinectScripts/Samples/SimpleGestureListener.cs b/Assets/Azure/KinectScripts/Samples/SimpleGestureListener.cs new file mode 100644 index 0000000..f462668 --- /dev/null +++ b/Assets/Azure/KinectScripts/Samples/SimpleGestureListener.cs @@ -0,0 +1,174 @@ +using UnityEngine; +using System.Collections; +using System.Collections.Generic; +using System; +using com.rfilkov.kinect; + + +namespace com.rfilkov.components +{ + /// + /// Simple gesture listener that only displays the status and progress of the given gestures. + /// + public class SimpleGestureListener : MonoBehaviour, GestureListenerInterface + { + [Tooltip("Index of the player, tracked by this component. 0 means the 1st player, 1 - the 2nd one, 2 - the 3rd one, etc.")] + public int playerIndex = 0; + + [Tooltip("List of the gestures to detect.")] + public List detectGestures = new List(); + + [Tooltip("UI-Text to display the gesture-listener output.")] + public UnityEngine.UI.Text gestureInfo; + + // private bool to track if progress message has been displayed + private bool progressDisplayed; + private float progressGestureTime; + + + // invoked when a new user is detected + public void UserDetected(ulong userId, int userIndex) + { + if (userIndex == playerIndex) + { + // as an example - detect these user specific gestures + KinectGestureManager gestureManager = KinectManager.Instance.gestureManager; + + foreach(GestureType gesture in detectGestures) + { + gestureManager.DetectGesture(userId, gesture); + } + } + + if (gestureInfo != null) + { + //gestureInfo.text = "Please do the gestures and look for the gesture detection state."; + } + } + + + // invoked when the user is lost + public void UserLost(ulong userId, int userIndex) + { + if (userIndex != playerIndex) + return; + + if (gestureInfo != null) + { + gestureInfo.text = string.Empty; + } + } + + + // invoked to report gesture progress. important for the continuous gestures, because they never complete. + public void GestureInProgress(ulong userId, int userIndex, GestureType gesture, + float progress, KinectInterop.JointType joint, Vector3 screenPos) + { + if (userIndex != playerIndex) + return; + + // check for continuous gestures + switch(gesture) + { + case GestureType.ZoomOut: + case GestureType.ZoomIn: + if (progress > 0.5f && gestureInfo != null) + { + string sGestureText = string.Format("{0} - {1:F0}%", gesture, screenPos.z * 100f); + gestureInfo.text = sGestureText; + + progressDisplayed = true; + progressGestureTime = Time.realtimeSinceStartup; + } + break; + + case GestureType.Wheel: + case GestureType.LeanLeft: + case GestureType.LeanRight: + case GestureType.LeanForward: + case GestureType.LeanBack: + if (progress > 0.5f && gestureInfo != null) + { + string sGestureText = string.Format("{0} - {1:F0} degrees", gesture, screenPos.z); + gestureInfo.text = sGestureText; + + progressDisplayed = true; + progressGestureTime = Time.realtimeSinceStartup; + } + break; + + case GestureType.Run: + if (progress > 0.5f && gestureInfo != null) + { + string sGestureText = string.Format("{0} - progress: {1:F0}%", gesture, progress * 100); + gestureInfo.text = sGestureText; + + progressDisplayed = true; + progressGestureTime = Time.realtimeSinceStartup; + } + break; + } + } + + + // invoked when a (discrete) gesture is complete. + public bool GestureCompleted(ulong userId, int userIndex, GestureType gesture, + KinectInterop.JointType joint, Vector3 screenPos) + { + if (userIndex != playerIndex) + return false; + + if (progressDisplayed) + return true; + + string sGestureText = gesture + " detected"; + Debug.Log(sGestureText); + + if (gestureInfo != null) + { + gestureInfo.text = sGestureText; + } + + return true; + } + + + // invoked when a gesture gets cancelled by the user + public bool GestureCancelled(ulong userId, int userIndex, GestureType gesture, + KinectInterop.JointType joint) + { + if (userIndex != playerIndex) + return false; + + if (progressDisplayed) + { + progressDisplayed = false; + + if (gestureInfo != null) + { + gestureInfo.text = String.Empty; + } + } + + return true; + } + + + public void Update() + { + // checks for timed out progress message + if (progressDisplayed && ((Time.realtimeSinceStartup - progressGestureTime) > 2f)) + { + progressDisplayed = false; + + if (gestureInfo != null) + { + gestureInfo.text = String.Empty; + } + + Debug.Log("Forced progress to end."); + } + } + + } +} diff --git a/Assets/Azure/KinectScripts/Samples/SimpleGestureListener.cs.meta b/Assets/Azure/KinectScripts/Samples/SimpleGestureListener.cs.meta new file mode 100644 index 0000000..d8c0e22 --- /dev/null +++ b/Assets/Azure/KinectScripts/Samples/SimpleGestureListener.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 71efa4381866a5a4a8e2eb39849873bc +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Azure/KinectScripts/Samples/StartStopDepthSensors.cs b/Assets/Azure/KinectScripts/Samples/StartStopDepthSensors.cs new file mode 100644 index 0000000..0d0fcb6 --- /dev/null +++ b/Assets/Azure/KinectScripts/Samples/StartStopDepthSensors.cs @@ -0,0 +1,64 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using com.rfilkov.kinect; + +namespace com.rfilkov.components +{ + /// + /// This component tries to stop and restart the camera(s) after some time. + /// + public class StartStopDepthSensors : MonoBehaviour + { + [Tooltip("Stop depth sensors after this amount of seconds.")] + public float stopAfterSeconds = 10f; + + [Tooltip("Restart depth sensors after this amount of seconds.")] + public float restartAfterSeconds = 5f; + + + // references to KM & sensor data + private KinectManager kinectManager = null; + + + void Start() + { + // look for the KinectManager-component in the scene + kinectManager = FindObjectOfType(); + + if (kinectManager != null) + { + StartCoroutine(StopAndRestartSensors()); + } + else + { + Debug.LogError("Can't find the KinectManager-component! Please check your scene setup."); + } + + } + + + // stops and then restarts the depth sensors + private IEnumerator StopAndRestartSensors() + { + while(true) + { + // wait for seconds before stop + Debug.Log("Waiting for " + stopAfterSeconds + " seconds..."); + yield return new WaitForSeconds(stopAfterSeconds); + + Debug.Log("Stopping depth sensors..."); + kinectManager.StopDepthSensors(); + + // wait for seconds before restart + Debug.Log("Waiting for " + restartAfterSeconds + " seconds..."); + yield return new WaitForSeconds(restartAfterSeconds); + + // restart depth sensor + Debug.Log("Restarting depth sensors..."); + kinectManager.StartDepthSensors(); + } + } + + } +} diff --git a/Assets/Azure/KinectScripts/Samples/StartStopDepthSensors.cs.meta b/Assets/Azure/KinectScripts/Samples/StartStopDepthSensors.cs.meta new file mode 100644 index 0000000..d82e95c --- /dev/null +++ b/Assets/Azure/KinectScripts/Samples/StartStopDepthSensors.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 75b55292fb5c8ec45b3da6e459f490ca +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/SceneBlendRenderer.cs b/Assets/Azure/KinectScripts/SceneBlendRenderer.cs new file mode 100644 index 0000000..492a5f2 --- /dev/null +++ b/Assets/Azure/KinectScripts/SceneBlendRenderer.cs @@ -0,0 +1,283 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using com.rfilkov.kinect; + + +namespace com.rfilkov.components +{ + /// + /// SceneBlendRenderer provides volumetric rendering and lighting of the real environment, as seen by the sensor's color camera. + /// + public class SceneBlendRenderer : MonoBehaviour + { + [Tooltip("Added depth distance between the real environment and the virtual environment, in meters.")] + [Range(-0.5f, 0.5f)] + public float depthDistance = 0.1f; + + [Tooltip("Index of the depth sensor that generates the color camera background. 0 is the 1st one, 1 - the 2nd one, etc.")] + public int sensorIndex = 0; + + [Tooltip("Depth value in meters, used for invalid depth points.")] + public float invalidDepthValue = 5f; + + [Tooltip("Whether to maximize the rendered object on the screen, or not.")] + private bool maximizeOnScreen = true; + + [Tooltip("Whether to apply per-pixel lighting on the foreground, or not.")] + public bool applyLighting = false; + + [Tooltip("Camera used to scale the mesh, to fill the camera's background. If left empty, it will default to the main camera in the scene.")] + public Camera foregroundCamera; + + [Tooltip("Background image (if any) that needs to be overlayed by this blend renderer.")] + public UnityEngine.UI.RawImage backgroundImage; + + [Tooltip("Reference to a background removal manager, if one is available in the scene.")] + public BackgroundRemovalManager backgroundRemovalManager = null; + + + // references to KM and data + private KinectManager kinectManager = null; + private KinectInterop.SensorData sensorData = null; + private Material matRenderer = null; + + // depth image buffer (in depth camera resolution) + private ComputeBuffer depthImageBuffer = null; + + // textures + private Texture alphaTex = null; + private Texture colorTex = null; + + // lighting + private FragmentLighting lighting = new FragmentLighting(); + + // saved screen width & height + private int lastScreenW = 0; + private int lastScreenH = 0; + private int lastColorW = 0; + private int lastColorH = 0; + private float lastAnchorPos = 0f; + private Vector3 initialScale = Vector3.one; + + // distances + private float distToBackImage = 0f; + private float distToTransform = 0f; + + + void Start() + { + kinectManager = KinectManager.Instance; + initialScale = transform.localScale; + + // get distance to back image + if (backgroundImage) + { + Canvas canvas = backgroundImage.canvas; + + if (canvas.renderMode == RenderMode.ScreenSpaceCamera) + distToBackImage = canvas.planeDistance; + else + distToBackImage = 0f; + } + + // get distance to transform + distToTransform = transform.localPosition.z; + + // set renderer material + Renderer meshRenderer = GetComponent(); + if (meshRenderer) + { + Shader blendShader = Shader.Find("Kinect/ForegroundBlendShader"); + if (blendShader != null) + { + matRenderer = new Material(blendShader); + meshRenderer.material = matRenderer; + } + } + + // get sensor data + if (kinectManager && kinectManager.IsInitialized()) + { + sensorData = kinectManager.GetSensorData(sensorIndex); + } + + if(foregroundCamera == null) + { + foregroundCamera = Camera.main; + } + + // find scene lights + Light[] sceneLights = GameObject.FindObjectsOfType(); + lighting.SetLightsAndBounds(sceneLights, transform.position, new Vector3(20f, 20f, 20f)); + } + + + void OnDestroy() + { + if (sensorData != null && sensorData.colorDepthBuffer != null) + { + sensorData.colorDepthBuffer.Release(); + sensorData.colorDepthBuffer = null; + } + + if (depthImageBuffer != null) + { + //depthImageCopy = null; + + depthImageBuffer.Release(); + depthImageBuffer = null; + } + + // release lighting resources + lighting.ReleaseResources(); + } + + + void Update() + { + if (matRenderer == null || sensorData == null) + return; + + if(alphaTex == null || alphaTex.width != sensorData.colorImageWidth || alphaTex.height != sensorData.colorImageHeight) + { + // alpha texture + alphaTex = backgroundRemovalManager != null ? backgroundRemovalManager.GetAlphaTex() : null; + + if (alphaTex != null) + { + matRenderer.SetTexture("_AlphaTex", alphaTex); + } + } + + if(colorTex == null || colorTex.width != sensorData.colorImageWidth || colorTex.height != sensorData.colorImageHeight) + { + // color texture + colorTex = sensorData.colorImageTexture; + if(backgroundRemovalManager != null) + { + colorTex = !backgroundRemovalManager.computeAlphaMaskOnly ? backgroundRemovalManager.GetForegroundTex() : alphaTex; + } + + if (colorTex != null) + { + matRenderer.SetInt("_TexResX", colorTex.width); + matRenderer.SetInt("_TexResY", colorTex.height); + + matRenderer.SetTexture("_ColorTex", colorTex); + } + } + + if (colorTex == null) + return; + + int bufferLength = sensorData.colorImageWidth * sensorData.colorImageHeight / 2; + if (sensorData.colorDepthBuffer == null || sensorData.colorDepthBuffer.count != bufferLength) + { + sensorData.colorDepthBuffer = new ComputeBuffer(bufferLength, sizeof(uint)); + matRenderer.SetBuffer("_DepthMap", sensorData.colorDepthBuffer); + //Debug.Log("Created colorDepthBuffer with len: " + bufferLength); + } + + matRenderer.SetFloat("_DepthDistance", depthDistance); + matRenderer.SetFloat("_InvDepthVal", invalidDepthValue); + + int curScreenW = foregroundCamera ? foregroundCamera.pixelWidth : Screen.width; + int curScreenH = foregroundCamera ? foregroundCamera.pixelHeight : Screen.height; + if (lastScreenW != curScreenW || lastScreenH != curScreenH || lastColorW != sensorData.colorImageWidth || lastColorH != sensorData.colorImageHeight) + { + ScaleRendererTransform(curScreenW, curScreenH); + } + + Vector2 anchorPos = backgroundImage ? backgroundImage.rectTransform.anchoredPosition : Vector2.zero; + float curAnchorPos = anchorPos.x + anchorPos.y; // Mathf.Abs(anchorPos.x) + Mathf.Abs(anchorPos.y); + if (Mathf.Abs(curAnchorPos - lastAnchorPos) >= 20f) + { + //Debug.Log("anchorPos: " + anchorPos + ", curAnchorPos: " + curAnchorPos + ", lastAnchorPos: " + lastAnchorPos + ", diff: " + Mathf.Abs(curAnchorPos - lastAnchorPos)); + CenterRendererTransform(anchorPos, curAnchorPos); + } + + // update lighting parameters + lighting.UpdateLighting(matRenderer, applyLighting); + } + + // scales the renderer's transform properly + private void ScaleRendererTransform(int curScreenW, int curScreenH) + { + lastScreenW = curScreenW; + lastScreenH = curScreenH; + lastColorW = sensorData.colorImageWidth; + lastColorH = sensorData.colorImageHeight; + + Vector3 localScale = transform.localScale; + + if (maximizeOnScreen && foregroundCamera) + { + float objectZ = distToTransform; // transform.localPosition.z; // the transform should be a child of the camera + float screenW = foregroundCamera.pixelWidth; + float screenH = foregroundCamera.pixelHeight; + + if (backgroundImage) + { + PortraitBackground portraitBack = backgroundImage.gameObject.GetComponent(); + + if (portraitBack != null) + { + Rect backRect = portraitBack.GetBackgroundRect(); + screenW = backRect.width; + screenH = backRect.height; + } + } + + Vector3 vLeft = foregroundCamera.ScreenToWorldPoint(new Vector3(0f, screenH / 2f, objectZ)); + Vector3 vRight = foregroundCamera.ScreenToWorldPoint(new Vector3(screenW, screenH / 2f, objectZ)); + float distLeftRight = (vRight - vLeft).magnitude; + + Vector3 vBottom = foregroundCamera.ScreenToWorldPoint(new Vector3(screenW / 2f, 0f, objectZ)); + Vector3 vTop = foregroundCamera.ScreenToWorldPoint(new Vector3(screenW / 2f, screenH, objectZ)); + float distBottomTop = (vTop - vBottom).magnitude; + + localScale.x = distLeftRight / initialScale.x; + localScale.y = distBottomTop / initialScale.y; + //Debug.Log("SceneRenderer scale: " + localScale + ", screenW: " + screenW + ", screenH: " + screenH + ", objZ: " + objectZ + + // "\nleft: " + vLeft + ", right: " + vRight + ", bottom: " + vBottom + ", vTop: " + vTop + + // "\ndH: " + distLeftRight + ", dV: " + distBottomTop + ", initialScale: " + initialScale); + } + + // scale according to color-tex resolution + //localScale.y = localScale.x * colorTex.height / colorTex.width; + + // apply color image scale + Vector3 colorImageScale = kinectManager.GetColorImageScale(sensorIndex); + if (colorImageScale.x < 0f) + localScale.x = -localScale.x; + if (colorImageScale.y < 0f) + localScale.y = -localScale.y; + + transform.localScale = localScale; + } + + // centers the renderer's transform, according to the background image + private void CenterRendererTransform(Vector2 anchorPos, float curAnchorPos) + { + lastAnchorPos = curAnchorPos; + + if (foregroundCamera && distToBackImage > 0f) + { + float objectZ = distToTransform; // transform.localPosition.z; // the transform should be a child of the camera + float screenW = sensorData.colorImageWidth; // foregroundCamera.pixelWidth; + float screenH = sensorData.colorImageHeight; // foregroundCamera.pixelHeight; + + Vector2 screenCenter = new Vector2(screenW / 2f, screenH / 2f); + Vector2 anchorScaled = new Vector2(anchorPos.x * distToTransform / distToBackImage, anchorPos.y * distToTransform / distToBackImage); + Vector3 vCenter = foregroundCamera.ScreenToWorldPoint(new Vector3(screenCenter.x + anchorScaled.x, screenCenter.y + anchorScaled.y, objectZ)); + transform.position = vCenter; + + //Vector3 vLocalPos = transform.localPosition; + //string sLocalPos = string.Format("({0:F3}, {1:F3}, {2:F3})", vLocalPos.x, vLocalPos.y, vLocalPos.z); + //Debug.Log("SceneRenderer anchor: " + anchorPos + ", screenW: " + screenW + ", screenH: " + screenH + ", objZ: " + objectZ + ", localPos: " + sLocalPos); + } + } + + } +} diff --git a/Assets/Azure/KinectScripts/SceneBlendRenderer.cs.meta b/Assets/Azure/KinectScripts/SceneBlendRenderer.cs.meta new file mode 100644 index 0000000..41f140e --- /dev/null +++ b/Assets/Azure/KinectScripts/SceneBlendRenderer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e2f4400047e5a0a4a90388e85bf3a633 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/SceneMeshRenderer.cs b/Assets/Azure/KinectScripts/SceneMeshRenderer.cs new file mode 100644 index 0000000..5da9a4d --- /dev/null +++ b/Assets/Azure/KinectScripts/SceneMeshRenderer.cs @@ -0,0 +1,490 @@ +using UnityEngine; +using System.Collections; +using com.rfilkov.kinect; + + +namespace com.rfilkov.components +{ + /// + /// SceneMeshRenderer renders virtual mesh of the environment in the scene, as detected by the given sensor. + /// + public class SceneMeshRenderer : MonoBehaviour + { + [Tooltip("Depth sensor index - 0 is the 1st one, 1 - the 2nd one, etc.")] + public int sensorIndex = 0; + + [Tooltip("Resolution of the images used to generate the scene.")] + private DepthSensorBase.PointCloudResolution sourceImageResolution = DepthSensorBase.PointCloudResolution.DepthCameraResolution; + + [Tooltip("Whether to show the mesh as point cloud, or as solid mesh.")] + public bool showAsPointCloud = true; + + [Tooltip("Horizontal limit - minimum, in meters.")] + [Range(-5f, 5f)] + public float xMin = -2f; + + [Tooltip("Horizontal limit - maximum, in meters.")] + [Range(-5f, 5f)] + public float xMax = 2f; + + [Tooltip("Vertical limit - minimum, in meters.")] + [Range(-5f, 5f)] + public float yMin = -2f; + + [Tooltip("Vertical limit - maximum, in meters.")] + [Range(-5f, 5f)] + public float yMax = 2f; + + [Tooltip("Distance limit - minimum, in meters.")] + [Range(0.5f, 10f)] + public float zMin = 1f; + + [Tooltip("Distance limit - maximum, in meters.")] + [Range(0.5f, 10f)] + public float zMax = 3f; + + [Tooltip("Time interval between scene mesh updates, in seconds. 0 means no wait.")] + public float updateMeshInterval = 0f; + + //[Tooltip("Whether to include the detected players to the scene mesh or not.")] + //private bool includePlayers = true; + + //[Tooltip("Whether to update the mesh, only when there are no players detected.")] + //private bool updateWhenNoPlayers = false; + + //[Tooltip("Whether to update the mesh collider as well, when the user mesh changes.")] + //public bool updateMeshCollider = false; + + [Tooltip("Time interval between mesh-collider updates, in seconds. 0 means no mesh-collider updates.")] + public float updateColliderInterval = 0f; + + + // reference to object's mesh + private Mesh mesh = null; + + // references to KM and data + private KinectManager kinectManager = null; + private KinectInterop.SensorData sensorData = null; + private DepthSensorBase sensorInt = null; + private Vector3 spaceScale = Vector3.zero; + + // render textures + private RenderTexture colorTexture = null; + private RenderTexture colorTextureBuildMesh = null; + private RenderTexture colorTextureUpdateMesh = null; + private bool colorTextureCreated = false; + + private bool bColorCamRes = false; + private ushort[] tDepthImage = null; + + // times + private ulong lastSpaceCoordsTime = 0; + private float lastMeshUpdateTime = 0f; + private float lastColliderUpdateTime = 0f; + + private int minDepth = 0; + private int maxDepth = 0; + + // image parameters + private int imageWidth = 0; + private int imageHeight = 0; + + // mesh parameters + private Vector3[] spaceTable = null; + private Vector3[] meshVertices = null; + private int[] meshIndices = null; + private byte[] meshVertUsed = null; + private bool bMeshInited = false; + + // thread parameters + private System.Threading.Thread buildMeshThread = null; + private bool bStopThread = false; + + private bool bBuildMesh = false; + private bool bUpdateMesh = false; + + + void Start() + { + // get sensor data + kinectManager = KinectManager.Instance; + sensorData = (kinectManager != null && kinectManager.IsInitialized()) ? kinectManager.GetSensorData(sensorIndex) : null; + + buildMeshThread = new System.Threading.Thread(new System.Threading.ThreadStart(BuildMesh)); + buildMeshThread.IsBackground = true; + buildMeshThread.Start(); + } + + + void OnDestroy() + { + if (buildMeshThread != null) + { + // stop the thread + bStopThread = true; + buildMeshThread.Join(); + buildMeshThread = null; + } + + if (bMeshInited) + { + // release the mesh-related resources + FinishMesh(); + } + } + + + void LateUpdate() + { + if(mesh == null && sensorData != null && sensorData.depthCamIntr != null) + { + // init mesh and its related data + InitMesh(); + } + + if (bMeshInited) + { + // min & max depth + minDepth = Mathf.RoundToInt(zMin * 1000f); + maxDepth = Mathf.RoundToInt(zMax * 1000f); + + // update the mesh + UpdateMesh(); + } + } + + + // inits the mesh and related data + private void InitMesh() + { + // create mesh + mesh = new Mesh + { + name = "SceneMesh-Sensor" + sensorIndex, + indexFormat = UnityEngine.Rendering.IndexFormat.UInt32 + }; + + MeshFilter meshFilter = GetComponent(); + if(meshFilter != null) + { + meshFilter.mesh = mesh; + } + else + { + Debug.LogWarning("MeshFilter not found! You may not see the mesh on screen"); + } + + if (sensorData != null && sensorData.sensorInterface != null) + { + sensorInt = (DepthSensorBase)sensorData.sensorInterface; + + Vector2Int imageRes = Vector2Int.zero; + if (sensorInt.pointCloudColorTexture == null) + { + sensorInt.pointCloudResolution = sourceImageResolution; + imageRes = sensorInt.GetPointCloudTexResolution(sensorData); + + colorTexture = KinectInterop.CreateRenderTexture(colorTexture, imageRes.x, imageRes.y, RenderTextureFormat.ARGB32); + sensorInt.pointCloudColorTexture = colorTexture; + colorTextureCreated = true; + } + else + { + imageRes = sensorInt.GetPointCloudTexResolution(sensorData); + colorTexture = sensorInt.pointCloudColorTexture; + colorTextureCreated = false; + } + + bColorCamRes = sensorInt.pointCloudResolution == DepthSensorBase.PointCloudResolution.ColorCameraResolution; + if (bColorCamRes) + { + // enable transformed depth frame + tDepthImage = new ushort[sensorData.colorImageWidth * sensorData.colorImageHeight]; + sensorData.sensorInterface.EnableColorCameraDepthFrame(sensorData, true); + } + else + { + tDepthImage = new ushort[sensorData.depthImageWidth * sensorData.depthImageHeight]; + } + + // create copy textures + colorTextureBuildMesh = KinectInterop.CreateRenderTexture(colorTextureBuildMesh, imageRes.x, imageRes.y, RenderTextureFormat.ARGB32); + colorTextureUpdateMesh = KinectInterop.CreateRenderTexture(colorTextureUpdateMesh, imageRes.x, imageRes.y, RenderTextureFormat.ARGB32); + + // set the color texture + Renderer meshRenderer = GetComponent(); + if (meshRenderer && meshRenderer.material && meshRenderer.material.mainTexture == null) + { + meshRenderer.material.mainTexture = colorTextureUpdateMesh; // sensorInt.pointCloudColorTexture; + //meshRenderer.material.SetTextureScale("_MainTex", kinectManager.GetColorImageScale(sensorIndex)); + } + + // image width & height + imageWidth = imageRes.x; + imageHeight = imageRes.y; + int pointCount = imageWidth * imageHeight; + + // mesh arrays + meshVertices = new Vector3[pointCount]; + meshIndices = new int[6 * pointCount]; // 2 triangles per vertex, last row and column excluded + meshVertUsed = new byte[pointCount]; + spaceScale = kinectManager.GetSensorSpaceScale(sensorIndex); + + // create space table + spaceTable = sensorInt.pointCloudResolution == DepthSensorBase.PointCloudResolution.DepthCameraResolution ? + sensorInt.GetDepthCameraSpaceTable(sensorData) : sensorInt.GetColorCameraSpaceTable(sensorData); + + // init mesh uv array + Vector2[] meshUv = new Vector2[pointCount]; + + for (int y = 0, i = 0; y < imageHeight; y++) + { + for (int x = 0; x < imageWidth; x++, i++) + { + Vector2 imagePos = new Vector2(x, y); + meshUv[i] = new Vector2(imagePos.x / imageWidth, imagePos.y / imageHeight); + } + } + + mesh.vertices = meshVertices; + mesh.SetIndices(meshIndices, MeshTopology.Triangles, 0); + mesh.uv = meshUv; + + if(showAsPointCloud) + { + meshIndices = new int[pointCount]; + for (int i = 0; i < pointCount; i++) + meshIndices[i] = i; + mesh.SetIndices(meshIndices, MeshTopology.Points, 0); + } + + bMeshInited = true; + } + } + + + // releases mesh-related resources + private void FinishMesh() + { + if (sensorInt) + { + if (sensorInt.pointCloudResolution == DepthSensorBase.PointCloudResolution.ColorCameraResolution) + { + sensorData.sensorInterface.EnableColorCameraDepthFrame(sensorData, false); + } + + sensorInt.pointCloudColorTexture = null; + } + + if (colorTexture && colorTextureCreated) + { + colorTexture.Release(); + colorTexture = null; + } + + if (colorTextureBuildMesh) + { + colorTextureBuildMesh.Release(); + colorTextureBuildMesh = null; + } + + if (colorTextureUpdateMesh) + { + colorTextureUpdateMesh.Release(); + colorTextureUpdateMesh = null; + } + + spaceTable = null; + tDepthImage = null; + + meshVertices = null; + meshIndices = null; + meshVertUsed = null; + + bMeshInited = false; + } + + + // updates the mesh according to current depth frame + private void UpdateMesh() + { + // check for players + //bool bHavePlayers = kinectManager.GetUsersCount() != 0; + if (!bBuildMesh && (Time.time - lastMeshUpdateTime) >= updateMeshInterval /**&& (!updateWhenNoPlayers || !bHavePlayers)*/) + { + lastMeshUpdateTime = Time.time; + + // copy the texture + Graphics.CopyTexture(colorTexture, colorTextureBuildMesh); + + if (bColorCamRes) + { + // get transformed depth frame, if needed + ulong frameTime = 0; + sensorData.sensorInterface.GetColorCameraDepthFrame(sensorData, ref tDepthImage, ref frameTime); + //Debug.Log("UpdateMesh - color time: " + sensorData.lastColorFrameTime + ", tdepth time: " + frameTime); + } + else + { + // copy depth frame + KinectInterop.CopyBytes(sensorData.depthImage, sizeof(ushort), tDepthImage, sizeof(ushort)); + //Debug.Log("UpdateMesh - tcolor time: " + sensorData.lastDepthCamColorFrameTime + ", depth time: " + sensorData.lastDepthFrameTime); + } + + bBuildMesh = true; + } + + if (bUpdateMesh) + { + Graphics.CopyTexture(colorTextureBuildMesh, colorTextureUpdateMesh); + mesh.vertices = meshVertices; + + if(!showAsPointCloud) + { + mesh.SetIndices(meshIndices, MeshTopology.Triangles, 0); + } + + mesh.RecalculateBounds(); + + bUpdateMesh = false; + //Debug.Log("Mesh updated."); + + if (updateColliderInterval > 0 && (Time.time - lastColliderUpdateTime) >= updateColliderInterval) + { + lastColliderUpdateTime = Time.time; + MeshCollider meshCollider = GetComponent(); + + if (meshCollider) + { + meshCollider.sharedMesh = null; + meshCollider.sharedMesh = mesh; + } + } + } + } + + + // builds the mesh according to the current + private void BuildMesh() + { + while (!bStopThread) + { + if (!bUpdateMesh) + { + if (bMeshInited && sensorData.depthImage != null && lastSpaceCoordsTime != sensorData.lastDepthFrameTime) + { + if (bBuildMesh) + { + lastSpaceCoordsTime = sensorData.lastDepthFrameTime; + + try + { + int imageWidth1 = imageWidth - 1, imageHeight1 = imageHeight - 1; + const int maxDistMm = 200; // max distance between vertices in a triangle, in mm + + if (!showAsPointCloud) + { + System.Array.Clear(meshIndices, 0, meshIndices.Length); + System.Array.Clear(meshVertUsed, 0, meshVertUsed.Length); + } + + for (int y = 0, di = 0, ti = 0; y < imageHeight; y++) + { + for (int x = 0; x < imageWidth; x++, di++, ti += 6) + { + ushort depth = tDepthImage != null ? tDepthImage[di] : (ushort)0; + //bool isValidBodyPixel = !includePlayers && bHavePlayers ? sensorData.bodyIndexImage[di] == 255 : true; + + bool bVertexSet = false; + if (depth >= minDepth && depth <= maxDepth /**&& isValidBodyPixel*/) + { + float fDepth = (float)depth * 0.001f; + Vector3 vVertex = new Vector3(spaceTable[di].x * fDepth * spaceScale.x, spaceTable[di].y * fDepth * spaceScale.y, fDepth); + + bool bUsedVertex = !showAsPointCloud && meshVertUsed[di] != 0; + if (bUsedVertex || (vVertex.x >= xMin && vVertex.x <= xMax && vVertex.y >= yMin && vVertex.y <= yMax)) + { + meshVertices[di] = vVertex; + + if (!showAsPointCloud) + { + meshVertUsed[di] = 1; + + if (x < imageWidth1 && y < imageHeight1) + { + int tl = di; ushort tld = depth; + int tr = tl + 1; ushort trd = tDepthImage != null ? tDepthImage[tr] : (ushort)0; + int bl = tl + imageWidth; ushort bld = tDepthImage != null ? tDepthImage[bl] : (ushort)0; + int br = bl + 1; ushort brd = tDepthImage != null ? tDepthImage[br] : (ushort)0; + + float fBrDepth = (float)brd * 0.001f; + Vector3 vVertex2 = new Vector3(spaceTable[br].x * fBrDepth * spaceScale.x, spaceTable[di].y * fBrDepth * spaceScale.y, fBrDepth); + + // 1st triangle + if (tld >= minDepth && tld <= maxDepth && + trd >= minDepth && trd <= maxDepth && + bld >= minDepth && bld <= maxDepth && + vVertex2.x >= xMin && vVertex2.x <= xMax && vVertex2.y >= yMin && vVertex2.y <= yMax && + Mathf.Abs(trd - tld) < maxDistMm && Mathf.Abs(bld - tld) < maxDistMm) + { + meshIndices[ti] = bl; + meshIndices[ti + 1] = tr; + meshIndices[ti + 2] = tl; + meshVertUsed[tr] = meshVertUsed[bl] = 1; + } + + // 2nd triangle + if (bld >= minDepth && bld <= maxDepth && + trd >= minDepth && trd <= maxDepth && + brd >= minDepth && brd <= maxDepth && + vVertex2.x >= xMin && vVertex2.x <= xMax && vVertex2.y >= yMin && vVertex2.y <= yMax && + Mathf.Abs(trd - bld) < maxDistMm && Mathf.Abs(brd - bld) < maxDistMm) + { + meshIndices[ti + 3] = br; + meshIndices[ti + 4] = tr; + meshIndices[ti + 5] = bl; + meshVertUsed[bl] = meshVertUsed[tr] = meshVertUsed[br] = 1; + } + } + } + + bVertexSet = true; + } + } + + if (!bVertexSet) + { + meshVertices[di] = Vector3.zero; + + if (!showAsPointCloud) + { + if (meshVertUsed[di] != 0) + { + float fDepth = (float)depth * 0.001f; + Vector3 vVertex = new Vector3(spaceTable[di].x * fDepth * spaceScale.x, spaceTable[di].y * fDepth * spaceScale.y, fDepth); + meshVertices[di] = vVertex; + } + } + } + + } + } + + bBuildMesh = false; + bUpdateMesh = true; + //Debug.Log("Mesh built."); + } + catch (System.Exception ex) + { + Debug.LogException(ex); + } + } + } + + System.Threading.Thread.Sleep(KinectInterop.THREAD_SLEEP_TIME_MS); + } + } + } + + } +} diff --git a/Assets/Azure/KinectScripts/SceneMeshRenderer.cs.meta b/Assets/Azure/KinectScripts/SceneMeshRenderer.cs.meta new file mode 100644 index 0000000..4c821c8 --- /dev/null +++ b/Assets/Azure/KinectScripts/SceneMeshRenderer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ba22de1f902061c4993867ead15098dc +timeCreated: 1457126405 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/SceneMeshRendererGpu.cs b/Assets/Azure/KinectScripts/SceneMeshRendererGpu.cs new file mode 100644 index 0000000..2f1015b --- /dev/null +++ b/Assets/Azure/KinectScripts/SceneMeshRendererGpu.cs @@ -0,0 +1,541 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using com.rfilkov.kinect; + + +namespace com.rfilkov.components +{ + /// + /// SceneMeshRendererGpu renders virtual mesh of the environment in the scene, as detected by the given sensor. This component uses GPU for mesh processing rather than CPU. + /// + public class SceneMeshRendererGpu : MonoBehaviour + { + [Tooltip("Depth sensor index - 0 is the 1st one, 1 - the 2nd one, etc.")] + public int sensorIndex = 0; + + [Tooltip("Resolution of the images used to generate the scene.")] + private DepthSensorBase.PointCloudResolution sourceImageResolution = DepthSensorBase.PointCloudResolution.DepthCameraResolution; + + [Tooltip("Whether to show the mesh as point cloud, or as solid mesh.")] + public bool showAsPointCloud = true; + + [Tooltip("Mesh coarse factor.")] + [Range(1, 4)] + public int coarseFactor = 1; + + [Tooltip("Edge cut-off factor.")] + [Range(0f, 1f)] + public float edgeCutoffFactor = 0.5f; + + [Tooltip("Whether the mesh texture is RGB or infrared.")] + public MeshTextureType meshTexture = MeshTextureType.ColorTexture; + public enum MeshTextureType : int { ColorTexture = 0, InfraredTexture = 1 } + + [Tooltip("If set, the mesh renderer will use this texture for the mesh, instead of the color or IR texture.")] + public Texture externalMeshTexture = null; + + [Tooltip("Horizontal limit - minimum, in meters.")] + [Range(-5f, 5f)] + public float xMin = -2f; + + [Tooltip("Horizontal limit - maximum, in meters.")] + [Range(-5f, 5f)] + public float xMax = 2f; + + [Tooltip("Vertical limit - minimum, in meters.")] + [Range(-5f, 5f)] + public float yMin = 0f; + + [Tooltip("Vertical limit - maximum, in meters.")] + [Range(-5f, 5f)] + public float yMax = 2.5f; + + [Tooltip("Distance limit - minimum, in meters.")] + [Range(0.5f, 10f)] + public float zMin = 1f; + + [Tooltip("Distance limit - maximum, in meters.")] + [Range(0.5f, 10f)] + public float zMax = 3f; + + [Tooltip("Time interval between scene mesh updates, in seconds. 0 means no wait.")] + private float updateMeshInterval = 0f; + + [Tooltip("Time interval between mesh-collider updates, in seconds. 0 means no mesh-collider updates.")] + private float updateColliderInterval = 0f; + + [Tooltip("Whether to apply lighting to the mesh, or not.")] + public bool applyLighting = false; + + + // reference to object's mesh + private Mesh mesh = null; + private Transform trans = null; + + // references to KM and data + private KinectManager kinectManager = null; + private KinectInterop.SensorData sensorData = null; + private DepthSensorBase sensorInt = null; + //private Vector3 spaceScale = Vector3.zero; + private Material meshShaderMat = null; + + // space table + private Vector3[] spaceTable = null; + private ComputeBuffer spaceTableBuffer = null; + private Vector3 sensorSpaceScale = Vector3.zero; + + private ushort[] depthImageCopy = null; + private ComputeBuffer depthImageBuffer = null; + + // render textures + private RenderTexture colorTexture = null; + private RenderTexture colorTextureCopy = null; + private bool colorTextureCreated = false; + //private bool depthBufferCreated = false; + + // times + private ulong lastDepthFrameTime = 0; + private float lastMeshUpdateTime = 0f; + private float lastColliderUpdateTime = 0f; + + // image parameters + private int imageWidth = 0; + private int imageHeight = 0; + + // mesh parameters + private bool bMeshInited = false; + private int meshParamsCache = 0; + + // lighting + private FragmentLighting lighting = new FragmentLighting(); + + + void Start() + { + // get sensor data + kinectManager = KinectManager.Instance; + sensorData = (kinectManager != null && kinectManager.IsInitialized()) ? kinectManager.GetSensorData(sensorIndex) : null; + + if (externalMeshTexture == null && meshTexture == MeshTextureType.InfraredTexture && + kinectManager && kinectManager.GetInfraredImageTex(sensorIndex) == null) + { + Debug.LogError("Please set the 'Get Infrared Frames'-setting of KinectManager to 'Infrared texture'."); + } + + // find scene lights + Light[] sceneLights = GameObject.FindObjectsOfType(); + lighting.SetLightsAndBounds(sceneLights, transform.position, new Vector3(20f, 20f, 20f)); + } + + + void OnDestroy() + { + if (bMeshInited) + { + // release the mesh-related resources + FinishMesh(); + } + + // release lighting resources + lighting.ReleaseResources(); + } + + + void Update() + { + if (mesh == null && sensorData != null && sensorData.depthCamIntr != null) + { + // init mesh and its related data + InitMesh(); + } + + if (bMeshInited) + { + // update the mesh + UpdateMesh(); + } + } + + + // inits the mesh and related data + private void InitMesh() + { + // create mesh + mesh = new Mesh + { + name = "SceneMesh-Sensor" + sensorIndex, + indexFormat = UnityEngine.Rendering.IndexFormat.UInt32 + }; + + MeshFilter meshFilter = GetComponent(); + if (meshFilter != null) + { + meshFilter.mesh = mesh; + } + else + { + Debug.LogWarning("MeshFilter not found! You may not see the mesh on screen"); + } + + // get the mesh material + Renderer meshRenderer = GetComponent(); + if (meshRenderer) + { + Shader meshShader = Shader.Find("Kinect/SceneMeshUShader"); + if(meshShader != null) + { + meshShaderMat = new Material(meshShader); + meshRenderer.material = meshShaderMat; + } + } + + // get reference to the transform + trans = GetComponent(); + + // get sensor interface + sensorInt = sensorData != null ? (DepthSensorBase)sensorData.sensorInterface : null; + + // create point cloud color texture + if (sensorData != null && sensorInt != null && meshShaderMat != null) + { + Vector2Int imageRes = Vector2Int.zero; + if (sensorInt.pointCloudColorTexture == null) + { + sensorInt.pointCloudResolution = sourceImageResolution; + imageRes = sensorInt.GetPointCloudTexResolution(sensorData); + + //colorTexture = KinectInterop.CreateRenderTexture(colorTexture, imageRes.x, imageRes.y, RenderTextureFormat.ARGB32); + //sensorInt.pointCloudColorTexture = colorTexture; + colorTextureCreated = true; + } + else + { + sourceImageResolution = sensorInt.pointCloudResolution; + imageRes = sensorInt.GetPointCloudTexResolution(sensorData); + colorTexture = sensorInt.pointCloudColorTexture; + colorTextureCreated = false; + } + + // get space scale + sensorSpaceScale = kinectManager.GetSensorSpaceScale(sensorIndex); // kinectManager.GetDepthImageScale(sensorIndex) + + // update textures and buffers + UpdateTexturesAndBuffers(); + + bMeshInited = true; + } + } + + + // updates the textures and buffers, needed by the mesh renderer + private void UpdateTexturesAndBuffers() + { + if (sensorData == null || sensorInt == null) + return; + + // get image resolution + Vector2Int imageRes = sensorInt.GetPointCloudTexResolution(sensorData); + + if (colorTextureCreated && (colorTexture == null || + colorTexture.width != imageRes.x || colorTexture.height != imageRes.y)) + { + colorTexture = KinectInterop.CreateRenderTexture(colorTexture, imageRes.x, imageRes.y, RenderTextureFormat.ARGB32); + sensorInt.pointCloudColorTexture = colorTexture; + //Debug.Log("Created pointCloudColorTexture with resolution " + imageRes); + } + + // create depth image buffer + if (sourceImageResolution == DepthSensorBase.PointCloudResolution.DepthCameraResolution) + { + int depthBufferLength = sensorData.depthImageWidth * sensorData.depthImageHeight >> 1; + + if (depthImageBuffer == null || depthImageBuffer.count != depthBufferLength) + { + depthImageCopy = new ushort[depthBufferLength << 1]; + depthImageBuffer = KinectInterop.CreateComputeBuffer(depthImageBuffer, depthBufferLength, sizeof(uint)); + //Debug.Log("Created depthImageBuffer with length " + depthBufferLength); + } + + //meshShaderMat.SetBuffer("_DepthMap", depthImageBuffer); + } + else + { + int bufferLength = sensorData.colorImageWidth * sensorData.colorImageHeight >> 1; + + if (sensorData.colorDepthBuffer == null || sensorData.colorDepthBuffer.count != bufferLength) + { + sensorData.colorDepthBuffer = KinectInterop.CreateComputeBuffer(sensorData.colorDepthBuffer, bufferLength, sizeof(uint)); + //Debug.Log("Created colorDepthBuffer with length " + bufferLength); + } + + //meshShaderMat.SetBuffer("_DepthMap", sensorData.colorDepthBuffer); + + if (externalMeshTexture == null && meshTexture == MeshTextureType.InfraredTexture) + { + if (sensorData.colorInfraredBuffer == null || sensorData.colorInfraredBuffer.count != bufferLength) + { + sensorData.colorInfraredBuffer = KinectInterop.CreateComputeBuffer(sensorData.colorInfraredBuffer, bufferLength, sizeof(uint)); + //Debug.Log("Created colorInfraredBuffer with length " + bufferLength); + } + } + } + + if (colorTextureCopy == null || colorTextureCopy.width != imageRes.x || colorTextureCopy.height != imageRes.y) + { + // create copy texture + colorTextureCopy = KinectInterop.CreateRenderTexture(colorTextureCopy, imageRes.x, imageRes.y, RenderTextureFormat.ARGB32); + //Debug.Log("Created colorTextureCopy with resolution " + imageRes); + } + + if (spaceTableBuffer == null || imageWidth != imageRes.x || imageHeight != imageRes.y) + { + // create space table + spaceTable = sensorInt.pointCloudResolution == DepthSensorBase.PointCloudResolution.DepthCameraResolution ? + sensorInt.GetDepthCameraSpaceTable(sensorData) : sensorInt.GetColorCameraSpaceTable(sensorData); + + int spaceBufferLength = imageRes.x * imageRes.y * 3; + spaceTableBuffer = KinectInterop.CreateComputeBuffer(spaceTableBuffer, spaceBufferLength, sizeof(float)); + spaceTableBuffer.SetData(spaceTable); + spaceTable = null; + + //Debug.Log("Created spaceTable for resolution " + imageRes); + } + + // create mesh vertices & indices + if (imageWidth != imageRes.x || imageHeight != imageRes.y) + { + CreateMeshVertInd(imageRes.x, imageRes.y); + } + + // image width & height + imageWidth = imageRes.x; + imageHeight = imageRes.y; + } + + + // creates the mesh vertices and indices + private void CreateMeshVertInd(int imageWidth, int imageHeight) + { + int xVerts = (imageWidth / coarseFactor); // + 1; + int yVerts = (imageHeight / coarseFactor); // + 1; + int vCount = xVerts * yVerts; + //Debug.Log("xVerts: " + xVerts + ", yVerts: " + yVerts + ", vCount: " + vCount); + + // mesh vertices + mesh.Clear(); + mesh.indexFormat = UnityEngine.Rendering.IndexFormat.UInt32; + + Vector3[] meshVertices = new Vector3[vCount]; + Vector3[] meshNormals = new Vector3[vCount]; + Vector2[] meshUv = new Vector2[vCount]; + + float vsx = (float)coarseFactor / (float)imageWidth; + float vsy = (float)coarseFactor / (float)imageHeight; + + for (int y = 0, vi = 0; y < yVerts; y++) + { + for (int x = 0; x < xVerts; x++, vi++) + { + meshVertices[vi] = new Vector3(x * vsx, y * vsy, 0f); + meshNormals[vi] = new Vector3(0f, 1f, 0f); // 0f, 0f, -1f + meshUv[vi] = new Vector2(x * vsx, y * vsy); + } + } + + mesh.vertices = meshVertices; + mesh.normals = meshNormals; + mesh.uv = meshUv; + + // mesh indices + if (showAsPointCloud) + { + int[] meshIndices = new int[vCount]; + for (int i = 0; i < vCount; i++) + meshIndices[i] = i; + + mesh.SetIndices(meshIndices, MeshTopology.Points, 0); + } + else + { + int[] meshIndices = new int[(xVerts - 1) * (yVerts - 1) * 6]; + for (int y = 0, ii = 0; y < (yVerts - 1); y++) + { + for (int x = 0; x < (xVerts - 1); x++) + { + meshIndices[ii++] = (y + 1) * xVerts + x; + meshIndices[ii++] = y * xVerts + x + 1; + meshIndices[ii++] = y * xVerts + x; + + meshIndices[ii++] = (y + 1) * xVerts + x + 1; + meshIndices[ii++] = y * xVerts + x + 1; + meshIndices[ii++] = (y + 1) * xVerts + x; + } + } + + mesh.SetIndices(meshIndices, MeshTopology.Triangles, 0); + } + + meshParamsCache = coarseFactor + (showAsPointCloud ? 10 : 0); + } + + + // releases mesh-related resources + private void FinishMesh() + { + if (sensorInt) + { + sensorInt.pointCloudColorTexture = null; + } + + if(depthImageBuffer != null /**&& depthBufferCreated*/) + { + depthImageCopy = null; + + depthImageBuffer.Release(); + depthImageBuffer.Dispose(); + depthImageBuffer = null; + } + + if (sensorData.colorDepthBuffer != null /**&& depthBufferCreated*/) + { + sensorData.colorDepthBuffer.Release(); + sensorData.colorDepthBuffer.Dispose(); + sensorData.colorDepthBuffer = null; + } + + if(sensorData.colorInfraredBuffer != null) + { + sensorData.colorInfraredBuffer.Release(); + sensorData.colorInfraredBuffer.Dispose(); + sensorData.colorInfraredBuffer = null; + } + + if (colorTexture && colorTextureCreated) + { + colorTexture.Release(); + colorTexture = null; + } + + if (colorTextureCopy) + { + colorTextureCopy.Release(); + colorTextureCopy = null; + } + + if (spaceTableBuffer != null) + { + spaceTableBuffer.Dispose(); + spaceTableBuffer = null; + } + + bMeshInited = false; + } + + + // updates the mesh according to current depth frame + private void UpdateMesh() + { + if (bMeshInited && sensorData.depthImage != null && sensorData.depthCamIntr != null && meshShaderMat != null && + lastDepthFrameTime != sensorData.lastDepthFrameTime && (Time.time - lastMeshUpdateTime) >= updateMeshInterval) + { + lastDepthFrameTime = sensorData.lastDepthFrameTime; + lastMeshUpdateTime = Time.time; + + // update textures and buffers + UpdateTexturesAndBuffers(); + + int paramsCache = coarseFactor + (showAsPointCloud ? 10 : 0); + if(meshParamsCache != paramsCache) + { + //Debug.Log("Mesh params changed. Recreating..."); + CreateMeshVertInd(imageWidth, imageHeight); + } + + if (depthImageBuffer != null && sensorData.depthImage != null /**&& depthBufferCreated*/) + { + KinectInterop.CopyBytes(sensorData.depthImage, sizeof(ushort), depthImageCopy, sizeof(ushort)); + + int depthBufferLength = sensorData.depthImageWidth * sensorData.depthImageHeight / 2; + KinectInterop.SetComputeBufferData(depthImageBuffer, depthImageCopy, depthBufferLength, sizeof(uint)); + } + + if (externalMeshTexture != null) + { + // use the external texture + Graphics.Blit(externalMeshTexture, colorTextureCopy); + } + else + { + switch (meshTexture) + { + case MeshTextureType.ColorTexture: + if (colorTexture != null) + Graphics.CopyTexture(colorTexture, colorTextureCopy); + break; + + case MeshTextureType.InfraredTexture: + Texture infraredTexture = sensorInt.pointCloudResolution == DepthSensorBase.PointCloudResolution.DepthCameraResolution ? + sensorData.infraredImageTexture : sensorData.colorInfraredTexture; + if (infraredTexture != null) + Graphics.CopyTexture(infraredTexture, colorTextureCopy); + break; + } + } + + if (sourceImageResolution == DepthSensorBase.PointCloudResolution.DepthCameraResolution) + { + //Debug.Log("SceneMeshGpu DepthFrameTime: " + lastDepthFrameTime); + } + else + { + //sensorData.usedColorDepthBufferTime = sensorData.lastColorDepthBufferTime; + //Debug.Log("SceneMeshGpu ColorDepthBufferTime: " + sensorData.lastColorDepthBufferTime); + } + + if (sourceImageResolution == DepthSensorBase.PointCloudResolution.DepthCameraResolution) + meshShaderMat.SetBuffer("_DepthMap", depthImageBuffer); + else + meshShaderMat.SetBuffer("_DepthMap", sensorData.colorDepthBuffer); + + meshShaderMat.SetTexture("_ColorTex", colorTextureCopy); + meshShaderMat.SetVector("_SpaceScale", sensorSpaceScale); + meshShaderMat.SetBuffer("_SpaceTable", spaceTableBuffer); + + meshShaderMat.SetVector("_TexRes", new Vector2(imageWidth, imageHeight)); + //meshShaderMat.SetVector("_Cxy", new Vector2(sensorData.depthCamIntr.ppx, sensorData.depthCamIntr.ppy)); + //meshShaderMat.SetVector("_Fxy", new Vector2(sensorData.depthCamIntr.fx, sensorData.depthCamIntr.fy)); + + meshShaderMat.SetInt("_CoarseFactor", coarseFactor); + meshShaderMat.SetInt("_IsPointCloud", showAsPointCloud ? 1 : 0); + meshShaderMat.SetFloat("_CutoffFactor", Mathf.Pow(edgeCutoffFactor, 6)); + + meshShaderMat.SetMatrix("_Transform", sensorInt.GetSensorToWorldMatrix()); + meshShaderMat.SetVector("_PosMin", new Vector3(xMin, yMin, zMin)); + meshShaderMat.SetVector("_PosMax", new Vector3(xMax, yMax, zMax)); + + // mesh bounds + Vector3 boundsCenter = new Vector3((xMax - xMin) / 2f, (yMax - yMin) / 2f, (zMax /**- zMin*/) / 2f); + Vector3 boundsSize = new Vector3((xMax - xMin), (yMax - yMin), (zMax /**- zMin*/)); + mesh.bounds = new Bounds(boundsCenter, boundsSize); + + // update lighting parameters + lighting.UpdateLighting(meshShaderMat, applyLighting); + + if (updateColliderInterval > 0 && (Time.time - lastColliderUpdateTime) >= updateColliderInterval) + { + lastColliderUpdateTime = Time.time; + MeshCollider meshCollider = GetComponent(); + + if (meshCollider) + { + meshCollider.sharedMesh = null; + meshCollider.sharedMesh = mesh; + } + } + + } + } + + } +} diff --git a/Assets/Azure/KinectScripts/SceneMeshRendererGpu.cs.meta b/Assets/Azure/KinectScripts/SceneMeshRendererGpu.cs.meta new file mode 100644 index 0000000..afb3e56 --- /dev/null +++ b/Assets/Azure/KinectScripts/SceneMeshRendererGpu.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c30c3ab4691c98a4d8e4ae95a31321cb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/SensorPoseStartupEstimator.cs b/Assets/Azure/KinectScripts/SensorPoseStartupEstimator.cs new file mode 100644 index 0000000..23dd643 --- /dev/null +++ b/Assets/Azure/KinectScripts/SensorPoseStartupEstimator.cs @@ -0,0 +1,116 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using com.rfilkov.kinect; + + +namespace com.rfilkov.components +{ + /// + /// SensorPoseStartupEstimator estimates the transform pose of the sensor-interface at scene start-up time. + /// + public class SensorPoseStartupEstimator : MonoBehaviour + { + [Tooltip("Depth sensor index - 0 is the 1st one, 1 - the 2nd one, etc.")] + public int sensorIndex = 0; + + [Tooltip("Whether or not to stop the sensor pose estimation after the first successful pose update.")] + public bool stopAfterFirstEstimate = false; + + [Tooltip("Maximum duration of the pose estimation time, in seconds.")] + public float maxDuration = 3f; + + + // reference to the KM + private KinectManager kinectManager = null; + private KinectInterop.SensorData sensorData = null; + private DepthSensorInterface sensorInterface = null; + private KinectInterop.DepthSensorPlatform sensorPlatform = KinectInterop.DepthSensorPlatform.None; + + private bool isEstimating = false; + private bool isCompleted = false; + private float startTime = 0f; + private ulong startPoseTimestamp = 0; + + + void Start() + { + kinectManager = KinectManager.Instance; + startTime = Time.time; + } + + void Update() + { + if(!isCompleted && kinectManager != null && kinectManager.IsInitialized()) + { + if(!isEstimating) + { + if(kinectManager.getPoseFrames != KinectManager.PoseUsageType.UpdateTransform) + { + // start pose estimation + kinectManager.EnableSensorPoseData(sensorIndex, true); + kinectManager.getPoseFrames = KinectManager.PoseUsageType.UpdateTransform; + } + + if(sensorInterface == null) + { + // get the sensor platform + sensorData = kinectManager.GetSensorData(sensorIndex); + sensorInterface = sensorData != null ? sensorData.sensorInterface : null; + sensorPlatform = sensorData != null ? sensorData.sensorIntPlatform : KinectInterop.DepthSensorPlatform.None; + } + + startTime = Time.time; + isEstimating = true; + + Debug.Log($"Pose estimation started. StartTime: {startTime}"); + } + else if((stopAfterFirstEstimate && startPoseTimestamp != 0 && sensorData.lastSensorPoseFrameTime != startPoseTimestamp) || + (maxDuration > 0f && (Time.time - startTime) >= maxDuration)) + { + // stop pose estimation + kinectManager.EnableSensorPoseData(sensorIndex, false); + kinectManager.getPoseFrames = KinectManager.PoseUsageType.None; + isCompleted = true; + + string stopFirst = stopAfterFirstEstimate ? " after first update" : string.Empty; + Debug.Log($"Pose estimation stopped{stopFirst}. SensorPos: {sensorData.sensorPosePosition}, SensorRot: {sensorData.sensorPoseRotation.eulerAngles}, ts: {sensorData.lastSensorPoseFrameTime}. StopTime: {Time.time}"); + } + else if(sensorPlatform == KinectInterop.DepthSensorPlatform.Kinect4Azure) + { + // estimate the BT sensor orientation + float zRot = ((MonoBehaviour)sensorInterface).transform.rotation.eulerAngles.z; + if (zRot < 0f) + zRot += 360f; + + Microsoft.Azure.Kinect.Sensor.k4abt_sensor_orientation_t btOriHint = Microsoft.Azure.Kinect.Sensor.k4abt_sensor_orientation_t.K4ABT_SENSOR_ORIENTATION_DEFAULT; + if (zRot > 70f && zRot < 110f) + btOriHint = Microsoft.Azure.Kinect.Sensor.k4abt_sensor_orientation_t.K4ABT_SENSOR_ORIENTATION_COUNTERCLOCKWISE90; + else if (zRot > 160f && zRot < 200f) + btOriHint = Microsoft.Azure.Kinect.Sensor.k4abt_sensor_orientation_t.K4ABT_SENSOR_ORIENTATION_FLIP180; + else if (zRot >= 250f && zRot <= 290f) + btOriHint = Microsoft.Azure.Kinect.Sensor.k4abt_sensor_orientation_t.K4ABT_SENSOR_ORIENTATION_CLOCKWISE90; + + // change the BT orientation hint, if needed + Kinect4AzureInterface k4aInt = (Kinect4AzureInterface)sensorInterface; + if(btOriHint != k4aInt.bodyTrackingSensorOrientation && (int)(k4aInt.frameSourceFlags & KinectInterop.FrameSource.TypeBody) != 0) + { + Debug.Log(" stopping k4a body tracker..."); + k4aInt.StopBodyTracking(sensorData); + k4aInt.bodyTrackingSensorOrientation = btOriHint; + k4aInt.InitBodyTracking(k4aInt.frameSourceFlags, sensorData, k4aInt.coordMapperCalib, true); + Debug.Log($" k4a body tracker restarted with sensor orientation: {btOriHint}"); + } + } + + // set start time + if(startPoseTimestamp == 0 && sensorData != null) + { + startPoseTimestamp = sensorData.lastSensorPoseFrameTime; + } + + } + } + + } +} diff --git a/Assets/Azure/KinectScripts/SensorPoseStartupEstimator.cs.meta b/Assets/Azure/KinectScripts/SensorPoseStartupEstimator.cs.meta new file mode 100644 index 0000000..e0f225e --- /dev/null +++ b/Assets/Azure/KinectScripts/SensorPoseStartupEstimator.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ae813a56c02af4348ad295ddd9dd5035 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/UserMeshRenderer.cs b/Assets/Azure/KinectScripts/UserMeshRenderer.cs new file mode 100644 index 0000000..ca125d3 --- /dev/null +++ b/Assets/Azure/KinectScripts/UserMeshRenderer.cs @@ -0,0 +1,485 @@ +using UnityEngine; +using System.Collections; +using com.rfilkov.kinect; + + +namespace com.rfilkov.components +{ + /// + /// UserMeshRenderer renders virtual mesh of a user in the scene, as detected by the given sensor. + /// + public class UserMeshRenderer : MonoBehaviour + { + [Tooltip("Index of the player, tracked by this component. 0 - the 1st player only, 1 - the 2nd player only, etc.")] + public int playerIndex = 0; + + [Tooltip("Depth sensor index - 0 is the 1st one, 1 - the 2nd one, etc.")] + public int sensorIndex = 0; + + [Tooltip("Resolution of the images used to generate the scene.")] + private DepthSensorBase.PointCloudResolution sourceImageResolution = DepthSensorBase.PointCloudResolution.DepthCameraResolution; + + [Tooltip("Whether to show the mesh as point cloud, or as solid mesh.")] + public bool showAsPointCloud = true; + + [Tooltip("Time interval between scene mesh updates, in seconds. 0 means no wait.")] + private float updateMeshInterval = 0f; + + //[Tooltip("Whether to update the mesh collider as well, when the user mesh changes.")] + //public bool updateMeshCollider = false; + + [Tooltip("Time interval between mesh-collider updates, in seconds. 0 means no mesh-collider updates.")] + private float updateColliderInterval = 0f; + + + // reference to object's mesh + private Mesh mesh = null; + + // references to KM and data + private KinectManager kinectManager = null; + private KinectInterop.SensorData sensorData = null; + private DepthSensorBase sensorInt = null; + private Vector3 spaceScale = Vector3.zero; + + // render textures + private RenderTexture colorTexture = null; + private RenderTexture colorTextureBuildMesh = null; + private RenderTexture colorTextureUpdateMesh = null; + private bool colorTextureCreated = false; + + private bool bColorCamRes = false; + private ushort[] tDepthImage = null; + private byte[] tBodyIndexImage = null; + + // times + private ulong lastSpaceCoordsTime = 0; + private float lastMeshUpdateTime = 0f; + private float lastColliderUpdateTime = 0f; + + // user parameters + //private ulong prevUserId = 0; + private ulong userId = 0; + private byte userBodyIndex = 255; + private Vector3 userBodyPos = Vector3.zero; + + // image parameters + private int imageWidth = 0; + private int imageHeight = 0; + + // mesh parameters + private Vector3[] spaceTable = null; + private Vector3[] meshVertices = null; + private int[] meshIndices = null; + private byte[] meshVertUsed = null; + private bool bMeshInited = false; + + // thread parameters + private System.Threading.Thread buildMeshThread = null; + private bool bStopThread = false; + + private bool bBuildMesh = false; + private bool bUpdateMesh = false; + + + void Start() + { + // get sensor data + kinectManager = KinectManager.Instance; + sensorData = (kinectManager != null && kinectManager.IsInitialized()) ? kinectManager.GetSensorData(sensorIndex) : null; + + buildMeshThread = new System.Threading.Thread(new System.Threading.ThreadStart(BuildMesh)); + buildMeshThread.IsBackground = true; + buildMeshThread.Start(); + } + + + void OnDestroy() + { + if (buildMeshThread != null) + { + // stop the thread + bStopThread = true; + buildMeshThread.Join(); + buildMeshThread = null; + } + + if (bMeshInited) + { + // release the mesh-related resources + FinishMesh(); + } + } + + + void LateUpdate() + { + if (mesh == null && sensorData != null && sensorData.depthCamIntr != null) + { + // init mesh and its related data + InitMesh(); + } + + if (bMeshInited) + { + // user params + userId = kinectManager.GetUserIdByIndex(playerIndex); + userBodyIndex = (byte)(userId != 0 ? kinectManager.GetBodyIndexByUserId(userId) : 255); + userBodyPos = userId != 0 ? kinectManager.GetUserKinectPosition(userId, true) : Vector3.zero; + + // update the mesh + UpdateMesh(); + } + } + + + // inits the mesh and related data + private void InitMesh() + { + // create mesh + mesh = new Mesh + { + name = "User" + playerIndex + "Mesh-S" + sensorIndex, + indexFormat = UnityEngine.Rendering.IndexFormat.UInt32 + }; + + MeshFilter meshFilter = GetComponent(); + if (meshFilter != null) + { + meshFilter.mesh = mesh; + } + else + { + Debug.LogWarning("MeshFilter not found! You may not see the mesh on screen"); + } + + if (sensorData != null && sensorData.sensorInterface != null) + { + sensorInt = (DepthSensorBase)sensorData.sensorInterface; + + Vector2Int imageRes = Vector2Int.zero; + if (sensorInt.pointCloudColorTexture == null) + { + sensorInt.pointCloudResolution = sourceImageResolution; + imageRes = sensorInt.GetPointCloudTexResolution(sensorData); + + colorTexture = KinectInterop.CreateRenderTexture(colorTexture, imageRes.x, imageRes.y, RenderTextureFormat.ARGB32); + sensorInt.pointCloudColorTexture = colorTexture; + colorTextureCreated = true; + } + else + { + imageRes = sensorInt.GetPointCloudTexResolution(sensorData); + colorTexture = sensorInt.pointCloudColorTexture; + colorTextureCreated = false; + } + + bColorCamRes = sensorInt.pointCloudResolution == DepthSensorBase.PointCloudResolution.ColorCameraResolution; + if (bColorCamRes) + { + // enable transformed depth & BI frames + tDepthImage = new ushort[sensorData.colorImageWidth * sensorData.colorImageHeight]; + tBodyIndexImage = new byte[sensorData.colorImageWidth * sensorData.colorImageHeight]; + + sensorData.sensorInterface.EnableColorCameraDepthFrame(sensorData, true); + sensorData.sensorInterface.EnableColorCameraBodyIndexFrame(sensorData, true); + } + else + { + tDepthImage = new ushort[sensorData.depthImageWidth * sensorData.depthImageHeight]; + tBodyIndexImage = new byte[sensorData.depthImageWidth * sensorData.depthImageHeight]; + } + + // create copy texture + colorTextureBuildMesh = KinectInterop.CreateRenderTexture(colorTextureBuildMesh, imageRes.x, imageRes.y, RenderTextureFormat.ARGB32); + colorTextureUpdateMesh = KinectInterop.CreateRenderTexture(colorTextureUpdateMesh, imageRes.x, imageRes.y, RenderTextureFormat.ARGB32); + + // set the color texture + Renderer meshRenderer = GetComponent(); + if (meshRenderer && meshRenderer.material && meshRenderer.material.mainTexture == null) + { + meshRenderer.material.mainTexture = colorTextureUpdateMesh; // sensorInt.pointCloudColorTexture; + //meshRenderer.material.SetTextureScale("_MainTex", kinectManager.GetColorImageScale(sensorIndex)); + } + + // image width & height + imageWidth = imageRes.x; + imageHeight = imageRes.y; + int pointCount = imageWidth * imageHeight; + + // mesh arrays + meshVertices = new Vector3[pointCount]; + meshIndices = new int[6 * pointCount]; // 2 triangles per vertex, last row and column excluded + meshVertUsed = new byte[pointCount]; + spaceScale = kinectManager.GetSensorSpaceScale(sensorIndex); + + // create space table + spaceTable = sensorInt.pointCloudResolution == DepthSensorBase.PointCloudResolution.DepthCameraResolution ? + sensorInt.GetDepthCameraSpaceTable(sensorData) : sensorInt.GetColorCameraSpaceTable(sensorData); + + // init mesh uv array + Vector2[] meshUv = new Vector2[pointCount]; + + for (int y = 0, i = 0; y < imageHeight; y++) + { + for (int x = 0; x < imageWidth; x++, i++) + { + Vector2 imagePos = new Vector2(x, y); + meshUv[i] = new Vector2(imagePos.x / imageWidth, imagePos.y / imageHeight); + } + } + + mesh.vertices = meshVertices; + mesh.SetIndices(meshIndices, MeshTopology.Triangles, 0); + mesh.uv = meshUv; + + if (showAsPointCloud) + { + meshIndices = new int[pointCount]; + for (int i = 0; i < pointCount; i++) + meshIndices[i] = i; + mesh.SetIndices(meshIndices, MeshTopology.Points, 0); + } + + bMeshInited = true; + } + } + + + // releases mesh-related resources + private void FinishMesh() + { + if (sensorInt) + { + if (sensorInt.pointCloudResolution == DepthSensorBase.PointCloudResolution.ColorCameraResolution) + { + sensorData.sensorInterface.EnableColorCameraDepthFrame(sensorData, false); + sensorData.sensorInterface.EnableColorCameraBodyIndexFrame(sensorData, false); + } + + sensorInt.pointCloudColorTexture = null; + } + + if (colorTexture && colorTextureCreated) + { + colorTexture.Release(); + colorTexture = null; + } + + if (colorTextureBuildMesh) + { + colorTextureBuildMesh.Release(); + colorTextureBuildMesh = null; + } + + if (colorTextureUpdateMesh) + { + colorTextureUpdateMesh.Release(); + colorTextureUpdateMesh = null; + } + + spaceTable = null; + tDepthImage = null; + tBodyIndexImage = null; + + meshVertices = null; + meshIndices = null; + meshVertUsed = null; + + bMeshInited = false; + } + + + // updates the mesh according to current depth frame + private void UpdateMesh() + { + if (!bBuildMesh && (Time.time - lastMeshUpdateTime) >= updateMeshInterval) + { + lastMeshUpdateTime = Time.time; + + // copy the texture + Graphics.CopyTexture(colorTexture, colorTextureBuildMesh); + + if (bColorCamRes) + { + // get transformed depth & BI frames, if needed + ulong tDepthFrameTime = 0; + sensorData.sensorInterface.GetColorCameraDepthFrame(sensorData, ref tDepthImage, ref tDepthFrameTime); + + ulong tBiFrameTime = 0; + sensorData.sensorInterface.GetColorCameraBodyIndexFrame(sensorData, ref tBodyIndexImage, ref tBiFrameTime); + //Debug.Log("UpdateMesh - color time: " + sensorData.lastColorFrameTime + ", tdepth time: " + tDepthFrameTime + ", bi time: " + tBiFrameTime); + } + else + { + // copy depth and BI frames + KinectInterop.CopyBytes(sensorData.depthImage, sizeof(ushort), tDepthImage, sizeof(ushort)); + KinectInterop.CopyBytes(sensorData.bodyIndexImage, sizeof(byte), tBodyIndexImage, sizeof(byte)); + //Debug.Log("UpdateMesh - tcolor time: " + sensorData.lastDepthCamColorFrameTime + ", depth time: " + sensorData.lastDepthFrameTime + ", bi time: " + sensorData.lastBodyIndexFrameTime); + } + + bBuildMesh = true; + } + + if (bUpdateMesh) + { + Graphics.CopyTexture(colorTextureBuildMesh, colorTextureUpdateMesh); + mesh.vertices = meshVertices; + + if (!showAsPointCloud) + { + mesh.SetIndices(meshIndices, MeshTopology.Triangles, 0); + } + + mesh.RecalculateBounds(); + //prevUserId = userId; + + bUpdateMesh = false; + //Debug.Log("Mesh updated."); + + if (updateColliderInterval > 0 && (Time.time - lastColliderUpdateTime) >= updateColliderInterval) + { + lastColliderUpdateTime = Time.time; + MeshCollider meshCollider = GetComponent(); + + if (meshCollider) + { + meshCollider.sharedMesh = null; + meshCollider.sharedMesh = mesh; + } + } + } + + } + + + // builds the mesh according to the current + private void BuildMesh() + { + while(!bStopThread) + { + if(!bUpdateMesh) + { + if (bMeshInited && sensorData.depthImage != null && lastSpaceCoordsTime != sensorData.lastDepthFrameTime) + { + if (bBuildMesh) + { + lastSpaceCoordsTime = sensorData.lastDepthFrameTime; + + try + { + int imageWidth1 = imageWidth - 1, imageHeight1 = imageHeight - 1; + int userPosDepth = (int)(userBodyPos.z * 1000f); + + const int maxDistMm = 200; // max distance between vertices in a triangle, in mm + const int maxPosDistMm = 1000; + + if (!showAsPointCloud) + { + System.Array.Clear(meshIndices, 0, meshIndices.Length); + System.Array.Clear(meshVertUsed, 0, meshVertUsed.Length); + } + + for (int y = 0, di = 0, ti = 0; y < imageHeight; y++) + { + for (int x = 0; x < imageWidth; x++, di++, ti += 6) + { + ushort depth = tDepthImage != null ? tDepthImage[di] : (ushort)0; + byte bodyIndex = tBodyIndexImage != null ? tBodyIndexImage[di] : (byte)0; + bool isValidBodyPixel = userId != 0 && bodyIndex == userBodyIndex && Mathf.Abs(depth - userPosDepth) <= maxPosDistMm; + + bool bVertexSet = false; + if (isValidBodyPixel) + { + float fDepth = (float)depth * 0.001f; + Vector3 vVertex = new Vector3(spaceTable[di].x * fDepth * spaceScale.x, spaceTable[di].y * fDepth * spaceScale.y, fDepth); + + bool bUsedVertex = !showAsPointCloud && meshVertUsed[di] != 0; + if (bUsedVertex || isValidBodyPixel) + { + meshVertices[di] = vVertex; + + if (!showAsPointCloud) + { + meshVertUsed[di] = 1; + + if (isValidBodyPixel && x < imageWidth1 && y < imageHeight1) + { + int tl = di; ushort tld = depth; + int tr = tl + 1; ushort trd = tDepthImage != null ? tDepthImage[tr] : (ushort)0; + int bl = tl + imageWidth; ushort bld = tDepthImage != null ? tDepthImage[bl] : (ushort)0; + int br = bl + 1; ushort brd = tDepthImage != null ? tDepthImage[br] : (ushort)0; + + //float fBrDepth = (float)brd * 0.001f; + //Vector3 vVertex2 = new Vector3(spaceTable[br].x * fBrDepth * spaceScale.x, spaceTable[di].y * fBrDepth * spaceScale.y, fBrDepth); + + byte trbi = tBodyIndexImage != null ? tBodyIndexImage[tr] : (byte)0; + byte blbi = tBodyIndexImage != null ? tBodyIndexImage[bl] : (byte)0; + byte brbi = tBodyIndexImage != null ? tBodyIndexImage[br] : (byte)0; + + // 1st triangle + bool isValidBodyQuad = + trbi == userBodyIndex && Mathf.Abs(trd - userPosDepth) <= maxPosDistMm && + blbi == userBodyIndex && Mathf.Abs(bld - userPosDepth) <= maxPosDistMm && + brbi == userBodyIndex && Mathf.Abs(brd - userPosDepth) <= maxPosDistMm; + + if (isValidBodyQuad && + Mathf.Abs(trd - tld) < maxDistMm && Mathf.Abs(bld - tld) < maxDistMm) + { + meshIndices[ti] = bl; + meshIndices[ti + 1] = tr; + meshIndices[ti + 2] = tl; + meshVertUsed[tr] = meshVertUsed[bl] = 1; + } + + // 2nd triangle + if (isValidBodyQuad && + Mathf.Abs(trd - bld) < maxDistMm && Mathf.Abs(brd - bld) < maxDistMm) + { + meshIndices[ti + 3] = br; + meshIndices[ti + 4] = tr; + meshIndices[ti + 5] = bl; + meshVertUsed[bl] = meshVertUsed[tr] = meshVertUsed[br] = 1; + } + } + } + + bVertexSet = true; + } + } + + if (!bVertexSet) + { + meshVertices[di] = Vector3.zero; + + if (!showAsPointCloud) + { + if (meshVertUsed[di] != 0) + { + float fDepth = (float)depth * 0.001f; + Vector3 vVertex = new Vector3(spaceTable[di].x * fDepth * spaceScale.x, spaceTable[di].y * fDepth * spaceScale.y, fDepth); + meshVertices[di] = vVertex; + } + } + } + + } + } + + bBuildMesh = false; + bUpdateMesh = true; + //Debug.Log("Mesh built."); + } + catch (System.Exception ex) + { + Debug.LogException(ex); + } + } + } + + System.Threading.Thread.Sleep(KinectInterop.THREAD_SLEEP_TIME_MS); + } + } + } + + } +} diff --git a/Assets/Azure/KinectScripts/UserMeshRenderer.cs.meta b/Assets/Azure/KinectScripts/UserMeshRenderer.cs.meta new file mode 100644 index 0000000..97f3669 --- /dev/null +++ b/Assets/Azure/KinectScripts/UserMeshRenderer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 685251aedf217d146b64bafb7ebe78d6 +timeCreated: 1455813668 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/UserMeshRendererGpu.cs b/Assets/Azure/KinectScripts/UserMeshRendererGpu.cs new file mode 100644 index 0000000..1259fa1 --- /dev/null +++ b/Assets/Azure/KinectScripts/UserMeshRendererGpu.cs @@ -0,0 +1,591 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using com.rfilkov.kinect; + + +namespace com.rfilkov.components +{ + /// + /// UserMeshRendererGpu renders virtual mesh of a user in the scene, as detected by the given sensor. This component uses GPU for mesh processing rather than CPU. + /// + public class UserMeshRendererGpu : MonoBehaviour + { + [Tooltip("Index of the player, tracked by this component. 0 - the 1st player only, 1 - the 2nd player only, etc.")] + public int playerIndex = 0; + + [Tooltip("Depth sensor index - 0 is the 1st one, 1 - the 2nd one, etc.")] + public int sensorIndex = 0; + + [Tooltip("Resolution of the images used to generate the scene.")] + private DepthSensorBase.PointCloudResolution sourceImageResolution = DepthSensorBase.PointCloudResolution.DepthCameraResolution; + + [Tooltip("Whether to show the mesh as point cloud, or as solid mesh.")] + public bool showAsPointCloud = true; + + [Tooltip("Mesh coarse factor.")] + [Range(1, 4)] + public int coarseFactor = 1; + + [Tooltip("Edge cut-off factor.")] + [Range(0f, 1f)] + public float edgeCutoffFactor = 0.5f; + + [Tooltip("Whether the mesh texture is RGB or infrared.")] + public MeshTextureType meshTexture = MeshTextureType.ColorTexture; + public enum MeshTextureType : int { ColorTexture = 0, InfraredTexture = 1 } + + [Tooltip("If set, the mesh renderer will use this texture for the mesh, instead of the color or IR texture.")] + public Texture externalMeshTexture = null; + + [Tooltip("Time interval between scene mesh updates, in seconds. 0 means no wait.")] + private float updateMeshInterval = 0f; + + [Tooltip("Time interval between mesh-collider updates, in seconds. 0 means no mesh-collider updates.")] + private float updateColliderInterval = 0f; + + [Tooltip("Whether to apply lighting to the mesh, or not.")] + public bool applyLighting = false; + + + // reference to object's mesh + private Mesh mesh = null; + private Transform trans = null; + + // references to KM and data + private KinectManager kinectManager = null; + private KinectInterop.SensorData sensorData = null; + private DepthSensorBase sensorInt = null; + //private Vector3 spaceScale = Vector3.zero; + private Material meshShaderMat = null; + + // space table & buffers + private Vector3[] spaceTable = null; + private ComputeBuffer spaceTableBuffer = null; + private Vector3 sensorSpaceScale = Vector3.zero; + + private ushort[] depthImageCopy = null; + private ComputeBuffer depthImageBuffer = null; + + private byte[] bodyIndexCopy = null; + private ComputeBuffer bodyIndexBuffer = null; + + // render textures + private RenderTexture colorTexture = null; + private RenderTexture colorTextureCopy = null; + private bool colorTextureCreated = false; + //private bool depthBufferCreated = false; + //private bool bodyIndexBufferCreated = false; + + // times + private ulong lastDepthFrameTime = 0; + private float lastMeshUpdateTime = 0f; + private float lastColliderUpdateTime = 0f; + + // user parameters + private ulong userId = 0; + private int userBodyIndex = 255; + private Vector3 userBodyPos = Vector3.zero; + + // image parameters + private int imageWidth = 0; + private int imageHeight = 0; + + // mesh parameters + private bool bMeshInited = false; + private int meshParamsCache = 0; + + // lighting + private FragmentLighting lighting = new FragmentLighting(); + + + void Start() + { + // get sensor data + kinectManager = KinectManager.Instance; + sensorData = (kinectManager != null && kinectManager.IsInitialized()) ? kinectManager.GetSensorData(sensorIndex) : null; + + if (externalMeshTexture == null && meshTexture == MeshTextureType.InfraredTexture && + kinectManager && kinectManager.GetInfraredImageTex(sensorIndex) == null) + { + Debug.LogError("Please set the 'Get Infrared Frames'-setting of KinectManager to 'Infrared texture'."); + } + + // find scene lights + Light[] sceneLights = GameObject.FindObjectsOfType(); + lighting.SetLightsAndBounds(sceneLights, transform.position, new Vector3(20f, 20f, 20f)); + } + + + void OnDestroy() + { + if (bMeshInited) + { + // release the mesh-related resources + FinishMesh(); + } + + // release lighting resources + lighting.ReleaseResources(); + } + + + void Update() + { + if (mesh == null && sensorData != null && sensorData.depthCamIntr != null) + { + // init mesh and its related data + InitMesh(); + } + + if (bMeshInited) + { + // user params + userId = kinectManager.GetUserIdByIndex(playerIndex); + userBodyIndex = userId != 0 ? kinectManager.GetBodyIndexByUserId(userId) : 255; + userBodyPos = userId != 0 ? kinectManager.GetUserKinectPosition(userId, true) : Vector3.zero; + + // update the mesh + UpdateMesh(); + } + } + + + // inits the mesh and related data + private void InitMesh() + { + // create mesh + mesh = new Mesh + { + name = "User" + playerIndex + "Mesh-S" + sensorIndex, + indexFormat = UnityEngine.Rendering.IndexFormat.UInt32 + }; + + MeshFilter meshFilter = GetComponent(); + if (meshFilter != null) + { + meshFilter.mesh = mesh; + } + else + { + Debug.LogWarning("MeshFilter not found! You may not see the mesh on screen"); + } + + // set the color texture + Renderer meshRenderer = GetComponent(); + if (meshRenderer && meshRenderer.material /**&& meshRenderer.material.mainTexture == null*/) + { + Shader meshShader = Shader.Find("Kinect/UserMeshUShader"); // Kinect/UserMeshVShader + if (meshShader != null) + { + meshShaderMat = new Material(meshShader); + meshRenderer.material = meshShaderMat; + } + } + + // get reference to the transform + trans = GetComponent(); + + // get sensor interface + sensorInt = sensorData != null ? (DepthSensorBase)sensorData.sensorInterface : null; + + // create point cloud color texture + if (sensorData != null && sensorInt != null && meshShaderMat != null) + { + Vector2Int imageRes = Vector2Int.zero; + if (sensorInt.pointCloudColorTexture == null) + { + sensorInt.pointCloudResolution = sourceImageResolution; + imageRes = sensorInt.GetPointCloudTexResolution(sensorData); + + //colorTexture = KinectInterop.CreateRenderTexture(colorTexture, imageRes.x, imageRes.y, RenderTextureFormat.ARGB32); + //sensorInt.pointCloudColorTexture = colorTexture; + colorTextureCreated = true; + } + else + { + sourceImageResolution = sensorInt.pointCloudResolution; + imageRes = sensorInt.GetPointCloudTexResolution(sensorData); + colorTexture = sensorInt.pointCloudColorTexture; + colorTextureCreated = false; + } + + // get space scale + sensorSpaceScale = kinectManager.GetSensorSpaceScale(sensorIndex); // kinectManager.GetDepthImageScale(sensorIndex) + + // update textures and buffers + UpdateTexturesAndBuffers(); + + bMeshInited = true; + } + } + + + // updates the textures and buffers, needed by the mesh renderer + private void UpdateTexturesAndBuffers() + { + if (sensorData == null || sensorInt == null) + return; + + // get image resolution + Vector2Int imageRes = sensorInt.GetPointCloudTexResolution(sensorData); + + if (colorTextureCreated && (colorTexture == null || + colorTexture.width != imageRes.x || colorTexture.height != imageRes.y)) + { + colorTexture = KinectInterop.CreateRenderTexture(colorTexture, imageRes.x, imageRes.y, RenderTextureFormat.ARGB32); + sensorInt.pointCloudColorTexture = colorTexture; + //Debug.Log("Created pointCloudColorTexture with resolution " + imageRes); + } + + // create depth image buffer + if (sourceImageResolution == DepthSensorBase.PointCloudResolution.DepthCameraResolution) + { + int depthBufferLength = sensorData.depthImageWidth * sensorData.depthImageHeight >> 1; + + if (depthImageBuffer == null || depthImageBuffer.count != depthBufferLength) + { + depthImageCopy = new ushort[depthBufferLength << 1]; + depthImageBuffer = KinectInterop.CreateComputeBuffer(depthImageBuffer, depthBufferLength, sizeof(uint)); + //Debug.Log("Created depthImageBuffer with length " + depthBufferLength); + } + + //meshShaderMat.SetBuffer("_DepthMap", depthImageBuffer); + } + else + { + int bufferLength = sensorData.colorImageWidth * sensorData.colorImageHeight >> 1; + + if (sensorData.colorDepthBuffer == null || sensorData.colorDepthBuffer.count != bufferLength) + { + sensorData.colorDepthBuffer = KinectInterop.CreateComputeBuffer(sensorData.colorDepthBuffer, bufferLength, sizeof(uint)); + //Debug.Log("Created colorDepthBuffer with length " + bufferLength); + } + + //meshShaderMat.SetBuffer("_DepthMap", sensorData.colorDepthBuffer); + + if (externalMeshTexture == null && meshTexture == MeshTextureType.InfraredTexture) + { + if (sensorData.colorInfraredBuffer == null || sensorData.colorInfraredBuffer.count != bufferLength) + { + sensorData.colorInfraredBuffer = KinectInterop.CreateComputeBuffer(sensorData.colorInfraredBuffer, bufferLength, sizeof(uint)); + //Debug.Log("Created colorInfraredBuffer with length " + bufferLength); + } + } + } + + // create body index buffer + if (sourceImageResolution == DepthSensorBase.PointCloudResolution.DepthCameraResolution) + { + int bodyIndexBufferLength = sensorData.depthImageWidth * sensorData.depthImageHeight >> 2; + + if (bodyIndexBuffer == null || bodyIndexBuffer.count != bodyIndexBufferLength) + { + bodyIndexCopy = new byte[bodyIndexBufferLength << 2]; + bodyIndexBuffer = KinectInterop.CreateComputeBuffer(bodyIndexBuffer, bodyIndexBufferLength, sizeof(uint)); + //Debug.Log("Created bodyIndexBuffer with length " + bodyIndexBufferLength); + } + + //meshShaderMat.SetBuffer("_BodyIndexMap", bodyIndexBuffer); + } + else + { + int bufferLength = sensorData.colorImageWidth * sensorData.colorImageHeight >> 2; + + if (sensorData.colorBodyIndexBuffer == null || sensorData.colorBodyIndexBuffer.count != bufferLength) + { + sensorData.colorBodyIndexBuffer = new ComputeBuffer(bufferLength, sizeof(uint)); + //Debug.Log("Created colorBodyIndexBuffer with length " + bufferLength); + } + + //meshShaderMat.SetBuffer("_BodyIndexMap", sensorData.colorBodyIndexBuffer); + } + + if (colorTextureCopy == null || colorTextureCopy.width != imageRes.x || colorTextureCopy.height != imageRes.y) + { + // create copy texture + colorTextureCopy = KinectInterop.CreateRenderTexture(colorTextureCopy, imageRes.x, imageRes.y, RenderTextureFormat.ARGB32); + //Debug.Log("Created colorTextureCopy with resolution " + imageRes); + } + + if (spaceTableBuffer == null || imageWidth != imageRes.x || imageHeight != imageRes.y) + { + // create space table + spaceTable = sensorInt.pointCloudResolution == DepthSensorBase.PointCloudResolution.DepthCameraResolution ? + sensorInt.GetDepthCameraSpaceTable(sensorData) : sensorInt.GetColorCameraSpaceTable(sensorData); + + int spaceBufferLength = imageRes.x * imageRes.y * 3; + spaceTableBuffer = KinectInterop.CreateComputeBuffer(spaceTableBuffer, spaceBufferLength, sizeof(float)); + spaceTableBuffer.SetData(spaceTable); + spaceTable = null; + + //Debug.Log("Created spaceTable for resolution " + imageRes); + } + + // create mesh vertices & indices + if (imageWidth != imageRes.x || imageHeight != imageRes.y) + { + CreateMeshVertInd(imageRes.x, imageRes.y); + } + + // image width & height + imageWidth = imageRes.x; + imageHeight = imageRes.y; + } + + + // creates the mesh vertices and indices + private void CreateMeshVertInd(int imageWidth, int imageHeight) + { + int xVerts = (imageWidth / coarseFactor); // + 1; + int yVerts = (imageHeight / coarseFactor); // + 1; + int vCount = xVerts * yVerts; + //Debug.Log("xVerts: " + xVerts + ", yVerts: " + yVerts + ", vCount: " + vCount); + + // mesh vertices + mesh.Clear(); + mesh.indexFormat = UnityEngine.Rendering.IndexFormat.UInt32; + + Vector3[] meshVertices = new Vector3[vCount]; + Vector3[] meshNormals = new Vector3[vCount]; + Vector2[] meshUv = new Vector2[vCount]; + + float vsx = (float)coarseFactor / (float)imageWidth; + float vsy = (float)coarseFactor / (float)imageHeight; + + for (int y = 0, vi = 0; y < yVerts; y++) + { + for (int x = 0; x < xVerts; x++, vi++) + { + meshVertices[vi] = new Vector3(x * vsx, y * vsy, 0f); + meshNormals[vi] = new Vector3(0f, 1f, 0f); // 0f, 0f, -1f + meshUv[vi] = new Vector2(x * vsx, y * vsy); + } + } + + mesh.vertices = meshVertices; + mesh.normals = meshNormals; + mesh.uv = meshUv; + + // mesh indices + if (showAsPointCloud) + { + int[] meshIndices = new int[vCount]; + for (int i = 0; i < vCount; i++) + meshIndices[i] = i; + + mesh.SetIndices(meshIndices, MeshTopology.Points, 0); + } + else + { + int[] meshIndices = new int[(xVerts - 1) * (yVerts - 1) * 6]; + for (int y = 0, ii = 0; y < (yVerts - 1); y++) + { + for (int x = 0; x < (xVerts - 1); x++) + { + meshIndices[ii++] = (y + 1) * xVerts + x; + meshIndices[ii++] = y * xVerts + x + 1; + meshIndices[ii++] = y * xVerts + x; + + meshIndices[ii++] = (y + 1) * xVerts + x + 1; + meshIndices[ii++] = y * xVerts + x + 1; + meshIndices[ii++] = (y + 1) * xVerts + x; + } + } + + mesh.SetIndices(meshIndices, MeshTopology.Triangles, 0); + } + + meshParamsCache = coarseFactor + (showAsPointCloud ? 10 : 0); + } + + + // releases mesh-related resources + private void FinishMesh() + { + if (sensorInt) + { + sensorInt.pointCloudColorTexture = null; + } + + if(depthImageBuffer != null /**&& depthBufferCreated*/) + { + depthImageCopy = null; + + depthImageBuffer.Release(); + depthImageBuffer.Dispose(); + depthImageBuffer = null; + } + + if (sensorData.colorDepthBuffer != null /**&& depthBufferCreated*/) + { + sensorData.colorDepthBuffer.Release(); + sensorData.colorDepthBuffer.Dispose(); + sensorData.colorDepthBuffer = null; + } + + if (sensorData.colorInfraredBuffer != null) + { + sensorData.colorInfraredBuffer.Release(); + sensorData.colorInfraredBuffer.Dispose(); + sensorData.colorInfraredBuffer = null; + } + + if (bodyIndexBuffer != null /**&& bodyIndexBufferCreated*/) + { + bodyIndexCopy = null; + + bodyIndexBuffer.Release(); + bodyIndexBuffer.Dispose(); + bodyIndexBuffer = null; + } + + if (sensorData.colorBodyIndexBuffer != null /**&& bodyIndexBufferCreated*/) + { + sensorData.colorBodyIndexBuffer.Release(); + sensorData.colorBodyIndexBuffer.Dispose(); + sensorData.colorBodyIndexBuffer = null; + } + + if (colorTexture && colorTextureCreated) + { + colorTexture.Release(); + colorTexture = null; + } + + if (colorTextureCopy) + { + colorTextureCopy.Release(); + colorTextureCopy = null; + } + + if (spaceTableBuffer != null) + { + spaceTableBuffer.Dispose(); + spaceTableBuffer = null; + } + + bMeshInited = false; + } + + + // updates the mesh according to current depth frame + private void UpdateMesh() + { + if (bMeshInited && colorTexture != null && sensorData.depthImage != null && sensorData.depthCamIntr != null && meshShaderMat != null && + lastDepthFrameTime != sensorData.lastDepthFrameTime && (Time.time - lastMeshUpdateTime) >= updateMeshInterval) + { + lastDepthFrameTime = sensorData.lastDepthFrameTime; + lastMeshUpdateTime = Time.time; + + // update textures and buffers + UpdateTexturesAndBuffers(); + + int paramsCache = coarseFactor + (showAsPointCloud ? 10 : 0); + if (meshParamsCache != paramsCache) + { + //Debug.Log("Mesh params changed. Recreating..."); + CreateMeshVertInd(imageWidth, imageHeight); + } + + if (depthImageBuffer != null && sensorData.depthImage != null /**&& depthBufferCreated*/) + { + KinectInterop.CopyBytes(sensorData.depthImage, sizeof(ushort), depthImageCopy, sizeof(ushort)); + + int depthBufferLength = sensorData.depthImageWidth * sensorData.depthImageHeight / 2; + KinectInterop.SetComputeBufferData(depthImageBuffer, depthImageCopy, depthBufferLength, sizeof(uint)); + } + + if (bodyIndexBuffer != null && sensorData.bodyIndexImage != null /**&& bodyIndexBufferCreated*/) + { + KinectInterop.CopyBytes(sensorData.bodyIndexImage, sizeof(byte), bodyIndexCopy, sizeof(byte)); + + int bodyIndexBufferLength = sensorData.depthImageWidth * sensorData.depthImageHeight / 4; + KinectInterop.SetComputeBufferData(bodyIndexBuffer, bodyIndexCopy, bodyIndexBufferLength, sizeof(uint)); + } + + if (externalMeshTexture != null) + { + // use the external texture + Graphics.Blit(externalMeshTexture, colorTextureCopy); + } + else + { + switch (meshTexture) + { + case MeshTextureType.ColorTexture: + if (colorTexture != null) + Graphics.CopyTexture(colorTexture, colorTextureCopy); + break; + + case MeshTextureType.InfraredTexture: + Texture infraredTexture = sensorInt.pointCloudResolution == DepthSensorBase.PointCloudResolution.DepthCameraResolution ? + sensorData.infraredImageTexture : sensorData.colorInfraredTexture; + if (infraredTexture != null) + Graphics.CopyTexture(infraredTexture, colorTextureCopy); + break; + } + } + + if (sourceImageResolution == DepthSensorBase.PointCloudResolution.DepthCameraResolution) + { + meshShaderMat.SetBuffer("_DepthMap", depthImageBuffer); + meshShaderMat.SetBuffer("_BodyIndexMap", bodyIndexBuffer); + } + else + { + meshShaderMat.SetBuffer("_DepthMap", sensorData.colorDepthBuffer); + meshShaderMat.SetBuffer("_BodyIndexMap", sensorData.colorBodyIndexBuffer); + } + + meshShaderMat.SetTexture("_ColorTex", colorTextureCopy); + meshShaderMat.SetVector("_SpaceScale", sensorSpaceScale); + meshShaderMat.SetBuffer("_SpaceTable", spaceTableBuffer); + + meshShaderMat.SetVector("_TexRes", new Vector2(imageWidth, imageHeight)); + //meshShaderMat.SetVector("_Cxy", new Vector2(sensorData.depthCamIntr.ppx, sensorData.depthCamIntr.ppy)); + //meshShaderMat.SetVector("_Fxy", new Vector2(sensorData.depthCamIntr.fx, sensorData.depthCamIntr.fy)); + + meshShaderMat.SetInt("_CoarseFactor", coarseFactor); + meshShaderMat.SetInt("_IsPointCloud", showAsPointCloud ? 1 : 0); + meshShaderMat.SetFloat("_CutoffFactor", Mathf.Pow(edgeCutoffFactor, 6)); + + meshShaderMat.SetInt("_BodyIndexAll", playerIndex < 0 ? 1 : 0); + meshShaderMat.SetInt("_UserBodyIndex", userBodyIndex); + meshShaderMat.SetVector("_UserBodyPos", userBodyPos); + meshShaderMat.SetMatrix("_Transform", sensorInt.GetSensorToWorldMatrix()); + + // mesh bounds + if (kinectManager.GetUserBoundingBox(userId, null, sensorIndex, Rect.zero, out Vector3 posMin, out Vector3 posMax)) + { + Vector3 boundsCenter = new Vector3((posMax.x - posMin.x) / 2f, (posMax.y - posMin.y) / 2f, (posMax.z /**- posMin.z*/) / 2f); + Vector3 boundsSize = new Vector3((posMax.x - posMin.x), (posMax.y - posMin.y), (posMax.z /**- posMin.z*/)); + mesh.bounds = new Bounds(boundsCenter, boundsSize); + //Debug.Log("Bounds center: " + mesh.bounds.center + ", size: " + mesh.bounds.size); + } + else if (mesh.bounds.size.z == 0f) + { + mesh.bounds = new Bounds(Vector3.zero, new Vector3(10, 10, 10)); + //Debug.Log("Bounds center: " + mesh.bounds.center + ", size: " + mesh.bounds.size); + } + + // update lighting parameters + lighting.UpdateLighting(meshShaderMat, applyLighting); + + if (updateColliderInterval > 0 && (Time.time - lastColliderUpdateTime) >= updateColliderInterval) + { + lastColliderUpdateTime = Time.time; + MeshCollider meshCollider = GetComponent(); + + if (meshCollider) + { + meshCollider.sharedMesh = null; + meshCollider.sharedMesh = mesh; + } + } + + } + } + + } +} diff --git a/Assets/Azure/KinectScripts/UserMeshRendererGpu.cs.meta b/Assets/Azure/KinectScripts/UserMeshRendererGpu.cs.meta new file mode 100644 index 0000000..a5e4c00 --- /dev/null +++ b/Assets/Azure/KinectScripts/UserMeshRendererGpu.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e27aa16e02fb25e4abcd05bb2e505de7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/KinectScripts/UserSkeletonCollider.cs b/Assets/Azure/KinectScripts/UserSkeletonCollider.cs new file mode 100644 index 0000000..d7a1b5d --- /dev/null +++ b/Assets/Azure/KinectScripts/UserSkeletonCollider.cs @@ -0,0 +1,241 @@ +using UnityEngine; +using System.Collections; +using com.rfilkov.kinect; + + +namespace com.rfilkov.components +{ + /// + /// UserSkeletonCollider creates colliders for the joints and bones of the given user, so they can interact with the physical objects in the scene. + /// + public class UserSkeletonCollider : MonoBehaviour + { + [Tooltip("Index of the player, tracked by this component. 0 means the 1st player, 1 - the 2nd one, 2 - the 3rd one, etc.")] + public int playerIndex = 0; + + [Tooltip("Radius of the sphere and capsule colliders, in meters.")] + [Range(0f, 0.1f)] + public float colliderRadius = 0.02f; + + [Tooltip("Scene object that will be used to represent the sensor's position and rotation in the scene.")] + public Transform sensorTransform; + + [Tooltip("Depth sensor index, if this components uses sensor transform - 0 is the 1st one, 1 - the 2nd one, etc.")] + public int sensorIndex = 0; + + [Tooltip("Whether to follow the sensor's depth or color camera pose, if this components uses sensor transform.")] + public ReferencePose referencePose = ReferencePose.DepthCameraPose; + public enum ReferencePose : int { DepthCameraPose = 0, ColorCameraPose = 1 }; + + //[Tooltip("Body scale factors in X,Y,Z directions.")] + //private Vector3 scaleFactors = Vector3.one; + + //public UnityEngine.UI.Text debugText; + + + private GameObject[] joints = null; + //private LineRenderer[] lines = null; + private GameObject[] lines = null; + private CapsuleCollider[] lineColliders = null; + + //private Quaternion initialRotation = Quaternion.identity; + + // reference to KM + KinectManager kinectManager = null; + + + void Start() + { + kinectManager = KinectManager.Instance; + + if (kinectManager && kinectManager.IsInitialized()) + { + int jointCount = kinectManager.GetJointCount(); + + // array holding the skeleton joints + joints = new GameObject[jointCount]; + + for (int i = 0; i < joints.Length; i++) + { + string sColObjectName = ((KinectInterop.JointType)i).ToString() + "JointCollider"; + joints[i] = new GameObject(sColObjectName); + joints[i].transform.parent = transform; + + SphereCollider collider = joints[i].AddComponent(); + collider.radius = colliderRadius; + + joints[i].SetActive(false); + } + + // array holding the skeleton lines + lines = new GameObject[jointCount]; + lineColliders = new CapsuleCollider[jointCount]; + } + + // always mirrored + //initialRotation = Quaternion.Euler(new Vector3(0f, 180f, 0f)); + } + + void Update() + { + if (kinectManager && kinectManager.IsInitialized()) + { + int jointsCount = kinectManager.GetJointCount(); + + // overlay all joints in the skeleton + if (kinectManager.IsUserDetected(playerIndex)) + { + ulong userId = kinectManager.GetUserIdByIndex(playerIndex); + + for (int i = 0; i < jointsCount; i++) + { + int joint = i; + + if (kinectManager.IsJointTracked(userId, joint)) + { + Vector3 posJoint = GetJointPosition(userId, joint); // !sensorTransform ? kinectManager.GetJointPosition(userId, joint) : kinectManager.GetJointKinectPosition(userId, joint, true); + //posJoint = new Vector3(posJoint.x * scaleFactors.x, posJoint.y * scaleFactors.y, posJoint.z * scaleFactors.z); + + if (sensorTransform) + { + posJoint = sensorTransform.TransformPoint(posJoint); + } + + if (joints != null) + { + // overlay the joint + if (posJoint != Vector3.zero) + { + joints[i].SetActive(true); + joints[i].transform.position = posJoint; + } + else + { + joints[i].SetActive(false); + } + } + + if (lines[i] == null) + { + string sColObjectName = ((KinectInterop.JointType)i).ToString() + "BoneCollider"; + lines[i] = new GameObject(sColObjectName); + lines[i].transform.parent = transform; + + CapsuleCollider collider = lines[i].AddComponent(); + collider.radius = colliderRadius; + lineColliders[i] = collider; + + lines[i].gameObject.SetActive(false); + } + + if (lines[i] != null) + { + // overlay the line to the parent joint + int jointParent = (int)kinectManager.GetParentJoint((KinectInterop.JointType)joint); + Vector3 posParent = Vector3.zero; + + if (kinectManager.IsJointTracked(userId, jointParent)) + { + posParent = GetJointPosition(userId, jointParent); // !sensorTransform ? kinectManager.GetJointPosition(userId, jointParent) : kinectManager.GetJointKinectPosition(userId, jointParent, true); + //posJoint = new Vector3(posJoint.x * scaleFactors.x, posJoint.y * scaleFactors.y, posJoint.z * scaleFactors.z); + + if (sensorTransform) + { + posParent = sensorTransform.TransformPoint(posParent); + } + } + + if (posJoint != Vector3.zero && posParent != Vector3.zero) + { + lines[i].gameObject.SetActive(true); + + Vector3 dirFromParent = posJoint - posParent; + + lines[i].transform.position = posParent + dirFromParent / 2f; + lines[i].transform.up = /**transform.rotation * */ dirFromParent.normalized; + + if(lineColliders[i] != null) + { + lineColliders[i].height = dirFromParent.magnitude; + } + } + else + { + lines[i].gameObject.SetActive(false); + } + } + + } + else + { + if (joints != null) + { + joints[i].SetActive(false); + } + + if (lines[i] != null) + { + lines[i].gameObject.SetActive(false); + } + } + } + + } + else + { + // user not found - hide all colliders + for (int i = 0; i < jointsCount; i++) + { + if (joints != null) + { + joints[i].SetActive(false); + } + + if (lines[i] != null) + { + lines[i].gameObject.SetActive(false); + } + } + } + + } + } + + // returns body joint position + private Vector3 GetJointPosition(ulong userId, int joint) + { + Vector3 posJoint = Vector3.zero; + + if (sensorTransform) + { + int bodyIndex = kinectManager.GetBodyIndexByUserId(userId); + posJoint = kinectManager.GetSensorJointKinectPosition(sensorIndex, bodyIndex, joint, true); + + if(referencePose == ReferencePose.ColorCameraPose) + { + KinectInterop.SensorData sensorData = kinectManager.GetSensorData(sensorIndex); + + if(sensorData != null) + { + Vector3 spaceScale = sensorData.sensorSpaceScale; + float u2mScale = sensorData.unitToMeterFactor; + float m2uScale = 1f / u2mScale; + + posJoint = new Vector3(posJoint.x * spaceScale.x * m2uScale, posJoint.y * spaceScale.y * m2uScale, posJoint.z * spaceScale.z * m2uScale); + posJoint = kinectManager.SensorTransformPoint(sensorIndex, sensorData.depth2ColorExtr, posJoint); + posJoint = new Vector3(posJoint.x * spaceScale.x * u2mScale, posJoint.y * spaceScale.y * u2mScale, posJoint.z * spaceScale.z * u2mScale); + } + } + } + else + { + posJoint = kinectManager.GetJointPosition(userId, joint); + } + + return posJoint; + } + + + } +} + diff --git a/Assets/Azure/KinectScripts/UserSkeletonCollider.cs.meta b/Assets/Azure/KinectScripts/UserSkeletonCollider.cs.meta new file mode 100644 index 0000000..1752779 --- /dev/null +++ b/Assets/Azure/KinectScripts/UserSkeletonCollider.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9f2b9e1ab120cbb4abb345fbec4f65f3 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Azure/Resources.meta b/Assets/Azure/Resources.meta new file mode 100644 index 0000000..d2180b9 --- /dev/null +++ b/Assets/Azure/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c6b60aafbf5f28d4192d2aa7b756df3c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/BackgroundRenderShader.shader b/Assets/Azure/Resources/BackgroundRenderShader.shader new file mode 100644 index 0000000..f7230e9 --- /dev/null +++ b/Assets/Azure/Resources/BackgroundRenderShader.shader @@ -0,0 +1,41 @@ +Shader "Kinect/BackgroundRenderShader" { + + Properties{ + _Color ("Main Color", Color) = (1,1,1,1) + _MainTex("Color (RGB)", 2D) = "white" {} + _AlphaTex("Alpha (RGB)", 2D) = "white" {} + + } + + SubShader{ + Tags{ "Queue" = "Transparent" "RenderType" = "Transparent" } + + CGPROGRAM + #pragma surface surf NoLighting alpha + fixed4 _Color; + + fixed4 LightingNoLighting(SurfaceOutput s, fixed3 lightDir, fixed atten) { + fixed4 c; + //c.rgb = s.Albedo; + c.rgb = s.Albedo*0.5f; + c.a = s.Alpha; + return c; + } + + struct Input { + float2 uv_MainTex; + float2 uv_AlphaTex; + }; + + sampler2D _MainTex; + sampler2D _AlphaTex; + + void surf(Input IN, inout SurfaceOutput o) { + o.Albedo = tex2D(_MainTex, IN.uv_MainTex).rgb * _Color; + o.Alpha = tex2D(_AlphaTex, IN.uv_AlphaTex).a; + } + + ENDCG + } + +} \ No newline at end of file diff --git a/Assets/Azure/Resources/BackgroundRenderShader.shader.meta b/Assets/Azure/Resources/BackgroundRenderShader.shader.meta new file mode 100644 index 0000000..951d018 --- /dev/null +++ b/Assets/Azure/Resources/BackgroundRenderShader.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 81c8678d683e46e46b0c7653a2f9f307 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/BlurShader.shader b/Assets/Azure/Resources/BlurShader.shader new file mode 100644 index 0000000..23d91d5 --- /dev/null +++ b/Assets/Azure/Resources/BlurShader.shader @@ -0,0 +1,77 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Kinect/BlurShader" { + Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} + _PixOffset ("Pixel Offset", Range(0, 10)) = 3 + _PixStep ("Pixel Step", Range(1, 5)) = 2 + } + + CGINCLUDE + #pragma target 5.0 + + #include "UnityCG.cginc" + + sampler2D _MainTex; + half4 _MainTex_TexelSize; + + int _PixOffset; + int _PixStep; + + struct v2f_off { + float4 pos : POSITION; + half2 uvc : TEXCOORD0; + }; + + v2f_off vertOff (appdata_img v) + { + v2f_off o; + + o.pos = UnityObjectToClipPos (v.vertex); + //o.uvc = TRANSFORM_TEX(v.texcoord.xy, _MainTex); + o.uvc = v.texcoord.xy; + + return o; + } + + half4 fragOff (v2f_off i) : COLOR + { + //int rcCount = 2 * _PixOffset + 1; + half2 texUv = i.uvc + half2(_MainTex_TexelSize.x * -_PixOffset, _MainTex_TexelSize.y * -_PixOffset); + + half4 newCol = 0; + int pixCount = 0; + + for (int iY = -_PixOffset; iY <= _PixOffset; iY += _PixStep) + { + for (int iX = -_PixOffset; iX <= _PixOffset; iX += _PixStep) + { + half4 texCol = tex2D(_MainTex, texUv); + newCol += texCol * 2.0 * texCol.a; + pixCount += 1 + (int)texCol.a; + + texUv.x += _MainTex_TexelSize.x * _PixStep; + } + + texUv.x = i.uvc.x + (_MainTex_TexelSize.x * -_PixOffset); + texUv.y += _MainTex_TexelSize.y * _PixStep; + } + + newCol = newCol / pixCount; + + return newCol; + } + + ENDCG + + SubShader { + ZTest Always Cull Off ZWrite Off + pass { + CGPROGRAM + #pragma vertex vertOff + #pragma fragment fragOff +// #pragma target 3.0 + ENDCG + } + } +} diff --git a/Assets/Azure/Resources/BlurShader.shader.meta b/Assets/Azure/Resources/BlurShader.shader.meta new file mode 100644 index 0000000..25e5f18 --- /dev/null +++ b/Assets/Azure/Resources/BlurShader.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 36f1cedf05b658845bdf246db06caded +timeCreated: 1430777022 +licenseType: Store +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/ColorBodyIndexShaderK2.compute b/Assets/Azure/Resources/ColorBodyIndexShaderK2.compute new file mode 100644 index 0000000..b8ba8ea --- /dev/null +++ b/Assets/Azure/Resources/ColorBodyIndexShaderK2.compute @@ -0,0 +1,145 @@ +#pragma kernel BakeColorBodyIndex + +uint2 _ColorRes; +uint2 _DepthRes; + +StructuredBuffer _BodyIndexMap; +StructuredBuffer _Color2DepthMap; +//Texture2D _ColorTex; + +RWStructuredBuffer _ColorBodyIndexMap; + + +[numthreads(8, 8, 1)] +void BakeColorBodyIndex(uint3 id : SV_DispatchThreadID) +{ + //if (id.x & 1 == 0) + { + uint ci = id.x + id.y * _ColorRes.x; + uint bi = 255; + + // bi0 + if (!isinf(_Color2DepthMap[ci << 1])) + { + int dx = _Color2DepthMap[ci << 1]; + int dy = _Color2DepthMap[(ci << 1) + 1]; + + uint di = dx + dy * _DepthRes.x; + uint bi4 = _BodyIndexMap[di >> 2]; + + switch (di & 3) + { + case 0: + bi = bi4 & 255; + break; + case 1: + bi = (bi4 >> 8) & 255; + break; + case 2: + bi = (bi4 >> 16) & 255; + break; + case 3: + bi = (bi4 >> 24) & 255; + break; + } + } + + uint bi0 = bi; + + // bi1 + ci++; + bi = 255; + + if (!isinf(_Color2DepthMap[ci << 1])) + { + int dx = _Color2DepthMap[ci << 1]; + int dy = _Color2DepthMap[(ci << 1) + 1]; + + uint di = dx + dy * _DepthRes.x; + uint bi4 = _BodyIndexMap[di >> 2]; + + switch (di & 3) + { + case 0: + bi = bi4 & 255; + break; + case 1: + bi = (bi4 >> 8) & 255; + break; + case 2: + bi = (bi4 >> 16) & 255; + break; + case 3: + bi = (bi4 >> 24) & 255; + break; + } + } + + uint bi1 = bi << 8; + + // bi2 + ci++; + bi = 255; + + if (!isinf(_Color2DepthMap[ci << 1])) + { + int dx = _Color2DepthMap[ci << 1]; + int dy = _Color2DepthMap[(ci << 1) + 1]; + + uint di = dx + dy * _DepthRes.x; + uint bi4 = _BodyIndexMap[di >> 2]; + + switch (di & 3) + { + case 0: + bi = bi4 & 255; + break; + case 1: + bi = (bi4 >> 8) & 255; + break; + case 2: + bi = (bi4 >> 16) & 255; + break; + case 3: + bi = (bi4 >> 24) & 255; + break; + } + } + + uint bi2 = bi << 16; + + // bi3 + ci++; + bi = 255; + + if (!isinf(_Color2DepthMap[ci << 1])) + { + int dx = _Color2DepthMap[ci << 1]; + int dy = _Color2DepthMap[(ci << 1) + 1]; + + uint di = dx + dy * _DepthRes.x; + uint bi4 = _BodyIndexMap[di >> 2]; + + switch (di & 3) + { + case 0: + bi = bi4 & 255; + break; + case 1: + bi = (bi4 >> 8) & 255; + break; + case 2: + bi = (bi4 >> 16) & 255; + break; + case 3: + bi = (bi4 >> 24) & 255; + break; + } + } + + uint bi3 = bi << 24; + + _ColorBodyIndexMap[ci >> 2] = (bi0 | bi1 | bi2 | bi3); + } +} + diff --git a/Assets/Azure/Resources/ColorBodyIndexShaderK2.compute.meta b/Assets/Azure/Resources/ColorBodyIndexShaderK2.compute.meta new file mode 100644 index 0000000..03d7077 --- /dev/null +++ b/Assets/Azure/Resources/ColorBodyIndexShaderK2.compute.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a3b59bd7fe613f34b98bc0107644138b +ComputeShaderImporter: + externalObjects: {} + currentAPIMask: 2097152 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/ColorDepthShaderK2.compute b/Assets/Azure/Resources/ColorDepthShaderK2.compute new file mode 100644 index 0000000..5c74241 --- /dev/null +++ b/Assets/Azure/Resources/ColorDepthShaderK2.compute @@ -0,0 +1,53 @@ +#pragma kernel BakeColorDepth + +uint2 _ColorRes; +uint2 _DepthRes; + +StructuredBuffer _DepthMap; +StructuredBuffer _Color2DepthMap; +//Texture2D _ColorTex; + +RWStructuredBuffer _ColorDepthMap; + + +[numthreads(8, 8, 1)] +void BakeColorDepth(uint3 id : SV_DispatchThreadID) +{ + //if (id.x & 1 == 0) + { + // depth0 + uint ci = id.x + id.y * _ColorRes.x; + uint depth = 0; + + if (!isinf(_Color2DepthMap[ci << 1])) + { + int dx = _Color2DepthMap[ci << 1]; + int dy = _Color2DepthMap[(ci << 1) + 1]; + + uint di = dx + dy * _DepthRes.x; + uint depth2 = _DepthMap[di >> 1]; + depth = di & 1 != 0 ? depth2 >> 16 : depth2 & 0xffff; + } + + uint cdepth0 = depth; + + // depth1 + uint ci1 = ci + 1; + depth = 0; + + if (!isinf(_Color2DepthMap[ci1 << 1])) + { + int dx = _Color2DepthMap[ci1 << 1]; + int dy = _Color2DepthMap[(ci1 << 1) + 1]; + + uint di = dx + dy * _DepthRes.x; + uint depth2 = _DepthMap[di >> 1]; + depth = di & 1 != 0 ? depth2 >> 16 : depth2 & 0xffff; + } + + uint cdepth1 = depth << 16; + + _ColorDepthMap[ci >> 1] = cdepth0 | cdepth1; + } +} + diff --git a/Assets/Azure/Resources/ColorDepthShaderK2.compute.meta b/Assets/Azure/Resources/ColorDepthShaderK2.compute.meta new file mode 100644 index 0000000..4e64bbe --- /dev/null +++ b/Assets/Azure/Resources/ColorDepthShaderK2.compute.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2c67d59386b9ed5488e27990f858ca77 +ComputeShaderImporter: + externalObjects: {} + currentAPIMask: 2097152 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/ColorInfraredShaderK2.compute b/Assets/Azure/Resources/ColorInfraredShaderK2.compute new file mode 100644 index 0000000..912f911 --- /dev/null +++ b/Assets/Azure/Resources/ColorInfraredShaderK2.compute @@ -0,0 +1,52 @@ +#pragma kernel BakeColorInfrared + +uint2 _ColorRes; +uint2 _DepthRes; + +StructuredBuffer _InfraredMap; +StructuredBuffer _Color2DepthMap; + +RWStructuredBuffer _ColorInfraredMap; + + +[numthreads(8, 8, 1)] +void BakeColorInfrared(uint3 id : SV_DispatchThreadID) +{ + //if (id.x & 1 == 0) + { + // depth0 + uint ci = id.x + id.y * _ColorRes.x; + uint ir = 0; + + if (!isinf(_Color2DepthMap[ci << 1])) + { + int dx = _Color2DepthMap[ci << 1]; + int dy = _Color2DepthMap[(ci << 1) + 1]; + + uint di = dx + dy * _DepthRes.x; + uint ir2 = _InfraredMap[di >> 1]; + ir = di & 1 != 0 ? ir2 >> 16 : ir2 & 0xffff; + } + + uint cir0 = ir; + + // depth1 + uint ci1 = ci + 1; + ir = 0; + + if (!isinf(_Color2DepthMap[ci1 << 1])) + { + int dx = _Color2DepthMap[ci1 << 1]; + int dy = _Color2DepthMap[(ci1 << 1) + 1]; + + uint di = dx + dy * _DepthRes.x; + uint ir2 = _InfraredMap[di >> 1]; + ir = di & 1 != 0 ? ir2 >> 16 : ir2 & 0xffff; + } + + uint cir1 = ir << 16; + + _ColorInfraredMap[ci >> 1] = cir0 | cir1; + } +} + diff --git a/Assets/Azure/Resources/ColorInfraredShaderK2.compute.meta b/Assets/Azure/Resources/ColorInfraredShaderK2.compute.meta new file mode 100644 index 0000000..f2a3200 --- /dev/null +++ b/Assets/Azure/Resources/ColorInfraredShaderK2.compute.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 227275dfa52250d45835d43bdf37296d +ComputeShaderImporter: + externalObjects: {} + currentAPIMask: 2097152 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/DefSensorInterface.json.txt b/Assets/Azure/Resources/DefSensorInterface.json.txt new file mode 100644 index 0000000..dcb7cd0 --- /dev/null +++ b/Assets/Azure/Resources/DefSensorInterface.json.txt @@ -0,0 +1,16 @@ +{ + "sensorType": "Kinect4Azure", + "sensorInterface": "com.rfilkov.kinect.Kinect4AzureInterface", + "sensorIntSettings": "", + "sensorIntVersion": "1.0", + "transformPos": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "transformRot": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } +} \ No newline at end of file diff --git a/Assets/Azure/Resources/DefSensorInterface.json.txt.meta b/Assets/Azure/Resources/DefSensorInterface.json.txt.meta new file mode 100644 index 0000000..88711a5 --- /dev/null +++ b/Assets/Azure/Resources/DefSensorInterface.json.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: eda8e5e0fceb9423caea338275c5757c +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/DepthHistImageShader.shader b/Assets/Azure/Resources/DepthHistImageShader.shader new file mode 100644 index 0000000..706102f --- /dev/null +++ b/Assets/Azure/Resources/DepthHistImageShader.shader @@ -0,0 +1,78 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Kinect/DepthHistImageShader" { + Properties { + //_MainTex ("Base (RGB)", 2D) = "white" {} + _FrontColor("Front color", Color) = (1, 1, 0, 1) + _BackColor("Back color", Color) = (0, 0, 1, 1) + _InvalidColor("Invalid color", Color) = (0, 0, 0, 0) + } + + SubShader { + Pass { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + #pragma target 5.0 + //#pragma enable_d3d11_debug_symbols + + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + + //uniform sampler2D _MainTex; + uniform uint _TexResX; + uniform uint _TexResY; + uniform uint _MinDepth; + uniform uint _MaxDepth; + uniform uint _TotalPoints; + + uniform float4 _FrontColor; + uniform float4 _BackColor; + uniform float4 _InvalidColor; + + StructuredBuffer _DepthMap; + StructuredBuffer _HistMap; + + struct v2f { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + }; + + v2f vert (appdata_base v) + { + v2f o; + + o.pos = UnityObjectToClipPos (v.vertex); + o.uv = v.texcoord; + + return o; + } + + float4 frag (v2f i) : COLOR + { + uint dx = (uint)(i.uv.x * _TexResX); + uint dy = (uint)(i.uv.y * _TexResY); + uint di = (dx + dy * _TexResX); + + //return float4((float)dx / (float)_TexResX, (float)dy / (float)_TexResY, 0, 1); + + uint depth2 = _DepthMap[di >> 1]; + uint depth = di & 1 != 0 ? depth2 >> 16 : depth2 & 0xffff; + depth = (depth >= _MinDepth && depth <= _MaxDepth) * depth; + + float hist = 1.0 - ((float)_HistMap[depth] / (float)_TotalPoints); + float4 clr = lerp(_BackColor, _FrontColor, hist); + + //return float4(hist, hist, 0, 1); // yellow + return depth > 0 ? clr : _InvalidColor; + } + + ENDCG + } + } + + Fallback Off +} \ No newline at end of file diff --git a/Assets/Azure/Resources/DepthHistImageShader.shader.meta b/Assets/Azure/Resources/DepthHistImageShader.shader.meta new file mode 100644 index 0000000..8c097d8 --- /dev/null +++ b/Assets/Azure/Resources/DepthHistImageShader.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c8db7527c3decf049a16d8a55fe4d1a4 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/DepthIrFilterShader.shader b/Assets/Azure/Resources/DepthIrFilterShader.shader new file mode 100644 index 0000000..0878d01 --- /dev/null +++ b/Assets/Azure/Resources/DepthIrFilterShader.shader @@ -0,0 +1,70 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Kinect/DepthIrFilterShader" { + Properties { + _IrTex ("Base (RGB)", 2D) = "white" {} + } + + SubShader { + Pass { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + #pragma target 5.0 + //#pragma enable_d3d11_debug_symbols + + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + + uniform sampler2D _IrTex; + StructuredBuffer _DepthMap; + + uint _TexResX; + uint _TexResY; + uint _MinDepth; + uint _MaxDepth; + + float4 _IrTex_ST; + + struct v2f { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + }; + + v2f vert (appdata_base v) + { + v2f o; + + o.pos = UnityObjectToClipPos (v.vertex); + o.uv = TRANSFORM_TEX(v.texcoord, _IrTex); + + return o; + } + + fixed4 frag (v2f i) : COLOR + { + fixed4 texColor = tex2D(_IrTex, i.uv); + + uint dx = (uint)(i.uv.x * _TexResX); + uint dy = (uint)(i.uv.y * _TexResY); + uint di = (dx + dy * _TexResX); + + //return float4((float)dx / (float)_TexResX, (float)dy / (float)_TexResY, 0, 1); + + uint depth2 = _DepthMap[di >> 1]; + uint depth = di & 1 != 0 ? depth2 >> 16 : depth2 & 0xffff; + + texColor.a = (depth != 0 && depth >= _MinDepth && depth <= _MaxDepth); + + return texColor; + } + + ENDCG + } + } + + Fallback Off +} \ No newline at end of file diff --git a/Assets/Azure/Resources/DepthIrFilterShader.shader.meta b/Assets/Azure/Resources/DepthIrFilterShader.shader.meta new file mode 100644 index 0000000..6d85436 --- /dev/null +++ b/Assets/Azure/Resources/DepthIrFilterShader.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 227b4806b7fe0c648aae429abd234194 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/DepthTexShader.shader b/Assets/Azure/Resources/DepthTexShader.shader new file mode 100644 index 0000000..83ef883 --- /dev/null +++ b/Assets/Azure/Resources/DepthTexShader.shader @@ -0,0 +1,82 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Kinect/DepthTexShader" { + Properties { + //_MainTex ("Base (RGB)", 2D) = "white" {} + } + + SubShader { + Pass { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + #pragma target 5.0 + //#pragma enable_d3d11_debug_symbols + + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + + //uniform sampler2D _MainTex; + StructuredBuffer _DepthMap; + + uint _TexResX; + uint _TexResY; + uint _MinDepth; + uint _MaxDepth; + + struct v2f { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + }; + + v2f vert (appdata_base v) + { + v2f o; + + o.pos = UnityObjectToClipPos (v.vertex); + o.uv = v.texcoord; + + return o; + } + + fixed3 hsv2rgb(fixed3 c) + { + fixed4 K = fixed4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); + fixed3 p = abs(frac(c.xxx + K.xyz) * 6.0 - K.www); + return c.z * lerp(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y); + } + + float4 frag (v2f i) : COLOR + { + uint dx = (uint)(i.uv.x * _TexResX); + uint dy = (uint)(i.uv.y * _TexResY); + uint di = (dx + dy * _TexResX); + + //return float4((float)dx / (float)_TexResX, (float)dy / (float)_TexResY, 0, 1); + + uint depth2 = _DepthMap[di >> 1]; + uint depth = di & 1 != 0 ? depth2 >> 16 : depth2 & 0xffff; + //depth = (depth >= _MinDepth && depth <= _MaxDepth) * (depth << 2); + uint cDepth = clamp(depth, _MinDepth, _MaxDepth); + + //float r = (float)(depth & 0xff) / 255.0; + //float g = (float)(depth >> 8) / 255.0; + + //return float4(r, g, 0.0, 1.0); + + float fDepth = ((float)cDepth - (float)_MinDepth) / (float)(_MaxDepth - _MinDepth); + float3 hsvDepth = float3(fDepth, 1.0, 1.0); + float3 rgbDepth = hsv2rgb(hsvDepth); + + return float4(rgbDepth * (depth != 0), 1.0); + } + + ENDCG + } + } + + Fallback Off +} \ No newline at end of file diff --git a/Assets/Azure/Resources/DepthTexShader.shader.meta b/Assets/Azure/Resources/DepthTexShader.shader.meta new file mode 100644 index 0000000..bded5bc --- /dev/null +++ b/Assets/Azure/Resources/DepthTexShader.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 9e7d26869be7adf4790dcc60ad937836 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/DilateShader.shader b/Assets/Azure/Resources/DilateShader.shader new file mode 100644 index 0000000..c15d0e3 --- /dev/null +++ b/Assets/Azure/Resources/DilateShader.shader @@ -0,0 +1,61 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Kinect/DilateShader" { + Properties + { + _MainTex ("_MainTex", 2D) = "white" {} + } + + SubShader { + Pass { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert + #pragma fragment frag + #include "UnityCG.cginc" + + uniform sampler2D _MainTex; + uniform float _TexResX; + uniform float _TexResY; + + struct v2f { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + }; + + float4 _MainTex_ST; + + v2f vert (appdata_base v) + { + v2f o; + o.pos = UnityObjectToClipPos (v.vertex); + o.uv = TRANSFORM_TEX (v.texcoord, _MainTex); + return o; + } + + fixed4 frag (v2f i) : SV_Target + { + fixed4 texColor = tex2D(_MainTex, i.uv); + float maxValue = 0.0; + + for(int y = -1; y < 2; y++) + { + for(int x = -1; x < 2; x++) + { + float val = tex2D(_MainTex, float2(i.uv.x + (float)x/_TexResX, i.uv.y + (float)y/_TexResY)).w; + if(val > 0.0) + maxValue = 1.0; + } + } + + //return fixed4(texColor.r, texColor.g, texColor.b, maxValue); + return fixed4(1.0, 1.0, 1.0, maxValue); + } + ENDCG + + } + } +} diff --git a/Assets/Azure/Resources/DilateShader.shader.meta b/Assets/Azure/Resources/DilateShader.shader.meta new file mode 100644 index 0000000..d039b95 --- /dev/null +++ b/Assets/Azure/Resources/DilateShader.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: f2f9becbb63b4e64c8ab9824b00d67a4 +timeCreated: 1429710051 +licenseType: Store +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/ErodeShader.shader b/Assets/Azure/Resources/ErodeShader.shader new file mode 100644 index 0000000..6a28477 --- /dev/null +++ b/Assets/Azure/Resources/ErodeShader.shader @@ -0,0 +1,61 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Kinect/ErodeShader" { + Properties + { + _MainTex ("_MainTex", 2D) = "white" {} + } + + SubShader { + Pass { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert + #pragma fragment frag + #include "UnityCG.cginc" + + uniform sampler2D _MainTex; + uniform float _TexResX; + uniform float _TexResY; + + struct v2f { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + }; + + float4 _MainTex_ST; + + v2f vert (appdata_base v) + { + v2f o; + o.pos = UnityObjectToClipPos (v.vertex); + o.uv = TRANSFORM_TEX (v.texcoord, _MainTex); + return o; + } + + fixed4 frag (v2f i) : SV_Target + { + fixed4 texColor = tex2D(_MainTex, i.uv); + float minValue = 1.0; + + for(int y = -1; y < 2; y++) + { + for(int x = -1; x < 2; x++) + { + float val = tex2D(_MainTex, float2(i.uv.x + (float)x/_TexResX, i.uv.y + (float)y/_TexResY)).w; + if(val == 0.0) + minValue = 0.0; + } + } + + //return fixed4(texColor.r, texColor.b, texColor.b, minValue); + return fixed4(1.0, 1.0, 1.0, minValue); + } + ENDCG + + } + } +} diff --git a/Assets/Azure/Resources/ErodeShader.shader.meta b/Assets/Azure/Resources/ErodeShader.shader.meta new file mode 100644 index 0000000..e84d4b6 --- /dev/null +++ b/Assets/Azure/Resources/ErodeShader.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 8f56c7aaead7ed348811c5a17b3b428e +timeCreated: 1429710051 +licenseType: Store +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/FloorDetectionOffsetEstShader.compute b/Assets/Azure/Resources/FloorDetectionOffsetEstShader.compute new file mode 100644 index 0000000..2b2cbde --- /dev/null +++ b/Assets/Azure/Resources/FloorDetectionOffsetEstShader.compute @@ -0,0 +1,36 @@ +#pragma kernel EstimatePointCloudPosOfs + +uint2 PointCloudRes; +//float2 SpaceScale; +float3 ImuUpVector; + +uint MinDepth; +uint MaxDepth; + +StructuredBuffer SpaceTable; +StructuredBuffer DepthMap; + +RWStructuredBuffer PointCloudPos; +RWStructuredBuffer PointCloudOfs; +RWStructuredBuffer PointCloudMask; + + +[numthreads(8, 8, 1)] +void EstimatePointCloudPosOfs(uint3 id : SV_DispatchThreadID) +{ + uint i = id.x + id.y * PointCloudRes.x; + + uint depth2 = DepthMap[i >> 1]; + uint depth = i & 1 != 0 ? depth2 >> 16 : depth2 & 0xffff; + depth = (depth >= MinDepth && depth <= MaxDepth) * depth; + + float fDepth = (float)depth / 1000.0; + bool mask = depth != 0; + + float3 pos = float3(SpaceTable[i * 3] * fDepth, SpaceTable[i * 3 + 1] * fDepth, fDepth); + float ofs = dot(ImuUpVector, pos) * mask; + + PointCloudPos[i] = pos; + PointCloudOfs[i] = ofs; + PointCloudMask[i] = mask; +} diff --git a/Assets/Azure/Resources/FloorDetectionOffsetEstShader.compute.meta b/Assets/Azure/Resources/FloorDetectionOffsetEstShader.compute.meta new file mode 100644 index 0000000..cc66f11 --- /dev/null +++ b/Assets/Azure/Resources/FloorDetectionOffsetEstShader.compute.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7af2d1bc35cbd3947a5882089f1a60d1 +ComputeShaderImporter: + externalObjects: {} + currentAPIMask: 2097152 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/FloorDetectionOffsetHistShader.compute b/Assets/Azure/Resources/FloorDetectionOffsetHistShader.compute new file mode 100644 index 0000000..44a9f9b --- /dev/null +++ b/Assets/Azure/Resources/FloorDetectionOffsetHistShader.compute @@ -0,0 +1,34 @@ +#pragma kernel EstimateOffsetHist + +uint2 PointCloudRes; +uint OfsHistBinLength; +float BinSize; + +StructuredBuffer PointCloudOfs; +StructuredBuffer PointCloudMask; +StructuredBuffer OfsMinMax; + +RWStructuredBuffer OfsHistBinCount; +//RWStructuredBuffer OfsHistBinLeft; + + +[numthreads(1, 1, 1)] +void EstimateOffsetHist(uint3 id : SV_DispatchThreadID) +{ + uint i = id.x + id.y * PointCloudRes.x; + float minOfs = OfsMinMax[0]; + //float maxOfs = OfsMinMax[1]; + + float ofs = PointCloudOfs[i]; + + if (PointCloudMask[i]) + { + uint hi = (uint)((ofs - minOfs) / BinSize); + + if (hi < OfsHistBinLength) + { + OfsHistBinCount[hi] = OfsHistBinCount[hi] + 1; // OfsHistBinCount[hi]++; + //OfsHistBinLeft[hi] = hi * BinSize + minOfs; + } + } +} diff --git a/Assets/Azure/Resources/FloorDetectionOffsetHistShader.compute.meta b/Assets/Azure/Resources/FloorDetectionOffsetHistShader.compute.meta new file mode 100644 index 0000000..fcacfb8 --- /dev/null +++ b/Assets/Azure/Resources/FloorDetectionOffsetHistShader.compute.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 458c818a324b4594ba25e5fdf9c53fc3 +ComputeShaderImporter: + externalObjects: {} + currentAPIMask: 2097152 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/FloorDetectionOffsetMinMaxShader.compute b/Assets/Azure/Resources/FloorDetectionOffsetMinMaxShader.compute new file mode 100644 index 0000000..b7a20e5 --- /dev/null +++ b/Assets/Azure/Resources/FloorDetectionOffsetMinMaxShader.compute @@ -0,0 +1,39 @@ +#pragma kernel EstimateOffsetMinMax + +uint2 PointCloudRes; +uint OfsHistBinLength; +StructuredBuffer PointCloudOfs; +StructuredBuffer PointCloudMask; + +RWStructuredBuffer OfsMinMax; +RWStructuredBuffer OfsHistBinCount; + + +[numthreads(1, 1, 1)] +void EstimateOffsetMinMax(uint3 id : SV_DispatchThreadID) +{ + // find min & max + uint l = PointCloudRes.x * PointCloudRes.y; + float minOfs = 1000.0; + float maxOfs = -1000.0; + + for (uint i = 0; i < l; i++) + { + float ofs = PointCloudOfs[i]; + + if (PointCloudMask[i]) + { + minOfs = min(minOfs, ofs); + maxOfs = max(maxOfs, ofs); + } + } + + OfsMinMax[0] = minOfs; + OfsMinMax[1] = maxOfs; + + // clear bin counts + for (uint hi = 0; hi < OfsHistBinLength; hi++) + { + OfsHistBinCount[hi] = 0; + } +} diff --git a/Assets/Azure/Resources/FloorDetectionOffsetMinMaxShader.compute.meta b/Assets/Azure/Resources/FloorDetectionOffsetMinMaxShader.compute.meta new file mode 100644 index 0000000..b44fd2a --- /dev/null +++ b/Assets/Azure/Resources/FloorDetectionOffsetMinMaxShader.compute.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e52e5d018dfd6eb4286cca0342815a1a +ComputeShaderImporter: + externalObjects: {} + currentAPIMask: 2097152 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/FloorDetectionPlanePointsShader.compute b/Assets/Azure/Resources/FloorDetectionPlanePointsShader.compute new file mode 100644 index 0000000..1fa1fdb --- /dev/null +++ b/Assets/Azure/Resources/FloorDetectionPlanePointsShader.compute @@ -0,0 +1,128 @@ +#pragma kernel EstimatePlanePoints + +uint OfsHistBinLength; +uint PointCloudOfsLength; +float BinSize; +uint BinAggregation; +uint MinimumFloorPointCount; + +StructuredBuffer OfsHistBinCount; +StructuredBuffer PointCloudPos; +StructuredBuffer PointCloudOfs; +StructuredBuffer PointCloudMask; +StructuredBuffer OfsMinMax; + +RWStructuredBuffer OfsHistBinLeft; +RWStructuredBuffer HistCumulativeCount; +RWStructuredBuffer InlierIndices; +RWStructuredBuffer PlanePosNorm; + + +[numthreads(1, 1, 1)] +void EstimatePlanePoints(uint3 id : SV_DispatchThreadID) +{ + float minOfs = OfsMinMax[0]; + OfsHistBinLeft[0] = minOfs; + + HistCumulativeCount[0] = OfsHistBinCount[0]; + for (uint hi = 1; hi < OfsHistBinLength; hi++) + { + OfsHistBinLeft[hi] = hi * BinSize + minOfs; + HistCumulativeCount[hi] = HistCumulativeCount[hi - 1] + OfsHistBinCount[hi]; + } + + PlanePosNorm[0] = float3(0, 0, 0); + PlanePosNorm[1] = float3(0, 0, 0); + + for (uint i = 1; (i + BinAggregation) < OfsHistBinLength; i++) // i += BinAggregation + { + uint aggBinStart = i; // inclusive bin + uint aggBinEnd = i + BinAggregation; // exclusive bin + uint inlierCount = HistCumulativeCount[aggBinEnd - 1] - HistCumulativeCount[aggBinStart - 1]; + + if (inlierCount > MinimumFloorPointCount) + { + float offsetStart = OfsHistBinLeft[aggBinStart]; // inclusive + float offsetEnd = OfsHistBinLeft[aggBinEnd]; // exclusive + + // Inlier indices. + uint iiIndex = 0; + for (uint j = 0; j < PointCloudOfsLength; j++) + { + if (PointCloudMask[j] && offsetStart <= PointCloudOfs[j] && PointCloudOfs[j] < offsetEnd) + { + InlierIndices[iiIndex + 1] = j; + iiIndex++; + } + } + + InlierIndices[0] = iiIndex; + + // Compute centroid. + float3 centr = float3(0, 0, 0); + for (uint ii1 = 0; ii1 < iiIndex; ii1++) + { + int idx1 = InlierIndices[ii1 + 1]; + int idx3 = idx1 * 3; + + //if (PointCloudMask[idx1]) + { + float3 pcPos = float3(PointCloudPos[idx3], PointCloudPos[idx3 + 1], PointCloudPos[idx3 + 2]); + centr += pcPos; + } + } + + centr = centr / iiIndex; + + // Compute the zero-mean 3x3 symmetric covariance matrix relative. + float xx = 0, xy = 0, xz = 0, yy = 0, yz = 0, zz = 0; + for (uint ii2 = 0; ii2 < iiIndex; ii2++) + { + int idx1 = InlierIndices[ii2 + 1]; + int idx3 = idx1 * 3; + + //if (PointCloudMask[idx1]) + { + float3 pcPos = float3(PointCloudPos[idx3], PointCloudPos[idx3 + 1], PointCloudPos[idx3 + 2]); + float3 r = pcPos - centr; + + xx += r.x * r.x; + xy += r.x * r.y; + xz += r.x * r.z; + yy += r.y * r.y; + yz += r.y * r.z; + zz += r.z * r.z; + } + } + + float detX = yy * zz - yz * yz; + float detY = xx * zz - xz * xz; + float detZ = xx * yy - xy * xy; + + float detMax = max(detX, detY); + detMax = max(detMax, detZ); + + float3 norm = float3(0, 0, 0); + if (detMax == detX) + { + norm = float3(detX, xz * yz - xy * zz, xy * yz - xz * yy); + } + else if (detMax == detY) + { + norm = float3(xz * yz - xy * zz, detY, xy * xz - yz * xx); + } + else + { + norm = float3(xy * yz - xz * yy, xy * xz - yz * xx, detZ); + } + + // save centroid and normal + PlanePosNorm[0] = centr; + PlanePosNorm[1] = norm; + PlanePosNorm[2] = float3(offsetStart, offsetEnd, 0.0); + PlanePosNorm[3] = float3(aggBinStart, aggBinEnd, HistCumulativeCount[aggBinEnd - 1] - HistCumulativeCount[aggBinStart - 1]); + + break; + } + } +} diff --git a/Assets/Azure/Resources/FloorDetectionPlanePointsShader.compute.meta b/Assets/Azure/Resources/FloorDetectionPlanePointsShader.compute.meta new file mode 100644 index 0000000..ba7c141 --- /dev/null +++ b/Assets/Azure/Resources/FloorDetectionPlanePointsShader.compute.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a2242ae3900d40145a9178615963ae73 +ComputeShaderImporter: + externalObjects: {} + currentAPIMask: 4 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/ForegroundBlendShader.shader b/Assets/Azure/Resources/ForegroundBlendShader.shader new file mode 100644 index 0000000..af1c40a --- /dev/null +++ b/Assets/Azure/Resources/ForegroundBlendShader.shader @@ -0,0 +1,177 @@ +Shader "Kinect/ForegroundBlendShader" { + Properties + { + _ColorTex("_ColorTex", 2D) = "white" {} + _AlphaTex("_AlphaTex", 2D) = "white" {} + } + + SubShader + { + Tags + { + "RenderType" = "Transparent" + "Queue" = "Transparent-1" + } + + Pass + { + ZWrite On + Blend SrcAlpha OneMinusSrcAlpha + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + + #pragma target 5.0 + #include "UnityCG.cginc" + #include "FragmentLighting.cginc" + + struct v2f + { + float2 uv : TEXCOORD0; + float4 pos : SV_POSITION; + float3 normal : NORMAL; + float3 worldDirection : TEXCOORD1; + }; + + struct f2o + { + fixed4 color : SV_Target; + float depth : SV_Depth; + }; + + uint _TexResX; + uint _TexResY; + + float _DepthDistance; + float _InvDepthVal; + + StructuredBuffer _DepthMap; + + //#define CAM_NEAR_DEPTH 0.9999 + //#define CAM_FAR_DEPTH 0.0001 + + sampler2D _ColorTex; + float4 _ColorTex_ST; + float4 _ColorTex_TexelSize; + + sampler2D _AlphaTex; + + + int _ApplyLights; + int _ApplyShadows; + + float4 _DirectionalLights[2]; + sampler2D _DirectionalShadowMap; + + + + v2f vert(appdata_base v) + { + v2f o; + + o.pos = UnityObjectToClipPos(v.vertex); + //o.worldNormal = UnityObjectToWorldNormal(v.normal); + o.normal = v.normal; + o.worldDirection = mul(unity_ObjectToWorld, v.vertex).xyz - _WorldSpaceCameraPos; + + o.uv = TRANSFORM_TEX(v.texcoord, _ColorTex); + + return o; + } + + + + uint getSensorDepth(float2 uv, int texW, int texH) + { + uint dx = (uint)(uv.x * _TexResX); + uint dy = (uint)(uv.y * _TexResY); + uint di = (dx + dy * _TexResX); + + uint depth2 = _DepthMap[di >> 1]; + uint depth = di & 1 != 0 ? depth2 >> 16 : depth2 & 0xffff; + + return depth; + } + + float getEyeDepth(float fDepth) + { +#if SHADER_API_D3D11 || SHADER_API_METAL + fDepth = -fDepth; +#elif SHADER_API_GLCORE + fDepth = -fDepth * 2.0; +#endif + float4 vDepth = float4(0, 0, fDepth, 1); + float4 projDepth = mul(UNITY_MATRIX_P, vDepth); + + //if (projDepth.w != projDepth.w) + // return CAM_FAR_DEPTH; + + float eyeDepth = projDepth.b / projDepth.w; + + return eyeDepth; + } + + f2o frag(v2f i) + { + f2o o; + + uint cDepth = 0; + int nDepth = 0; + + //int v = 0; + for (int v = -1; v <= 1; v++) + { + //int u = 0; + for (int u = -1; u <= 1; u++) + { + float2 uv = i.uv + float2(u * _ColorTex_TexelSize.x, v * _ColorTex_TexelSize.y); + uint depth = getSensorDepth(uv, _TexResX, _TexResY); + + cDepth += depth; + nDepth += (depth != 0); + } + } + + float fDepth = (nDepth != 0 ? ((float)cDepth / abs(nDepth) * 0.001) : _InvDepthVal) + _DepthDistance; + float eyeDepth = getEyeDepth(fDepth); + + float4 color = tex2D(_ColorTex, i.uv); + float alpha = tex2D(_AlphaTex, i.uv).a; + float a = alpha < 0.5 ? 0.0 : 1.0; + + o.color = color; + o.color.a = alpha; + + o.depth = eyeDepth * a; // * a; + + if (_ApplyLights == 1) + { + // directional light + color *= _DirectionalLights[1]; + + half4 c = color; + + // shadows + if (_ApplyShadows == 1) + { + //float3 shadows = tex2D(_DirectionalShadowMap, i.uv).rgb; + //c = color * (half4(saturate(shadows), 1)); + } + + // lights + float3 worldPos = (i.worldDirection / i.pos.w) * fDepth + _WorldSpaceCameraPos; + c += saturate(ApplyLighting(color.rgb, i.normal, worldPos, 1)); + + o.color.rgb = c.rgb; + o.color.a = alpha; + } + + return o; + } + + ENDCG + } + + } +} \ No newline at end of file diff --git a/Assets/Azure/Resources/ForegroundBlendShader.shader.meta b/Assets/Azure/Resources/ForegroundBlendShader.shader.meta new file mode 100644 index 0000000..6a52225 --- /dev/null +++ b/Assets/Azure/Resources/ForegroundBlendShader.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 3884d4333ea35f445915ed7dd5bc79ce +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/ForegroundFiltBodyIndexShader.compute b/Assets/Azure/Resources/ForegroundFiltBodyIndexShader.compute new file mode 100644 index 0000000..4d83ebd --- /dev/null +++ b/Assets/Azure/Resources/ForegroundFiltBodyIndexShader.compute @@ -0,0 +1,67 @@ +#pragma kernel FgFiltBodyIndex + +uint _TexResX; +uint _TexResY; + +//uint _NumBodies; +//int _BodyIndices[10]; // ComputeShader.SetInts() doesn't work correctly + +int _BodyIndexAll; + +int _BodyIndex0; +int _BodyIndex1; +int _BodyIndex2; +int _BodyIndex3; +int _BodyIndex4; + +StructuredBuffer _BodyIndexMap; +RWTexture2D _AlphaTex; + + +[numthreads(8, 8, 1)] +void FgFiltBodyIndex(uint3 id : SV_DispatchThreadID) +{ + uint di = (id.x + id.y * _TexResX); + uint bi4 = _BodyIndexMap[di >> 2]; + int bi = 255; + + //_NumBodies = 2; + //_BodyIndices[0] = 5; + //_BodyIndices[1] = 0; + + switch (di & 3) + { + case 0: + bi = bi4 & 255; + break; + case 1: + bi = (bi4 >> 8) & 255; + break; + case 2: + bi = (bi4 >> 16) & 255; + break; + case 3: + bi = (bi4 >> 24) & 255; + break; + } + + bool mask0 = (bi != 255); + bool mask = false; // _NumBodies == 0 ? mask0 : false; + + //for (uint i = 0; mask0 && i < _NumBodies; i++) + //{ + // mask = mask || (bi == _BodyIndices[i]); + // if (mask) break; + //} + + if (_BodyIndexAll != 0) + { + mask = mask0; + } + else + { + mask = (bi == _BodyIndex0) || (bi == _BodyIndex1) || (bi == _BodyIndex2) || (bi == _BodyIndex3) || (bi == _BodyIndex4); + } + + _AlphaTex[id.xy] = float4(mask, mask, mask, mask); +} diff --git a/Assets/Azure/Resources/ForegroundFiltBodyIndexShader.compute.meta b/Assets/Azure/Resources/ForegroundFiltBodyIndexShader.compute.meta new file mode 100644 index 0000000..b28ad6c --- /dev/null +++ b/Assets/Azure/Resources/ForegroundFiltBodyIndexShader.compute.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a2d74b5f03f83994dad0e61bf4d9c060 +ComputeShaderImporter: + externalObjects: {} + currentAPIMask: 2097152 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/ForegroundFiltBodyShader.compute b/Assets/Azure/Resources/ForegroundFiltBodyShader.compute new file mode 100644 index 0000000..cbc7092 --- /dev/null +++ b/Assets/Azure/Resources/ForegroundFiltBodyShader.compute @@ -0,0 +1,63 @@ +#pragma kernel FgFiltBody + +//float4x4 _Transform; +uint _NumBodies; + +//float4 BodyPos[10]; +//float4 BodyDistXY[10]; +//float4 BodyDistZ[10]; +float4 _BodyPosMin[10]; +float4 _BodyPosMaxX[10]; +float4 _BodyPosMaxY[10]; +float4 _BodyPosMaxZ[10]; +float4 _BodyPosDot[10]; + +RWTexture2D _VertexTex; +RWTexture2D _AlphaTex; + + +[numthreads(8, 8, 1)] +void FgFiltBody(uint3 id : SV_DispatchThreadID) +{ + float4 vertex = _VertexTex[id.xy]; + float3 vpos = (float3)vertex; // mul(_Transform, vertex).xyz; + + bool mask0 = (vertex.a > 0.0) && (_NumBodies != 0); // && (vpos.y >= 0); + bool mask = false; + + for (uint i = 0; mask0 && i < _NumBodies; i++) + { + //if (distance(vpos, BodyPos[i].xyz) <= 0.2) + // mask = true; + + //float4 distXY = BodyDistXY[i]; + //float4 distZ = BodyDistZ[i]; + //bool isInside = vpos.x >= distXY.x && vpos.x <= distXY.y && vpos.y >= distXY.z && vpos.y <= distXY.w && vpos.z >= distZ.x && vpos.z <= distZ.y; + //mask = mask && isInside; + + float3 pmin = (float3)_BodyPosMin[i]; + float3 pv = vpos - pmin; + + float3 px = (float3)_BodyPosMaxX[i]; + float3 py = (float3)_BodyPosMaxY[i]; + float3 pz = (float3)_BodyPosMaxZ[i]; + float3 pdot = (float3)_BodyPosDot[i]; + + float dx = dot(pv, px); + bool bx = dx >= 0.0 && dx <= pdot.x; + + float dy = dot(pv, py); + bool by = dy >= 0.0 && dy <= pdot.y; + + float dz = dot(pv, pz); + bool bz = dz >= 0.0 && dz <= pdot.z; + + mask = mask || (bx && by && bz); + if (mask) break; + } + + mask = mask * mask; // make it positive + + //_VertexTex[id.xy] = float4(mask, mask, mask, mask); + _AlphaTex[id.xy] = float4(mask, mask, mask, mask); +} diff --git a/Assets/Azure/Resources/ForegroundFiltBodyShader.compute.meta b/Assets/Azure/Resources/ForegroundFiltBodyShader.compute.meta new file mode 100644 index 0000000..cb22930 --- /dev/null +++ b/Assets/Azure/Resources/ForegroundFiltBodyShader.compute.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 18e65293f9bd4744e8ae7b2fb0b4c6d1 +ComputeShaderImporter: + externalObjects: {} + currentAPIMask: 2097152 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/ForegroundFiltDistShader.compute b/Assets/Azure/Resources/ForegroundFiltDistShader.compute new file mode 100644 index 0000000..2056d5e --- /dev/null +++ b/Assets/Azure/Resources/ForegroundFiltDistShader.compute @@ -0,0 +1,61 @@ +#pragma kernel FgFiltDist + +float4x4 _Transform; + +//float Xmin; +//float Xmax; +//float Ymin; +//float Ymax; +//float Zmin; +//float Zmax; +float4 _PosMin; +float4 _PosMaxX; +float4 _PosMaxY; +//float4 _PosMaxZ; +float4 _PosMaxZLeft; +float4 _PosMaxZRight; +float4 _PosDot; + +RWTexture2D _VertexTex; +RWTexture2D _AlphaTex; + + +[numthreads(8, 8, 1)] +void FgFiltDist(uint3 id : SV_DispatchThreadID) +{ + float4 vertex = _VertexTex[id.xy]; + float3 vpos = mul(_Transform, vertex).xyz; // (float3)vertex; // + bool mask = (vertex.a > 0.0); // && (vpos.y >= 0); + + //bool isInside = vpos.x >= Xmin && vpos.x <= Xmax && vpos.y >= Ymin && vpos.y <= Ymax && vpos.z >= Zmin && vpos.z <= Zmax; + //mask = mask && isInside; + + float3 pmin = (float3)_PosMin; + float3 pv = vpos - pmin; + + float3 px = (float3)_PosMaxX; + float3 py = (float3)_PosMaxY; + //float3 pz = (float3)_PosMaxZ; + + float3 pzl = (float3)_PosMaxZLeft; + float3 pzr = (float3)_PosMaxZRight; + + float3 pz = (float3)lerp(pzr, pzl, pv.x / (_PosMaxX.x - pmin.x)); + + float3 pdot = (float3)_PosDot; + + float dx = dot(pv, px); + bool bx = dx >= 0.0 && dx <= pdot.x; + + float dy = dot(pv, py); + bool by = dy >= 0.0 && dy <= pdot.y; + + float dz = dot(pv, pz); + bool bz = dz >= 0.0 && dz <= pdot.z; + + mask = mask && bx && by && bz; + //_VertexTex[id.xy] = float4(mask, mask, mask, mask); + + mask = mask * mask; // make it positive + _AlphaTex[id.xy] = float4(mask, mask, mask, mask); +} diff --git a/Assets/Azure/Resources/ForegroundFiltDistShader.compute.meta b/Assets/Azure/Resources/ForegroundFiltDistShader.compute.meta new file mode 100644 index 0000000..e9e54a4 --- /dev/null +++ b/Assets/Azure/Resources/ForegroundFiltDistShader.compute.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bdc5d9483855cdc44ae1c916dcac44d2 +ComputeShaderImporter: + externalObjects: {} + currentAPIMask: 2097152 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/ForegroundFiltGreenScreenShader.compute b/Assets/Azure/Resources/ForegroundFiltGreenScreenShader.compute new file mode 100644 index 0000000..a5582ce --- /dev/null +++ b/Assets/Azure/Resources/ForegroundFiltGreenScreenShader.compute @@ -0,0 +1,66 @@ +#pragma kernel FgFiltFreenScreen + + +float4 _GreenScreenColor; +float _GreenScreenColorRange; + +float _SetTranspBelow; +float _SetOpaqueAbove; + +float4 _GreenScreenRect; + +RWTexture2D _ColorTex; +RWTexture2D _AlphaTex; + + +float3 RGBtoYUV(float3 rgb) +{ + float4x4 RGB2YUV = { 0.182586, 0.614231, 0.062007, 0.062745, + -0.100644, -0.338572, 0.439216, 0.501961, + 0.439216, -0.398942, -0.040274, 0.501961, + 0.000000, 0.000000, 0.000000, 1.000000 }; + + return mul(RGB2YUV, float4(rgb, 1)).rgb; +} + + +[numthreads(8, 8, 1)] +void FgFiltFreenScreen(uint3 id : SV_DispatchThreadID) +{ + float alpha = 0.0; + + if (id.x >= (uint)_GreenScreenRect.x && id.x <= (uint)_GreenScreenRect.z && id.y >= (uint)_GreenScreenRect.y && id.y <= (uint)_GreenScreenRect.w) + { + float3 greenYuv = RGBtoYUV(_GreenScreenColor.rgb); + + for (int v = -1; v <= 1; v++) + { + for (int u = -1; u <= 1; u++) + { + int2 uv = id.xy + int2(u, v); + float3 colorYuv = RGBtoYUV(_ColorTex[uv].rgb); + alpha += distance(colorYuv.yz, greenYuv.yz); + } + } + + alpha = saturate(9.0 * alpha / 9.0 - _GreenScreenColorRange); + + if (alpha < _SetTranspBelow) + alpha = 0.0; + if (alpha > _SetOpaqueAbove) + alpha = 1.0; + } + + _AlphaTex[id.xy] = float4(alpha, alpha, alpha, alpha); + + //alpha = saturate(distance(greenYuv.yz, RGBtoYUV(_ColorTex[id.xy].rgb).yz)); + //_AlphaTex[id.xy] = float4(/**alpha, alpha, alpha,*/ greenYuv, 1); + + //float3 yuv = RGBtoYUV(_ColorTex[id.xy].rgb); + //float dist = saturate(distance(greenYuv.yz, yuv.yz) * 10 - _GreenScreenColorRange); + ////_AlphaTex[id.xy] = float4(yuv.x, yuv.x, yuv.x, 1); + //_AlphaTex[id.xy] = float4(dist, dist, dist, dist); +} + + + diff --git a/Assets/Azure/Resources/ForegroundFiltGreenScreenShader.compute.meta b/Assets/Azure/Resources/ForegroundFiltGreenScreenShader.compute.meta new file mode 100644 index 0000000..12fee15 --- /dev/null +++ b/Assets/Azure/Resources/ForegroundFiltGreenScreenShader.compute.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 760a953d372b02a4790ca278cf8a4814 +ComputeShaderImporter: + externalObjects: {} + currentAPIMask: 2097152 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/ForegroundShader.shader b/Assets/Azure/Resources/ForegroundShader.shader new file mode 100644 index 0000000..c406445 --- /dev/null +++ b/Assets/Azure/Resources/ForegroundShader.shader @@ -0,0 +1,69 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Kinect/ForegroundShader" +{ + Properties + { + _MainTex ("_MainTex", 2D) = "white" {} + _ColorTex ("_ColorTex", 2D) = "white" {} + _GradientTex("GradientTex (RGB)", 2D) = "white" {} + _GradientColor("GradientColor", Color) = (1, 1, 1, 1) + } + + SubShader + { + Pass + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert + #pragma fragment frag + #include "UnityCG.cginc" + + uniform sampler2D _MainTex; + uniform sampler2D _ColorTex; + uniform sampler2D _GradientTex; + uniform half4 _GradientColor; + + float4 _MainTex_ST; + float4 _ColorTex_ST; + float4 _GradientTex_ST; + + + struct v2f + { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + }; + + v2f vert (appdata_base v) + { + v2f o; + o.pos = UnityObjectToClipPos (v.vertex); + o.uv = TRANSFORM_TEX (v.texcoord, _MainTex); + return o; + } + + half4 frag (v2f i) : COLOR + { + half4 texMain = tex2D(_MainTex, i.uv); + half4 texColor = tex2D(_ColorTex, i.uv); + + half gradA = tex2D(_GradientTex, i.uv).a; + bool gradMask = gradA > 0.5 && _GradientColor.a > 0.0; + half4 fgColor = texColor * (1.0 - gradMask) + _GradientColor * gradMask; + //half4 fgColor = texColor; + + half4 texForeground = half4(fgColor.rgb, texMain.a); + + return texForeground; + } + ENDCG + + } + } + +} diff --git a/Assets/Azure/Resources/ForegroundShader.shader.meta b/Assets/Azure/Resources/ForegroundShader.shader.meta new file mode 100644 index 0000000..59f9f1d --- /dev/null +++ b/Assets/Azure/Resources/ForegroundShader.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: eaceef7b0a7e69947be1991717442c1c +timeCreated: 1498321181 +licenseType: Store +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/FragmentLighting.cginc b/Assets/Azure/Resources/FragmentLighting.cginc new file mode 100644 index 0000000..5353bee --- /dev/null +++ b/Assets/Azure/Resources/FragmentLighting.cginc @@ -0,0 +1,140 @@ +#include "UnityCG.cginc" +#include "Lighting.cginc" +#include "UnityPBSLighting.cginc" +#include "AutoLight.cginc" + +struct PointLight +{ + float4 color; + float range; + float3 position; +}; + +StructuredBuffer _PointLights; +int _PointLightsNumber; + +struct SpotLight +{ + float4 color; + float3 position; + float4 direction; + float4 params; +}; + +StructuredBuffer _SpotLights; +int _SpotLightsNumber; + +float _Metallic; + + +UnityLight CreateUnityLight(float3 pos, float4 color, float3 worldPos, float3 normal) +{ + UnityLight light; + + light.dir = pos; + light.color = color; + light.ndotl = DotClamped(normal, light.dir); + + return light; +} + +float GetAttenuation(float dist, float inverseRange, float coeff) +{ + return lerp(1.0, (1.0 - pow(dist * inverseRange * inverseRange, coeff)), 1); +} + +half4 ApplyLighting(float3 albedo, float3 normals, float3 worldPos, float alpha) +{ + fixed3 worldViewDir = normalize(UnityWorldSpaceViewDir(worldPos)); + +#ifdef UNITY_COMPILER_HLSL + SurfaceOutputStandard o = (SurfaceOutputStandard)0; +#else + SurfaceOutputStandard o; +#endif + + o.Albedo.rgb = albedo; + o.Emission = 0.0; + o.Alpha = 1.0; + o.Occlusion = 1.0; + o.Metallic = _Metallic; + o.Normal.rgb = mul((float3x3)unity_CameraToWorld, normals); + + float3 specularTint; + float oneMinusReflectivity; + o.Albedo.rgb = DiffuseAndSpecularFromMetallic(albedo, o.Metallic, specularTint, oneMinusReflectivity); + + float4 c = 0; + + // Setup lighting environment + UnityGI gi; + UNITY_INITIALIZE_OUTPUT(UnityGI, gi); + gi.indirect.diffuse = 0; + gi.indirect.specular = 0; + + // point light + UNITY_LOOP + for (int pi = 0; pi < _PointLightsNumber; pi++) + { + float3 lightVec = _PointLights[pi].position - worldPos; + + + if (_PointLights[pi].range - length(lightVec) < 0) + continue; + + float att = GetAttenuation(dot(lightVec, lightVec), 1 / _PointLights[pi].range, 0.2); + float v = dot(lightVec, float3(o.Normal.x, o.Normal.y, o.Normal.z)); + + //Remove light from backward + if (dot(lightVec, float3(o.Normal.x, o.Normal.y, o.Normal.z)) <= 0.0) + continue; + + UnityLight p = CreateUnityLight(lightVec, _PointLights[pi].color * att * alpha, worldPos, o.Normal.rgb); + + gi.light = p; + c += UNITY_BRDF_PBS(o.Albedo.rgb, specularTint, oneMinusReflectivity, 0, o.Normal.rgb, normalize(_WorldSpaceCameraPos - worldPos), p, gi.indirect); + c.a = 1.0; + } + + c.a = 1.0; + + // spot light + UNITY_LOOP + for (int si = 0; si < _SpotLightsNumber; si++) + { + float3 lightVec = _SpotLights[si].position - worldPos; + float att = GetAttenuation(dot(lightVec, lightVec), _SpotLights[si].params.z, 0.8); + + float3 dirSpotToWorld = -lightVec; + float dotDirectionWorld = dot(normalize(dirSpotToWorld), _SpotLights[si].direction.xyz); + float angleWorld = degrees(acos(dotDirectionWorld)); + float angleMax = _SpotLights[si].params.x / 2.0; + + UNITY_BRANCH + if (dotDirectionWorld < 0 || dotDirectionWorld < _SpotLights[si].direction.w) + { + continue; + } + else + { + float angleP = angleMax * (1 - _SpotLights[si].params.w); + + UNITY_BRANCH + if (angleP < angleWorld && angleWorld < angleMax) + { + att *= (angleMax - angleWorld) / (angleMax - angleP); + } + + } + + att = saturate(att); + UnityLight p = CreateUnityLight(lightVec, (_SpotLights[si].color) * att * alpha, worldPos, o.Normal.rgb); + + gi.light = p; + c += UNITY_BRDF_PBS(o.Albedo.rgb, specularTint, oneMinusReflectivity, 1, o.Normal.rgb, normalize(_WorldSpaceCameraPos - worldPos), p, gi.indirect); + c.a = 1.0; + } + + return c; +} + diff --git a/Assets/Azure/Resources/FragmentLighting.cginc.meta b/Assets/Azure/Resources/FragmentLighting.cginc.meta new file mode 100644 index 0000000..d4cf31e --- /dev/null +++ b/Assets/Azure/Resources/FragmentLighting.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: cd6ac9fac9d10a2479d38274092052a5 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/GradientShader.shader b/Assets/Azure/Resources/GradientShader.shader new file mode 100644 index 0000000..8f815d6 --- /dev/null +++ b/Assets/Azure/Resources/GradientShader.shader @@ -0,0 +1,59 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Kinect/GradientShader" +{ + Properties + { + _MainTex ("_MainTex", 2D) = "white" {} + _ErodeTex ("_ErodeTex", 2D) = "white" {} + } + + SubShader + { + + Pass + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert + #pragma fragment frag + #include "UnityCG.cginc" + + uniform sampler2D _MainTex; + uniform sampler2D _ErodeTex; + + float4 _MainTex_ST; + + + struct v2f + { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + }; + + v2f vert (appdata_base v) + { + v2f o; + o.pos = UnityObjectToClipPos (v.vertex); + o.uv = TRANSFORM_TEX (v.texcoord, _MainTex); + return o; + } + + fixed4 frag (v2f i) : COLOR + { + fixed4 texMain = tex2D(_MainTex, i.uv); + fixed4 texErode = tex2D(_ErodeTex, i.uv); + + fixed4 texGradient = fixed4(texMain.rgb, max(texMain.a - texErode.a, 0.0)); + //if(texGradient.a < 0.2) texGradient.a = 0.0; + + return texGradient; + } + ENDCG + + } + } +} diff --git a/Assets/Azure/Resources/GradientShader.shader.meta b/Assets/Azure/Resources/GradientShader.shader.meta new file mode 100644 index 0000000..270cbbf --- /dev/null +++ b/Assets/Azure/Resources/GradientShader.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: bf10c391a662b0547932914f6fff494f +timeCreated: 1498321181 +licenseType: Store +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/InfraredImageShader.shader b/Assets/Azure/Resources/InfraredImageShader.shader new file mode 100644 index 0000000..97955a5 --- /dev/null +++ b/Assets/Azure/Resources/InfraredImageShader.shader @@ -0,0 +1,59 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Kinect/InfraredImageShader" { + SubShader { + Pass { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + #pragma target 5.0 + //#pragma enable_d3d11_debug_symbols + + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + + //uniform sampler2D _MainTex; + uniform uint _TexResX; + uniform uint _TexResY; + uniform float _MinValue; + uniform float _MaxValue; + + StructuredBuffer _InfraredMap; + + struct v2f { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + }; + + v2f vert (appdata_base v) + { + v2f o; + + o.pos = UnityObjectToClipPos (v.vertex); + o.uv = v.texcoord; + + return o; + } + + half4 frag (v2f i) : COLOR + { + uint dx = (uint)(i.uv.x * _TexResX); + uint dy = (uint)(i.uv.y * _TexResY); + uint di = (dx + dy * _TexResX); + + uint ir2 = _InfraredMap[di >> 1]; + uint ir = di & 1 != 0 ? ir2 >> 16 : ir2 & 0xffff; + half clr = saturate(((float)ir - _MinValue) / (_MaxValue - _MinValue)); + + return half4(clr, clr, clr, clr != 0); + } + + ENDCG + } + } + + Fallback Off +} \ No newline at end of file diff --git a/Assets/Azure/Resources/InfraredImageShader.shader.meta b/Assets/Azure/Resources/InfraredImageShader.shader.meta new file mode 100644 index 0000000..89810e3 --- /dev/null +++ b/Assets/Azure/Resources/InfraredImageShader.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 0696e5b76765a1a49af854258a2d4ff5 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/InvertShader.shader b/Assets/Azure/Resources/InvertShader.shader new file mode 100644 index 0000000..e3733ea --- /dev/null +++ b/Assets/Azure/Resources/InvertShader.shader @@ -0,0 +1,48 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Kinect/InvertShader" { + Properties + { + _MainTex ("_MainTex", 2D) = "white" {} + } + + SubShader { + Pass { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + + #pragma vertex vert + #pragma fragment frag + #include "UnityCG.cginc" + + uniform sampler2D _MainTex; + uniform float _TexResX; + uniform float _TexResY; + + struct v2f { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + }; + + float4 _MainTex_ST; + + v2f vert (appdata_base v) + { + v2f o; + o.pos = UnityObjectToClipPos (v.vertex); + o.uv = TRANSFORM_TEX (v.texcoord, _MainTex); + return o; + } + + fixed4 frag (v2f i) : SV_Target + { + fixed4 texColor = tex2D(_MainTex, i.uv); + return fixed4(texColor.rgb, 1.0 - texColor.a); + } + ENDCG + + } + } +} diff --git a/Assets/Azure/Resources/InvertShader.shader.meta b/Assets/Azure/Resources/InvertShader.shader.meta new file mode 100644 index 0000000..284eaf1 --- /dev/null +++ b/Assets/Azure/Resources/InvertShader.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 26e9d1e02bce91143b5158d5de60da95 +timeCreated: 1429710051 +licenseType: Store +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/MedianShader.shader b/Assets/Azure/Resources/MedianShader.shader new file mode 100644 index 0000000..0183fc3 --- /dev/null +++ b/Assets/Azure/Resources/MedianShader.shader @@ -0,0 +1,139 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +/* +5x5 Median + +GLSL 1.0 +Morgan McGuire and Kyle Whitson, 2006 +Williams College +http://graphics.cs.williams.edu + +Copyright (c) Morgan McGuire and Williams College, 2006 +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. + +Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +Shader "Kinect/MedianShader" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" {} + _Amount ("_Amount", Float) = 1.0 + } + + SubShader + { + //Tags { "Queue"="Transparent" "RenderType" = "Opaque" } + + //Cull Off + //Blend SrcAlpha OneMinusSrcAlpha + + Pass + { + ZTest Off Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + #pragma target 3.0 + #pragma vertex vert + #pragma fragment frag + #pragma fragmentoption ARB_precision_hint_fastest + //#pragma Lambert alpha + + #include "UnityCG.cginc" + + #define s2(a, b) temp = a; a = min(a, b); b = max(temp, b); + #define t2(a, b) s2(v[a], v[b]); + #define t24(a, b, c, d, e, f, g, h) t2(a, b); t2(c, d); t2(e, f); t2(g, h); + #define t25(a, b, c, d, e, f, g, h, i, j) t24(a, b, c, d, e, f, g, h); t2(i, j); + + uniform sampler2D _MainTex; + uniform float4 _MainTex_ST; + uniform float _Amount; + + struct v2f + { + float4 pos : POSITION; + float2 uv : TEXCOORD0; + }; + + + v2f vert (appdata_img v) + { + v2f o; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv = TRANSFORM_TEX(v.texcoord.xy, _MainTex); //MultiplyUV (UNITY_MATRIX_TEXTURE0, uv); + return o; + } + + + float4 frag (v2f i) : COLOR + { + float2 Tinvsize = float2 (_Amount / _ScreenParams.x, _Amount / _ScreenParams.y); + float4 v[25]; + + // Add the pixels which make up our window to the pixel array. + for(int dX = -2; dX <= 2; ++dX) + { + for(int dY = -2; dY <= 2; ++dY) + { + float2 offset = float2(float(dX), float(dY)); + + // If a pixel in the window is located at (x+dX, y+dY), put it at index (dX + R)(2R + 1) + (dY + R) of the pixel array. + // This will fill the pixel array, with the top left pixel of the window at pixel[0] and the bottom right pixel of the window at pixel[N-1]. + v[(dX + 2) + (dY + 2) * 5] = tex2D(_MainTex, i.uv + offset * Tinvsize); + } + } + + float4 temp; + + t25(0, 1, 3, 4, 2, 4, 2, 3, 6, 7); + t25(5, 7, 5, 6, 9, 7, 1, 7, 1, 4); + t25(12, 13, 11, 13, 11, 12, 15, 16, 14, 16); + t25(14, 15, 18, 19, 17, 19, 17, 18, 21, 22); + t25(20, 22, 20, 21, 23, 24, 2, 5, 3, 6); + t25(0, 6, 0, 3, 4, 7, 1, 7, 1, 4); + t25(11, 14, 8, 14, 8, 11, 12, 15, 9, 15); + t25(9, 12, 13, 16, 10, 16, 10, 13, 20, 23); + t25(17, 23, 17, 20, 21, 24, 18, 24, 18, 21); + t25(19, 22, 8, 17, 9, 18, 0, 18, 0, 9); + t25(10, 19, 1, 19, 1, 10, 11, 20, 2, 20); + t25(2, 11, 12, 21, 3, 21, 3, 12, 13, 22); + t25(4, 22, 4, 13, 14, 23, 5, 23, 5, 14); + t25(15, 24, 6, 24, 6, 15, 7, 16, 7, 19); + t25(3, 11, 5, 17, 11, 17, 9, 17, 4, 10); + t25(6, 12, 7, 14, 4, 6, 4, 7, 12, 14); + t25(10, 14, 6, 7, 10, 12, 6, 10, 6, 17); + t25(12, 17, 7, 17, 7, 10, 12, 18, 7, 12); + t24(10, 18, 12, 20, 10, 20, 10, 12); + + return v[12]; + } + ENDCG + } + } + + FallBack "Diffuse" +} \ No newline at end of file diff --git a/Assets/Azure/Resources/MedianShader.shader.meta b/Assets/Azure/Resources/MedianShader.shader.meta new file mode 100644 index 0000000..65f35f1 --- /dev/null +++ b/Assets/Azure/Resources/MedianShader.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: ffb111704c8d0ae49b97d60e5419fe35 +timeCreated: 1495833444 +licenseType: Store +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/PointCloudBodyVertexShaderAll.compute b/Assets/Azure/Resources/PointCloudBodyVertexShaderAll.compute new file mode 100644 index 0000000..803b2dc --- /dev/null +++ b/Assets/Azure/Resources/PointCloudBodyVertexShaderAll.compute @@ -0,0 +1,74 @@ +#pragma kernel BakeVertexTex + +uint2 PointCloudRes; +float2 SpaceScale; + +uint MinDepth; +uint MaxDepth; + +int BodyIndexAll; + +int BodyIndex0; +int BodyIndex1; +int BodyIndex2; +int BodyIndex3; +int BodyIndex4; + +StructuredBuffer SpaceTable; +StructuredBuffer DepthMap; +StructuredBuffer BodyIndexMap; + +RWTexture2D PointCloudVertexTex; + + +[numthreads(8, 8, 1)] +void BakeVertexTex(uint3 id : SV_DispatchThreadID) +{ + uint i = id.x + id.y * PointCloudRes.x; + + uint depth2 = DepthMap[i >> 1]; + uint depth = i & 1 != 0 ? depth2 >> 16 : depth2 & 0xffff; + + depth = (depth >= MinDepth && depth <= MaxDepth) * depth; + //float fDepth = (float)depth / 1000.0; + //bool mask = depth != 0; + + uint bi4 = BodyIndexMap[i >> 2]; + int bi = 255; + + switch (i & 3) + { + case 0: + bi = bi4 & 255; + break; + case 1: + bi = (bi4 >> 8) & 255; + break; + case 2: + bi = (bi4 >> 16) & 255; + break; + case 3: + bi = (bi4 >> 24) & 255; + break; + } + + bool mask = false; + if (BodyIndexAll != 0) + { + mask = (bi != 255); + } + else + { + mask = ((bi == BodyIndex0) || (bi == BodyIndex1) || (bi == BodyIndex2) || (bi == BodyIndex3) || (bi == BodyIndex4)); + } + + float fDepth = (float)(depth * mask) / 1000.0; + + float3 pos = float3( + SpaceTable[i * 3] * fDepth * SpaceScale.x, + SpaceTable[i * 3 + 1] * fDepth * SpaceScale.y, + mask ? fDepth : 1000 + ); + + PointCloudVertexTex[id.xy] = float4(pos, mask); +} diff --git a/Assets/Azure/Resources/PointCloudBodyVertexShaderAll.compute.meta b/Assets/Azure/Resources/PointCloudBodyVertexShaderAll.compute.meta new file mode 100644 index 0000000..a262617 --- /dev/null +++ b/Assets/Azure/Resources/PointCloudBodyVertexShaderAll.compute.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6ddb9911bd41b8b479071065c427f2d2 +ComputeShaderImporter: + externalObjects: {} + currentAPIMask: 2097152 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/PointCloudBodyVertexShaderCRK2.compute b/Assets/Azure/Resources/PointCloudBodyVertexShaderCRK2.compute new file mode 100644 index 0000000..341558a --- /dev/null +++ b/Assets/Azure/Resources/PointCloudBodyVertexShaderCRK2.compute @@ -0,0 +1,80 @@ +#pragma kernel BakeVertexTexColorResK2 + +uint2 PointCloudRes; +uint2 DepthRes; +float2 SpaceScale; + +uint MinDepth; +uint MaxDepth; + +int BodyIndexAll; + +int BodyIndex0; +int BodyIndex1; +int BodyIndex2; +int BodyIndex3; +int BodyIndex4; + +StructuredBuffer SpaceTable; +StructuredBuffer DepthMap; +StructuredBuffer BodyIndexMap; +StructuredBuffer ColorToDepthMap; + +RWTexture2D PointCloudVertexTex; + + +[numthreads(8, 8, 1)] +void BakeVertexTexColorResK2(uint3 id : SV_DispatchThreadID) +{ + uint i = id.x + id.y * PointCloudRes.x; + + int dx = max(ColorToDepthMap[i << 1], 0); + int dy = max(ColorToDepthMap[(i << 1) + 1], 0); + uint di = dx + dy * DepthRes.x; + + uint depth2 = DepthMap[di >> 1]; + uint depth = di & 1 != 0 ? depth2 >> 16 : depth2 & 0xffff; + + depth = (depth >= MinDepth && depth <= MaxDepth) * depth; + //float fDepth = (float)depth / 1000.0; + //bool mask = depth != 0; + + uint bi4 = BodyIndexMap[di >> 2]; + int bi = 255; + + switch (di & 3) + { + case 0: + bi = bi4 & 255; + break; + case 1: + bi = (bi4 >> 8) & 255; + break; + case 2: + bi = (bi4 >> 16) & 255; + break; + case 3: + bi = (bi4 >> 24) & 255; + break; + } + + bool mask = false; + if (BodyIndexAll != 0) + { + mask = (bi != 255); + } + else + { + mask = ((bi == BodyIndex0) || (bi == BodyIndex1) || (bi == BodyIndex2) || (bi == BodyIndex3) || (bi == BodyIndex4)); + } + + float fDepth = (float)(depth * mask) / 1000.0; + + float3 pos = float3( + SpaceTable[di * 3] * fDepth * SpaceScale.x, + SpaceTable[di * 3 + 1] * fDepth * SpaceScale.y, + mask ? fDepth : 1000 + ); + + PointCloudVertexTex[id.xy] = float4(pos, mask); +} diff --git a/Assets/Azure/Resources/PointCloudBodyVertexShaderCRK2.compute.meta b/Assets/Azure/Resources/PointCloudBodyVertexShaderCRK2.compute.meta new file mode 100644 index 0000000..b80f846 --- /dev/null +++ b/Assets/Azure/Resources/PointCloudBodyVertexShaderCRK2.compute.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f8d9bae94343ae949a1e8d18e36b0cad +ComputeShaderImporter: + externalObjects: {} + currentAPIMask: 2097152 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/PointCloudColorShaderK2.compute b/Assets/Azure/Resources/PointCloudColorShaderK2.compute new file mode 100644 index 0000000..b1b9b07 --- /dev/null +++ b/Assets/Azure/Resources/PointCloudColorShaderK2.compute @@ -0,0 +1,22 @@ +#pragma kernel BakeColorTex + +uint2 DepthRes; + +StructuredBuffer DepthToColorMap; +Texture2D ColorTex; + +RWTexture2D PointCloudColorTex; + + +[numthreads(8, 8, 1)] +void BakeColorTex(uint3 id : SV_DispatchThreadID) +{ + uint i = id.x + id.y * DepthRes.x; + + int cx = DepthToColorMap[i << 1]; + int cy = DepthToColorMap[(i << 1) + 1]; + float4 color = ColorTex.Load(int3(cx, cy, 0)); + + PointCloudColorTex[id.xy] = color; +} + diff --git a/Assets/Azure/Resources/PointCloudColorShaderK2.compute.meta b/Assets/Azure/Resources/PointCloudColorShaderK2.compute.meta new file mode 100644 index 0000000..23e0548 --- /dev/null +++ b/Assets/Azure/Resources/PointCloudColorShaderK2.compute.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8a009ea1276e72142aef5e18896a7819 +ComputeShaderImporter: + externalObjects: {} + currentAPIMask: 2097152 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/PointCloudVertexShaderAll.compute b/Assets/Azure/Resources/PointCloudVertexShaderAll.compute new file mode 100644 index 0000000..bd30c4b --- /dev/null +++ b/Assets/Azure/Resources/PointCloudVertexShaderAll.compute @@ -0,0 +1,34 @@ +#pragma kernel BakeVertexTex + +uint2 PointCloudRes; +float2 SpaceScale; + +uint MinDepth; +uint MaxDepth; + +StructuredBuffer SpaceTable; +StructuredBuffer DepthMap; + +RWTexture2D PointCloudVertexTex; + + +[numthreads(8, 8, 1)] +void BakeVertexTex(uint3 id : SV_DispatchThreadID) +{ + uint i = id.x + id.y * PointCloudRes.x; + + uint depth2 = DepthMap[i >> 1]; + uint depth = i & 1 != 0 ? depth2 >> 16 : depth2 & 0xffff; + depth = (depth >= MinDepth && depth <= MaxDepth) * depth; + + float fDepth = (float)depth / 1000.0; + bool mask = depth != 0; + + float3 pos = float3( + SpaceTable[i * 3] * fDepth * SpaceScale.x, + SpaceTable[i * 3 + 1] * fDepth * SpaceScale.y, + mask ? fDepth : 1000 + ); + + PointCloudVertexTex[id.xy] = float4(pos, mask); +} diff --git a/Assets/Azure/Resources/PointCloudVertexShaderAll.compute.meta b/Assets/Azure/Resources/PointCloudVertexShaderAll.compute.meta new file mode 100644 index 0000000..c26963d --- /dev/null +++ b/Assets/Azure/Resources/PointCloudVertexShaderAll.compute.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5e9f29dc01a48bcb59ee66eaddc9d7d2 +ComputeShaderImporter: + externalObjects: {} + currentAPIMask: 2097152 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/PointCloudVertexShaderCRK2.compute b/Assets/Azure/Resources/PointCloudVertexShaderCRK2.compute new file mode 100644 index 0000000..891ae8d --- /dev/null +++ b/Assets/Azure/Resources/PointCloudVertexShaderCRK2.compute @@ -0,0 +1,40 @@ +#pragma kernel BakeVertexTexColorResK2 + +uint2 PointCloudRes; +uint2 DepthRes; +float2 SpaceScale; + +uint MinDepth; +uint MaxDepth; + +StructuredBuffer SpaceTable; +StructuredBuffer DepthMap; +StructuredBuffer ColorToDepthMap; + +RWTexture2D PointCloudVertexTex; + + +[numthreads(8, 8, 1)] +void BakeVertexTexColorResK2(uint3 id : SV_DispatchThreadID) +{ + uint i = id.x + id.y * PointCloudRes.x; + + int dx = ColorToDepthMap[i << 1]; + int dy = ColorToDepthMap[(i << 1) + 1]; + uint di = dx + dy * DepthRes.x; + + uint depth2 = DepthMap[di >> 1]; + uint depth = di & 1 != 0 ? depth2 >> 16 : depth2 & 0xffff; + depth = (depth >= MinDepth && depth <= MaxDepth) * depth; + + float fDepth = (float)depth / 1000.0; + bool mask = depth != 0; + + float3 pos = float3( + SpaceTable[di * 3] * fDepth * SpaceScale.x, + SpaceTable[di * 3 + 1] * fDepth * SpaceScale.y, + mask ? fDepth : 1000 + ); + + PointCloudVertexTex[id.xy] = float4(pos, mask); +} diff --git a/Assets/Azure/Resources/PointCloudVertexShaderCRK2.compute.meta b/Assets/Azure/Resources/PointCloudVertexShaderCRK2.compute.meta new file mode 100644 index 0000000..0d7ffe3 --- /dev/null +++ b/Assets/Azure/Resources/PointCloudVertexShaderCRK2.compute.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 588451d4696f4774ebdf90d17c60319b +ComputeShaderImporter: + externalObjects: {} + currentAPIMask: 2097152 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/SceneMeshGShader.cginc b/Assets/Azure/Resources/SceneMeshGShader.cginc new file mode 100644 index 0000000..78d656e --- /dev/null +++ b/Assets/Azure/Resources/SceneMeshGShader.cginc @@ -0,0 +1,87 @@ +float getMaxEdgeLen(float3 v0, float3 v1, float3 v2) +{ + float maxEdgeLen = distance(v0, v1); + maxEdgeLen = max(maxEdgeLen, distance(v1, v2)); + maxEdgeLen = max(maxEdgeLen, distance(v2, v0)); + + return maxEdgeLen; +} + +v2f_surf copyV2fSurf(v2f_surf p0, float dx, float dy) +{ + v2f_surf p; + + p = p0; + p.pos = p0.pos + float4(dx, dy, 0, 0); + + return p; +} + +//[maxvertexcount(1)] +//void geom_point_surf(point v2f_surf input[1], inout PointStream outStream) +//{ +// v2f_surf p0 = input[0]; +// +// if (p0.idxMask.y) +// { +// outStream.Append(p0); +// outStream.RestartStrip(); +// } +//} + +//[maxvertexcount(2)] +//void geom_line_surf(line v2f_surf input[2], inout LineStream outStream) +//{ +// v2f_surf p0 = input[0]; +// v2f_surf p1 = input[1]; +// +// if (p0.idxMask.y && p1.idxMask.y) +// { +// outStream.Append(p0); +// outStream.Append(p1); +// outStream.RestartStrip(); +// } +//} + +[maxvertexcount(6)] +void geom_tri_surf(triangle v2f_surf input[3], inout TriangleStream outStream) +{ + v2f_surf p0 = input[0]; + v2f_surf p1 = input[1]; + v2f_surf p2 = input[2]; + + if (_IsPointCloud) + { + if (p0.idxMask.y) + { + float dxy = min(_ColorTex_TexelSize.x, _ColorTex_TexelSize.y) *_CoarseFactor; + + p1 = copyV2fSurf(p0, dxy, 0); + p2 = copyV2fSurf(p0, 0, dxy); + v2f_surf p3 = copyV2fSurf(p0, dxy, dxy); + + outStream.Append(p0); + outStream.Append(p1); + outStream.Append(p2); + outStream.RestartStrip(); + + outStream.Append(p1); + outStream.Append(p3); + outStream.Append(p2); + outStream.RestartStrip(); + } + } + else + { + if (p0.idxMask.y && p1.idxMask.y && p2.idxMask.y && getMaxEdgeLen(p0.vertexPos, p1.vertexPos, p2.vertexPos) < _MaxEdgeLen) + { + //p0.worldNormal = p1.worldNormal = p2.worldNormal = cross(normalize(p1.vertexPos - p0.vertexPos), normalize(p2.vertexPos - p0.vertexPos)); + + outStream.Append(p0); + outStream.Append(p1); + outStream.Append(p2); + outStream.RestartStrip(); + } + } +} + diff --git a/Assets/Azure/Resources/SceneMeshGShader.cginc.meta b/Assets/Azure/Resources/SceneMeshGShader.cginc.meta new file mode 100644 index 0000000..c406bdc --- /dev/null +++ b/Assets/Azure/Resources/SceneMeshGShader.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 77f3ccd5e1e99a04fb54dc0f2bf6b5a4 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/SceneMeshShader.shader b/Assets/Azure/Resources/SceneMeshShader.shader new file mode 100644 index 0000000..f624ce8 --- /dev/null +++ b/Assets/Azure/Resources/SceneMeshShader.shader @@ -0,0 +1,196 @@ +Shader "Kinect/SceneMeshShader" +{ + Properties + { + _Color ("Color", Color) = (1,1,1,1) + _ColorTex ("Albedo (RGB)", 2D) = "white" {} + } + SubShader + { + Tags { "Queue" = "Transparent" "RenderType" = "Opaque" "IgnoreProjector" = "True" } + //LOD 200 + + Cull Off + Blend Off + + CGPROGRAM + + //#include "UnityCG.cginc" + #pragma target 5.0 + + #pragma surface surf Lambert vertex:vert addshadow + #pragma exclude_renderers d3d11_9x + + sampler2D _ColorTex; + float4 _ColorTex_TexelSize; + //float4 _ColorTex_ST; + +#ifdef SHADER_API_D3D11 + StructuredBuffer _DepthMap; + StructuredBuffer _SpaceTable; +#endif + + int _CoarseFactor; + int _IsPointCloud; + float2 _SpaceScale; + + float2 _TexRes; + float2 _Cxy; + float2 _Fxy; + + float4x4 _Transform; + float3 _PosMin; + float3 _PosMax; + + + struct Input + { + float2 uv_ColorTex : TEXCOORD0; + float4 vertexPos : TEXCOORD2; + }; + + //half _Glossiness; + //half _Metallic; + fixed4 _Color; + + // Add instancing support for this shader. You need to check 'Enable Instancing' on materials that use the shader. + // See https://docs.unity3d.com/Manual/GPUInstancing.html for more information about instancing. + // #pragma instancing_options assumeuniformscaling + UNITY_INSTANCING_BUFFER_START(Props) + // put more per-instance properties here + UNITY_INSTANCING_BUFFER_END(Props) + + + uint getDepthAt(float2 ui) + { + uint dx = (uint)(ui.x * _TexRes.x); + uint dy = (uint)(ui.y * _TexRes.y); + uint di = (dx + dy * _TexRes.x); + + uint depth2 = 0; +#ifdef SHADER_API_D3D11 + depth2 = _DepthMap[di >> 1]; +#endif + uint depth = di & 1 != 0 ? depth2 >> 16 : depth2 & 0xffff; + + return depth; + } + + + float4 getSpacePos(float2 ui, float fDepth, float fAplha) + { + uint dx = (uint)(ui.x * _TexRes.x); + uint dy = (uint)(ui.y * _TexRes.y); + uint di = (dx + dy * _TexRes.x) * 3; + +#ifdef SHADER_API_D3D11 + float4 spacePos = float4(_SpaceTable[di] * fDepth * _SpaceScale.x, _SpaceTable[di + 1] * fDepth * _SpaceScale.y, fDepth, fAplha); +#else + float4 spacePos = float4(0, 0, 0, fAplha); +#endif + + return spacePos; + } + + + void vert(inout appdata_full v, out Input o) + { + UNITY_INITIALIZE_OUTPUT(Input, o); + + float2 posDepth = (float2)v.vertex; + uint depth = getDepthAt(posDepth); + + float dTexX = _ColorTex_TexelSize.x * _CoarseFactor; + float dTexY = _ColorTex_TexelSize.y * _CoarseFactor; + + const float2 ofsToCheck[8] = { + float2(-dTexX, -dTexY), float2(0, -dTexY), float2(dTexX, -dTexY), + float2(-dTexX, 0), float2(dTexX, 0), + float2(-dTexX, dTexY), float2(0, dTexY), float2(dTexX, dTexY) + }; + + if (depth == 0 && !_IsPointCloud) + { + uint maxDepth = 0; + uint numValid = 0; + + for (int i = 0; i < 8; i++) + { + uint depth2 = getDepthAt(posDepth + ofsToCheck[i]); + maxDepth = max(maxDepth, depth2); + numValid += (depth2 != 0); + } + + depth = numValid > 0 ? maxDepth : 0; + } + + float fDepth = (float)depth * 0.001; + //float2 oPos = posDepth * _TexRes - _Cxy; // float2(posDepth.x * _TexRes.x - _Cxy.x, posDepth.y * _TexRes.y - _Cxy.y); + + //float2 pPos = float2(oPos.x * fDepth * _SpaceScale.x / _Fxy.x, oPos.y * fDepth * _SpaceScale.y / _Fxy.y); + //float4 vPos = float4(pPos.x, pPos.y, fDepth, v.vertex.w); + float4 vPos = getSpacePos(posDepth, fDepth, v.vertex.w); + + float4 wPos = vPos; // mul(_Transform, vPos); + bool mask = wPos.x >= _PosMin.x && wPos.x <= _PosMax.x && wPos.y >= _PosMin.y && wPos.y <= _PosMax.y && wPos.z >= _PosMin.z && wPos.z <= _PosMax.z; + + if (mask && !_IsPointCloud) + { + for (int i = 0; i < 8; i++) + { + float2 posDepth2 = posDepth + ofsToCheck[i]; + uint depth2 = getDepthAt(posDepth2); + + float fDepth2 = (float)depth2 * 0.001; + //float2 oPos2 = posDepth2 * _TexRes - _Cxy; + + //float2 pPos2 = float2(oPos2.x * fDepth2 * _SpaceScale.x / _Fxy.x, oPos2.y * fDepth2 * _SpaceScale.y / _Fxy.y); + //float4 vPos2 = float4(pPos2.x, pPos2.y, fDepth2, v.vertex.w); + float4 vPos2 = getSpacePos(posDepth2, fDepth2, v.vertex.w); + + float4 wPos2 = vPos2; // mul(_Transform, vPos2); + bool mask2 = abs(wPos2.z - wPos.z) < 0.1 && + wPos2.x >= _PosMin.x && wPos2.x <= _PosMax.x && wPos2.y >= _PosMin.y && wPos2.y <= _PosMax.y && wPos2.z >= _PosMin.z && wPos2.z <= _PosMax.z; + mask = mask && mask2; + } + } + + float4 vertexPos = vPos; + + v.vertex = vertexPos; + v.texcoord.xy = posDepth; + + o.vertexPos = float4(vertexPos.xyz, mask); // vertexPos * mask; // + } + + + void surf(Input IN, inout SurfaceOutput o) + { + float4 col = tex2D(_ColorTex, IN.uv_ColorTex); + //float4 col = float3(1, 0, 0); + + if (IN.vertexPos.w < 0.99999) + { + discard; + } + + //o.Emission = col * _Color; + o.Albedo = col * _Color; + o.Alpha = col.a; + + //float3 nPos = IN.vertexPos.xyz; + //nPos.xy = nPos.xy / nPos.z; + + //float3 dx = ddx(nPos); + //float3 dy = ddy(nPos); + + //float3 n = normalize(cross(dx, dy)); + //o.Normal = n; + } + + ENDCG + } + + FallBack "Diffuse" +} + diff --git a/Assets/Azure/Resources/SceneMeshShader.shader.meta b/Assets/Azure/Resources/SceneMeshShader.shader.meta new file mode 100644 index 0000000..5dd96d9 --- /dev/null +++ b/Assets/Azure/Resources/SceneMeshShader.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 3845f5d465d45ce4faa43a0804287e66 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/SceneMeshUShader.shader b/Assets/Azure/Resources/SceneMeshUShader.shader new file mode 100644 index 0000000..0091aab --- /dev/null +++ b/Assets/Azure/Resources/SceneMeshUShader.shader @@ -0,0 +1,268 @@ +Shader "Kinect/SceneMeshUShader" +{ + Properties + { + _ColorTex("Albedo (RGB)", 2D) = "white" {} + _MaxEdgeLen("Max edge length", Range(0.01, 0.5)) = 0.1 + } + + SubShader + { + Tags + { + "RenderType" = "Transparent" + "Queue" = "Transparent-1" + } + + Pass + { + ZWrite On + Blend SrcAlpha OneMinusSrcAlpha + Cull Off + + CGPROGRAM + + #pragma vertex vert + #pragma fragment frag + //#pragma geometry geom + + #pragma target 5.0 + #include "UnityCG.cginc" + #include "FragmentLighting.cginc" + + + sampler2D _ColorTex; + float4 _ColorTex_ST; + float4 _ColorTex_TexelSize; + + sampler2D _CameraDepthTexture; + + float _MaxEdgeLen; + float _CutoffFactor; + + //#ifdef SHADER_API_D3D11 + StructuredBuffer _DepthMap; + StructuredBuffer _SpaceTable; + //#endif + + int _CoarseFactor; + int _IsPointCloud; + float2 _SpaceScale; + + float2 _TexRes; + + float4x4 _Transform; + float3 _PosMin; + float3 _PosMax; + + + struct v2f + { + float4 pos : SV_POSITION; + float2 uv_ColorTex : TEXCOORD0; + float4 vertexPos : TEXCOORD1; + uint idx : TEXCOORD2; + + bool mask : TEXCOORD3; + float3 normal : NORMAL; + float3 worldDirection : TEXCOORD4; + float4 scrPos : TEXCOORD5; + }; + + //struct v2f + //{ + // float2 uv : TEXCOORD0; + // float4 pos : SV_POSITION; + // float3 normal : NORMAL; + // float3 worldDirection : TEXCOORD1; + //}; + + //struct f2o + //{ + // fixed4 color : SV_Target; + // float depth : SV_Depth; + //}; + + int _ApplyLights; + int _ApplyShadows; + + float4 _DirectionalLights[2]; + sampler2D _DirectionalShadowMap; + + + uint getSceneDepthAt(uint di) + { + uint depth2 = 0; + //#ifdef SHADER_API_D3D11 + depth2 = _DepthMap[di >> 1]; + //#endif + uint depth = di & 1 != 0 ? depth2 >> 16 : depth2 & 0xffff; + + return depth; + } + + float4 getSpacePos(uint idx, float fDepth) + { + uint di = idx * 3; + //#ifdef SHADER_API_D3D11 + float4 spacePos = float4(_SpaceTable[di] * fDepth * _SpaceScale.x, _SpaceTable[di + 1] * fDepth * _SpaceScale.y, fDepth, 1.0); + //#else + // float4 spacePos = float4(0, 0, 0, 1.0); + //#endif + + return spacePos; + } + + + v2f vert(appdata_base v) + { + v2f o; + + float2 texUv = TRANSFORM_TEX(v.texcoord, _ColorTex); // v.texcoord; + o.uv_ColorTex = texUv; + + uint dx = (uint)(texUv.x * _TexRes.x); + uint dy = (uint)(texUv.y * _TexRes.y); + uint idx = (dx + dy * _TexRes.x); + o.idx = idx; + + uint depth = getSceneDepthAt(idx); + float fDepth = (float)depth * 0.001; + float4 vPos = getSpacePos(idx, fDepth); // v.vertex.w); + + float4 wPos = vPos; // mul(_Transform, vPos); + bool mask = wPos.x >= _PosMin.x && wPos.x <= _PosMax.x && wPos.y >= _PosMin.y && wPos.y <= _PosMax.y && wPos.z >= _PosMin.z && wPos.z <= _PosMax.z; + + v.vertex = vPos; + o.pos = UnityObjectToClipPos(v.vertex); + o.scrPos = ComputeScreenPos(o.pos); + + o.vertexPos = vPos; + o.mask = mask; + + o.normal = v.normal; + //o.worldNormal = UnityObjectToWorldNormal(v.normal); + o.worldDirection = mul(unity_ObjectToWorld, vPos).xyz - _WorldSpaceCameraPos; + + return o; + } + + + fixed4 frag(v2f i) : SV_Target + { + fixed4 color = tex2D(_ColorTex, i.uv_ColorTex); + + float4 localPos = i.vertexPos; + float fDepth = localPos.z; + //color.rgb = float3(3.0 - fDepth, 3.0 - fDepth, 3.0 - fDepth); + + if (!i.mask) + { + discard; + } + + localPos.xy = localPos.xy / localPos.z; + float3 dx = ddx(localPos); + float3 dy = ddy(localPos); + + float3 n = normalize(cross(dx, dy)); + float sheerAngle = abs(dot(n, float3(0, 0, 1))); + //color.rgb = float3(sheerAngle, sheerAngle, sheerAngle); + + if (sheerAngle < _CutoffFactor) // 0.5^6 = 0.015625 + { + discard; + } + + if (_ApplyLights == 1) + { + // directional light + color *= _DirectionalLights[1]; + + half4 c = color; + + // shadows + if (_ApplyShadows == 1) + { + //float3 shadows = tex2D(_DirectionalShadowMap, i.uv).rgb; + //c = color * (half4(saturate(shadows), 1)); + } + + // lights + float fDepth = i.worldDirection.z; // LinearEyeDepth(tex2Dproj(_CameraDepthTexture, UNITY_PROJ_COORD(i.scrPos)).r); + float3 worldPos = (i.worldDirection / i.pos.w) * fDepth + _WorldSpaceCameraPos; + c += saturate(ApplyLighting(color.rgb, i.normal, worldPos, 1)); + + color = c; + } + + return color; + } + + + float getMaxEdgeLen(float3 v0, float3 v1, float3 v2) + { + float maxEdgeLen = distance(v0, v1); + maxEdgeLen = max(maxEdgeLen, distance(v1, v2)); + maxEdgeLen = max(maxEdgeLen, distance(v2, v0)); + + return maxEdgeLen; + } + + v2f copyV2fSurf(v2f p0, float dx, float dy) + { + v2f p; + + p = p0; + p.pos = p0.pos + float4(dx, dy, 0, 0); + + return p; + } + + [maxvertexcount(6)] + void geom(triangle v2f input[3], inout TriangleStream outStream) + { + v2f p0 = input[0]; + v2f p1 = input[1]; + v2f p2 = input[2]; + + if (_IsPointCloud) + { + if (p0.mask) + { + float dxy = min(_ColorTex_TexelSize.x, _ColorTex_TexelSize.y) *_CoarseFactor; + + p1 = copyV2fSurf(p0, dxy, 0); + p2 = copyV2fSurf(p0, 0, dxy); + v2f p3 = copyV2fSurf(p0, dxy, dxy); + + outStream.Append(p0); + outStream.Append(p1); + outStream.Append(p2); + outStream.RestartStrip(); + + outStream.Append(p1); + outStream.Append(p3); + outStream.Append(p2); + outStream.RestartStrip(); + } + } + else + { + if (p0.mask && p1.mask && p2.mask && getMaxEdgeLen(p0.vertexPos, p1.vertexPos, p2.vertexPos) < _MaxEdgeLen) + { + //p0.worldNormal = p1.worldNormal = p2.worldNormal = cross(normalize(p1.vertexPos - p0.vertexPos), normalize(p2.vertexPos - p0.vertexPos)); + + outStream.Append(p0); + outStream.Append(p1); + outStream.Append(p2); + outStream.RestartStrip(); + } + } + } + + ENDCG + } + + } +} \ No newline at end of file diff --git a/Assets/Azure/Resources/SceneMeshUShader.shader.meta b/Assets/Azure/Resources/SceneMeshUShader.shader.meta new file mode 100644 index 0000000..c04ab73 --- /dev/null +++ b/Assets/Azure/Resources/SceneMeshUShader.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 8cdc5e333ff3f5849bbc1b8109632f16 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/SceneMeshVShader.cginc b/Assets/Azure/Resources/SceneMeshVShader.cginc new file mode 100644 index 0000000..a7f9a3d --- /dev/null +++ b/Assets/Azure/Resources/SceneMeshVShader.cginc @@ -0,0 +1,173 @@ +fixed4 _Color; + +sampler2D _ColorTex; +float4 _ColorTex_TexelSize; +//float4 _ColorTex_ST; + +float _MaxEdgeLen; + +//#ifdef SHADER_API_D3D11 +StructuredBuffer _DepthMap; +StructuredBuffer _BodyIndexMap; +StructuredBuffer _SpaceTable; +//#endif + +int _CoarseFactor; +int _IsPointCloud; +float2 _SpaceScale; + +float2 _TexRes; +float2 _Cxy; +float2 _Fxy; + +uint _UserBodyIndex; +uint _BodyIndexAll; + +float4x4 _Transform; +float3 _PosMin; +float3 _PosMax; + + +struct Input +{ + float2 uv_ColorTex : TEXCOORD0; + float4 vertexPos : TEXCOORD1; + uint idx : TEXCOORD2; + + bool mask : TEXCOORD3; + //float3 normal : TEXCOORD4; +}; + + +//// Add instancing support for this shader. You need to check 'Enable Instancing' on materials that use the shader. +//// See https://docs.unity3d.com/Manual/GPUInstancing.html for more information about instancing. +//// #pragma instancing_options assumeuniformscaling +//UNITY_INSTANCING_BUFFER_START(Props) +// // put more per-instance properties here +//UNITY_INSTANCING_BUFFER_END(Props) + + +uint getSceneDepthAt(uint di) +{ + uint depth2 = 0; +//#ifdef SHADER_API_D3D11 + depth2 = _DepthMap[di >> 1]; +//#endif + uint depth = di & 1 != 0 ? depth2 >> 16 : depth2 & 0xffff; + + return depth; +} + + +uint getBodyDepthAt(uint di, out uint bi) +{ + uint depth2 = 0; + uint bi4 = 0; + bi = 255; +//#ifdef SHADER_API_D3D11 + depth2 = _DepthMap[di >> 1]; + bi4 = _BodyIndexMap[di >> 2]; +//#endif + uint depth = di & 1 != 0 ? depth2 >> 16 : depth2 & 0xffff; + + switch (di & 3) + { + case 0: + bi = bi4 & 255; + break; + case 1: + bi = (bi4 >> 8) & 255; + break; + case 2: + bi = (bi4 >> 16) & 255; + break; + case 3: + bi = (bi4 >> 24) & 255; + break; + } + + return depth; +} + + +float4 getSpacePos(uint idx, float fDepth) +{ + uint di = idx * 3; +//#ifdef SHADER_API_D3D11 + float4 spacePos = float4(_SpaceTable[di] * fDepth * _SpaceScale.x, _SpaceTable[di + 1] * fDepth * _SpaceScale.y, fDepth, 1.0); +//#else +// float4 spacePos = float4(0, 0, 0, 1.0); +//#endif + + return spacePos; +} + + +void vert_scene(inout appdata_full v, out Input o) +{ + UNITY_INITIALIZE_OUTPUT(Input, o); + + float2 texUv = v.texcoord; // (float2)v.vertex; + o.uv_ColorTex = texUv; + + uint dx = (uint)(texUv.x * _TexRes.x); + uint dy = (uint)(texUv.y * _TexRes.y); + uint idx = (dx + dy * _TexRes.x); + o.idx = idx; + + uint depth = getSceneDepthAt(idx); + float fDepth = (float)depth * 0.001; + float4 vPos = getSpacePos(idx, fDepth); // v.vertex.w); + + float4 wPos = vPos; // mul(_Transform, vPos); + bool mask = wPos.x >= _PosMin.x && wPos.x <= _PosMax.x && wPos.y >= _PosMin.y && wPos.y <= _PosMax.y && wPos.z >= _PosMin.z && wPos.z <= _PosMax.z; + + v.vertex = vPos; + + o.vertexPos = vPos; // float4(vPos.xyz, mask); // vertexPos * mask; // + o.mask = mask; +} + + +void vert_body(inout appdata_full v, out Input o) +{ + UNITY_INITIALIZE_OUTPUT(Input, o); + + float2 texUv = v.texcoord; // (float2)v.vertex; + o.uv_ColorTex = texUv; + + uint dx = (uint)(texUv.x * _TexRes.x); + uint dy = (uint)(texUv.y * _TexRes.y); + uint idx = (dx + dy * _TexRes.x); + o.idx = idx; + + uint bi = 255; + uint depth = getBodyDepthAt(idx, bi); + float fDepth = (float)depth * 0.001; + + float4 vPos = getSpacePos(idx, fDepth); + bool mask = _BodyIndexAll != 0 ? (bi != 255) : (bi == _UserBodyIndex && _UserBodyIndex != 255); + + float4 vertexPos = vPos; + + v.vertex = vPos; + + o.vertexPos = vPos; // float4(vPos.xyz, mask); // vertexPos * mask; // + o.mask = mask; +} + + +void surf(Input IN, inout SurfaceOutput o) +{ + float4 col = tex2D(_ColorTex, IN.uv_ColorTex); + //float4 col = float3(1, 0, 0); + + //if (!IN.mask) + //{ + // discard; + //} + + o.Albedo = col * _Color; + o.Alpha = col.a; +} + diff --git a/Assets/Azure/Resources/SceneMeshVShader.cginc.meta b/Assets/Azure/Resources/SceneMeshVShader.cginc.meta new file mode 100644 index 0000000..a119062 --- /dev/null +++ b/Assets/Azure/Resources/SceneMeshVShader.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 8b72f7b54d7a0d043afe4ce777daf2f0 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/SceneMeshVShader.shader b/Assets/Azure/Resources/SceneMeshVShader.shader new file mode 100644 index 0000000..1a1ad0e --- /dev/null +++ b/Assets/Azure/Resources/SceneMeshVShader.shader @@ -0,0 +1,2618 @@ +// Upgrade NOTE: replaced 'defined FOG_COMBINED_WITH_WORLD_POS' with 'defined (FOG_COMBINED_WITH_WORLD_POS)' + +Shader "Kinect/SceneMeshVShader" +{ + Properties + { + _Color ("Color", Color) = (1,1,1,1) + _ColorTex ("Albedo (RGB)", 2D) = "white" {} + _MaxEdgeLen("Max edge length", Range(0.01, 0.5)) = 0.1 + } + SubShader + { + Tags { "Queue" = "Transparent" "RenderType" = "Opaque" "IgnoreProjector" = "True" } + LOD 200 + + Cull Off + Blend Off + + + // ------------------------------------------------------------ + // Surface shader code generated out of a CGPROGRAM block: + + + // ---- forward rendering base pass: + Pass { + Name "FORWARD" + Tags { "LightMode" = "ForwardBase" } + +CGPROGRAM +// compile directives +#pragma vertex vert_surf +#pragma fragment frag_surf +#pragma geometry geom_tri_surf +#pragma target 5.0 +#pragma exclude_renderers d3d11_9x +#pragma multi_compile_instancing +#pragma multi_compile_fog +#pragma multi_compile_fwdbase +#include "HLSLSupport.cginc" +#define UNITY_INSTANCED_LOD_FADE +#define UNITY_INSTANCED_SH +#define UNITY_INSTANCED_LIGHTMAPSTS +#include "UnityShaderVariables.cginc" +#include "UnityShaderUtilities.cginc" +// -------- variant for: +#if !defined(INSTANCING_ON) +// Surface shader code generated based on: +// vertex modifier: 'vert' +// writes to per-pixel normal: no +// writes to emission: no +// writes to occlusion: no +// needs world space reflection vector: no +// needs world space normal vector: no +// needs screen space position: no +// needs world space position: no +// needs view direction: no +// needs world space view direction: no +// needs world space position for lighting: YES +// needs world space view direction for lighting: no +// needs world space view direction for lightmaps: no +// needs vertex color: no +// needs VFACE: no +// passes tangent-to-world matrix to pixel shader: no +// reads from normal: no +// 1 texcoords actually used +// float2 _ColorTex +#include "UnityCG.cginc" +#include "Lighting.cginc" +#include "AutoLight.cginc" + +#define INTERNAL_DATA +#define WorldReflectionVector(data,normal) data.worldRefl +#define WorldNormalVector(data,normal) normal + +// Original surface shader snippet: +#line 15 "" +#ifdef DUMMY_PREPROCESSOR_TO_WORK_AROUND_HLSL_COMPILER_LINE_HANDLING +#endif +/* UNITY: Original start of shader */ + + //#pragma target 5.0 + + //#pragma surface surf Lambert vertex:vert addshadow + //#pragma exclude_renderers d3d11_9x + + #include "SceneMeshVShader.cginc" + + + +// vertex-to-fragment interpolation data +// no lightmaps: +#ifndef LIGHTMAP_ON +// half-precision fragment shader registers: +#ifdef UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS +#define FOG_COMBINED_WITH_WORLD_POS +struct v2f_surf { + UNITY_POSITION(pos); + float2 uv_ColorTex : TEXCOORD0; // _ColorTex + float3 worldNormal : TEXCOORD1; + float4 worldPos : TEXCOORD2; + float4 vertexPos : TEXCOORD3; // vertexPos + uint2 idxMask : TEXCOORD4; // idx mask + //float3 normal : TEXCOORD5; // normal + #if UNITY_SHOULD_SAMPLE_SH + half3 sh : TEXCOORD6; // SH + #endif + UNITY_LIGHTING_COORDS(7,8) + #if SHADER_TARGET >= 30 + float4 lmap : TEXCOORD9; + #endif + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; +#endif +// high-precision fragment shader registers: +#ifndef UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS +struct v2f_surf { + UNITY_POSITION(pos); + float2 uv_ColorTex : TEXCOORD0; // _ColorTex + float3 worldNormal : TEXCOORD1; + float3 worldPos : TEXCOORD2; + float4 vertexPos : TEXCOORD3; // vertexPos + uint2 idxMask : TEXCOORD4; // idx mask + //float3 normal : TEXCOORD5; // normal + #if UNITY_SHOULD_SAMPLE_SH + half3 sh : TEXCOORD6; // SH + #endif + UNITY_FOG_COORDS(7) + UNITY_SHADOW_COORDS(8) + #if SHADER_TARGET >= 30 + float4 lmap : TEXCOORD9; + #endif + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; +#endif +#endif +// with lightmaps: +#ifdef LIGHTMAP_ON +// half-precision fragment shader registers: +#ifdef UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS +#define FOG_COMBINED_WITH_WORLD_POS +struct v2f_surf { + UNITY_POSITION(pos); + float2 uv_ColorTex : TEXCOORD0; // _ColorTex + float3 worldNormal : TEXCOORD1; + float4 worldPos : TEXCOORD2; + float4 vertexPos : TEXCOORD3; // vertexPos + uint2 idxMask : TEXCOORD4; // idx mask + //float3 normal : TEXCOORD5; // normal + float4 lmap : TEXCOORD6; + UNITY_LIGHTING_COORDS(7,8) + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; +#endif +// high-precision fragment shader registers: +#ifndef UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS +struct v2f_surf { + UNITY_POSITION(pos); + float2 uv_ColorTex : TEXCOORD0; // _ColorTex + float3 worldNormal : TEXCOORD1; + float3 worldPos : TEXCOORD2; + float4 vertexPos : TEXCOORD3; // vertexPos + uint2 idxMask : TEXCOORD4; // idx mask + //float3 normal : TEXCOORD5; // normal + float4 lmap : TEXCOORD6; + UNITY_FOG_COORDS(7) + UNITY_SHADOW_COORDS(8) + #ifdef DIRLIGHTMAP_COMBINED + float3 tSpace0 : TEXCOORD9; + float3 tSpace1 : TEXCOORD10; + float3 tSpace2 : TEXCOORD11; + #endif + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; +#endif +#endif +float4 _ColorTex_ST; + +// vertex shader +v2f_surf vert_surf (appdata_full v) { + UNITY_SETUP_INSTANCE_ID(v); + v2f_surf o; + UNITY_INITIALIZE_OUTPUT(v2f_surf,o); + UNITY_TRANSFER_INSTANCE_ID(v,o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + Input customInputData; + vert_scene (v, customInputData); + o.vertexPos.xyzw = customInputData.vertexPos; + o.idxMask.x = customInputData.idx; + o.idxMask.y = customInputData.mask; + //o.normal.xyz = customInputData.normal; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv_ColorTex.xy = TRANSFORM_TEX(v.texcoord, _ColorTex); + float3 worldPos = mul(unity_ObjectToWorld, v.vertex).xyz; + float3 worldNormal = UnityObjectToWorldNormal(v.normal); + #if defined(LIGHTMAP_ON) && defined(DIRLIGHTMAP_COMBINED) + fixed3 worldTangent = UnityObjectToWorldDir(v.tangent.xyz); + fixed tangentSign = v.tangent.w * unity_WorldTransformParams.w; + fixed3 worldBinormal = cross(worldNormal, worldTangent) * tangentSign; + #endif + #if defined(LIGHTMAP_ON) && defined(DIRLIGHTMAP_COMBINED) && !defined(UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS) + o.tSpace0 = float4(worldTangent.x, worldBinormal.x, worldNormal.x, worldPos.x); + o.tSpace1 = float4(worldTangent.y, worldBinormal.y, worldNormal.y, worldPos.y); + o.tSpace2 = float4(worldTangent.z, worldBinormal.z, worldNormal.z, worldPos.z); + #endif + o.worldPos.xyz = worldPos; + o.worldNormal = worldNormal; + #ifdef DYNAMICLIGHTMAP_ON + o.lmap.zw = v.texcoord2.xy * unity_DynamicLightmapST.xy + unity_DynamicLightmapST.zw; + #endif + #ifdef LIGHTMAP_ON + o.lmap.xy = v.texcoord1.xy * unity_LightmapST.xy + unity_LightmapST.zw; + #endif + + // SH/ambient and vertex lights + #ifndef LIGHTMAP_ON + #if UNITY_SHOULD_SAMPLE_SH && !UNITY_SAMPLE_FULL_SH_PER_PIXEL + o.sh = 0; + // Approximated illumination from non-important point lights + #ifdef VERTEXLIGHT_ON + o.sh += Shade4PointLights ( + unity_4LightPosX0, unity_4LightPosY0, unity_4LightPosZ0, + unity_LightColor[0].rgb, unity_LightColor[1].rgb, unity_LightColor[2].rgb, unity_LightColor[3].rgb, + unity_4LightAtten0, worldPos, worldNormal); + #endif + o.sh = ShadeSHPerVertex (worldNormal, o.sh); + #endif + #endif // !LIGHTMAP_ON + + UNITY_TRANSFER_LIGHTING(o,v.texcoord1.xy); // pass shadow and, possibly, light cookie coordinates to pixel shader + #ifdef FOG_COMBINED_WITH_TSPACE + UNITY_TRANSFER_FOG_COMBINED_WITH_TSPACE(o,o.pos); // pass fog coordinates to pixel shader + #elif defined (FOG_COMBINED_WITH_WORLD_POS) + UNITY_TRANSFER_FOG_COMBINED_WITH_WORLD_POS(o,o.pos); // pass fog coordinates to pixel shader + #else + UNITY_TRANSFER_FOG(o,o.pos); // pass fog coordinates to pixel shader + #endif + return o; +} + +// fragment shader +fixed4 frag_surf (v2f_surf IN) : SV_Target { + UNITY_SETUP_INSTANCE_ID(IN); + // prepare and unpack data + Input surfIN; + #ifdef FOG_COMBINED_WITH_TSPACE + UNITY_EXTRACT_FOG_FROM_TSPACE(IN); + #elif defined (FOG_COMBINED_WITH_WORLD_POS) + UNITY_EXTRACT_FOG_FROM_WORLD_POS(IN); + #else + UNITY_EXTRACT_FOG(IN); + #endif + UNITY_INITIALIZE_OUTPUT(Input,surfIN); + surfIN.uv_ColorTex.x = 1.0; + surfIN.vertexPos.x = 1.0; + //surfIN.normal.x = 1.0; + surfIN.uv_ColorTex = IN.uv_ColorTex.xy; + surfIN.vertexPos = IN.vertexPos.xyzw; + surfIN.idx = IN.idxMask.x; + surfIN.mask = IN.idxMask.y; + //surfIN.normal = IN.normal.xyz; + float3 worldPos = IN.worldPos.xyz; + #ifndef USING_DIRECTIONAL_LIGHT + fixed3 lightDir = normalize(UnityWorldSpaceLightDir(worldPos)); + #else + fixed3 lightDir = _WorldSpaceLightPos0.xyz; + #endif + #ifdef UNITY_COMPILER_HLSL + SurfaceOutput o = (SurfaceOutput)0; + #else + SurfaceOutput o; + #endif + o.Albedo = 0.0; + o.Emission = 0.0; + o.Specular = 0.0; + o.Alpha = 0.0; + o.Gloss = 0.0; + fixed3 normalWorldVertex = fixed3(0,0,1); + o.Normal = IN.worldNormal; + normalWorldVertex = IN.worldNormal; + + // call surface function + surf (surfIN, o); + + // compute lighting & shadowing factor + UNITY_LIGHT_ATTENUATION(atten, IN, worldPos) + fixed4 c = 0; + + // Setup lighting environment + UnityGI gi; + UNITY_INITIALIZE_OUTPUT(UnityGI, gi); + gi.indirect.diffuse = 0; + gi.indirect.specular = 0; + gi.light.color = _LightColor0.rgb; + gi.light.dir = lightDir; + // Call GI (lightmaps/SH/reflections) lighting function + UnityGIInput giInput; + UNITY_INITIALIZE_OUTPUT(UnityGIInput, giInput); + giInput.light = gi.light; + giInput.worldPos = worldPos; + giInput.atten = atten; + #if defined(LIGHTMAP_ON) || defined(DYNAMICLIGHTMAP_ON) + giInput.lightmapUV = IN.lmap; + #else + giInput.lightmapUV = 0.0; + #endif + #if UNITY_SHOULD_SAMPLE_SH && !UNITY_SAMPLE_FULL_SH_PER_PIXEL + giInput.ambient = IN.sh; + #else + giInput.ambient.rgb = 0.0; + #endif + giInput.probeHDR[0] = unity_SpecCube0_HDR; + giInput.probeHDR[1] = unity_SpecCube1_HDR; + #if defined(UNITY_SPECCUBE_BLENDING) || defined(UNITY_SPECCUBE_BOX_PROJECTION) + giInput.boxMin[0] = unity_SpecCube0_BoxMin; // .w holds lerp value for blending + #endif + #ifdef UNITY_SPECCUBE_BOX_PROJECTION + giInput.boxMax[0] = unity_SpecCube0_BoxMax; + giInput.probePosition[0] = unity_SpecCube0_ProbePosition; + giInput.boxMax[1] = unity_SpecCube1_BoxMax; + giInput.boxMin[1] = unity_SpecCube1_BoxMin; + giInput.probePosition[1] = unity_SpecCube1_ProbePosition; + #endif + LightingLambert_GI(o, giInput, gi); + + // realtime lighting: call lighting function + c += LightingLambert (o, gi); + UNITY_APPLY_FOG(_unity_fogCoord, c); // apply fog + UNITY_OPAQUE_ALPHA(c.a); + return c; +} + +#include "SceneMeshGShader.cginc" + +#endif + +// -------- variant for: INSTANCING_ON +#if defined(INSTANCING_ON) +// Surface shader code generated based on: +// vertex modifier: 'vert' +// writes to per-pixel normal: no +// writes to emission: no +// writes to occlusion: no +// needs world space reflection vector: no +// needs world space normal vector: no +// needs screen space position: no +// needs world space position: no +// needs view direction: no +// needs world space view direction: no +// needs world space position for lighting: YES +// needs world space view direction for lighting: no +// needs world space view direction for lightmaps: no +// needs vertex color: no +// needs VFACE: no +// passes tangent-to-world matrix to pixel shader: no +// reads from normal: no +// 1 texcoords actually used +// float2 _ColorTex +#include "UnityCG.cginc" +#include "Lighting.cginc" +#include "AutoLight.cginc" + +#define INTERNAL_DATA +#define WorldReflectionVector(data,normal) data.worldRefl +#define WorldNormalVector(data,normal) normal + +// Original surface shader snippet: +#line 15 "" +#ifdef DUMMY_PREPROCESSOR_TO_WORK_AROUND_HLSL_COMPILER_LINE_HANDLING +#endif +/* UNITY: Original start of shader */ + + //#pragma target 5.0 + + //#pragma surface surf Lambert vertex:vert addshadow + //#pragma exclude_renderers d3d11_9x + + #include "SceneMeshVShader.cginc" + + + +// vertex-to-fragment interpolation data +// no lightmaps: +#ifndef LIGHTMAP_ON +// half-precision fragment shader registers: +#ifdef UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS +#define FOG_COMBINED_WITH_WORLD_POS +struct v2f_surf { + UNITY_POSITION(pos); + float2 uv_ColorTex : TEXCOORD0; // _ColorTex + float3 worldNormal : TEXCOORD1; + float4 worldPos : TEXCOORD2; + float4 vertexPos : TEXCOORD3; // vertexPos + uint2 idxMask : TEXCOORD4; // idx mask + //float3 normal : TEXCOORD5; // normal + #if UNITY_SHOULD_SAMPLE_SH + half3 sh : TEXCOORD6; // SH + #endif + UNITY_LIGHTING_COORDS(7,8) + #if SHADER_TARGET >= 30 + float4 lmap : TEXCOORD9; + #endif + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; +#endif +// high-precision fragment shader registers: +#ifndef UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS +struct v2f_surf { + UNITY_POSITION(pos); + float2 uv_ColorTex : TEXCOORD0; // _ColorTex + float3 worldNormal : TEXCOORD1; + float3 worldPos : TEXCOORD2; + float4 vertexPos : TEXCOORD3; // vertexPos + uint2 idxMask : TEXCOORD4; // idx mask + //float3 normal : TEXCOORD5; // normal + #if UNITY_SHOULD_SAMPLE_SH + half3 sh : TEXCOORD6; // SH + #endif + UNITY_FOG_COORDS(7) + UNITY_SHADOW_COORDS(8) + #if SHADER_TARGET >= 30 + float4 lmap : TEXCOORD9; + #endif + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; +#endif +#endif +// with lightmaps: +#ifdef LIGHTMAP_ON +// half-precision fragment shader registers: +#ifdef UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS +#define FOG_COMBINED_WITH_WORLD_POS +struct v2f_surf { + UNITY_POSITION(pos); + float2 uv_ColorTex : TEXCOORD0; // _ColorTex + float3 worldNormal : TEXCOORD1; + float4 worldPos : TEXCOORD2; + float4 vertexPos : TEXCOORD3; // vertexPos + uint2 idxMask : TEXCOORD4; // idx mask + //float3 normal : TEXCOORD5; // normal + float4 lmap : TEXCOORD6; + UNITY_LIGHTING_COORDS(7,8) + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; +#endif +// high-precision fragment shader registers: +#ifndef UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS +struct v2f_surf { + UNITY_POSITION(pos); + float2 uv_ColorTex : TEXCOORD0; // _ColorTex + float3 worldNormal : TEXCOORD1; + float3 worldPos : TEXCOORD2; + float4 vertexPos : TEXCOORD3; // vertexPos + uint2 idxMask : TEXCOORD4; // idx mask + //float3 normal : TEXCOORD5; // normal + float4 lmap : TEXCOORD6; + UNITY_FOG_COORDS(7) + UNITY_SHADOW_COORDS(8) + #ifdef DIRLIGHTMAP_COMBINED + float3 tSpace0 : TEXCOORD9; + float3 tSpace1 : TEXCOORD10; + float3 tSpace2 : TEXCOORD11; + #endif + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; +#endif +#endif +float4 _ColorTex_ST; + +// vertex shader +v2f_surf vert_surf (appdata_full v) { + UNITY_SETUP_INSTANCE_ID(v); + v2f_surf o; + UNITY_INITIALIZE_OUTPUT(v2f_surf,o); + UNITY_TRANSFER_INSTANCE_ID(v,o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + Input customInputData; + vert_scene (v, customInputData); + o.vertexPos.xyzw = customInputData.vertexPos; + o.idxMask.x = customInputData.idx; + o.idxMask.y = customInputData.mask; + //o.normal.xyz = customInputData.normal; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv_ColorTex.xy = TRANSFORM_TEX(v.texcoord, _ColorTex); + float3 worldPos = mul(unity_ObjectToWorld, v.vertex).xyz; + float3 worldNormal = UnityObjectToWorldNormal(v.normal); + #if defined(LIGHTMAP_ON) && defined(DIRLIGHTMAP_COMBINED) + fixed3 worldTangent = UnityObjectToWorldDir(v.tangent.xyz); + fixed tangentSign = v.tangent.w * unity_WorldTransformParams.w; + fixed3 worldBinormal = cross(worldNormal, worldTangent) * tangentSign; + #endif + #if defined(LIGHTMAP_ON) && defined(DIRLIGHTMAP_COMBINED) && !defined(UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS) + o.tSpace0 = float4(worldTangent.x, worldBinormal.x, worldNormal.x, worldPos.x); + o.tSpace1 = float4(worldTangent.y, worldBinormal.y, worldNormal.y, worldPos.y); + o.tSpace2 = float4(worldTangent.z, worldBinormal.z, worldNormal.z, worldPos.z); + #endif + o.worldPos.xyz = worldPos; + o.worldNormal = worldNormal; + #ifdef DYNAMICLIGHTMAP_ON + o.lmap.zw = v.texcoord2.xy * unity_DynamicLightmapST.xy + unity_DynamicLightmapST.zw; + #endif + #ifdef LIGHTMAP_ON + o.lmap.xy = v.texcoord1.xy * unity_LightmapST.xy + unity_LightmapST.zw; + #endif + + // SH/ambient and vertex lights + #ifndef LIGHTMAP_ON + #if UNITY_SHOULD_SAMPLE_SH && !UNITY_SAMPLE_FULL_SH_PER_PIXEL + o.sh = 0; + // Approximated illumination from non-important point lights + #ifdef VERTEXLIGHT_ON + o.sh += Shade4PointLights ( + unity_4LightPosX0, unity_4LightPosY0, unity_4LightPosZ0, + unity_LightColor[0].rgb, unity_LightColor[1].rgb, unity_LightColor[2].rgb, unity_LightColor[3].rgb, + unity_4LightAtten0, worldPos, worldNormal); + #endif + o.sh = ShadeSHPerVertex (worldNormal, o.sh); + #endif + #endif // !LIGHTMAP_ON + + UNITY_TRANSFER_LIGHTING(o,v.texcoord1.xy); // pass shadow and, possibly, light cookie coordinates to pixel shader + #ifdef FOG_COMBINED_WITH_TSPACE + UNITY_TRANSFER_FOG_COMBINED_WITH_TSPACE(o,o.pos); // pass fog coordinates to pixel shader + #elif defined (FOG_COMBINED_WITH_WORLD_POS) + UNITY_TRANSFER_FOG_COMBINED_WITH_WORLD_POS(o,o.pos); // pass fog coordinates to pixel shader + #else + UNITY_TRANSFER_FOG(o,o.pos); // pass fog coordinates to pixel shader + #endif + return o; +} + +// fragment shader +fixed4 frag_surf (v2f_surf IN) : SV_Target { + UNITY_SETUP_INSTANCE_ID(IN); + // prepare and unpack data + Input surfIN; + #ifdef FOG_COMBINED_WITH_TSPACE + UNITY_EXTRACT_FOG_FROM_TSPACE(IN); + #elif defined (FOG_COMBINED_WITH_WORLD_POS) + UNITY_EXTRACT_FOG_FROM_WORLD_POS(IN); + #else + UNITY_EXTRACT_FOG(IN); + #endif + UNITY_INITIALIZE_OUTPUT(Input,surfIN); + surfIN.uv_ColorTex.x = 1.0; + surfIN.vertexPos.x = 1.0; + //surfIN.normal.x = 1.0; + surfIN.uv_ColorTex = IN.uv_ColorTex.xy; + surfIN.vertexPos = IN.vertexPos.xyzw; + surfIN.idx = IN.idxMask.x; + surfIN.mask = IN.idxMask.y; + //surfIN.normal = IN.normal.xyz; + float3 worldPos = IN.worldPos.xyz; + #ifndef USING_DIRECTIONAL_LIGHT + fixed3 lightDir = normalize(UnityWorldSpaceLightDir(worldPos)); + #else + fixed3 lightDir = _WorldSpaceLightPos0.xyz; + #endif + #ifdef UNITY_COMPILER_HLSL + SurfaceOutput o = (SurfaceOutput)0; + #else + SurfaceOutput o; + #endif + o.Albedo = 0.0; + o.Emission = 0.0; + o.Specular = 0.0; + o.Alpha = 0.0; + o.Gloss = 0.0; + fixed3 normalWorldVertex = fixed3(0,0,1); + o.Normal = IN.worldNormal; + normalWorldVertex = IN.worldNormal; + + // call surface function + surf (surfIN, o); + + // compute lighting & shadowing factor + UNITY_LIGHT_ATTENUATION(atten, IN, worldPos) + fixed4 c = 0; + + // Setup lighting environment + UnityGI gi; + UNITY_INITIALIZE_OUTPUT(UnityGI, gi); + gi.indirect.diffuse = 0; + gi.indirect.specular = 0; + gi.light.color = _LightColor0.rgb; + gi.light.dir = lightDir; + // Call GI (lightmaps/SH/reflections) lighting function + UnityGIInput giInput; + UNITY_INITIALIZE_OUTPUT(UnityGIInput, giInput); + giInput.light = gi.light; + giInput.worldPos = worldPos; + giInput.atten = atten; + #if defined(LIGHTMAP_ON) || defined(DYNAMICLIGHTMAP_ON) + giInput.lightmapUV = IN.lmap; + #else + giInput.lightmapUV = 0.0; + #endif + #if UNITY_SHOULD_SAMPLE_SH && !UNITY_SAMPLE_FULL_SH_PER_PIXEL + giInput.ambient = IN.sh; + #else + giInput.ambient.rgb = 0.0; + #endif + giInput.probeHDR[0] = unity_SpecCube0_HDR; + giInput.probeHDR[1] = unity_SpecCube1_HDR; + #if defined(UNITY_SPECCUBE_BLENDING) || defined(UNITY_SPECCUBE_BOX_PROJECTION) + giInput.boxMin[0] = unity_SpecCube0_BoxMin; // .w holds lerp value for blending + #endif + #ifdef UNITY_SPECCUBE_BOX_PROJECTION + giInput.boxMax[0] = unity_SpecCube0_BoxMax; + giInput.probePosition[0] = unity_SpecCube0_ProbePosition; + giInput.boxMax[1] = unity_SpecCube1_BoxMax; + giInput.boxMin[1] = unity_SpecCube1_BoxMin; + giInput.probePosition[1] = unity_SpecCube1_ProbePosition; + #endif + LightingLambert_GI(o, giInput, gi); + + // realtime lighting: call lighting function + c += LightingLambert (o, gi); + UNITY_APPLY_FOG(_unity_fogCoord, c); // apply fog + UNITY_OPAQUE_ALPHA(c.a); + return c; +} + +#include "SceneMeshGShader.cginc" + +#endif + + +ENDCG + +} + + // ---- forward rendering additive lights pass: + Pass { + Name "FORWARD" + Tags { "LightMode" = "ForwardAdd" } + ZWrite Off Blend One One + +CGPROGRAM +// compile directives +#pragma vertex vert_surf +#pragma fragment frag_surf +#pragma geometry geom_tri_surf +#pragma target 5.0 +#pragma exclude_renderers d3d11_9x +#pragma multi_compile_instancing +#pragma multi_compile_fog +#pragma skip_variants INSTANCING_ON +#pragma multi_compile_fwdadd +#include "HLSLSupport.cginc" +#define UNITY_INSTANCED_LOD_FADE +#define UNITY_INSTANCED_SH +#define UNITY_INSTANCED_LIGHTMAPSTS +#include "UnityShaderVariables.cginc" +#include "UnityShaderUtilities.cginc" +// -------- variant for: +#if !defined(INSTANCING_ON) +// Surface shader code generated based on: +// vertex modifier: 'vert' +// writes to per-pixel normal: no +// writes to emission: no +// writes to occlusion: no +// needs world space reflection vector: no +// needs world space normal vector: no +// needs screen space position: no +// needs world space position: no +// needs view direction: no +// needs world space view direction: no +// needs world space position for lighting: YES +// needs world space view direction for lighting: no +// needs world space view direction for lightmaps: no +// needs vertex color: no +// needs VFACE: no +// passes tangent-to-world matrix to pixel shader: no +// reads from normal: no +// 1 texcoords actually used +// float2 _ColorTex +#include "UnityCG.cginc" +#include "Lighting.cginc" +#include "AutoLight.cginc" + +#define INTERNAL_DATA +#define WorldReflectionVector(data,normal) data.worldRefl +#define WorldNormalVector(data,normal) normal + +// Original surface shader snippet: +#line 15 "" +#ifdef DUMMY_PREPROCESSOR_TO_WORK_AROUND_HLSL_COMPILER_LINE_HANDLING +#endif +/* UNITY: Original start of shader */ + + //#pragma target 5.0 + + //#pragma surface surf Lambert vertex:vert addshadow + //#pragma exclude_renderers d3d11_9x + + #include "SceneMeshVShader.cginc" + + + +// vertex-to-fragment interpolation data +struct v2f_surf { + UNITY_POSITION(pos); + float2 uv_ColorTex : TEXCOORD0; // _ColorTex + float3 worldNormal : TEXCOORD1; + float3 worldPos : TEXCOORD2; + float4 vertexPos : TEXCOORD3; // vertexPos + uint2 idxMask : TEXCOORD4; // idx mask + //float3 normal : TEXCOORD5; // normal + UNITY_LIGHTING_COORDS(6,7) + UNITY_FOG_COORDS(8) + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; +float4 _ColorTex_ST; + +// vertex shader +v2f_surf vert_surf (appdata_full v) { + UNITY_SETUP_INSTANCE_ID(v); + v2f_surf o; + UNITY_INITIALIZE_OUTPUT(v2f_surf,o); + UNITY_TRANSFER_INSTANCE_ID(v,o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + Input customInputData; + vert_scene (v, customInputData); + o.vertexPos.xyzw = customInputData.vertexPos; + o.idxMask.x = customInputData.idx; + o.idxMask.y = customInputData.mask; + //o.normal.xyz = customInputData.normal; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv_ColorTex.xy = TRANSFORM_TEX(v.texcoord, _ColorTex); + float3 worldPos = mul(unity_ObjectToWorld, v.vertex).xyz; + float3 worldNormal = UnityObjectToWorldNormal(v.normal); + o.worldPos.xyz = worldPos; + o.worldNormal = worldNormal; + + UNITY_TRANSFER_LIGHTING(o,v.texcoord1.xy); // pass shadow and, possibly, light cookie coordinates to pixel shader + UNITY_TRANSFER_FOG(o,o.pos); // pass fog coordinates to pixel shader + return o; +} + +// fragment shader +fixed4 frag_surf (v2f_surf IN) : SV_Target { + UNITY_SETUP_INSTANCE_ID(IN); + // prepare and unpack data + Input surfIN; + #ifdef FOG_COMBINED_WITH_TSPACE + UNITY_EXTRACT_FOG_FROM_TSPACE(IN); + #elif defined (FOG_COMBINED_WITH_WORLD_POS) + UNITY_EXTRACT_FOG_FROM_WORLD_POS(IN); + #else + UNITY_EXTRACT_FOG(IN); + #endif + UNITY_INITIALIZE_OUTPUT(Input,surfIN); + surfIN.uv_ColorTex.x = 1.0; + surfIN.vertexPos.x = 1.0; + //surfIN.normal.x = 1.0; + surfIN.uv_ColorTex = IN.uv_ColorTex.xy; + surfIN.vertexPos = IN.vertexPos.xyzw; + surfIN.idx = IN.idxMask.x; + surfIN.mask = IN.idxMask.y; + //surfIN.normal = IN.normal.xyz; + float3 worldPos = IN.worldPos.xyz; + #ifndef USING_DIRECTIONAL_LIGHT + fixed3 lightDir = normalize(UnityWorldSpaceLightDir(worldPos)); + #else + fixed3 lightDir = _WorldSpaceLightPos0.xyz; + #endif + #ifdef UNITY_COMPILER_HLSL + SurfaceOutput o = (SurfaceOutput)0; + #else + SurfaceOutput o; + #endif + o.Albedo = 0.0; + o.Emission = 0.0; + o.Specular = 0.0; + o.Alpha = 0.0; + o.Gloss = 0.0; + fixed3 normalWorldVertex = fixed3(0,0,1); + o.Normal = IN.worldNormal; + normalWorldVertex = IN.worldNormal; + + // call surface function + surf (surfIN, o); + UNITY_LIGHT_ATTENUATION(atten, IN, worldPos) + fixed4 c = 0; + + // Setup lighting environment + UnityGI gi; + UNITY_INITIALIZE_OUTPUT(UnityGI, gi); + gi.indirect.diffuse = 0; + gi.indirect.specular = 0; + gi.light.color = _LightColor0.rgb; + gi.light.dir = lightDir; + gi.light.color *= atten; + c += LightingLambert (o, gi); + c.a = 0.0; + UNITY_APPLY_FOG(_unity_fogCoord, c); // apply fog + UNITY_OPAQUE_ALPHA(c.a); + return c; +} + +#include "SceneMeshGShader.cginc" + +#endif + + +ENDCG + +} + + // ---- deferred lighting base geometry pass: + Pass { + Name "PREPASS" + Tags { "LightMode" = "PrePassBase" } + +CGPROGRAM +// compile directives +#pragma vertex vert_surf +#pragma fragment frag_surf +#pragma geometry geom_tri_surf +#pragma target 5.0 +#pragma exclude_renderers d3d11_9x +#pragma multi_compile_instancing +#pragma skip_variants FOG_LINEAR FOG_EXP FOG_EXP2 + +#include "HLSLSupport.cginc" +#define UNITY_INSTANCED_LOD_FADE +#define UNITY_INSTANCED_SH +#define UNITY_INSTANCED_LIGHTMAPSTS +#include "UnityShaderVariables.cginc" +#include "UnityShaderUtilities.cginc" +// -------- variant for: +#if !defined(INSTANCING_ON) +// Surface shader code generated based on: +// vertex modifier: 'vert' +// writes to per-pixel normal: no +// writes to emission: no +// writes to occlusion: no +// needs world space reflection vector: no +// needs world space normal vector: no +// needs screen space position: no +// needs world space position: no +// needs view direction: no +// needs world space view direction: no +// needs world space position for lighting: YES +// needs world space view direction for lighting: no +// needs world space view direction for lightmaps: no +// needs vertex color: no +// needs VFACE: no +// passes tangent-to-world matrix to pixel shader: no +// reads from normal: YES +// 0 texcoords actually used +#include "UnityCG.cginc" +#include "Lighting.cginc" + +#define INTERNAL_DATA +#define WorldReflectionVector(data,normal) data.worldRefl +#define WorldNormalVector(data,normal) normal + +// Original surface shader snippet: +#line 15 "" +#ifdef DUMMY_PREPROCESSOR_TO_WORK_AROUND_HLSL_COMPILER_LINE_HANDLING +#endif +/* UNITY: Original start of shader */ + + //#pragma target 5.0 + + //#pragma surface surf Lambert vertex:vert addshadow + //#pragma exclude_renderers d3d11_9x + + #include "SceneMeshVShader.cginc" + + + +// vertex-to-fragment interpolation data +struct v2f_surf { + UNITY_POSITION(pos); + float3 worldNormal : TEXCOORD0; + float3 worldPos : TEXCOORD1; + float4 vertexPos : TEXCOORD2; // vertexPos + uint2 idxMask : TEXCOORD3; // idx mask + //float3 normal : TEXCOORD4; // normal + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; + +// vertex shader +v2f_surf vert_surf (appdata_full v) { + UNITY_SETUP_INSTANCE_ID(v); + v2f_surf o; + UNITY_INITIALIZE_OUTPUT(v2f_surf,o); + UNITY_TRANSFER_INSTANCE_ID(v,o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + Input customInputData; + vert_scene (v, customInputData); + o.vertexPos.xyzw = customInputData.vertexPos; + o.idxMask.x = customInputData.idx; + o.idxMask.y = customInputData.mask; + //o.normal.xyz = customInputData.normal; + o.pos = UnityObjectToClipPos(v.vertex); + float3 worldPos = mul(unity_ObjectToWorld, v.vertex).xyz; + float3 worldNormal = UnityObjectToWorldNormal(v.normal); + o.worldPos.xyz = worldPos; + o.worldNormal = worldNormal; + return o; +} + +// fragment shader +fixed4 frag_surf (v2f_surf IN) : SV_Target { + UNITY_SETUP_INSTANCE_ID(IN); + // prepare and unpack data + Input surfIN; + #ifdef FOG_COMBINED_WITH_TSPACE + UNITY_EXTRACT_FOG_FROM_TSPACE(IN); + #elif defined (FOG_COMBINED_WITH_WORLD_POS) + UNITY_EXTRACT_FOG_FROM_WORLD_POS(IN); + #else + UNITY_EXTRACT_FOG(IN); + #endif + UNITY_INITIALIZE_OUTPUT(Input,surfIN); + surfIN.uv_ColorTex.x = 1.0; + surfIN.vertexPos.x = 1.0; + //surfIN.normal.x = 1.0; + surfIN.vertexPos = IN.vertexPos.xyzw; + surfIN.idx = IN.idxMask.x; + surfIN.mask = IN.idxMask.y; + //surfIN.normal = IN.normal.xyz; + float3 worldPos = IN.worldPos.xyz; + #ifndef USING_DIRECTIONAL_LIGHT + fixed3 lightDir = normalize(UnityWorldSpaceLightDir(worldPos)); + #else + fixed3 lightDir = _WorldSpaceLightPos0.xyz; + #endif + #ifdef UNITY_COMPILER_HLSL + SurfaceOutput o = (SurfaceOutput)0; + #else + SurfaceOutput o; + #endif + o.Albedo = 0.0; + o.Emission = 0.0; + o.Specular = 0.0; + o.Alpha = 0.0; + o.Gloss = 0.0; + fixed3 normalWorldVertex = fixed3(0,0,1); + o.Normal = IN.worldNormal; + normalWorldVertex = IN.worldNormal; + + // call surface function + surf (surfIN, o); + + // output normal and specular + fixed4 res; + res.rgb = o.Normal * 0.5 + 0.5; + res.a = o.Specular; + return res; +} + +#include "SceneMeshGShader.cginc" + +#endif + +// -------- variant for: INSTANCING_ON +#if defined(INSTANCING_ON) +// Surface shader code generated based on: +// vertex modifier: 'vert' +// writes to per-pixel normal: no +// writes to emission: no +// writes to occlusion: no +// needs world space reflection vector: no +// needs world space normal vector: no +// needs screen space position: no +// needs world space position: no +// needs view direction: no +// needs world space view direction: no +// needs world space position for lighting: YES +// needs world space view direction for lighting: no +// needs world space view direction for lightmaps: no +// needs vertex color: no +// needs VFACE: no +// passes tangent-to-world matrix to pixel shader: no +// reads from normal: YES +// 0 texcoords actually used +#include "UnityCG.cginc" +#include "Lighting.cginc" + +#define INTERNAL_DATA +#define WorldReflectionVector(data,normal) data.worldRefl +#define WorldNormalVector(data,normal) normal + +// Original surface shader snippet: +#line 15 "" +#ifdef DUMMY_PREPROCESSOR_TO_WORK_AROUND_HLSL_COMPILER_LINE_HANDLING +#endif +/* UNITY: Original start of shader */ + + //#pragma target 5.0 + + //#pragma surface surf Lambert vertex:vert addshadow + //#pragma exclude_renderers d3d11_9x + + #include "SceneMeshVShader.cginc" + + + +// vertex-to-fragment interpolation data +struct v2f_surf { + UNITY_POSITION(pos); + float3 worldNormal : TEXCOORD0; + float3 worldPos : TEXCOORD1; + float4 vertexPos : TEXCOORD2; // vertexPos + uint2 idxMask : TEXCOORD3; // idx mask + //float3 normal : TEXCOORD4; // normal + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; + +// vertex shader +v2f_surf vert_surf (appdata_full v) { + UNITY_SETUP_INSTANCE_ID(v); + v2f_surf o; + UNITY_INITIALIZE_OUTPUT(v2f_surf,o); + UNITY_TRANSFER_INSTANCE_ID(v,o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + Input customInputData; + vert_scene (v, customInputData); + o.vertexPos.xyzw = customInputData.vertexPos; + o.idxMask.x = customInputData.idx; + o.idxMask.y = customInputData.mask; + //o.normal.xyz = customInputData.normal; + o.pos = UnityObjectToClipPos(v.vertex); + float3 worldPos = mul(unity_ObjectToWorld, v.vertex).xyz; + float3 worldNormal = UnityObjectToWorldNormal(v.normal); + o.worldPos.xyz = worldPos; + o.worldNormal = worldNormal; + return o; +} + +// fragment shader +fixed4 frag_surf (v2f_surf IN) : SV_Target { + UNITY_SETUP_INSTANCE_ID(IN); + // prepare and unpack data + Input surfIN; + #ifdef FOG_COMBINED_WITH_TSPACE + UNITY_EXTRACT_FOG_FROM_TSPACE(IN); + #elif defined (FOG_COMBINED_WITH_WORLD_POS) + UNITY_EXTRACT_FOG_FROM_WORLD_POS(IN); + #else + UNITY_EXTRACT_FOG(IN); + #endif + UNITY_INITIALIZE_OUTPUT(Input,surfIN); + surfIN.uv_ColorTex.x = 1.0; + surfIN.vertexPos.x = 1.0; + //surfIN.normal.x = 1.0; + surfIN.vertexPos = IN.vertexPos.xyzw; + surfIN.idx = IN.idxMask.x; + surfIN.mask = IN.idxMask.y; + //surfIN.normal = IN.normal.xyz; + float3 worldPos = IN.worldPos.xyz; + #ifndef USING_DIRECTIONAL_LIGHT + fixed3 lightDir = normalize(UnityWorldSpaceLightDir(worldPos)); + #else + fixed3 lightDir = _WorldSpaceLightPos0.xyz; + #endif + #ifdef UNITY_COMPILER_HLSL + SurfaceOutput o = (SurfaceOutput)0; + #else + SurfaceOutput o; + #endif + o.Albedo = 0.0; + o.Emission = 0.0; + o.Specular = 0.0; + o.Alpha = 0.0; + o.Gloss = 0.0; + fixed3 normalWorldVertex = fixed3(0,0,1); + o.Normal = IN.worldNormal; + normalWorldVertex = IN.worldNormal; + + // call surface function + surf (surfIN, o); + + // output normal and specular + fixed4 res; + res.rgb = o.Normal * 0.5 + 0.5; + res.a = o.Specular; + return res; +} + +#include "SceneMeshGShader.cginc" + +#endif + + +ENDCG + +} + + // ---- deferred lighting final pass: + Pass { + Name "PREPASS" + Tags { "LightMode" = "PrePassFinal" } + ZWrite Off + +CGPROGRAM +// compile directives +#pragma vertex vert_surf +#pragma fragment frag_surf +#pragma geometry geom_tri_surf +#pragma target 5.0 +#pragma exclude_renderers d3d11_9x +#pragma multi_compile_instancing +#pragma multi_compile_fog +#pragma multi_compile_prepassfinal +#include "HLSLSupport.cginc" +#define UNITY_INSTANCED_LOD_FADE +#define UNITY_INSTANCED_SH +#define UNITY_INSTANCED_LIGHTMAPSTS +#include "UnityShaderVariables.cginc" +#include "UnityShaderUtilities.cginc" +// -------- variant for: +#if !defined(INSTANCING_ON) +// Surface shader code generated based on: +// vertex modifier: 'vert' +// writes to per-pixel normal: no +// writes to emission: no +// writes to occlusion: no +// needs world space reflection vector: no +// needs world space normal vector: no +// needs screen space position: no +// needs world space position: no +// needs view direction: no +// needs world space view direction: no +// needs world space position for lighting: YES +// needs world space view direction for lighting: no +// needs world space view direction for lightmaps: no +// needs vertex color: no +// needs VFACE: no +// passes tangent-to-world matrix to pixel shader: no +// reads from normal: no +// 1 texcoords actually used +// float2 _ColorTex +#include "UnityCG.cginc" +#include "Lighting.cginc" + +#define INTERNAL_DATA +#define WorldReflectionVector(data,normal) data.worldRefl +#define WorldNormalVector(data,normal) normal + +// Original surface shader snippet: +#line 15 "" +#ifdef DUMMY_PREPROCESSOR_TO_WORK_AROUND_HLSL_COMPILER_LINE_HANDLING +#endif +/* UNITY: Original start of shader */ + + //#pragma target 5.0 + + //#pragma surface surf Lambert vertex:vert addshadow + //#pragma exclude_renderers d3d11_9x + + #include "SceneMeshVShader.cginc" + + + +// vertex-to-fragment interpolation data +struct v2f_surf { + UNITY_POSITION(pos); + float2 uv_ColorTex : TEXCOORD0; // _ColorTex + float3 worldPos : TEXCOORD1; + float4 vertexPos : TEXCOORD2; // vertexPos + uint2 idxMask : TEXCOORD3; // idx mask + //float3 normal : TEXCOORD4; // normal + float4 screen : TEXCOORD5; + float4 lmap : TEXCOORD6; +#ifndef LIGHTMAP_ON + float3 vlight : TEXCOORD7; +#else +#ifdef DIRLIGHTMAP_OFF + float4 lmapFadePos : TEXCOORD7; +#endif +#endif + UNITY_FOG_COORDS(8) + #if defined(LIGHTMAP_ON) && defined(DIRLIGHTMAP_COMBINED) + float3 tSpace0 : TEXCOORD9; + float3 tSpace1 : TEXCOORD10; + float3 tSpace2 : TEXCOORD11; + #endif + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; +float4 _ColorTex_ST; + +// vertex shader +v2f_surf vert_surf (appdata_full v) { + UNITY_SETUP_INSTANCE_ID(v); + v2f_surf o; + UNITY_INITIALIZE_OUTPUT(v2f_surf,o); + UNITY_TRANSFER_INSTANCE_ID(v,o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + Input customInputData; + vert_scene (v, customInputData); + o.vertexPos.xyzw = customInputData.vertexPos; + o.idxMask.x = customInputData.idx; + o.idxMask.y = customInputData.mask; + //o.normal.xyz = customInputData.normal; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv_ColorTex.xy = TRANSFORM_TEX(v.texcoord, _ColorTex); + float3 worldPos = mul(unity_ObjectToWorld, v.vertex).xyz; + float3 worldNormal = UnityObjectToWorldNormal(v.normal); + #if defined(LIGHTMAP_ON) && defined(DIRLIGHTMAP_COMBINED) + fixed3 worldTangent = UnityObjectToWorldDir(v.tangent.xyz); + fixed tangentSign = v.tangent.w * unity_WorldTransformParams.w; + fixed3 worldBinormal = cross(worldNormal, worldTangent) * tangentSign; + #endif + #if defined(LIGHTMAP_ON) && defined(DIRLIGHTMAP_COMBINED) && !defined(UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS) + o.tSpace0 = float4(worldTangent.x, worldBinormal.x, worldNormal.x, worldPos.x); + o.tSpace1 = float4(worldTangent.y, worldBinormal.y, worldNormal.y, worldPos.y); + o.tSpace2 = float4(worldTangent.z, worldBinormal.z, worldNormal.z, worldPos.z); + #endif + o.worldPos.xyz = worldPos; + o.screen = ComputeScreenPos (o.pos); +#ifdef DYNAMICLIGHTMAP_ON + o.lmap.zw = v.texcoord2.xy * unity_DynamicLightmapST.xy + unity_DynamicLightmapST.zw; +#else + o.lmap.zw = 0; +#endif +#ifdef LIGHTMAP_ON + o.lmap.xy = v.texcoord1.xy * unity_LightmapST.xy + unity_LightmapST.zw; + #ifdef DIRLIGHTMAP_OFF + o.lmapFadePos.xyz = (mul(unity_ObjectToWorld, v.vertex).xyz - unity_ShadowFadeCenterAndType.xyz) * unity_ShadowFadeCenterAndType.w; + o.lmapFadePos.w = (-UnityObjectToViewPos(v.vertex).z) * (1.0 - unity_ShadowFadeCenterAndType.w); + #endif +#else + o.lmap.xy = 0; + float3 worldN = UnityObjectToWorldNormal(v.normal); + o.vlight = ShadeSH9 (float4(worldN,1.0)); +#endif + UNITY_TRANSFER_FOG(o,o.pos); // pass fog coordinates to pixel shader + return o; +} +sampler2D _LightBuffer; +sampler2D _CameraNormalsTexture; +#ifdef LIGHTMAP_ON +float4 unity_LightmapFade; +#endif +fixed4 unity_Ambient; + +// fragment shader +fixed4 frag_surf (v2f_surf IN) : SV_Target { + UNITY_SETUP_INSTANCE_ID(IN); + // prepare and unpack data + Input surfIN; + #ifdef FOG_COMBINED_WITH_TSPACE + UNITY_EXTRACT_FOG_FROM_TSPACE(IN); + #elif defined (FOG_COMBINED_WITH_WORLD_POS) + UNITY_EXTRACT_FOG_FROM_WORLD_POS(IN); + #else + UNITY_EXTRACT_FOG(IN); + #endif + UNITY_INITIALIZE_OUTPUT(Input,surfIN); + surfIN.uv_ColorTex.x = 1.0; + surfIN.vertexPos.x = 1.0; + //surfIN.normal.x = 1.0; + surfIN.uv_ColorTex = IN.uv_ColorTex.xy; + surfIN.vertexPos = IN.vertexPos.xyzw; + surfIN.idx = IN.idxMask.x; + surfIN.mask = IN.idxMask.y; + //surfIN.normal = IN.normal.xyz; + float3 worldPos = IN.worldPos.xyz; + #ifndef USING_DIRECTIONAL_LIGHT + fixed3 lightDir = normalize(UnityWorldSpaceLightDir(worldPos)); + #else + fixed3 lightDir = _WorldSpaceLightPos0.xyz; + #endif + #ifdef UNITY_COMPILER_HLSL + SurfaceOutput o = (SurfaceOutput)0; + #else + SurfaceOutput o; + #endif + o.Albedo = 0.0; + o.Emission = 0.0; + o.Specular = 0.0; + o.Alpha = 0.0; + o.Gloss = 0.0; + fixed3 normalWorldVertex = fixed3(0,0,1); + + // call surface function + surf (surfIN, o); + half4 light = tex2Dproj (_LightBuffer, UNITY_PROJ_COORD(IN.screen)); +#if defined (SHADER_API_MOBILE) + light = max(light, half4(0.001, 0.001, 0.001, 0.001)); +#endif +#ifndef UNITY_HDR_ON + light = -log2(light); +#endif + #ifdef LIGHTMAP_ON + #ifdef DIRLIGHTMAP_OFF + // single lightmap + fixed4 lmtex = UNITY_SAMPLE_TEX2D(unity_Lightmap, IN.lmap.xy); + fixed3 lm = DecodeLightmap (lmtex); + light.rgb += lm; + #elif DIRLIGHTMAP_COMBINED + half4 nspec = tex2Dproj (_CameraNormalsTexture, UNITY_PROJ_COORD(IN.screen)); + half3 normal = nspec.rgb * 2 - 1; + o.Normal = normalize(normal); + // directional lightmaps + fixed4 lmtex = UNITY_SAMPLE_TEX2D(unity_Lightmap, IN.lmap.xy); + half4 lm = half4(DecodeLightmap(lmtex), 0); + light += lm; + #endif // DIRLIGHTMAP_OFF + #else + light.rgb += IN.vlight; + #endif // LIGHTMAP_ON + + #ifdef DYNAMICLIGHTMAP_ON + fixed4 dynlmtex = UNITY_SAMPLE_TEX2D(unity_DynamicLightmap, IN.lmap.zw); + light.rgb += DecodeRealtimeLightmap (dynlmtex); + #endif + + half4 c = LightingLambert_PrePass (o, light); + UNITY_APPLY_FOG(_unity_fogCoord, c); // apply fog + UNITY_OPAQUE_ALPHA(c.a); + return c; +} + +#include "SceneMeshGShader.cginc" + +#endif + +// -------- variant for: INSTANCING_ON +#if defined(INSTANCING_ON) +// Surface shader code generated based on: +// vertex modifier: 'vert' +// writes to per-pixel normal: no +// writes to emission: no +// writes to occlusion: no +// needs world space reflection vector: no +// needs world space normal vector: no +// needs screen space position: no +// needs world space position: no +// needs view direction: no +// needs world space view direction: no +// needs world space position for lighting: YES +// needs world space view direction for lighting: no +// needs world space view direction for lightmaps: no +// needs vertex color: no +// needs VFACE: no +// passes tangent-to-world matrix to pixel shader: no +// reads from normal: no +// 1 texcoords actually used +// float2 _ColorTex +#include "UnityCG.cginc" +#include "Lighting.cginc" + +#define INTERNAL_DATA +#define WorldReflectionVector(data,normal) data.worldRefl +#define WorldNormalVector(data,normal) normal + +// Original surface shader snippet: +#line 15 "" +#ifdef DUMMY_PREPROCESSOR_TO_WORK_AROUND_HLSL_COMPILER_LINE_HANDLING +#endif +/* UNITY: Original start of shader */ + + //#pragma target 5.0 + + //#pragma surface surf Lambert vertex:vert addshadow + //#pragma exclude_renderers d3d11_9x + + #include "SceneMeshVShader.cginc" + + + +// vertex-to-fragment interpolation data +struct v2f_surf { + UNITY_POSITION(pos); + float2 uv_ColorTex : TEXCOORD0; // _ColorTex + float3 worldPos : TEXCOORD1; + float4 vertexPos : TEXCOORD2; // vertexPos + uint2 idxMask : TEXCOORD3; // idx mask + //float3 normal : TEXCOORD4; // normal + float4 screen : TEXCOORD5; + float4 lmap : TEXCOORD6; +#ifndef LIGHTMAP_ON + float3 vlight : TEXCOORD7; +#else +#ifdef DIRLIGHTMAP_OFF + float4 lmapFadePos : TEXCOORD7; +#endif +#endif + UNITY_FOG_COORDS(8) + #if defined(LIGHTMAP_ON) && defined(DIRLIGHTMAP_COMBINED) + float3 tSpace0 : TEXCOORD9; + float3 tSpace1 : TEXCOORD10; + float3 tSpace2 : TEXCOORD11; + #endif + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; +float4 _ColorTex_ST; + +// vertex shader +v2f_surf vert_surf (appdata_full v) { + UNITY_SETUP_INSTANCE_ID(v); + v2f_surf o; + UNITY_INITIALIZE_OUTPUT(v2f_surf,o); + UNITY_TRANSFER_INSTANCE_ID(v,o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + Input customInputData; + vert_scene (v, customInputData); + o.vertexPos.xyzw = customInputData.vertexPos; + o.idxMask.x = customInputData.idx; + o.idxMask.y = customInputData.mask; + //o.normal.xyz = customInputData.normal; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv_ColorTex.xy = TRANSFORM_TEX(v.texcoord, _ColorTex); + float3 worldPos = mul(unity_ObjectToWorld, v.vertex).xyz; + float3 worldNormal = UnityObjectToWorldNormal(v.normal); + #if defined(LIGHTMAP_ON) && defined(DIRLIGHTMAP_COMBINED) + fixed3 worldTangent = UnityObjectToWorldDir(v.tangent.xyz); + fixed tangentSign = v.tangent.w * unity_WorldTransformParams.w; + fixed3 worldBinormal = cross(worldNormal, worldTangent) * tangentSign; + #endif + #if defined(LIGHTMAP_ON) && defined(DIRLIGHTMAP_COMBINED) && !defined(UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS) + o.tSpace0 = float4(worldTangent.x, worldBinormal.x, worldNormal.x, worldPos.x); + o.tSpace1 = float4(worldTangent.y, worldBinormal.y, worldNormal.y, worldPos.y); + o.tSpace2 = float4(worldTangent.z, worldBinormal.z, worldNormal.z, worldPos.z); + #endif + o.worldPos.xyz = worldPos; + o.screen = ComputeScreenPos (o.pos); +#ifdef DYNAMICLIGHTMAP_ON + o.lmap.zw = v.texcoord2.xy * unity_DynamicLightmapST.xy + unity_DynamicLightmapST.zw; +#else + o.lmap.zw = 0; +#endif +#ifdef LIGHTMAP_ON + o.lmap.xy = v.texcoord1.xy * unity_LightmapST.xy + unity_LightmapST.zw; + #ifdef DIRLIGHTMAP_OFF + o.lmapFadePos.xyz = (mul(unity_ObjectToWorld, v.vertex).xyz - unity_ShadowFadeCenterAndType.xyz) * unity_ShadowFadeCenterAndType.w; + o.lmapFadePos.w = (-UnityObjectToViewPos(v.vertex).z) * (1.0 - unity_ShadowFadeCenterAndType.w); + #endif +#else + o.lmap.xy = 0; + float3 worldN = UnityObjectToWorldNormal(v.normal); + o.vlight = ShadeSH9 (float4(worldN,1.0)); +#endif + UNITY_TRANSFER_FOG(o,o.pos); // pass fog coordinates to pixel shader + return o; +} +sampler2D _LightBuffer; +sampler2D _CameraNormalsTexture; +#ifdef LIGHTMAP_ON +float4 unity_LightmapFade; +#endif +fixed4 unity_Ambient; + +// fragment shader +fixed4 frag_surf (v2f_surf IN) : SV_Target { + UNITY_SETUP_INSTANCE_ID(IN); + // prepare and unpack data + Input surfIN; + #ifdef FOG_COMBINED_WITH_TSPACE + UNITY_EXTRACT_FOG_FROM_TSPACE(IN); + #elif defined (FOG_COMBINED_WITH_WORLD_POS) + UNITY_EXTRACT_FOG_FROM_WORLD_POS(IN); + #else + UNITY_EXTRACT_FOG(IN); + #endif + UNITY_INITIALIZE_OUTPUT(Input,surfIN); + surfIN.uv_ColorTex.x = 1.0; + surfIN.vertexPos.x = 1.0; + //surfIN.normal.x = 1.0; + surfIN.uv_ColorTex = IN.uv_ColorTex.xy; + surfIN.vertexPos = IN.vertexPos.xyzw; + surfIN.idx = IN.idxMask.x; + surfIN.mask = IN.idxMask.y; + //surfIN.normal = IN.normal.xyz; + float3 worldPos = IN.worldPos.xyz; + #ifndef USING_DIRECTIONAL_LIGHT + fixed3 lightDir = normalize(UnityWorldSpaceLightDir(worldPos)); + #else + fixed3 lightDir = _WorldSpaceLightPos0.xyz; + #endif + #ifdef UNITY_COMPILER_HLSL + SurfaceOutput o = (SurfaceOutput)0; + #else + SurfaceOutput o; + #endif + o.Albedo = 0.0; + o.Emission = 0.0; + o.Specular = 0.0; + o.Alpha = 0.0; + o.Gloss = 0.0; + fixed3 normalWorldVertex = fixed3(0,0,1); + + // call surface function + surf (surfIN, o); + half4 light = tex2Dproj (_LightBuffer, UNITY_PROJ_COORD(IN.screen)); +#if defined (SHADER_API_MOBILE) + light = max(light, half4(0.001, 0.001, 0.001, 0.001)); +#endif +#ifndef UNITY_HDR_ON + light = -log2(light); +#endif + #ifdef LIGHTMAP_ON + #ifdef DIRLIGHTMAP_OFF + // single lightmap + fixed4 lmtex = UNITY_SAMPLE_TEX2D(unity_Lightmap, IN.lmap.xy); + fixed3 lm = DecodeLightmap (lmtex); + light.rgb += lm; + #elif DIRLIGHTMAP_COMBINED + half4 nspec = tex2Dproj (_CameraNormalsTexture, UNITY_PROJ_COORD(IN.screen)); + half3 normal = nspec.rgb * 2 - 1; + o.Normal = normalize(normal); + // directional lightmaps + fixed4 lmtex = UNITY_SAMPLE_TEX2D(unity_Lightmap, IN.lmap.xy); + half4 lm = half4(DecodeLightmap(lmtex), 0); + light += lm; + #endif // DIRLIGHTMAP_OFF + #else + light.rgb += IN.vlight; + #endif // LIGHTMAP_ON + + #ifdef DYNAMICLIGHTMAP_ON + fixed4 dynlmtex = UNITY_SAMPLE_TEX2D(unity_DynamicLightmap, IN.lmap.zw); + light.rgb += DecodeRealtimeLightmap (dynlmtex); + #endif + + half4 c = LightingLambert_PrePass (o, light); + UNITY_APPLY_FOG(_unity_fogCoord, c); // apply fog + UNITY_OPAQUE_ALPHA(c.a); + return c; +} + +#include "SceneMeshGShader.cginc" + +#endif + + +ENDCG + +} + + // ---- deferred shading pass: + Pass { + Name "DEFERRED" + Tags { "LightMode" = "Deferred" } + +CGPROGRAM +// compile directives +#pragma vertex vert_surf +#pragma fragment frag_surf +#pragma geometry geom_tri_surf +#pragma target 5.0 +#pragma exclude_renderers d3d11_9x +#pragma multi_compile_instancing +#pragma exclude_renderers nomrt +#pragma skip_variants FOG_LINEAR FOG_EXP FOG_EXP2 +#pragma multi_compile_prepassfinal +#include "HLSLSupport.cginc" +#define UNITY_INSTANCED_LOD_FADE +#define UNITY_INSTANCED_SH +#define UNITY_INSTANCED_LIGHTMAPSTS +#include "UnityShaderVariables.cginc" +#include "UnityShaderUtilities.cginc" +// -------- variant for: +#if !defined(INSTANCING_ON) +// Surface shader code generated based on: +// vertex modifier: 'vert' +// writes to per-pixel normal: no +// writes to emission: no +// writes to occlusion: no +// needs world space reflection vector: no +// needs world space normal vector: no +// needs screen space position: no +// needs world space position: no +// needs view direction: no +// needs world space view direction: no +// needs world space position for lighting: YES +// needs world space view direction for lighting: no +// needs world space view direction for lightmaps: no +// needs vertex color: no +// needs VFACE: no +// passes tangent-to-world matrix to pixel shader: no +// reads from normal: YES +// 1 texcoords actually used +// float2 _ColorTex +#include "UnityCG.cginc" +#include "Lighting.cginc" + +#define INTERNAL_DATA +#define WorldReflectionVector(data,normal) data.worldRefl +#define WorldNormalVector(data,normal) normal + +// Original surface shader snippet: +#line 15 "" +#ifdef DUMMY_PREPROCESSOR_TO_WORK_AROUND_HLSL_COMPILER_LINE_HANDLING +#endif +/* UNITY: Original start of shader */ + + //#pragma target 5.0 + + //#pragma surface surf Lambert vertex:vert addshadow + //#pragma exclude_renderers d3d11_9x + + #include "SceneMeshVShader.cginc" + + + +// vertex-to-fragment interpolation data +struct v2f_surf { + UNITY_POSITION(pos); + float2 uv_ColorTex : TEXCOORD0; // _ColorTex + float3 worldNormal : TEXCOORD1; + float3 worldPos : TEXCOORD2; + float4 vertexPos : TEXCOORD3; // vertexPos + uint2 idxMask : TEXCOORD4; // idx mask + //float3 normal : TEXCOORD5; // normal + float4 lmap : TEXCOORD6; +#ifndef LIGHTMAP_ON + #if UNITY_SHOULD_SAMPLE_SH && !UNITY_SAMPLE_FULL_SH_PER_PIXEL + half3 sh : TEXCOORD7; // SH + #endif +#else + #ifdef DIRLIGHTMAP_OFF + float4 lmapFadePos : TEXCOORD7; + #endif +#endif + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; +float4 _ColorTex_ST; + +// vertex shader +v2f_surf vert_surf (appdata_full v) { + UNITY_SETUP_INSTANCE_ID(v); + v2f_surf o; + UNITY_INITIALIZE_OUTPUT(v2f_surf,o); + UNITY_TRANSFER_INSTANCE_ID(v,o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + Input customInputData; + vert_scene (v, customInputData); + o.vertexPos.xyzw = customInputData.vertexPos; + o.idxMask.x = customInputData.idx; + o.idxMask.y = customInputData.mask; + //o.normal.xyz = customInputData.normal; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv_ColorTex.xy = TRANSFORM_TEX(v.texcoord, _ColorTex); + float3 worldPos = mul(unity_ObjectToWorld, v.vertex).xyz; + float3 worldNormal = UnityObjectToWorldNormal(v.normal); + o.worldPos.xyz = worldPos; + o.worldNormal = worldNormal; +#ifdef DYNAMICLIGHTMAP_ON + o.lmap.zw = v.texcoord2.xy * unity_DynamicLightmapST.xy + unity_DynamicLightmapST.zw; +#else + o.lmap.zw = 0; +#endif +#ifdef LIGHTMAP_ON + o.lmap.xy = v.texcoord1.xy * unity_LightmapST.xy + unity_LightmapST.zw; + #ifdef DIRLIGHTMAP_OFF + o.lmapFadePos.xyz = (mul(unity_ObjectToWorld, v.vertex).xyz - unity_ShadowFadeCenterAndType.xyz) * unity_ShadowFadeCenterAndType.w; + o.lmapFadePos.w = (-UnityObjectToViewPos(v.vertex).z) * (1.0 - unity_ShadowFadeCenterAndType.w); + #endif +#else + o.lmap.xy = 0; + #if UNITY_SHOULD_SAMPLE_SH && !UNITY_SAMPLE_FULL_SH_PER_PIXEL + o.sh = 0; + o.sh = ShadeSHPerVertex (worldNormal, o.sh); + #endif +#endif + return o; +} +#ifdef LIGHTMAP_ON +float4 unity_LightmapFade; +#endif +fixed4 unity_Ambient; + +// fragment shader +void frag_surf (v2f_surf IN, + out half4 outGBuffer0 : SV_Target0, + out half4 outGBuffer1 : SV_Target1, + out half4 outGBuffer2 : SV_Target2, + out half4 outEmission : SV_Target3 +#if defined(SHADOWS_SHADOWMASK) && (UNITY_ALLOWED_MRT_COUNT > 4) + , out half4 outShadowMask : SV_Target4 +#endif +) { + UNITY_SETUP_INSTANCE_ID(IN); + // prepare and unpack data + Input surfIN; + #ifdef FOG_COMBINED_WITH_TSPACE + UNITY_EXTRACT_FOG_FROM_TSPACE(IN); + #elif defined (FOG_COMBINED_WITH_WORLD_POS) + UNITY_EXTRACT_FOG_FROM_WORLD_POS(IN); + #else + UNITY_EXTRACT_FOG(IN); + #endif + UNITY_INITIALIZE_OUTPUT(Input,surfIN); + surfIN.uv_ColorTex.x = 1.0; + surfIN.vertexPos.x = 1.0; + //surfIN.normal.x = 1.0; + surfIN.uv_ColorTex = IN.uv_ColorTex.xy; + surfIN.vertexPos = IN.vertexPos.xyzw; + surfIN.idx = IN.idxMask.x; + surfIN.mask = IN.idxMask.y; + //surfIN.normal = IN.normal.xyz; + float3 worldPos = IN.worldPos.xyz; + #ifndef USING_DIRECTIONAL_LIGHT + fixed3 lightDir = normalize(UnityWorldSpaceLightDir(worldPos)); + #else + fixed3 lightDir = _WorldSpaceLightPos0.xyz; + #endif + #ifdef UNITY_COMPILER_HLSL + SurfaceOutput o = (SurfaceOutput)0; + #else + SurfaceOutput o; + #endif + o.Albedo = 0.0; + o.Emission = 0.0; + o.Specular = 0.0; + o.Alpha = 0.0; + o.Gloss = 0.0; + fixed3 normalWorldVertex = fixed3(0,0,1); + o.Normal = IN.worldNormal; + normalWorldVertex = IN.worldNormal; + + // call surface function + surf (surfIN, o); +fixed3 originalNormal = o.Normal; + half atten = 1; + + // Setup lighting environment + UnityGI gi; + UNITY_INITIALIZE_OUTPUT(UnityGI, gi); + gi.indirect.diffuse = 0; + gi.indirect.specular = 0; + gi.light.color = 0; + gi.light.dir = half3(0,1,0); + // Call GI (lightmaps/SH/reflections) lighting function + UnityGIInput giInput; + UNITY_INITIALIZE_OUTPUT(UnityGIInput, giInput); + giInput.light = gi.light; + giInput.worldPos = worldPos; + giInput.atten = atten; + #if defined(LIGHTMAP_ON) || defined(DYNAMICLIGHTMAP_ON) + giInput.lightmapUV = IN.lmap; + #else + giInput.lightmapUV = 0.0; + #endif + #if UNITY_SHOULD_SAMPLE_SH && !UNITY_SAMPLE_FULL_SH_PER_PIXEL + giInput.ambient = IN.sh; + #else + giInput.ambient.rgb = 0.0; + #endif + giInput.probeHDR[0] = unity_SpecCube0_HDR; + giInput.probeHDR[1] = unity_SpecCube1_HDR; + #if defined(UNITY_SPECCUBE_BLENDING) || defined(UNITY_SPECCUBE_BOX_PROJECTION) + giInput.boxMin[0] = unity_SpecCube0_BoxMin; // .w holds lerp value for blending + #endif + #ifdef UNITY_SPECCUBE_BOX_PROJECTION + giInput.boxMax[0] = unity_SpecCube0_BoxMax; + giInput.probePosition[0] = unity_SpecCube0_ProbePosition; + giInput.boxMax[1] = unity_SpecCube1_BoxMax; + giInput.boxMin[1] = unity_SpecCube1_BoxMin; + giInput.probePosition[1] = unity_SpecCube1_ProbePosition; + #endif + LightingLambert_GI(o, giInput, gi); + + // call lighting function to output g-buffer + outEmission = LightingLambert_Deferred (o, gi, outGBuffer0, outGBuffer1, outGBuffer2); + #if defined(SHADOWS_SHADOWMASK) && (UNITY_ALLOWED_MRT_COUNT > 4) + outShadowMask = UnityGetRawBakedOcclusions (IN.lmap.xy, worldPos); + #endif + #ifndef UNITY_HDR_ON + outEmission.rgb = exp2(-outEmission.rgb); + #endif +} + +#include "SceneMeshGShader.cginc" + +#endif + +// -------- variant for: INSTANCING_ON +#if defined(INSTANCING_ON) +// Surface shader code generated based on: +// vertex modifier: 'vert' +// writes to per-pixel normal: no +// writes to emission: no +// writes to occlusion: no +// needs world space reflection vector: no +// needs world space normal vector: no +// needs screen space position: no +// needs world space position: no +// needs view direction: no +// needs world space view direction: no +// needs world space position for lighting: YES +// needs world space view direction for lighting: no +// needs world space view direction for lightmaps: no +// needs vertex color: no +// needs VFACE: no +// passes tangent-to-world matrix to pixel shader: no +// reads from normal: YES +// 1 texcoords actually used +// float2 _ColorTex +#include "UnityCG.cginc" +#include "Lighting.cginc" + +#define INTERNAL_DATA +#define WorldReflectionVector(data,normal) data.worldRefl +#define WorldNormalVector(data,normal) normal + +// Original surface shader snippet: +#line 15 "" +#ifdef DUMMY_PREPROCESSOR_TO_WORK_AROUND_HLSL_COMPILER_LINE_HANDLING +#endif +/* UNITY: Original start of shader */ + + //#pragma target 5.0 + + //#pragma surface surf Lambert vertex:vert addshadow + //#pragma exclude_renderers d3d11_9x + + #include "SceneMeshVShader.cginc" + + + +// vertex-to-fragment interpolation data +struct v2f_surf { + UNITY_POSITION(pos); + float2 uv_ColorTex : TEXCOORD0; // _ColorTex + float3 worldNormal : TEXCOORD1; + float3 worldPos : TEXCOORD2; + float4 vertexPos : TEXCOORD3; // vertexPos + uint2 idxMask : TEXCOORD4; // idx mask + //float3 normal : TEXCOORD5; // normal + float4 lmap : TEXCOORD6; +#ifndef LIGHTMAP_ON + #if UNITY_SHOULD_SAMPLE_SH && !UNITY_SAMPLE_FULL_SH_PER_PIXEL + half3 sh : TEXCOORD7; // SH + #endif +#else + #ifdef DIRLIGHTMAP_OFF + float4 lmapFadePos : TEXCOORD7; + #endif +#endif + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; +float4 _ColorTex_ST; + +// vertex shader +v2f_surf vert_surf (appdata_full v) { + UNITY_SETUP_INSTANCE_ID(v); + v2f_surf o; + UNITY_INITIALIZE_OUTPUT(v2f_surf,o); + UNITY_TRANSFER_INSTANCE_ID(v,o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + Input customInputData; + vert_scene (v, customInputData); + o.vertexPos.xyzw = customInputData.vertexPos; + o.idxMask.x = customInputData.idx; + o.idxMask.y = customInputData.mask; + //o.normal.xyz = customInputData.normal; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv_ColorTex.xy = TRANSFORM_TEX(v.texcoord, _ColorTex); + float3 worldPos = mul(unity_ObjectToWorld, v.vertex).xyz; + float3 worldNormal = UnityObjectToWorldNormal(v.normal); + o.worldPos.xyz = worldPos; + o.worldNormal = worldNormal; +#ifdef DYNAMICLIGHTMAP_ON + o.lmap.zw = v.texcoord2.xy * unity_DynamicLightmapST.xy + unity_DynamicLightmapST.zw; +#else + o.lmap.zw = 0; +#endif +#ifdef LIGHTMAP_ON + o.lmap.xy = v.texcoord1.xy * unity_LightmapST.xy + unity_LightmapST.zw; + #ifdef DIRLIGHTMAP_OFF + o.lmapFadePos.xyz = (mul(unity_ObjectToWorld, v.vertex).xyz - unity_ShadowFadeCenterAndType.xyz) * unity_ShadowFadeCenterAndType.w; + o.lmapFadePos.w = (-UnityObjectToViewPos(v.vertex).z) * (1.0 - unity_ShadowFadeCenterAndType.w); + #endif +#else + o.lmap.xy = 0; + #if UNITY_SHOULD_SAMPLE_SH && !UNITY_SAMPLE_FULL_SH_PER_PIXEL + o.sh = 0; + o.sh = ShadeSHPerVertex (worldNormal, o.sh); + #endif +#endif + return o; +} +#ifdef LIGHTMAP_ON +float4 unity_LightmapFade; +#endif +fixed4 unity_Ambient; + +// fragment shader +void frag_surf (v2f_surf IN, + out half4 outGBuffer0 : SV_Target0, + out half4 outGBuffer1 : SV_Target1, + out half4 outGBuffer2 : SV_Target2, + out half4 outEmission : SV_Target3 +#if defined(SHADOWS_SHADOWMASK) && (UNITY_ALLOWED_MRT_COUNT > 4) + , out half4 outShadowMask : SV_Target4 +#endif +) { + UNITY_SETUP_INSTANCE_ID(IN); + // prepare and unpack data + Input surfIN; + #ifdef FOG_COMBINED_WITH_TSPACE + UNITY_EXTRACT_FOG_FROM_TSPACE(IN); + #elif defined (FOG_COMBINED_WITH_WORLD_POS) + UNITY_EXTRACT_FOG_FROM_WORLD_POS(IN); + #else + UNITY_EXTRACT_FOG(IN); + #endif + UNITY_INITIALIZE_OUTPUT(Input,surfIN); + surfIN.uv_ColorTex.x = 1.0; + surfIN.vertexPos.x = 1.0; + //surfIN.normal.x = 1.0; + surfIN.uv_ColorTex = IN.uv_ColorTex.xy; + surfIN.vertexPos = IN.vertexPos.xyzw; + surfIN.idx = IN.idxMask.x; + surfIN.mask = IN.idxMask.y; + //surfIN.normal = IN.normal.xyz; + float3 worldPos = IN.worldPos.xyz; + #ifndef USING_DIRECTIONAL_LIGHT + fixed3 lightDir = normalize(UnityWorldSpaceLightDir(worldPos)); + #else + fixed3 lightDir = _WorldSpaceLightPos0.xyz; + #endif + #ifdef UNITY_COMPILER_HLSL + SurfaceOutput o = (SurfaceOutput)0; + #else + SurfaceOutput o; + #endif + o.Albedo = 0.0; + o.Emission = 0.0; + o.Specular = 0.0; + o.Alpha = 0.0; + o.Gloss = 0.0; + fixed3 normalWorldVertex = fixed3(0,0,1); + o.Normal = IN.worldNormal; + normalWorldVertex = IN.worldNormal; + + // call surface function + surf (surfIN, o); +fixed3 originalNormal = o.Normal; + half atten = 1; + + // Setup lighting environment + UnityGI gi; + UNITY_INITIALIZE_OUTPUT(UnityGI, gi); + gi.indirect.diffuse = 0; + gi.indirect.specular = 0; + gi.light.color = 0; + gi.light.dir = half3(0,1,0); + // Call GI (lightmaps/SH/reflections) lighting function + UnityGIInput giInput; + UNITY_INITIALIZE_OUTPUT(UnityGIInput, giInput); + giInput.light = gi.light; + giInput.worldPos = worldPos; + giInput.atten = atten; + #if defined(LIGHTMAP_ON) || defined(DYNAMICLIGHTMAP_ON) + giInput.lightmapUV = IN.lmap; + #else + giInput.lightmapUV = 0.0; + #endif + #if UNITY_SHOULD_SAMPLE_SH && !UNITY_SAMPLE_FULL_SH_PER_PIXEL + giInput.ambient = IN.sh; + #else + giInput.ambient.rgb = 0.0; + #endif + giInput.probeHDR[0] = unity_SpecCube0_HDR; + giInput.probeHDR[1] = unity_SpecCube1_HDR; + #if defined(UNITY_SPECCUBE_BLENDING) || defined(UNITY_SPECCUBE_BOX_PROJECTION) + giInput.boxMin[0] = unity_SpecCube0_BoxMin; // .w holds lerp value for blending + #endif + #ifdef UNITY_SPECCUBE_BOX_PROJECTION + giInput.boxMax[0] = unity_SpecCube0_BoxMax; + giInput.probePosition[0] = unity_SpecCube0_ProbePosition; + giInput.boxMax[1] = unity_SpecCube1_BoxMax; + giInput.boxMin[1] = unity_SpecCube1_BoxMin; + giInput.probePosition[1] = unity_SpecCube1_ProbePosition; + #endif + LightingLambert_GI(o, giInput, gi); + + // call lighting function to output g-buffer + outEmission = LightingLambert_Deferred (o, gi, outGBuffer0, outGBuffer1, outGBuffer2); + #if defined(SHADOWS_SHADOWMASK) && (UNITY_ALLOWED_MRT_COUNT > 4) + outShadowMask = UnityGetRawBakedOcclusions (IN.lmap.xy, worldPos); + #endif + #ifndef UNITY_HDR_ON + outEmission.rgb = exp2(-outEmission.rgb); + #endif +} + +#include "SceneMeshGShader.cginc" + +#endif + + +ENDCG + +} + + // ---- shadow caster pass: + Pass { + Name "ShadowCaster" + Tags { "LightMode" = "ShadowCaster" } + ZWrite On ZTest LEqual + +CGPROGRAM +// compile directives +#pragma vertex vert_surf +#pragma fragment frag_surf +#pragma geometry geom_tri_surf +#pragma target 5.0 +#pragma exclude_renderers d3d11_9x +#pragma multi_compile_instancing +#pragma skip_variants FOG_LINEAR FOG_EXP FOG_EXP2 +#pragma multi_compile_shadowcaster +#include "HLSLSupport.cginc" +#define UNITY_INSTANCED_LOD_FADE +#define UNITY_INSTANCED_SH +#define UNITY_INSTANCED_LIGHTMAPSTS +#include "UnityShaderVariables.cginc" +#include "UnityShaderUtilities.cginc" +// -------- variant for: +#if !defined(INSTANCING_ON) +// Surface shader code generated based on: +// vertex modifier: 'vert' +// writes to per-pixel normal: no +// writes to emission: no +// writes to occlusion: no +// needs world space reflection vector: no +// needs world space normal vector: no +// needs screen space position: no +// needs world space position: no +// needs view direction: no +// needs world space view direction: no +// needs world space position for lighting: YES +// needs world space view direction for lighting: no +// needs world space view direction for lightmaps: no +// needs vertex color: no +// needs VFACE: no +// passes tangent-to-world matrix to pixel shader: no +// reads from normal: no +// 0 texcoords actually used +#include "UnityCG.cginc" +#include "Lighting.cginc" + +#define INTERNAL_DATA +#define WorldReflectionVector(data,normal) data.worldRefl +#define WorldNormalVector(data,normal) normal + +// Original surface shader snippet: +#line 15 "" +#ifdef DUMMY_PREPROCESSOR_TO_WORK_AROUND_HLSL_COMPILER_LINE_HANDLING +#endif +/* UNITY: Original start of shader */ + + //#pragma target 5.0 + + //#pragma surface surf Lambert vertex:vert addshadow + //#pragma exclude_renderers d3d11_9x + + #include "SceneMeshVShader.cginc" + + + +// vertex-to-fragment interpolation data +struct v2f_surf { + V2F_SHADOW_CASTER; + float3 worldPos : TEXCOORD1; + float4 vertexPos : TEXCOORD2; // vertexPos + uint2 idxMask : TEXCOORD3; // idx mask + //float3 normal : TEXCOORD4; // normal + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; + +// vertex shader +v2f_surf vert_surf (appdata_full v) { + UNITY_SETUP_INSTANCE_ID(v); + v2f_surf o; + UNITY_INITIALIZE_OUTPUT(v2f_surf,o); + UNITY_TRANSFER_INSTANCE_ID(v,o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + Input customInputData; + vert_scene (v, customInputData); + o.vertexPos.xyzw = customInputData.vertexPos; + o.idxMask.x = customInputData.idx; + o.idxMask.y = customInputData.mask; + //o.normal.xyz = customInputData.normal; + float3 worldPos = mul(unity_ObjectToWorld, v.vertex).xyz; + float3 worldNormal = UnityObjectToWorldNormal(v.normal); + o.worldPos.xyz = worldPos; + TRANSFER_SHADOW_CASTER_NORMALOFFSET(o) + return o; +} + +// fragment shader +fixed4 frag_surf (v2f_surf IN) : SV_Target { + UNITY_SETUP_INSTANCE_ID(IN); + // prepare and unpack data + Input surfIN; + #ifdef FOG_COMBINED_WITH_TSPACE + UNITY_EXTRACT_FOG_FROM_TSPACE(IN); + #elif defined (FOG_COMBINED_WITH_WORLD_POS) + UNITY_EXTRACT_FOG_FROM_WORLD_POS(IN); + #else + UNITY_EXTRACT_FOG(IN); + #endif + UNITY_INITIALIZE_OUTPUT(Input,surfIN); + surfIN.uv_ColorTex.x = 1.0; + surfIN.vertexPos.x = 1.0; + //surfIN.normal.x = 1.0; + surfIN.vertexPos = IN.vertexPos.xyzw; + surfIN.idx = IN.idxMask.x; + surfIN.mask = IN.idxMask.y; + //surfIN.normal = IN.normal.xyz; + float3 worldPos = IN.worldPos.xyz; + #ifndef USING_DIRECTIONAL_LIGHT + fixed3 lightDir = normalize(UnityWorldSpaceLightDir(worldPos)); + #else + fixed3 lightDir = _WorldSpaceLightPos0.xyz; + #endif + #ifdef UNITY_COMPILER_HLSL + SurfaceOutput o = (SurfaceOutput)0; + #else + SurfaceOutput o; + #endif + o.Albedo = 0.0; + o.Emission = 0.0; + o.Specular = 0.0; + o.Alpha = 0.0; + o.Gloss = 0.0; + fixed3 normalWorldVertex = fixed3(0,0,1); + + // call surface function + surf (surfIN, o); + SHADOW_CASTER_FRAGMENT(IN) +} + +#include "SceneMeshGShader.cginc" + +#endif + +// -------- variant for: INSTANCING_ON +#if defined(INSTANCING_ON) +// Surface shader code generated based on: +// vertex modifier: 'vert' +// writes to per-pixel normal: no +// writes to emission: no +// writes to occlusion: no +// needs world space reflection vector: no +// needs world space normal vector: no +// needs screen space position: no +// needs world space position: no +// needs view direction: no +// needs world space view direction: no +// needs world space position for lighting: YES +// needs world space view direction for lighting: no +// needs world space view direction for lightmaps: no +// needs vertex color: no +// needs VFACE: no +// passes tangent-to-world matrix to pixel shader: no +// reads from normal: no +// 0 texcoords actually used +#include "UnityCG.cginc" +#include "Lighting.cginc" + +#define INTERNAL_DATA +#define WorldReflectionVector(data,normal) data.worldRefl +#define WorldNormalVector(data,normal) normal + +// Original surface shader snippet: +#line 15 "" +#ifdef DUMMY_PREPROCESSOR_TO_WORK_AROUND_HLSL_COMPILER_LINE_HANDLING +#endif +/* UNITY: Original start of shader */ + + //#pragma target 5.0 + + //#pragma surface surf Lambert vertex:vert addshadow + //#pragma exclude_renderers d3d11_9x + + #include "SceneMeshVShader.cginc" + + + +// vertex-to-fragment interpolation data +struct v2f_surf { + V2F_SHADOW_CASTER; + float3 worldPos : TEXCOORD1; + float4 vertexPos : TEXCOORD2; // vertexPos + uint2 idxMask : TEXCOORD3; // idx mask + //float3 normal : TEXCOORD4; // normal + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; + +// vertex shader +v2f_surf vert_surf (appdata_full v) { + UNITY_SETUP_INSTANCE_ID(v); + v2f_surf o; + UNITY_INITIALIZE_OUTPUT(v2f_surf,o); + UNITY_TRANSFER_INSTANCE_ID(v,o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + Input customInputData; + vert_scene (v, customInputData); + o.vertexPos.xyzw = customInputData.vertexPos; + o.idxMask.x = customInputData.idx; + o.idxMask.y = customInputData.mask; + //o.normal.xyz = customInputData.normal; + float3 worldPos = mul(unity_ObjectToWorld, v.vertex).xyz; + float3 worldNormal = UnityObjectToWorldNormal(v.normal); + o.worldPos.xyz = worldPos; + TRANSFER_SHADOW_CASTER_NORMALOFFSET(o) + return o; +} + +// fragment shader +fixed4 frag_surf (v2f_surf IN) : SV_Target { + UNITY_SETUP_INSTANCE_ID(IN); + // prepare and unpack data + Input surfIN; + #ifdef FOG_COMBINED_WITH_TSPACE + UNITY_EXTRACT_FOG_FROM_TSPACE(IN); + #elif defined (FOG_COMBINED_WITH_WORLD_POS) + UNITY_EXTRACT_FOG_FROM_WORLD_POS(IN); + #else + UNITY_EXTRACT_FOG(IN); + #endif + UNITY_INITIALIZE_OUTPUT(Input,surfIN); + surfIN.uv_ColorTex.x = 1.0; + surfIN.vertexPos.x = 1.0; + //surfIN.normal.x = 1.0; + surfIN.vertexPos = IN.vertexPos.xyzw; + surfIN.idx = IN.idxMask.x; + surfIN.mask = IN.idxMask.y; + //surfIN.normal = IN.normal.xyz; + float3 worldPos = IN.worldPos.xyz; + #ifndef USING_DIRECTIONAL_LIGHT + fixed3 lightDir = normalize(UnityWorldSpaceLightDir(worldPos)); + #else + fixed3 lightDir = _WorldSpaceLightPos0.xyz; + #endif + #ifdef UNITY_COMPILER_HLSL + SurfaceOutput o = (SurfaceOutput)0; + #else + SurfaceOutput o; + #endif + o.Albedo = 0.0; + o.Emission = 0.0; + o.Specular = 0.0; + o.Alpha = 0.0; + o.Gloss = 0.0; + fixed3 normalWorldVertex = fixed3(0,0,1); + + // call surface function + surf (surfIN, o); + SHADOW_CASTER_FRAGMENT(IN) +} + +#include "SceneMeshGShader.cginc" + +#endif + + +ENDCG + +} + + // ---- meta information extraction pass: + Pass { + Name "Meta" + Tags { "LightMode" = "Meta" } + Cull Off + +CGPROGRAM +// compile directives +#pragma vertex vert_surf +#pragma fragment frag_surf +#pragma geometry geom_tri_surf +#pragma target 5.0 +#pragma exclude_renderers d3d11_9x +#pragma multi_compile_instancing +#pragma skip_variants FOG_LINEAR FOG_EXP FOG_EXP2 +#pragma shader_feature EDITOR_VISUALIZATION + +#include "HLSLSupport.cginc" +#define UNITY_INSTANCED_LOD_FADE +#define UNITY_INSTANCED_SH +#define UNITY_INSTANCED_LIGHTMAPSTS +#include "UnityShaderVariables.cginc" +#include "UnityShaderUtilities.cginc" +// -------- variant for: +#if !defined(INSTANCING_ON) +// Surface shader code generated based on: +// vertex modifier: 'vert' +// writes to per-pixel normal: no +// writes to emission: no +// writes to occlusion: no +// needs world space reflection vector: no +// needs world space normal vector: no +// needs screen space position: no +// needs world space position: no +// needs view direction: no +// needs world space view direction: no +// needs world space position for lighting: YES +// needs world space view direction for lighting: no +// needs world space view direction for lightmaps: no +// needs vertex color: no +// needs VFACE: no +// passes tangent-to-world matrix to pixel shader: no +// reads from normal: no +// 1 texcoords actually used +// float2 _ColorTex +#include "UnityCG.cginc" +#include "Lighting.cginc" + +#define INTERNAL_DATA +#define WorldReflectionVector(data,normal) data.worldRefl +#define WorldNormalVector(data,normal) normal + +// Original surface shader snippet: +#line 15 "" +#ifdef DUMMY_PREPROCESSOR_TO_WORK_AROUND_HLSL_COMPILER_LINE_HANDLING +#endif +/* UNITY: Original start of shader */ + + //#pragma target 5.0 + + //#pragma surface surf Lambert vertex:vert addshadow + //#pragma exclude_renderers d3d11_9x + + #include "SceneMeshVShader.cginc" + + +#include "UnityMetaPass.cginc" + +// vertex-to-fragment interpolation data +struct v2f_surf { + UNITY_POSITION(pos); + float2 uv_ColorTex : TEXCOORD0; // _ColorTex + float3 worldPos : TEXCOORD1; + float4 vertexPos : TEXCOORD2; // vertexPos + uint2 idxMask : TEXCOORD3; // idx mask + //float3 normal : TEXCOORD4; // normal +#ifdef EDITOR_VISUALIZATION + float2 vizUV : TEXCOORD5; + float4 lightCoord : TEXCOORD6; +#endif + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; +float4 _ColorTex_ST; + +// vertex shader +v2f_surf vert_surf (appdata_full v) { + UNITY_SETUP_INSTANCE_ID(v); + v2f_surf o; + UNITY_INITIALIZE_OUTPUT(v2f_surf,o); + UNITY_TRANSFER_INSTANCE_ID(v,o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + Input customInputData; + vert_scene (v, customInputData); + o.vertexPos.xyzw = customInputData.vertexPos; + o.idxMask.x = customInputData.idx; + o.idxMask.y = customInputData.mask; + //o.normal.xyz = customInputData.normal; + o.pos = UnityMetaVertexPosition(v.vertex, v.texcoord1.xy, v.texcoord2.xy, unity_LightmapST, unity_DynamicLightmapST); +#ifdef EDITOR_VISUALIZATION + o.vizUV = 0; + o.lightCoord = 0; + if (unity_VisualizationMode == EDITORVIZ_TEXTURE) + o.vizUV = UnityMetaVizUV(unity_EditorViz_UVIndex, v.texcoord.xy, v.texcoord1.xy, v.texcoord2.xy, unity_EditorViz_Texture_ST); + else if (unity_VisualizationMode == EDITORVIZ_SHOWLIGHTMASK) + { + o.vizUV = v.texcoord1.xy * unity_LightmapST.xy + unity_LightmapST.zw; + o.lightCoord = mul(unity_EditorViz_WorldToLight, mul(unity_ObjectToWorld, float4(v.vertex.xyz, 1))); + } +#endif + o.uv_ColorTex.xy = TRANSFORM_TEX(v.texcoord, _ColorTex); + float3 worldPos = mul(unity_ObjectToWorld, v.vertex).xyz; + float3 worldNormal = UnityObjectToWorldNormal(v.normal); + o.worldPos.xyz = worldPos; + return o; +} + +// fragment shader +fixed4 frag_surf (v2f_surf IN) : SV_Target { + UNITY_SETUP_INSTANCE_ID(IN); + // prepare and unpack data + Input surfIN; + #ifdef FOG_COMBINED_WITH_TSPACE + UNITY_EXTRACT_FOG_FROM_TSPACE(IN); + #elif defined (FOG_COMBINED_WITH_WORLD_POS) + UNITY_EXTRACT_FOG_FROM_WORLD_POS(IN); + #else + UNITY_EXTRACT_FOG(IN); + #endif + UNITY_INITIALIZE_OUTPUT(Input,surfIN); + surfIN.uv_ColorTex.x = 1.0; + surfIN.vertexPos.x = 1.0; + //surfIN.normal.x = 1.0; + surfIN.uv_ColorTex = IN.uv_ColorTex.xy; + surfIN.vertexPos = IN.vertexPos.xyzw; + surfIN.idx = IN.idxMask.x; + surfIN.mask = IN.idxMask.y; + //surfIN.normal = IN.normal.xyz; + float3 worldPos = IN.worldPos.xyz; + #ifndef USING_DIRECTIONAL_LIGHT + fixed3 lightDir = normalize(UnityWorldSpaceLightDir(worldPos)); + #else + fixed3 lightDir = _WorldSpaceLightPos0.xyz; + #endif + #ifdef UNITY_COMPILER_HLSL + SurfaceOutput o = (SurfaceOutput)0; + #else + SurfaceOutput o; + #endif + o.Albedo = 0.0; + o.Emission = 0.0; + o.Specular = 0.0; + o.Alpha = 0.0; + o.Gloss = 0.0; + fixed3 normalWorldVertex = fixed3(0,0,1); + + // call surface function + surf (surfIN, o); + UnityMetaInput metaIN; + UNITY_INITIALIZE_OUTPUT(UnityMetaInput, metaIN); + metaIN.Albedo = o.Albedo; + metaIN.Emission = o.Emission; + metaIN.SpecularColor = o.Specular; +#ifdef EDITOR_VISUALIZATION + metaIN.VizUV = IN.vizUV; + metaIN.LightCoord = IN.lightCoord; +#endif + return UnityMetaFragment(metaIN); +} + +#include "SceneMeshGShader.cginc" + +#endif + +// -------- variant for: INSTANCING_ON +#if defined(INSTANCING_ON) +// Surface shader code generated based on: +// vertex modifier: 'vert' +// writes to per-pixel normal: no +// writes to emission: no +// writes to occlusion: no +// needs world space reflection vector: no +// needs world space normal vector: no +// needs screen space position: no +// needs world space position: no +// needs view direction: no +// needs world space view direction: no +// needs world space position for lighting: YES +// needs world space view direction for lighting: no +// needs world space view direction for lightmaps: no +// needs vertex color: no +// needs VFACE: no +// passes tangent-to-world matrix to pixel shader: no +// reads from normal: no +// 1 texcoords actually used +// float2 _ColorTex +#include "UnityCG.cginc" +#include "Lighting.cginc" + +#define INTERNAL_DATA +#define WorldReflectionVector(data,normal) data.worldRefl +#define WorldNormalVector(data,normal) normal + +// Original surface shader snippet: +#line 15 "" +#ifdef DUMMY_PREPROCESSOR_TO_WORK_AROUND_HLSL_COMPILER_LINE_HANDLING +#endif +/* UNITY: Original start of shader */ + + //#pragma target 5.0 + + //#pragma surface surf Lambert vertex:vert addshadow + //#pragma exclude_renderers d3d11_9x + + #include "SceneMeshVShader.cginc" + + +#include "UnityMetaPass.cginc" + +// vertex-to-fragment interpolation data +struct v2f_surf { + UNITY_POSITION(pos); + float2 uv_ColorTex : TEXCOORD0; // _ColorTex + float3 worldPos : TEXCOORD1; + float4 vertexPos : TEXCOORD2; // vertexPos + uint2 idxMask : TEXCOORD3; // idx mask + //float3 normal : TEXCOORD4; // normal +#ifdef EDITOR_VISUALIZATION + float2 vizUV : TEXCOORD5; + float4 lightCoord : TEXCOORD6; +#endif + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; +float4 _ColorTex_ST; + +// vertex shader +v2f_surf vert_surf (appdata_full v) { + UNITY_SETUP_INSTANCE_ID(v); + v2f_surf o; + UNITY_INITIALIZE_OUTPUT(v2f_surf,o); + UNITY_TRANSFER_INSTANCE_ID(v,o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + Input customInputData; + vert_scene (v, customInputData); + o.vertexPos.xyzw = customInputData.vertexPos; + o.idxMask.x = customInputData.idx; + o.idxMask.y = customInputData.mask; + //o.normal.xyz = customInputData.normal; + o.pos = UnityMetaVertexPosition(v.vertex, v.texcoord1.xy, v.texcoord2.xy, unity_LightmapST, unity_DynamicLightmapST); +#ifdef EDITOR_VISUALIZATION + o.vizUV = 0; + o.lightCoord = 0; + if (unity_VisualizationMode == EDITORVIZ_TEXTURE) + o.vizUV = UnityMetaVizUV(unity_EditorViz_UVIndex, v.texcoord.xy, v.texcoord1.xy, v.texcoord2.xy, unity_EditorViz_Texture_ST); + else if (unity_VisualizationMode == EDITORVIZ_SHOWLIGHTMASK) + { + o.vizUV = v.texcoord1.xy * unity_LightmapST.xy + unity_LightmapST.zw; + o.lightCoord = mul(unity_EditorViz_WorldToLight, mul(unity_ObjectToWorld, float4(v.vertex.xyz, 1))); + } +#endif + o.uv_ColorTex.xy = TRANSFORM_TEX(v.texcoord, _ColorTex); + float3 worldPos = mul(unity_ObjectToWorld, v.vertex).xyz; + float3 worldNormal = UnityObjectToWorldNormal(v.normal); + o.worldPos.xyz = worldPos; + return o; +} + +// fragment shader +fixed4 frag_surf (v2f_surf IN) : SV_Target { + UNITY_SETUP_INSTANCE_ID(IN); + // prepare and unpack data + Input surfIN; + #ifdef FOG_COMBINED_WITH_TSPACE + UNITY_EXTRACT_FOG_FROM_TSPACE(IN); + #elif defined (FOG_COMBINED_WITH_WORLD_POS) + UNITY_EXTRACT_FOG_FROM_WORLD_POS(IN); + #else + UNITY_EXTRACT_FOG(IN); + #endif + UNITY_INITIALIZE_OUTPUT(Input,surfIN); + surfIN.uv_ColorTex.x = 1.0; + surfIN.vertexPos.x = 1.0; + //surfIN.normal.x = 1.0; + surfIN.uv_ColorTex = IN.uv_ColorTex.xy; + surfIN.vertexPos = IN.vertexPos.xyzw; + surfIN.idx = IN.idxMask.x; + surfIN.mask = IN.idxMask.y; + //surfIN.normal = IN.normal.xyz; + float3 worldPos = IN.worldPos.xyz; + #ifndef USING_DIRECTIONAL_LIGHT + fixed3 lightDir = normalize(UnityWorldSpaceLightDir(worldPos)); + #else + fixed3 lightDir = _WorldSpaceLightPos0.xyz; + #endif + #ifdef UNITY_COMPILER_HLSL + SurfaceOutput o = (SurfaceOutput)0; + #else + SurfaceOutput o; + #endif + o.Albedo = 0.0; + o.Emission = 0.0; + o.Specular = 0.0; + o.Alpha = 0.0; + o.Gloss = 0.0; + fixed3 normalWorldVertex = fixed3(0,0,1); + + // call surface function + surf (surfIN, o); + UnityMetaInput metaIN; + UNITY_INITIALIZE_OUTPUT(UnityMetaInput, metaIN); + metaIN.Albedo = o.Albedo; + metaIN.Emission = o.Emission; + metaIN.SpecularColor = o.Specular; +#ifdef EDITOR_VISUALIZATION + metaIN.VizUV = IN.vizUV; + metaIN.LightCoord = IN.lightCoord; +#endif + return UnityMetaFragment(metaIN); +} + +#include "SceneMeshGShader.cginc" + +#endif + + +ENDCG + +} + + // ---- end of surface shader generated code + +#LINE 26 + + } + + FallBack "Diffuse" +} + diff --git a/Assets/Azure/Resources/SceneMeshVShader.shader.meta b/Assets/Azure/Resources/SceneMeshVShader.shader.meta new file mode 100644 index 0000000..22960e9 --- /dev/null +++ b/Assets/Azure/Resources/SceneMeshVShader.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 5a825edb03a2ae04280c80cb7fa1abae +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/ThreeDMovieShader.shader b/Assets/Azure/Resources/ThreeDMovieShader.shader new file mode 100644 index 0000000..019a725 --- /dev/null +++ b/Assets/Azure/Resources/ThreeDMovieShader.shader @@ -0,0 +1,88 @@ +Shader "Kinect/ThreeDMovieShader" +{ + Properties + { + _ColorTex("_ColorTex", 2D) = "white" {} + } + + SubShader + { + Tags { "RenderType"="Opaque" } + LOD 100 + + ZWrite On + Cull Off + + Pass + { + CGPROGRAM + + #pragma target 5.0 + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + + float2 _TexRes; + float _MinDepth; + float _MaxDepth; + float _DepthScale; + +#ifdef SHADER_API_D3D11 + StructuredBuffer _DepthMap; +#endif + sampler2D _ColorTex; + float4 _ColorTex_ST; + + + struct v2f + { + float2 uv : TEXCOORD0; + float4 vertex : SV_POSITION; + float4 vertexPos : TEXCOORD1; + }; + + + float getDepthAt(float2 uv) + { + uint dx = (uint)(uv.x * _TexRes.x); + uint dy = (uint)(uv.y * _TexRes.y); + uint di = (dx + dy * _TexRes.x); + + uint depth2 = 0; +#ifdef SHADER_API_D3D11 + depth2 = _DepthMap[di >> 1]; +#endif + uint depth = di & 1 != 0 ? depth2 >> 16 : depth2 & 0xffff; + float fDepth = (float)depth * 0.001; + + return (fDepth > _MinDepth && fDepth < _MaxDepth ? fDepth : _MaxDepth) *_DepthScale; + } + + v2f vert (appdata_base v) + { + v2f o; + o.uv = TRANSFORM_TEX(v.texcoord, _ColorTex); // v.uv; + + float depth = getDepthAt(o.uv.xy); + v.vertex = float4(v.vertex.xy, depth, 1); + o.vertex = UnityObjectToClipPos(v.vertex); + o.vertexPos = v.vertex; + + return o; + } + + fixed4 frag (v2f i) : SV_Target + { + float4 col; + col = tex2D(_ColorTex, i.uv); + //float d = (i.vertexPos.z - _MinDepth) / (_MaxDepth - _MinDepth); + //col = float4(0, 0, d, 1); + + return col; + } + + ENDCG + } + } +} diff --git a/Assets/Azure/Resources/ThreeDMovieShader.shader.meta b/Assets/Azure/Resources/ThreeDMovieShader.shader.meta new file mode 100644 index 0000000..1fea290 --- /dev/null +++ b/Assets/Azure/Resources/ThreeDMovieShader.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: d655f3d9a8f1f274eb2a8e6441cb1999 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/TransformTexShader.shader b/Assets/Azure/Resources/TransformTexShader.shader new file mode 100644 index 0000000..b53aa98 --- /dev/null +++ b/Assets/Azure/Resources/TransformTexShader.shader @@ -0,0 +1,61 @@ +Shader "Kinect/TransformTexShader" +{ + Properties + { + _MainTex ("Texture", 2D) = "white" {} + } + + SubShader + { + Cull Off + ZWrite Off + ZTest LEqual + + Pass + { + CGPROGRAM + + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + + uniform float4x4 _TransformMat; + uniform float4 _TexST; // _MainTex_ST; + + struct appdata + { + float4 vertex : POSITION; + float2 uv : TEXCOORD0; + }; + + struct v2f + { + float2 uv : TEXCOORD0; + float4 vertex : SV_POSITION; + }; + + v2f vert (appdata v) + { + v2f o; + + o.vertex = UnityObjectToClipPos(mul(_TransformMat, v.vertex)); + o.uv = v.uv * _TexST.xy + _TexST.zw; + + return o; + } + + sampler2D _MainTex; + + fixed4 frag (v2f i) : SV_Target + { + if(i.uv.x < 0 || i.uv.x > 1 || i.uv.y < 0 || i.uv.y > 1) + return fixed4(0, 0, 0, 0); + + return tex2D(_MainTex, i.uv); + } + + ENDCG + } + } +} diff --git a/Assets/Azure/Resources/TransformTexShader.shader.meta b/Assets/Azure/Resources/TransformTexShader.shader.meta new file mode 100644 index 0000000..2ee7937 --- /dev/null +++ b/Assets/Azure/Resources/TransformTexShader.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 9881d895df85b6544847eb173355d48d +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/UserBlendShader.shader b/Assets/Azure/Resources/UserBlendShader.shader new file mode 100644 index 0000000..ff0ffbf --- /dev/null +++ b/Assets/Azure/Resources/UserBlendShader.shader @@ -0,0 +1,169 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Kinect/UserBlendShader" +{ + Properties + { + _MainTex ("MainTex", 2D) = "white" {} + _BackTex ("BackTex", 2D) = "white" {} + _ColorTex ("ColorTex", 2D) = "white" {} + _Threshold ("Depth Threshold", Range(0, 0.5)) = 0.1 + _BlurOffset("Blur Offset", Range(0, 10)) = 2 + } + + SubShader + { + Tags { "Queue"="Transparent" "RenderType"="Transparent" } + + Pass + { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + #pragma target 5.0 + //#pragma enable_d3d11_debug_symbols + + #pragma vertex vert + #pragma fragment frag + #include "UnityCG.cginc" + + sampler2D _MainTex; + //float4 _MainTex_ST; + uniform float4 _MainTex_TexelSize; + sampler2D _CameraDepthTexture; + + uniform sampler2D _BackTex; + uniform sampler2D _ColorTex; + uniform float _Threshold; + uniform int _BlurOffset; + + uniform float _ColorResX; + uniform float _ColorResY; + uniform float _ColorScaleX; + + uniform float _ColorOfsX; + uniform float _ColorMulX; + uniform float _ColorOfsY; + uniform float _ColorMulY; + + StructuredBuffer _DepthMap; + + + struct v2f + { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + float2 uv2 : TEXCOORD1; + float4 scrPos : TEXCOORD2; + }; + + v2f vert (appdata_base v) + { + v2f o; + + o.pos = UnityObjectToClipPos (v.vertex); + o.uv = v.texcoord; + + o.uv2.x = o.uv.x; + o.uv2.y = 1 - o.uv.y; + + o.scrPos = ComputeScreenPos(o.pos); + + return o; + } + + half getKinectAlpha(int2 cxy, float camDepth) + { + int rcCount = 2 * _BlurOffset + 1; + int maxCount = rcCount * rcCount; + + int ci0 = (int)((cxy.x - _BlurOffset) + (cxy.y - _BlurOffset) * _ColorResX); + int pixCount = 0; + + for (int iY = -_BlurOffset; iY <= _BlurOffset; iY++) + { + uint ci = ci0; + + for (int iX = -_BlurOffset; iX <= _BlurOffset; iX++, ci++) + { + uint depth2 = _DepthMap[ci >> 1]; + //uint depth = (ci % 2 == 0 ? depth2 <<= 16 : depth2) >> 16; + uint depth = ci & 1 != 0 ? depth2 >> 16 : depth2 & 0xffff; + + if (depth != 0) + { + float kinDepth = depth / 1000.0; + if ((camDepth < 0.1 || camDepth >= 10.0) || (kinDepth >= 0.1 && camDepth > (kinDepth + _Threshold))) + { + pixCount++; + } + } + else + { + if (camDepth < 0.1 || camDepth >= 10.0) + { + pixCount++; + } + } + } + + ci0 += _ColorResX; + } + + half alpha = (half)pixCount / (half)maxCount; + + return alpha; + } + + half4 frag (v2f i) : COLOR + { + float camDepth = LinearEyeDepth (tex2Dproj(_CameraDepthTexture, UNITY_PROJ_COORD(i.scrPos)).r); + //float camDepth01 = Linear01Depth (tex2Dproj(_CameraDepthTexture, UNITY_PROJ_COORD(i.scrPos)).r); + + float2 ctUv = float2(_ColorOfsX + i.uv.x * _ColorMulX, 1.0 - i.uv.y /**_ColorOfsY + i.uv.y * _ColorMulY*/); +#if UNITY_UV_STARTS_AT_TOP + if (_MainTex_TexelSize.y < 0.0) + { + ctUv.y = 1.0 - ctUv.y; + } +#endif + // for non-flipped textures + float2 ctUv2 = float2(ctUv.x, 1.0 - ctUv.y); + + if (_ColorScaleX < 0.0) + { + ctUv.x = 1.0 - ctUv.x; + } + + uint cx = (int)(ctUv.x * _ColorResX); + uint cy = (int)(ctUv.y * _ColorResY); + + half4 clrBack = tex2D(_BackTex, ctUv2); + half4 clrFront = tex2D(_ColorTex, ctUv); + half3 clrBlend = clrBack.rgb * (1.0 - clrFront.a) + clrFront.rgb * clrFront.a; + + half4 clrMain = tex2D(_MainTex, i.uv); + half kinAlpha = getKinectAlpha(int2(cx, cy), camDepth); + //clrBlend = lerp(clrMain.rgb, clrBlend.rgb, kinAlpha); + clrBlend = clrMain.rgb * (1.0 - kinAlpha) + clrBlend * kinAlpha; + + //uint ci = cx + cy * _ColorResX; + //uint depth2 = _DepthMap[ci >> 1]; + //uint depth = ci & 1 != 0 ? depth2 >> 16 : depth2 & 0xffff; + //float kinDepth = (float)depth / 4000.0; + + //return half4(kinDepth, kinDepth, kinDepth, 1.0); + //bool mask = depth <= 1000; + //clrBlend = half4(kinDepth, kinDepth, kinDepth, 1.0); + //clrBlend = clrMain.rgb * (1 - mask) + clrBlend * mask; + + return half4(clrBlend, 1.0); + } + + ENDCG + } + } + + FallBack "Diffuse" +} diff --git a/Assets/Azure/Resources/UserBlendShader.shader.meta b/Assets/Azure/Resources/UserBlendShader.shader.meta new file mode 100644 index 0000000..43766b2 --- /dev/null +++ b/Assets/Azure/Resources/UserBlendShader.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 492579dd15c959649a26f6e772db6aff +timeCreated: 1460648058 +licenseType: Store +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/UserBodyImageShader.shader b/Assets/Azure/Resources/UserBodyImageShader.shader new file mode 100644 index 0000000..29b40c4 --- /dev/null +++ b/Assets/Azure/Resources/UserBodyImageShader.shader @@ -0,0 +1,89 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Kinect/UserBodyImageShader" { +// Properties { +// _MainTex ("Base (RGB)", 2D) = "black" {} +// } + + SubShader { + Pass { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + #pragma target 5.0 + //#pragma enable_d3d11_debug_symbols + + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + + //uniform sampler2D _MainTex; + uniform uint _TexResX; + uniform uint _TexResY; + uniform uint _MinDepth; + uniform uint _MaxDepth; + + StructuredBuffer _BodyIndexMap; + //StructuredBuffer _DepthMap; + + //uniform float _TotalPoints; // dummy + //uniform uint _FirstUserIndex; // dummy + //StructuredBuffer _HistMap; // dummy + + struct v2f { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + }; + + v2f vert (appdata_base v) + { + v2f o; + + o.pos = UnityObjectToClipPos (v.vertex); + o.uv = v.texcoord; + + return o; + } + + float4 frag (v2f i) : COLOR + { + uint dx = (uint)(i.uv.x * _TexResX); + uint dy = (uint)(i.uv.y * _TexResY); + uint di = (dx + dy * _TexResX); + + //uint depth2 = _DepthMap[di >> 1]; + //uint depth = di & 1 != 0 ? depth2 >> 16 : depth2 & 0xffff; + //depth = (depth >= _MinDepth && depth <= _MaxDepth) * depth; + + uint bi4 = _BodyIndexMap[di >> 2]; + uint bi = 255; + + switch (di & 3) + { + case 0: + bi = bi4 & 255; + break; + case 1: + bi = (bi4 >> 8) & 255; + break; + case 2: + bi = (bi4 >> 16) & 255; + break; + case 3: + bi = (bi4 >> 24) & 255; + break; + } + + float clrPlayer = /**depth != 0 &&*/ bi != 255 ? 1.0 : 0.0; + + return float4(clrPlayer, clrPlayer, clrPlayer, clrPlayer); + } + + ENDCG + } + } + + Fallback Off +} \ No newline at end of file diff --git a/Assets/Azure/Resources/UserBodyImageShader.shader.meta b/Assets/Azure/Resources/UserBodyImageShader.shader.meta new file mode 100644 index 0000000..cb5493e --- /dev/null +++ b/Assets/Azure/Resources/UserBodyImageShader.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 1c4f00d5c925e73448c38d2bc8ecb520 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/UserHistImageShader.shader b/Assets/Azure/Resources/UserHistImageShader.shader new file mode 100644 index 0000000..234fd6d --- /dev/null +++ b/Assets/Azure/Resources/UserHistImageShader.shader @@ -0,0 +1,97 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Kinect/UserHistImageShader" { + //Properties { + // _MainTex ("Base (RGB)", 2D) = "black" {} + //} + + SubShader { + Pass { + ZTest Always Cull Off ZWrite Off + Fog { Mode off } + + CGPROGRAM + #pragma target 5.0 + //#pragma enable_d3d11_debug_symbols + + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + + //uniform sampler2D _MainTex; + uniform uint _TexResX; + uniform uint _TexResY; + uniform uint _MinDepth; + uniform uint _MaxDepth; + uniform float _TotalPoints; + + uniform uint _FirstUserIndex; + uniform float4 _BodyIndexColors[100]; + + StructuredBuffer _BodyIndexMap; + StructuredBuffer _DepthMap; + StructuredBuffer _HistMap; + + struct v2f { + float4 pos : SV_POSITION; + float2 uv : TEXCOORD0; + }; + + v2f vert (appdata_base v) + { + v2f o; + + o.pos = UnityObjectToClipPos (v.vertex); + o.uv = v.texcoord; + + return o; + } + + float4 frag (v2f i) : COLOR + { + uint dx = (uint)(i.uv.x * _TexResX); + uint dy = (uint)(i.uv.y * _TexResY); + uint di = (dx + dy * _TexResX); + + uint bi4 = _BodyIndexMap[di >> 2]; + uint bi = 255; + + switch (di & 3) + { + case 0: + bi = bi4 & 255; + break; + case 1: + bi = (bi4 >> 8) & 255; + break; + case 2: + bi = (bi4 >> 16) & 255; + break; + case 3: + bi = (bi4 >> 24) & 255; + break; + } + + if (bi != 255) + //if(bi == _FirstUserIndex) + { + uint depth2 = _DepthMap[di >> 1]; + uint depth = di & 1 != 0 ? depth2 >> 16 : depth2 & 0xffff; + depth = (depth >= _MinDepth && depth <= _MaxDepth) * depth; + + float hist = 1.0 - ((float)_HistMap[depth] / (float)_TotalPoints); + + float4 clrBody = _BodyIndexColors[bi] * hist; + return float4(clrBody.rgb, clrBody.a && (depth != 0)); + } + + return float4(0, 0, 0, 0); // invisible + } + + ENDCG + } + } + + Fallback Off +} \ No newline at end of file diff --git a/Assets/Azure/Resources/UserHistImageShader.shader.meta b/Assets/Azure/Resources/UserHistImageShader.shader.meta new file mode 100644 index 0000000..5bf3c21 --- /dev/null +++ b/Assets/Azure/Resources/UserHistImageShader.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 209180e0626f9f7418182aa36198cc53 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/UserMeshShader.shader b/Assets/Azure/Resources/UserMeshShader.shader new file mode 100644 index 0000000..c7c3bc4 --- /dev/null +++ b/Assets/Azure/Resources/UserMeshShader.shader @@ -0,0 +1,226 @@ +Shader "Kinect/UserMeshShader" +{ + Properties + { + _Color ("Color", Color) = (1,1,1,1) + _ColorTex ("Albedo (RGB)", 2D) = "white" {} + } + + SubShader + { + Tags { "Queue" = "Transparent" "RenderType" = "Opaque" "IgnoreProjector" = "True" } + //LOD 200 + + Cull Off + Blend Off + + CGPROGRAM + + //#include "UnityCG.cginc" + #pragma target 5.0 + + #pragma surface surf Lambert vertex:vert addshadow + #pragma exclude_renderers d3d11_9x + + sampler2D _ColorTex; + float4 _ColorTex_TexelSize; + //float4 _ColorTex_ST; + +#ifdef SHADER_API_D3D11 + StructuredBuffer _DepthMap; + StructuredBuffer _BodyIndexMap; + StructuredBuffer _SpaceTable; +#endif + + int _CoarseFactor; + int _IsPointCloud; + float2 _SpaceScale; + + float2 _TexRes; + float2 _Cxy; + float2 _Fxy; + + uint _UserBodyIndex; + float3 _UserBodyPos; + float4x4 _Transform; + + + struct Input + { + float2 uv_ColorTex : TEXCOORD0; + float4 vertexPos : TEXCOORD2; + }; + + //half _Glossiness; + //half _Metallic; + fixed4 _Color; + + // Add instancing support for this shader. You need to check 'Enable Instancing' on materials that use the shader. + // See https://docs.unity3d.com/Manual/GPUInstancing.html for more information about instancing. + // #pragma instancing_options assumeuniformscaling + UNITY_INSTANCING_BUFFER_START(Props) + // put more per-instance properties here + UNITY_INSTANCING_BUFFER_END(Props) + + + uint getDepthAt(float2 ui, out uint bi) + { + uint dx = (uint)(ui.x * _TexRes.x); + uint dy = (uint)(ui.y * _TexRes.y); + uint di = (dx + dy * _TexRes.x); + + uint depth2 = 0; + uint bi4 = 0; + bi = 255; +#ifdef SHADER_API_D3D11 + depth2 = _DepthMap[di >> 1]; + bi4 = _BodyIndexMap[di >> 2]; +#endif + uint depth = di & 1 != 0 ? depth2 >> 16 : depth2 & 0xffff; + + switch (di & 3) + { + case 0: + bi = bi4 & 255; + break; + case 1: + bi = (bi4 >> 8) & 255; + break; + case 2: + bi = (bi4 >> 16) & 255; + break; + case 3: + bi = (bi4 >> 24) & 255; + break; + } + + return depth; + } + + + float4 getSpacePos(float2 ui, float fDepth, float fAplha) + { + uint dx = (uint)(ui.x * _TexRes.x); + uint dy = (uint)(ui.y * _TexRes.y); + uint di = (dx + dy * _TexRes.x) * 3; + +#ifdef SHADER_API_D3D11 + float4 spacePos = float4(_SpaceTable[di] * fDepth * _SpaceScale.x, _SpaceTable[di + 1] * fDepth * _SpaceScale.y, fDepth, fAplha); +#else + float4 spacePos = float4(0, 0, 0, fAplha); +#endif + + return spacePos; + } + + + void vert(inout appdata_full v, out Input o) + { + UNITY_INITIALIZE_OUTPUT(Input, o); + + float2 posDepth = (float2)v.vertex; + uint bi = 255; + uint depth = getDepthAt(posDepth, bi); + + float dTexX = _ColorTex_TexelSize.x * _CoarseFactor; + float dTexY = _ColorTex_TexelSize.y * _CoarseFactor; + + const float2 ofsToCheck[8] = { + float2(-dTexX, -dTexY), float2(0, -dTexY), float2(dTexX, -dTexY), + float2(-dTexX, 0), float2(dTexX, 0), + float2(-dTexX, dTexY), float2(0, dTexY), float2(dTexX, dTexY) + }; + + if (depth == 0 && !_IsPointCloud) + { + uint maxDepth = 0; + uint minBI = 255; + uint numValid = 0; + + for (int i = 0; i < 8; i++) + { + uint bi2 = 255; + uint depth2 = getDepthAt(posDepth + ofsToCheck[i], bi2); + + maxDepth = max(maxDepth, depth2); + minBI = min(minBI, bi2); + numValid += (depth2 != 0); + } + + if (numValid > 0) + { + depth = maxDepth; + bi = minBI; + } + } + + float fDepth = (float)depth * 0.001; + //float2 oPos = posDepth * _TexRes - _Cxy; // float2(posDepth.x * _TexRes.x - _Cxy.x, posDepth.y * _TexRes.y - _Cxy.y); + + //float2 pPos = float2(oPos.x * fDepth * _SpaceScale.x / _Fxy.x, oPos.y * fDepth * _SpaceScale.y / _Fxy.y); + //float4 vPos = float4(pPos.x, pPos.y, fDepth, v.vertex.w); + float4 vPos = getSpacePos(posDepth, fDepth, v.vertex.w); + + //float4 wPos = mul(_Transform, vPos); + bool mask = (bi == _UserBodyIndex && _UserBodyIndex != 255); + + if (mask && !_IsPointCloud) + { + for (int i = 0; i < 8; i++) + { + float2 posDepth2 = posDepth + ofsToCheck[i]; + uint bi2 = 255; + uint depth2 = getDepthAt(posDepth2, bi2); + + //float fDepth2 = (float)depth2 * 0.001; + //float2 oPos2 = posDepth2 * _TexRes - _Cxy; + + //float2 pPos2 = float2(oPos2.x * fDepth2 * _SpaceScale.x / _Fxy.x, oPos2.y * fDepth2 * _SpaceScale.y / _Fxy.y); + //float4 vPos2 = float4(pPos2.x, pPos2.y, fDepth2, v.vertex.w); + //float4 vPos2 = getSpacePos(posDepth2, fDepth2, v.vertex.w); + + //float4 wPos2 = mul(_Transform, vPos2); + bool mask2 = (bi2 == _UserBodyIndex && _UserBodyIndex != 255); + mask = mask && mask2; + } + } + + float4 vertexPos = vPos; + + v.vertex = vertexPos; + v.texcoord.xy = posDepth; + + o.vertexPos = float4(vertexPos.xyz, mask); // vertexPos * mask; // + } + + + void surf(Input IN, inout SurfaceOutput o) + { + float4 col = tex2D(_ColorTex, IN.uv_ColorTex); + //float4 col = float3(1, 0, 0); + + if (IN.vertexPos.w < 0.99999) + { + discard; + } + + //o.Emission = col * _Color; + o.Albedo = col * _Color; + o.Alpha = col.a; + + //float3 nPos = IN.vertexPos.xyz; + //nPos.xy = nPos.xy / nPos.z; + + //float3 dx = ddx(nPos); + //float3 dy = ddy(nPos); + + //float3 n = normalize(cross(dx, dy)); + //o.Normal = n; + } + + ENDCG + } + + FallBack "Diffuse" +} + diff --git a/Assets/Azure/Resources/UserMeshShader.shader.meta b/Assets/Azure/Resources/UserMeshShader.shader.meta new file mode 100644 index 0000000..091cf44 --- /dev/null +++ b/Assets/Azure/Resources/UserMeshShader.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 03e477b3d86b90649ac508e7cad0b09d +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/UserMeshUShader.shader b/Assets/Azure/Resources/UserMeshUShader.shader new file mode 100644 index 0000000..978a52f --- /dev/null +++ b/Assets/Azure/Resources/UserMeshUShader.shader @@ -0,0 +1,286 @@ +Shader "Kinect/UserMeshUShader" +{ + Properties + { + _ColorTex("Albedo (RGB)", 2D) = "white" {} + _MaxEdgeLen("Max edge length", Range(0.01, 0.5)) = 0.1 + } + + SubShader + { + Tags + { + "RenderType" = "Transparent" + "Queue" = "Transparent-1" + } + + Pass + { + ZWrite On + Blend SrcAlpha OneMinusSrcAlpha + Cull Off + + CGPROGRAM + + #pragma vertex vert + #pragma fragment frag + //#pragma geometry geom + + #pragma target 5.0 + #include "UnityCG.cginc" + #include "FragmentLighting.cginc" + + + sampler2D _ColorTex; + float4 _ColorTex_ST; + float4 _ColorTex_TexelSize; + + sampler2D _CameraDepthTexture; + + float _MaxEdgeLen; + float _CutoffFactor; + + //#ifdef SHADER_API_D3D11 + StructuredBuffer _DepthMap; + StructuredBuffer _BodyIndexMap; + StructuredBuffer _SpaceTable; + //#endif + + int _CoarseFactor; + int _IsPointCloud; + float2 _SpaceScale; + + float2 _TexRes; + uint _UserBodyIndex; + uint _BodyIndexAll; + + + struct v2f + { + float4 pos : SV_POSITION; + float2 uv_ColorTex : TEXCOORD0; + float4 vertexPos : TEXCOORD1; + uint idx : TEXCOORD2; + + bool mask : TEXCOORD3; + float3 normal : NORMAL; + float3 worldDirection : TEXCOORD4; + float4 scrPos : TEXCOORD5; + }; + + //struct v2f + //{ + // float2 uv : TEXCOORD0; + // float4 pos : SV_POSITION; + // float3 normal : NORMAL; + // float3 worldDirection : TEXCOORD1; + //}; + + //struct f2o + //{ + // fixed4 color : SV_Target; + // float depth : SV_Depth; + //}; + + int _ApplyLights; + int _ApplyShadows; + + float4 _DirectionalLights[2]; + sampler2D _DirectionalShadowMap; + + + uint getBodyDepthAt(uint di, out uint bi) + { + uint depth2 = 0; + uint bi4 = 0; + bi = 255; + //#ifdef SHADER_API_D3D11 + depth2 = _DepthMap[di >> 1]; + bi4 = _BodyIndexMap[di >> 2]; + //#endif + uint depth = di & 1 != 0 ? depth2 >> 16 : depth2 & 0xffff; + + switch (di & 3) + { + case 0: + bi = bi4 & 255; + break; + case 1: + bi = (bi4 >> 8) & 255; + break; + case 2: + bi = (bi4 >> 16) & 255; + break; + case 3: + bi = (bi4 >> 24) & 255; + break; + } + + return depth; + } + + float4 getSpacePos(uint idx, float fDepth) + { + uint di = idx * 3; + //#ifdef SHADER_API_D3D11 + float4 spacePos = float4(_SpaceTable[di] * fDepth * _SpaceScale.x, _SpaceTable[di + 1] * fDepth * _SpaceScale.y, fDepth, 1.0); + //#else + // float4 spacePos = float4(0, 0, 0, 1.0); + //#endif + + return spacePos; + } + + + v2f vert(appdata_base v) + { + v2f o; + + float2 texUv = v.texcoord; // (float2)v.vertex; + o.uv_ColorTex = texUv; + + uint dx = (uint)(texUv.x * _TexRes.x); + uint dy = (uint)(texUv.y * _TexRes.y); + uint idx = (dx + dy * _TexRes.x); + o.idx = idx; + + uint bi = 255; + uint depth = getBodyDepthAt(idx, bi); + float fDepth = (float)depth * 0.001; + + float4 vPos = getSpacePos(idx, fDepth); + bool mask = _BodyIndexAll != 0 ? (bi != 255) : (bi == _UserBodyIndex && _UserBodyIndex != 255); + + v.vertex = vPos; + o.pos = UnityObjectToClipPos(v.vertex); + o.scrPos = ComputeScreenPos(o.pos); + + o.vertexPos = vPos; + o.mask = mask; + + o.normal = v.normal; + //o.worldNormal = UnityObjectToWorldNormal(v.normal); + o.worldDirection = mul(unity_ObjectToWorld, v.vertex).xyz - _WorldSpaceCameraPos; + + return o; + } + + + fixed4 frag(v2f i) : SV_Target + { + fixed4 color = tex2D(_ColorTex, i.uv_ColorTex); + + float4 localPos = i.vertexPos; + float fDepth = localPos.z; + //color.rgb = float3(3.0 - fDepth, 3.0 - fDepth, 3.0 - fDepth); + + if (!i.mask) + { + discard; + } + + localPos.xy = localPos.xy / localPos.z; + float3 dx = ddx(localPos); + float3 dy = ddy(localPos); + + float3 n = normalize(cross(dx, dy)); + float sheerAngle = abs(dot(n, float3(0, 0, 1))); + //color.rgb = float3(sheerAngle, sheerAngle, sheerAngle); + + if (sheerAngle < _CutoffFactor) // 0.5^6 = 0.015625 + { + discard; + } + + if (_ApplyLights == 1) + { + // directional light + color *= _DirectionalLights[1]; + + half4 c = color; + + // shadows + if (_ApplyShadows == 1) + { + //float3 shadows = tex2D(_DirectionalShadowMap, i.uv).rgb; + //c = color * (half4(saturate(shadows), 1)); + } + + // lights + float fDepth = i.worldDirection.z; // LinearEyeDepth(tex2Dproj(_CameraDepthTexture, UNITY_PROJ_COORD(i.scrPos)).r); + float3 worldPos = (i.worldDirection / i.pos.w) * fDepth + _WorldSpaceCameraPos; + c += saturate(ApplyLighting(color.rgb, i.normal, worldPos, 1)); + + color = c; + } + + return color; + } + + + float getMaxEdgeLen(float3 v0, float3 v1, float3 v2) + { + float maxEdgeLen = distance(v0, v1); + maxEdgeLen = max(maxEdgeLen, distance(v1, v2)); + maxEdgeLen = max(maxEdgeLen, distance(v2, v0)); + + return maxEdgeLen; + } + + v2f copyV2fSurf(v2f p0, float dx, float dy) + { + v2f p; + + p = p0; + p.pos = p0.pos + float4(dx, dy, 0, 0); + + return p; + } + + [maxvertexcount(6)] + void geom(triangle v2f input[3], inout TriangleStream outStream) + { + v2f p0 = input[0]; + v2f p1 = input[1]; + v2f p2 = input[2]; + + if (_IsPointCloud) + { + if (p0.mask) + { + float dxy = min(_ColorTex_TexelSize.x, _ColorTex_TexelSize.y) *_CoarseFactor; + + p1 = copyV2fSurf(p0, dxy, 0); + p2 = copyV2fSurf(p0, 0, dxy); + v2f p3 = copyV2fSurf(p0, dxy, dxy); + + outStream.Append(p0); + outStream.Append(p1); + outStream.Append(p2); + outStream.RestartStrip(); + + outStream.Append(p1); + outStream.Append(p3); + outStream.Append(p2); + outStream.RestartStrip(); + } + } + else + { + if (p0.mask && p1.mask && p2.mask && getMaxEdgeLen(p0.vertexPos, p1.vertexPos, p2.vertexPos) < _MaxEdgeLen) + { + //p0.worldNormal = p1.worldNormal = p2.worldNormal = cross(normalize(p1.vertexPos - p0.vertexPos), normalize(p2.vertexPos - p0.vertexPos)); + + outStream.Append(p0); + outStream.Append(p1); + outStream.Append(p2); + outStream.RestartStrip(); + } + } + } + + ENDCG + } + + } +} \ No newline at end of file diff --git a/Assets/Azure/Resources/UserMeshUShader.shader.meta b/Assets/Azure/Resources/UserMeshUShader.shader.meta new file mode 100644 index 0000000..b8d6a21 --- /dev/null +++ b/Assets/Azure/Resources/UserMeshUShader.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 6e3a4af6391ac744080647c36b49243e +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/Resources/UserMeshVShader.shader b/Assets/Azure/Resources/UserMeshVShader.shader new file mode 100644 index 0000000..355cf96 --- /dev/null +++ b/Assets/Azure/Resources/UserMeshVShader.shader @@ -0,0 +1,2618 @@ +// Upgrade NOTE: replaced 'defined FOG_COMBINED_WITH_WORLD_POS' with 'defined (FOG_COMBINED_WITH_WORLD_POS)' + +Shader "Kinect/UserMeshVShader" +{ + Properties + { + _Color ("Color", Color) = (1,1,1,1) + _ColorTex ("Albedo (RGB)", 2D) = "white" {} + _MaxEdgeLen("Max edge length", Range(0.01, 0.5)) = 0.1 + } + SubShader + { + Tags { "Queue" = "Transparent" "RenderType" = "Opaque" "IgnoreProjector" = "True" } + LOD 200 + + Cull Off + Blend Off + + + // ------------------------------------------------------------ + // Surface shader code generated out of a CGPROGRAM block: + + + // ---- forward rendering base pass: + Pass { + Name "FORWARD" + Tags { "LightMode" = "ForwardBase" } + +CGPROGRAM +// compile directives +#pragma vertex vert_surf +#pragma fragment frag_surf +#pragma geometry geom_tri_surf +#pragma target 5.0 +#pragma exclude_renderers d3d11_9x +#pragma multi_compile_instancing +#pragma multi_compile_fog +#pragma multi_compile_fwdbase +#include "HLSLSupport.cginc" +#define UNITY_INSTANCED_LOD_FADE +#define UNITY_INSTANCED_SH +#define UNITY_INSTANCED_LIGHTMAPSTS +#include "UnityShaderVariables.cginc" +#include "UnityShaderUtilities.cginc" +// -------- variant for: +#if !defined(INSTANCING_ON) +// Surface shader code generated based on: +// vertex modifier: 'vert' +// writes to per-pixel normal: no +// writes to emission: no +// writes to occlusion: no +// needs world space reflection vector: no +// needs world space normal vector: no +// needs screen space position: no +// needs world space position: no +// needs view direction: no +// needs world space view direction: no +// needs world space position for lighting: YES +// needs world space view direction for lighting: no +// needs world space view direction for lightmaps: no +// needs vertex color: no +// needs VFACE: no +// passes tangent-to-world matrix to pixel shader: no +// reads from normal: no +// 1 texcoords actually used +// float2 _ColorTex +#include "UnityCG.cginc" +#include "Lighting.cginc" +#include "AutoLight.cginc" + +#define INTERNAL_DATA +#define WorldReflectionVector(data,normal) data.worldRefl +#define WorldNormalVector(data,normal) normal + +// Original surface shader snippet: +#line 15 "" +#ifdef DUMMY_PREPROCESSOR_TO_WORK_AROUND_HLSL_COMPILER_LINE_HANDLING +#endif +/* UNITY: Original start of shader */ + + //#pragma target 5.0 + + //#pragma surface surf Lambert vertex:vert addshadow + //#pragma exclude_renderers d3d11_9x + + #include "SceneMeshVShader.cginc" + + + +// vertex-to-fragment interpolation data +// no lightmaps: +#ifndef LIGHTMAP_ON +// half-precision fragment shader registers: +#ifdef UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS +#define FOG_COMBINED_WITH_WORLD_POS +struct v2f_surf { + UNITY_POSITION(pos); + float2 uv_ColorTex : TEXCOORD0; // _ColorTex + float3 worldNormal : TEXCOORD1; + float4 worldPos : TEXCOORD2; + float4 vertexPos : TEXCOORD3; // vertexPos + uint2 idxMask : TEXCOORD4; // idx mask + //float3 normal : TEXCOORD5; // normal + #if UNITY_SHOULD_SAMPLE_SH + half3 sh : TEXCOORD6; // SH + #endif + UNITY_LIGHTING_COORDS(7,8) + #if SHADER_TARGET >= 30 + float4 lmap : TEXCOORD9; + #endif + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; +#endif +// high-precision fragment shader registers: +#ifndef UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS +struct v2f_surf { + UNITY_POSITION(pos); + float2 uv_ColorTex : TEXCOORD0; // _ColorTex + float3 worldNormal : TEXCOORD1; + float3 worldPos : TEXCOORD2; + float4 vertexPos : TEXCOORD3; // vertexPos + uint2 idxMask : TEXCOORD4; // idx mask + //float3 normal : TEXCOORD5; // normal + #if UNITY_SHOULD_SAMPLE_SH + half3 sh : TEXCOORD6; // SH + #endif + UNITY_FOG_COORDS(7) + UNITY_SHADOW_COORDS(8) + #if SHADER_TARGET >= 30 + float4 lmap : TEXCOORD9; + #endif + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; +#endif +#endif +// with lightmaps: +#ifdef LIGHTMAP_ON +// half-precision fragment shader registers: +#ifdef UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS +#define FOG_COMBINED_WITH_WORLD_POS +struct v2f_surf { + UNITY_POSITION(pos); + float2 uv_ColorTex : TEXCOORD0; // _ColorTex + float3 worldNormal : TEXCOORD1; + float4 worldPos : TEXCOORD2; + float4 vertexPos : TEXCOORD3; // vertexPos + uint2 idxMask : TEXCOORD4; // idx mask + //float3 normal : TEXCOORD5; // normal + float4 lmap : TEXCOORD6; + UNITY_LIGHTING_COORDS(7,8) + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; +#endif +// high-precision fragment shader registers: +#ifndef UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS +struct v2f_surf { + UNITY_POSITION(pos); + float2 uv_ColorTex : TEXCOORD0; // _ColorTex + float3 worldNormal : TEXCOORD1; + float3 worldPos : TEXCOORD2; + float4 vertexPos : TEXCOORD3; // vertexPos + uint2 idxMask : TEXCOORD4; // idx mask + //float3 normal : TEXCOORD5; // normal + float4 lmap : TEXCOORD6; + UNITY_FOG_COORDS(7) + UNITY_SHADOW_COORDS(8) + #ifdef DIRLIGHTMAP_COMBINED + float3 tSpace0 : TEXCOORD9; + float3 tSpace1 : TEXCOORD10; + float3 tSpace2 : TEXCOORD11; + #endif + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; +#endif +#endif +float4 _ColorTex_ST; + +// vertex shader +v2f_surf vert_surf (appdata_full v) { + UNITY_SETUP_INSTANCE_ID(v); + v2f_surf o; + UNITY_INITIALIZE_OUTPUT(v2f_surf,o); + UNITY_TRANSFER_INSTANCE_ID(v,o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + Input customInputData; + vert_body (v, customInputData); + o.vertexPos.xyzw = customInputData.vertexPos; + o.idxMask.x = customInputData.idx; + o.idxMask.y = customInputData.mask; + //o.normal.xyz = customInputData.normal; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv_ColorTex.xy = TRANSFORM_TEX(v.texcoord, _ColorTex); + float3 worldPos = mul(unity_ObjectToWorld, v.vertex).xyz; + float3 worldNormal = UnityObjectToWorldNormal(v.normal); + #if defined(LIGHTMAP_ON) && defined(DIRLIGHTMAP_COMBINED) + fixed3 worldTangent = UnityObjectToWorldDir(v.tangent.xyz); + fixed tangentSign = v.tangent.w * unity_WorldTransformParams.w; + fixed3 worldBinormal = cross(worldNormal, worldTangent) * tangentSign; + #endif + #if defined(LIGHTMAP_ON) && defined(DIRLIGHTMAP_COMBINED) && !defined(UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS) + o.tSpace0 = float4(worldTangent.x, worldBinormal.x, worldNormal.x, worldPos.x); + o.tSpace1 = float4(worldTangent.y, worldBinormal.y, worldNormal.y, worldPos.y); + o.tSpace2 = float4(worldTangent.z, worldBinormal.z, worldNormal.z, worldPos.z); + #endif + o.worldPos.xyz = worldPos; + o.worldNormal = worldNormal; + #ifdef DYNAMICLIGHTMAP_ON + o.lmap.zw = v.texcoord2.xy * unity_DynamicLightmapST.xy + unity_DynamicLightmapST.zw; + #endif + #ifdef LIGHTMAP_ON + o.lmap.xy = v.texcoord1.xy * unity_LightmapST.xy + unity_LightmapST.zw; + #endif + + // SH/ambient and vertex lights + #ifndef LIGHTMAP_ON + #if UNITY_SHOULD_SAMPLE_SH && !UNITY_SAMPLE_FULL_SH_PER_PIXEL + o.sh = 0; + // Approximated illumination from non-important point lights + #ifdef VERTEXLIGHT_ON + o.sh += Shade4PointLights ( + unity_4LightPosX0, unity_4LightPosY0, unity_4LightPosZ0, + unity_LightColor[0].rgb, unity_LightColor[1].rgb, unity_LightColor[2].rgb, unity_LightColor[3].rgb, + unity_4LightAtten0, worldPos, worldNormal); + #endif + o.sh = ShadeSHPerVertex (worldNormal, o.sh); + #endif + #endif // !LIGHTMAP_ON + + UNITY_TRANSFER_LIGHTING(o,v.texcoord1.xy); // pass shadow and, possibly, light cookie coordinates to pixel shader + #ifdef FOG_COMBINED_WITH_TSPACE + UNITY_TRANSFER_FOG_COMBINED_WITH_TSPACE(o,o.pos); // pass fog coordinates to pixel shader + #elif defined (FOG_COMBINED_WITH_WORLD_POS) + UNITY_TRANSFER_FOG_COMBINED_WITH_WORLD_POS(o,o.pos); // pass fog coordinates to pixel shader + #else + UNITY_TRANSFER_FOG(o,o.pos); // pass fog coordinates to pixel shader + #endif + return o; +} + +// fragment shader +fixed4 frag_surf (v2f_surf IN) : SV_Target { + UNITY_SETUP_INSTANCE_ID(IN); + // prepare and unpack data + Input surfIN; + #ifdef FOG_COMBINED_WITH_TSPACE + UNITY_EXTRACT_FOG_FROM_TSPACE(IN); + #elif defined (FOG_COMBINED_WITH_WORLD_POS) + UNITY_EXTRACT_FOG_FROM_WORLD_POS(IN); + #else + UNITY_EXTRACT_FOG(IN); + #endif + UNITY_INITIALIZE_OUTPUT(Input,surfIN); + surfIN.uv_ColorTex.x = 1.0; + surfIN.vertexPos.x = 1.0; + //surfIN.normal.x = 1.0; + surfIN.uv_ColorTex = IN.uv_ColorTex.xy; + surfIN.vertexPos = IN.vertexPos.xyzw; + surfIN.idx = IN.idxMask.x; + surfIN.mask = IN.idxMask.y; + //surfIN.normal = IN.normal.xyz; + float3 worldPos = IN.worldPos.xyz; + #ifndef USING_DIRECTIONAL_LIGHT + fixed3 lightDir = normalize(UnityWorldSpaceLightDir(worldPos)); + #else + fixed3 lightDir = _WorldSpaceLightPos0.xyz; + #endif + #ifdef UNITY_COMPILER_HLSL + SurfaceOutput o = (SurfaceOutput)0; + #else + SurfaceOutput o; + #endif + o.Albedo = 0.0; + o.Emission = 0.0; + o.Specular = 0.0; + o.Alpha = 0.0; + o.Gloss = 0.0; + fixed3 normalWorldVertex = fixed3(0,0,1); + o.Normal = IN.worldNormal; + normalWorldVertex = IN.worldNormal; + + // call surface function + surf (surfIN, o); + + // compute lighting & shadowing factor + UNITY_LIGHT_ATTENUATION(atten, IN, worldPos) + fixed4 c = 0; + + // Setup lighting environment + UnityGI gi; + UNITY_INITIALIZE_OUTPUT(UnityGI, gi); + gi.indirect.diffuse = 0; + gi.indirect.specular = 0; + gi.light.color = _LightColor0.rgb; + gi.light.dir = lightDir; + // Call GI (lightmaps/SH/reflections) lighting function + UnityGIInput giInput; + UNITY_INITIALIZE_OUTPUT(UnityGIInput, giInput); + giInput.light = gi.light; + giInput.worldPos = worldPos; + giInput.atten = atten; + #if defined(LIGHTMAP_ON) || defined(DYNAMICLIGHTMAP_ON) + giInput.lightmapUV = IN.lmap; + #else + giInput.lightmapUV = 0.0; + #endif + #if UNITY_SHOULD_SAMPLE_SH && !UNITY_SAMPLE_FULL_SH_PER_PIXEL + giInput.ambient = IN.sh; + #else + giInput.ambient.rgb = 0.0; + #endif + giInput.probeHDR[0] = unity_SpecCube0_HDR; + giInput.probeHDR[1] = unity_SpecCube1_HDR; + #if defined(UNITY_SPECCUBE_BLENDING) || defined(UNITY_SPECCUBE_BOX_PROJECTION) + giInput.boxMin[0] = unity_SpecCube0_BoxMin; // .w holds lerp value for blending + #endif + #ifdef UNITY_SPECCUBE_BOX_PROJECTION + giInput.boxMax[0] = unity_SpecCube0_BoxMax; + giInput.probePosition[0] = unity_SpecCube0_ProbePosition; + giInput.boxMax[1] = unity_SpecCube1_BoxMax; + giInput.boxMin[1] = unity_SpecCube1_BoxMin; + giInput.probePosition[1] = unity_SpecCube1_ProbePosition; + #endif + LightingLambert_GI(o, giInput, gi); + + // realtime lighting: call lighting function + c += LightingLambert (o, gi); + UNITY_APPLY_FOG(_unity_fogCoord, c); // apply fog + UNITY_OPAQUE_ALPHA(c.a); + return c; +} + +#include "SceneMeshGShader.cginc" + +#endif + +// -------- variant for: INSTANCING_ON +#if defined(INSTANCING_ON) +// Surface shader code generated based on: +// vertex modifier: 'vert' +// writes to per-pixel normal: no +// writes to emission: no +// writes to occlusion: no +// needs world space reflection vector: no +// needs world space normal vector: no +// needs screen space position: no +// needs world space position: no +// needs view direction: no +// needs world space view direction: no +// needs world space position for lighting: YES +// needs world space view direction for lighting: no +// needs world space view direction for lightmaps: no +// needs vertex color: no +// needs VFACE: no +// passes tangent-to-world matrix to pixel shader: no +// reads from normal: no +// 1 texcoords actually used +// float2 _ColorTex +#include "UnityCG.cginc" +#include "Lighting.cginc" +#include "AutoLight.cginc" + +#define INTERNAL_DATA +#define WorldReflectionVector(data,normal) data.worldRefl +#define WorldNormalVector(data,normal) normal + +// Original surface shader snippet: +#line 15 "" +#ifdef DUMMY_PREPROCESSOR_TO_WORK_AROUND_HLSL_COMPILER_LINE_HANDLING +#endif +/* UNITY: Original start of shader */ + + //#pragma target 5.0 + + //#pragma surface surf Lambert vertex:vert addshadow + //#pragma exclude_renderers d3d11_9x + + #include "SceneMeshVShader.cginc" + + + +// vertex-to-fragment interpolation data +// no lightmaps: +#ifndef LIGHTMAP_ON +// half-precision fragment shader registers: +#ifdef UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS +#define FOG_COMBINED_WITH_WORLD_POS +struct v2f_surf { + UNITY_POSITION(pos); + float2 uv_ColorTex : TEXCOORD0; // _ColorTex + float3 worldNormal : TEXCOORD1; + float4 worldPos : TEXCOORD2; + float4 vertexPos : TEXCOORD3; // vertexPos + uint2 idxMask : TEXCOORD4; // idx mask + //float3 normal : TEXCOORD5; // normal + #if UNITY_SHOULD_SAMPLE_SH + half3 sh : TEXCOORD6; // SH + #endif + UNITY_LIGHTING_COORDS(7,8) + #if SHADER_TARGET >= 30 + float4 lmap : TEXCOORD9; + #endif + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; +#endif +// high-precision fragment shader registers: +#ifndef UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS +struct v2f_surf { + UNITY_POSITION(pos); + float2 uv_ColorTex : TEXCOORD0; // _ColorTex + float3 worldNormal : TEXCOORD1; + float3 worldPos : TEXCOORD2; + float4 vertexPos : TEXCOORD3; // vertexPos + uint2 idxMask : TEXCOORD4; // idx mask + //float3 normal : TEXCOORD5; // normal + #if UNITY_SHOULD_SAMPLE_SH + half3 sh : TEXCOORD6; // SH + #endif + UNITY_FOG_COORDS(7) + UNITY_SHADOW_COORDS(8) + #if SHADER_TARGET >= 30 + float4 lmap : TEXCOORD9; + #endif + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; +#endif +#endif +// with lightmaps: +#ifdef LIGHTMAP_ON +// half-precision fragment shader registers: +#ifdef UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS +#define FOG_COMBINED_WITH_WORLD_POS +struct v2f_surf { + UNITY_POSITION(pos); + float2 uv_ColorTex : TEXCOORD0; // _ColorTex + float3 worldNormal : TEXCOORD1; + float4 worldPos : TEXCOORD2; + float4 vertexPos : TEXCOORD3; // vertexPos + uint2 idxMask : TEXCOORD4; // idx mask + //float3 normal : TEXCOORD5; // normal + float4 lmap : TEXCOORD6; + UNITY_LIGHTING_COORDS(7,8) + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; +#endif +// high-precision fragment shader registers: +#ifndef UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS +struct v2f_surf { + UNITY_POSITION(pos); + float2 uv_ColorTex : TEXCOORD0; // _ColorTex + float3 worldNormal : TEXCOORD1; + float3 worldPos : TEXCOORD2; + float4 vertexPos : TEXCOORD3; // vertexPos + uint2 idxMask : TEXCOORD4; // idx mask + //float3 normal : TEXCOORD5; // normal + float4 lmap : TEXCOORD6; + UNITY_FOG_COORDS(7) + UNITY_SHADOW_COORDS(8) + #ifdef DIRLIGHTMAP_COMBINED + float3 tSpace0 : TEXCOORD9; + float3 tSpace1 : TEXCOORD10; + float3 tSpace2 : TEXCOORD11; + #endif + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; +#endif +#endif +float4 _ColorTex_ST; + +// vertex shader +v2f_surf vert_surf (appdata_full v) { + UNITY_SETUP_INSTANCE_ID(v); + v2f_surf o; + UNITY_INITIALIZE_OUTPUT(v2f_surf,o); + UNITY_TRANSFER_INSTANCE_ID(v,o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + Input customInputData; + vert_body (v, customInputData); + o.vertexPos.xyzw = customInputData.vertexPos; + o.idxMask.x = customInputData.idx; + o.idxMask.y = customInputData.mask; + //o.normal.xyz = customInputData.normal; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv_ColorTex.xy = TRANSFORM_TEX(v.texcoord, _ColorTex); + float3 worldPos = mul(unity_ObjectToWorld, v.vertex).xyz; + float3 worldNormal = UnityObjectToWorldNormal(v.normal); + #if defined(LIGHTMAP_ON) && defined(DIRLIGHTMAP_COMBINED) + fixed3 worldTangent = UnityObjectToWorldDir(v.tangent.xyz); + fixed tangentSign = v.tangent.w * unity_WorldTransformParams.w; + fixed3 worldBinormal = cross(worldNormal, worldTangent) * tangentSign; + #endif + #if defined(LIGHTMAP_ON) && defined(DIRLIGHTMAP_COMBINED) && !defined(UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS) + o.tSpace0 = float4(worldTangent.x, worldBinormal.x, worldNormal.x, worldPos.x); + o.tSpace1 = float4(worldTangent.y, worldBinormal.y, worldNormal.y, worldPos.y); + o.tSpace2 = float4(worldTangent.z, worldBinormal.z, worldNormal.z, worldPos.z); + #endif + o.worldPos.xyz = worldPos; + o.worldNormal = worldNormal; + #ifdef DYNAMICLIGHTMAP_ON + o.lmap.zw = v.texcoord2.xy * unity_DynamicLightmapST.xy + unity_DynamicLightmapST.zw; + #endif + #ifdef LIGHTMAP_ON + o.lmap.xy = v.texcoord1.xy * unity_LightmapST.xy + unity_LightmapST.zw; + #endif + + // SH/ambient and vertex lights + #ifndef LIGHTMAP_ON + #if UNITY_SHOULD_SAMPLE_SH && !UNITY_SAMPLE_FULL_SH_PER_PIXEL + o.sh = 0; + // Approximated illumination from non-important point lights + #ifdef VERTEXLIGHT_ON + o.sh += Shade4PointLights ( + unity_4LightPosX0, unity_4LightPosY0, unity_4LightPosZ0, + unity_LightColor[0].rgb, unity_LightColor[1].rgb, unity_LightColor[2].rgb, unity_LightColor[3].rgb, + unity_4LightAtten0, worldPos, worldNormal); + #endif + o.sh = ShadeSHPerVertex (worldNormal, o.sh); + #endif + #endif // !LIGHTMAP_ON + + UNITY_TRANSFER_LIGHTING(o,v.texcoord1.xy); // pass shadow and, possibly, light cookie coordinates to pixel shader + #ifdef FOG_COMBINED_WITH_TSPACE + UNITY_TRANSFER_FOG_COMBINED_WITH_TSPACE(o,o.pos); // pass fog coordinates to pixel shader + #elif defined (FOG_COMBINED_WITH_WORLD_POS) + UNITY_TRANSFER_FOG_COMBINED_WITH_WORLD_POS(o,o.pos); // pass fog coordinates to pixel shader + #else + UNITY_TRANSFER_FOG(o,o.pos); // pass fog coordinates to pixel shader + #endif + return o; +} + +// fragment shader +fixed4 frag_surf (v2f_surf IN) : SV_Target { + UNITY_SETUP_INSTANCE_ID(IN); + // prepare and unpack data + Input surfIN; + #ifdef FOG_COMBINED_WITH_TSPACE + UNITY_EXTRACT_FOG_FROM_TSPACE(IN); + #elif defined (FOG_COMBINED_WITH_WORLD_POS) + UNITY_EXTRACT_FOG_FROM_WORLD_POS(IN); + #else + UNITY_EXTRACT_FOG(IN); + #endif + UNITY_INITIALIZE_OUTPUT(Input,surfIN); + surfIN.uv_ColorTex.x = 1.0; + surfIN.vertexPos.x = 1.0; + //surfIN.normal.x = 1.0; + surfIN.uv_ColorTex = IN.uv_ColorTex.xy; + surfIN.vertexPos = IN.vertexPos.xyzw; + surfIN.idx = IN.idxMask.x; + surfIN.mask = IN.idxMask.y; + //surfIN.normal = IN.normal.xyz; + float3 worldPos = IN.worldPos.xyz; + #ifndef USING_DIRECTIONAL_LIGHT + fixed3 lightDir = normalize(UnityWorldSpaceLightDir(worldPos)); + #else + fixed3 lightDir = _WorldSpaceLightPos0.xyz; + #endif + #ifdef UNITY_COMPILER_HLSL + SurfaceOutput o = (SurfaceOutput)0; + #else + SurfaceOutput o; + #endif + o.Albedo = 0.0; + o.Emission = 0.0; + o.Specular = 0.0; + o.Alpha = 0.0; + o.Gloss = 0.0; + fixed3 normalWorldVertex = fixed3(0,0,1); + o.Normal = IN.worldNormal; + normalWorldVertex = IN.worldNormal; + + // call surface function + surf (surfIN, o); + + // compute lighting & shadowing factor + UNITY_LIGHT_ATTENUATION(atten, IN, worldPos) + fixed4 c = 0; + + // Setup lighting environment + UnityGI gi; + UNITY_INITIALIZE_OUTPUT(UnityGI, gi); + gi.indirect.diffuse = 0; + gi.indirect.specular = 0; + gi.light.color = _LightColor0.rgb; + gi.light.dir = lightDir; + // Call GI (lightmaps/SH/reflections) lighting function + UnityGIInput giInput; + UNITY_INITIALIZE_OUTPUT(UnityGIInput, giInput); + giInput.light = gi.light; + giInput.worldPos = worldPos; + giInput.atten = atten; + #if defined(LIGHTMAP_ON) || defined(DYNAMICLIGHTMAP_ON) + giInput.lightmapUV = IN.lmap; + #else + giInput.lightmapUV = 0.0; + #endif + #if UNITY_SHOULD_SAMPLE_SH && !UNITY_SAMPLE_FULL_SH_PER_PIXEL + giInput.ambient = IN.sh; + #else + giInput.ambient.rgb = 0.0; + #endif + giInput.probeHDR[0] = unity_SpecCube0_HDR; + giInput.probeHDR[1] = unity_SpecCube1_HDR; + #if defined(UNITY_SPECCUBE_BLENDING) || defined(UNITY_SPECCUBE_BOX_PROJECTION) + giInput.boxMin[0] = unity_SpecCube0_BoxMin; // .w holds lerp value for blending + #endif + #ifdef UNITY_SPECCUBE_BOX_PROJECTION + giInput.boxMax[0] = unity_SpecCube0_BoxMax; + giInput.probePosition[0] = unity_SpecCube0_ProbePosition; + giInput.boxMax[1] = unity_SpecCube1_BoxMax; + giInput.boxMin[1] = unity_SpecCube1_BoxMin; + giInput.probePosition[1] = unity_SpecCube1_ProbePosition; + #endif + LightingLambert_GI(o, giInput, gi); + + // realtime lighting: call lighting function + c += LightingLambert (o, gi); + UNITY_APPLY_FOG(_unity_fogCoord, c); // apply fog + UNITY_OPAQUE_ALPHA(c.a); + return c; +} + +#include "SceneMeshGShader.cginc" + +#endif + + +ENDCG + +} + + // ---- forward rendering additive lights pass: + Pass { + Name "FORWARD" + Tags { "LightMode" = "ForwardAdd" } + ZWrite Off Blend One One + +CGPROGRAM +// compile directives +#pragma vertex vert_surf +#pragma fragment frag_surf +#pragma geometry geom_tri_surf +#pragma target 5.0 +#pragma exclude_renderers d3d11_9x +#pragma multi_compile_instancing +#pragma multi_compile_fog +#pragma skip_variants INSTANCING_ON +#pragma multi_compile_fwdadd +#include "HLSLSupport.cginc" +#define UNITY_INSTANCED_LOD_FADE +#define UNITY_INSTANCED_SH +#define UNITY_INSTANCED_LIGHTMAPSTS +#include "UnityShaderVariables.cginc" +#include "UnityShaderUtilities.cginc" +// -------- variant for: +#if !defined(INSTANCING_ON) +// Surface shader code generated based on: +// vertex modifier: 'vert' +// writes to per-pixel normal: no +// writes to emission: no +// writes to occlusion: no +// needs world space reflection vector: no +// needs world space normal vector: no +// needs screen space position: no +// needs world space position: no +// needs view direction: no +// needs world space view direction: no +// needs world space position for lighting: YES +// needs world space view direction for lighting: no +// needs world space view direction for lightmaps: no +// needs vertex color: no +// needs VFACE: no +// passes tangent-to-world matrix to pixel shader: no +// reads from normal: no +// 1 texcoords actually used +// float2 _ColorTex +#include "UnityCG.cginc" +#include "Lighting.cginc" +#include "AutoLight.cginc" + +#define INTERNAL_DATA +#define WorldReflectionVector(data,normal) data.worldRefl +#define WorldNormalVector(data,normal) normal + +// Original surface shader snippet: +#line 15 "" +#ifdef DUMMY_PREPROCESSOR_TO_WORK_AROUND_HLSL_COMPILER_LINE_HANDLING +#endif +/* UNITY: Original start of shader */ + + //#pragma target 5.0 + + //#pragma surface surf Lambert vertex:vert addshadow + //#pragma exclude_renderers d3d11_9x + + #include "SceneMeshVShader.cginc" + + + +// vertex-to-fragment interpolation data +struct v2f_surf { + UNITY_POSITION(pos); + float2 uv_ColorTex : TEXCOORD0; // _ColorTex + float3 worldNormal : TEXCOORD1; + float3 worldPos : TEXCOORD2; + float4 vertexPos : TEXCOORD3; // vertexPos + uint2 idxMask : TEXCOORD4; // idx mask + //float3 normal : TEXCOORD5; // normal + UNITY_LIGHTING_COORDS(6,7) + UNITY_FOG_COORDS(8) + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; +float4 _ColorTex_ST; + +// vertex shader +v2f_surf vert_surf (appdata_full v) { + UNITY_SETUP_INSTANCE_ID(v); + v2f_surf o; + UNITY_INITIALIZE_OUTPUT(v2f_surf,o); + UNITY_TRANSFER_INSTANCE_ID(v,o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + Input customInputData; + vert_body (v, customInputData); + o.vertexPos.xyzw = customInputData.vertexPos; + o.idxMask.x = customInputData.idx; + o.idxMask.y = customInputData.mask; + //o.normal.xyz = customInputData.normal; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv_ColorTex.xy = TRANSFORM_TEX(v.texcoord, _ColorTex); + float3 worldPos = mul(unity_ObjectToWorld, v.vertex).xyz; + float3 worldNormal = UnityObjectToWorldNormal(v.normal); + o.worldPos.xyz = worldPos; + o.worldNormal = worldNormal; + + UNITY_TRANSFER_LIGHTING(o,v.texcoord1.xy); // pass shadow and, possibly, light cookie coordinates to pixel shader + UNITY_TRANSFER_FOG(o,o.pos); // pass fog coordinates to pixel shader + return o; +} + +// fragment shader +fixed4 frag_surf (v2f_surf IN) : SV_Target { + UNITY_SETUP_INSTANCE_ID(IN); + // prepare and unpack data + Input surfIN; + #ifdef FOG_COMBINED_WITH_TSPACE + UNITY_EXTRACT_FOG_FROM_TSPACE(IN); + #elif defined (FOG_COMBINED_WITH_WORLD_POS) + UNITY_EXTRACT_FOG_FROM_WORLD_POS(IN); + #else + UNITY_EXTRACT_FOG(IN); + #endif + UNITY_INITIALIZE_OUTPUT(Input,surfIN); + surfIN.uv_ColorTex.x = 1.0; + surfIN.vertexPos.x = 1.0; + //surfIN.normal.x = 1.0; + surfIN.uv_ColorTex = IN.uv_ColorTex.xy; + surfIN.vertexPos = IN.vertexPos.xyzw; + surfIN.idx = IN.idxMask.x; + surfIN.mask = IN.idxMask.y; + //surfIN.normal = IN.normal.xyz; + float3 worldPos = IN.worldPos.xyz; + #ifndef USING_DIRECTIONAL_LIGHT + fixed3 lightDir = normalize(UnityWorldSpaceLightDir(worldPos)); + #else + fixed3 lightDir = _WorldSpaceLightPos0.xyz; + #endif + #ifdef UNITY_COMPILER_HLSL + SurfaceOutput o = (SurfaceOutput)0; + #else + SurfaceOutput o; + #endif + o.Albedo = 0.0; + o.Emission = 0.0; + o.Specular = 0.0; + o.Alpha = 0.0; + o.Gloss = 0.0; + fixed3 normalWorldVertex = fixed3(0,0,1); + o.Normal = IN.worldNormal; + normalWorldVertex = IN.worldNormal; + + // call surface function + surf (surfIN, o); + UNITY_LIGHT_ATTENUATION(atten, IN, worldPos) + fixed4 c = 0; + + // Setup lighting environment + UnityGI gi; + UNITY_INITIALIZE_OUTPUT(UnityGI, gi); + gi.indirect.diffuse = 0; + gi.indirect.specular = 0; + gi.light.color = _LightColor0.rgb; + gi.light.dir = lightDir; + gi.light.color *= atten; + c += LightingLambert (o, gi); + c.a = 0.0; + UNITY_APPLY_FOG(_unity_fogCoord, c); // apply fog + UNITY_OPAQUE_ALPHA(c.a); + return c; +} + +#include "SceneMeshGShader.cginc" + +#endif + + +ENDCG + +} + + // ---- deferred lighting base geometry pass: + Pass { + Name "PREPASS" + Tags { "LightMode" = "PrePassBase" } + +CGPROGRAM +// compile directives +#pragma vertex vert_surf +#pragma fragment frag_surf +#pragma geometry geom_tri_surf +#pragma target 5.0 +#pragma exclude_renderers d3d11_9x +#pragma multi_compile_instancing +#pragma skip_variants FOG_LINEAR FOG_EXP FOG_EXP2 + +#include "HLSLSupport.cginc" +#define UNITY_INSTANCED_LOD_FADE +#define UNITY_INSTANCED_SH +#define UNITY_INSTANCED_LIGHTMAPSTS +#include "UnityShaderVariables.cginc" +#include "UnityShaderUtilities.cginc" +// -------- variant for: +#if !defined(INSTANCING_ON) +// Surface shader code generated based on: +// vertex modifier: 'vert' +// writes to per-pixel normal: no +// writes to emission: no +// writes to occlusion: no +// needs world space reflection vector: no +// needs world space normal vector: no +// needs screen space position: no +// needs world space position: no +// needs view direction: no +// needs world space view direction: no +// needs world space position for lighting: YES +// needs world space view direction for lighting: no +// needs world space view direction for lightmaps: no +// needs vertex color: no +// needs VFACE: no +// passes tangent-to-world matrix to pixel shader: no +// reads from normal: YES +// 0 texcoords actually used +#include "UnityCG.cginc" +#include "Lighting.cginc" + +#define INTERNAL_DATA +#define WorldReflectionVector(data,normal) data.worldRefl +#define WorldNormalVector(data,normal) normal + +// Original surface shader snippet: +#line 15 "" +#ifdef DUMMY_PREPROCESSOR_TO_WORK_AROUND_HLSL_COMPILER_LINE_HANDLING +#endif +/* UNITY: Original start of shader */ + + //#pragma target 5.0 + + //#pragma surface surf Lambert vertex:vert addshadow + //#pragma exclude_renderers d3d11_9x + + #include "SceneMeshVShader.cginc" + + + +// vertex-to-fragment interpolation data +struct v2f_surf { + UNITY_POSITION(pos); + float3 worldNormal : TEXCOORD0; + float3 worldPos : TEXCOORD1; + float4 vertexPos : TEXCOORD2; // vertexPos + uint2 idxMask : TEXCOORD3; // idx mask + //float3 normal : TEXCOORD4; // normal + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; + +// vertex shader +v2f_surf vert_surf (appdata_full v) { + UNITY_SETUP_INSTANCE_ID(v); + v2f_surf o; + UNITY_INITIALIZE_OUTPUT(v2f_surf,o); + UNITY_TRANSFER_INSTANCE_ID(v,o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + Input customInputData; + vert_body (v, customInputData); + o.vertexPos.xyzw = customInputData.vertexPos; + o.idxMask.x = customInputData.idx; + o.idxMask.y = customInputData.mask; + //o.normal.xyz = customInputData.normal; + o.pos = UnityObjectToClipPos(v.vertex); + float3 worldPos = mul(unity_ObjectToWorld, v.vertex).xyz; + float3 worldNormal = UnityObjectToWorldNormal(v.normal); + o.worldPos.xyz = worldPos; + o.worldNormal = worldNormal; + return o; +} + +// fragment shader +fixed4 frag_surf (v2f_surf IN) : SV_Target { + UNITY_SETUP_INSTANCE_ID(IN); + // prepare and unpack data + Input surfIN; + #ifdef FOG_COMBINED_WITH_TSPACE + UNITY_EXTRACT_FOG_FROM_TSPACE(IN); + #elif defined (FOG_COMBINED_WITH_WORLD_POS) + UNITY_EXTRACT_FOG_FROM_WORLD_POS(IN); + #else + UNITY_EXTRACT_FOG(IN); + #endif + UNITY_INITIALIZE_OUTPUT(Input,surfIN); + surfIN.uv_ColorTex.x = 1.0; + surfIN.vertexPos.x = 1.0; + //surfIN.normal.x = 1.0; + surfIN.vertexPos = IN.vertexPos.xyzw; + surfIN.idx = IN.idxMask.x; + surfIN.mask = IN.idxMask.y; + //surfIN.normal = IN.normal.xyz; + float3 worldPos = IN.worldPos.xyz; + #ifndef USING_DIRECTIONAL_LIGHT + fixed3 lightDir = normalize(UnityWorldSpaceLightDir(worldPos)); + #else + fixed3 lightDir = _WorldSpaceLightPos0.xyz; + #endif + #ifdef UNITY_COMPILER_HLSL + SurfaceOutput o = (SurfaceOutput)0; + #else + SurfaceOutput o; + #endif + o.Albedo = 0.0; + o.Emission = 0.0; + o.Specular = 0.0; + o.Alpha = 0.0; + o.Gloss = 0.0; + fixed3 normalWorldVertex = fixed3(0,0,1); + o.Normal = IN.worldNormal; + normalWorldVertex = IN.worldNormal; + + // call surface function + surf (surfIN, o); + + // output normal and specular + fixed4 res; + res.rgb = o.Normal * 0.5 + 0.5; + res.a = o.Specular; + return res; +} + +#include "SceneMeshGShader.cginc" + +#endif + +// -------- variant for: INSTANCING_ON +#if defined(INSTANCING_ON) +// Surface shader code generated based on: +// vertex modifier: 'vert' +// writes to per-pixel normal: no +// writes to emission: no +// writes to occlusion: no +// needs world space reflection vector: no +// needs world space normal vector: no +// needs screen space position: no +// needs world space position: no +// needs view direction: no +// needs world space view direction: no +// needs world space position for lighting: YES +// needs world space view direction for lighting: no +// needs world space view direction for lightmaps: no +// needs vertex color: no +// needs VFACE: no +// passes tangent-to-world matrix to pixel shader: no +// reads from normal: YES +// 0 texcoords actually used +#include "UnityCG.cginc" +#include "Lighting.cginc" + +#define INTERNAL_DATA +#define WorldReflectionVector(data,normal) data.worldRefl +#define WorldNormalVector(data,normal) normal + +// Original surface shader snippet: +#line 15 "" +#ifdef DUMMY_PREPROCESSOR_TO_WORK_AROUND_HLSL_COMPILER_LINE_HANDLING +#endif +/* UNITY: Original start of shader */ + + //#pragma target 5.0 + + //#pragma surface surf Lambert vertex:vert addshadow + //#pragma exclude_renderers d3d11_9x + + #include "SceneMeshVShader.cginc" + + + +// vertex-to-fragment interpolation data +struct v2f_surf { + UNITY_POSITION(pos); + float3 worldNormal : TEXCOORD0; + float3 worldPos : TEXCOORD1; + float4 vertexPos : TEXCOORD2; // vertexPos + uint2 idxMask : TEXCOORD3; // idx mask + //float3 normal : TEXCOORD4; // normal + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; + +// vertex shader +v2f_surf vert_surf (appdata_full v) { + UNITY_SETUP_INSTANCE_ID(v); + v2f_surf o; + UNITY_INITIALIZE_OUTPUT(v2f_surf,o); + UNITY_TRANSFER_INSTANCE_ID(v,o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + Input customInputData; + vert_body (v, customInputData); + o.vertexPos.xyzw = customInputData.vertexPos; + o.idxMask.x = customInputData.idx; + o.idxMask.y = customInputData.mask; + //o.normal.xyz = customInputData.normal; + o.pos = UnityObjectToClipPos(v.vertex); + float3 worldPos = mul(unity_ObjectToWorld, v.vertex).xyz; + float3 worldNormal = UnityObjectToWorldNormal(v.normal); + o.worldPos.xyz = worldPos; + o.worldNormal = worldNormal; + return o; +} + +// fragment shader +fixed4 frag_surf (v2f_surf IN) : SV_Target { + UNITY_SETUP_INSTANCE_ID(IN); + // prepare and unpack data + Input surfIN; + #ifdef FOG_COMBINED_WITH_TSPACE + UNITY_EXTRACT_FOG_FROM_TSPACE(IN); + #elif defined (FOG_COMBINED_WITH_WORLD_POS) + UNITY_EXTRACT_FOG_FROM_WORLD_POS(IN); + #else + UNITY_EXTRACT_FOG(IN); + #endif + UNITY_INITIALIZE_OUTPUT(Input,surfIN); + surfIN.uv_ColorTex.x = 1.0; + surfIN.vertexPos.x = 1.0; + //surfIN.normal.x = 1.0; + surfIN.vertexPos = IN.vertexPos.xyzw; + surfIN.idx = IN.idxMask.x; + surfIN.mask = IN.idxMask.y; + //surfIN.normal = IN.normal.xyz; + float3 worldPos = IN.worldPos.xyz; + #ifndef USING_DIRECTIONAL_LIGHT + fixed3 lightDir = normalize(UnityWorldSpaceLightDir(worldPos)); + #else + fixed3 lightDir = _WorldSpaceLightPos0.xyz; + #endif + #ifdef UNITY_COMPILER_HLSL + SurfaceOutput o = (SurfaceOutput)0; + #else + SurfaceOutput o; + #endif + o.Albedo = 0.0; + o.Emission = 0.0; + o.Specular = 0.0; + o.Alpha = 0.0; + o.Gloss = 0.0; + fixed3 normalWorldVertex = fixed3(0,0,1); + o.Normal = IN.worldNormal; + normalWorldVertex = IN.worldNormal; + + // call surface function + surf (surfIN, o); + + // output normal and specular + fixed4 res; + res.rgb = o.Normal * 0.5 + 0.5; + res.a = o.Specular; + return res; +} + +#include "SceneMeshGShader.cginc" + +#endif + + +ENDCG + +} + + // ---- deferred lighting final pass: + Pass { + Name "PREPASS" + Tags { "LightMode" = "PrePassFinal" } + ZWrite Off + +CGPROGRAM +// compile directives +#pragma vertex vert_surf +#pragma fragment frag_surf +#pragma geometry geom_tri_surf +#pragma target 5.0 +#pragma exclude_renderers d3d11_9x +#pragma multi_compile_instancing +#pragma multi_compile_fog +#pragma multi_compile_prepassfinal +#include "HLSLSupport.cginc" +#define UNITY_INSTANCED_LOD_FADE +#define UNITY_INSTANCED_SH +#define UNITY_INSTANCED_LIGHTMAPSTS +#include "UnityShaderVariables.cginc" +#include "UnityShaderUtilities.cginc" +// -------- variant for: +#if !defined(INSTANCING_ON) +// Surface shader code generated based on: +// vertex modifier: 'vert' +// writes to per-pixel normal: no +// writes to emission: no +// writes to occlusion: no +// needs world space reflection vector: no +// needs world space normal vector: no +// needs screen space position: no +// needs world space position: no +// needs view direction: no +// needs world space view direction: no +// needs world space position for lighting: YES +// needs world space view direction for lighting: no +// needs world space view direction for lightmaps: no +// needs vertex color: no +// needs VFACE: no +// passes tangent-to-world matrix to pixel shader: no +// reads from normal: no +// 1 texcoords actually used +// float2 _ColorTex +#include "UnityCG.cginc" +#include "Lighting.cginc" + +#define INTERNAL_DATA +#define WorldReflectionVector(data,normal) data.worldRefl +#define WorldNormalVector(data,normal) normal + +// Original surface shader snippet: +#line 15 "" +#ifdef DUMMY_PREPROCESSOR_TO_WORK_AROUND_HLSL_COMPILER_LINE_HANDLING +#endif +/* UNITY: Original start of shader */ + + //#pragma target 5.0 + + //#pragma surface surf Lambert vertex:vert addshadow + //#pragma exclude_renderers d3d11_9x + + #include "SceneMeshVShader.cginc" + + + +// vertex-to-fragment interpolation data +struct v2f_surf { + UNITY_POSITION(pos); + float2 uv_ColorTex : TEXCOORD0; // _ColorTex + float3 worldPos : TEXCOORD1; + float4 vertexPos : TEXCOORD2; // vertexPos + uint2 idxMask : TEXCOORD3; // idx mask + //float3 normal : TEXCOORD4; // normal + float4 screen : TEXCOORD5; + float4 lmap : TEXCOORD6; +#ifndef LIGHTMAP_ON + float3 vlight : TEXCOORD7; +#else +#ifdef DIRLIGHTMAP_OFF + float4 lmapFadePos : TEXCOORD7; +#endif +#endif + UNITY_FOG_COORDS(8) + #if defined(LIGHTMAP_ON) && defined(DIRLIGHTMAP_COMBINED) + float3 tSpace0 : TEXCOORD9; + float3 tSpace1 : TEXCOORD10; + float3 tSpace2 : TEXCOORD11; + #endif + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; +float4 _ColorTex_ST; + +// vertex shader +v2f_surf vert_surf (appdata_full v) { + UNITY_SETUP_INSTANCE_ID(v); + v2f_surf o; + UNITY_INITIALIZE_OUTPUT(v2f_surf,o); + UNITY_TRANSFER_INSTANCE_ID(v,o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + Input customInputData; + vert_body (v, customInputData); + o.vertexPos.xyzw = customInputData.vertexPos; + o.idxMask.x = customInputData.idx; + o.idxMask.y = customInputData.mask; + //o.normal.xyz = customInputData.normal; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv_ColorTex.xy = TRANSFORM_TEX(v.texcoord, _ColorTex); + float3 worldPos = mul(unity_ObjectToWorld, v.vertex).xyz; + float3 worldNormal = UnityObjectToWorldNormal(v.normal); + #if defined(LIGHTMAP_ON) && defined(DIRLIGHTMAP_COMBINED) + fixed3 worldTangent = UnityObjectToWorldDir(v.tangent.xyz); + fixed tangentSign = v.tangent.w * unity_WorldTransformParams.w; + fixed3 worldBinormal = cross(worldNormal, worldTangent) * tangentSign; + #endif + #if defined(LIGHTMAP_ON) && defined(DIRLIGHTMAP_COMBINED) && !defined(UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS) + o.tSpace0 = float4(worldTangent.x, worldBinormal.x, worldNormal.x, worldPos.x); + o.tSpace1 = float4(worldTangent.y, worldBinormal.y, worldNormal.y, worldPos.y); + o.tSpace2 = float4(worldTangent.z, worldBinormal.z, worldNormal.z, worldPos.z); + #endif + o.worldPos.xyz = worldPos; + o.screen = ComputeScreenPos (o.pos); +#ifdef DYNAMICLIGHTMAP_ON + o.lmap.zw = v.texcoord2.xy * unity_DynamicLightmapST.xy + unity_DynamicLightmapST.zw; +#else + o.lmap.zw = 0; +#endif +#ifdef LIGHTMAP_ON + o.lmap.xy = v.texcoord1.xy * unity_LightmapST.xy + unity_LightmapST.zw; + #ifdef DIRLIGHTMAP_OFF + o.lmapFadePos.xyz = (mul(unity_ObjectToWorld, v.vertex).xyz - unity_ShadowFadeCenterAndType.xyz) * unity_ShadowFadeCenterAndType.w; + o.lmapFadePos.w = (-UnityObjectToViewPos(v.vertex).z) * (1.0 - unity_ShadowFadeCenterAndType.w); + #endif +#else + o.lmap.xy = 0; + float3 worldN = UnityObjectToWorldNormal(v.normal); + o.vlight = ShadeSH9 (float4(worldN,1.0)); +#endif + UNITY_TRANSFER_FOG(o,o.pos); // pass fog coordinates to pixel shader + return o; +} +sampler2D _LightBuffer; +sampler2D _CameraNormalsTexture; +#ifdef LIGHTMAP_ON +float4 unity_LightmapFade; +#endif +fixed4 unity_Ambient; + +// fragment shader +fixed4 frag_surf (v2f_surf IN) : SV_Target { + UNITY_SETUP_INSTANCE_ID(IN); + // prepare and unpack data + Input surfIN; + #ifdef FOG_COMBINED_WITH_TSPACE + UNITY_EXTRACT_FOG_FROM_TSPACE(IN); + #elif defined (FOG_COMBINED_WITH_WORLD_POS) + UNITY_EXTRACT_FOG_FROM_WORLD_POS(IN); + #else + UNITY_EXTRACT_FOG(IN); + #endif + UNITY_INITIALIZE_OUTPUT(Input,surfIN); + surfIN.uv_ColorTex.x = 1.0; + surfIN.vertexPos.x = 1.0; + //surfIN.normal.x = 1.0; + surfIN.uv_ColorTex = IN.uv_ColorTex.xy; + surfIN.vertexPos = IN.vertexPos.xyzw; + surfIN.idx = IN.idxMask.x; + surfIN.mask = IN.idxMask.y; + //surfIN.normal = IN.normal.xyz; + float3 worldPos = IN.worldPos.xyz; + #ifndef USING_DIRECTIONAL_LIGHT + fixed3 lightDir = normalize(UnityWorldSpaceLightDir(worldPos)); + #else + fixed3 lightDir = _WorldSpaceLightPos0.xyz; + #endif + #ifdef UNITY_COMPILER_HLSL + SurfaceOutput o = (SurfaceOutput)0; + #else + SurfaceOutput o; + #endif + o.Albedo = 0.0; + o.Emission = 0.0; + o.Specular = 0.0; + o.Alpha = 0.0; + o.Gloss = 0.0; + fixed3 normalWorldVertex = fixed3(0,0,1); + + // call surface function + surf (surfIN, o); + half4 light = tex2Dproj (_LightBuffer, UNITY_PROJ_COORD(IN.screen)); +#if defined (SHADER_API_MOBILE) + light = max(light, half4(0.001, 0.001, 0.001, 0.001)); +#endif +#ifndef UNITY_HDR_ON + light = -log2(light); +#endif + #ifdef LIGHTMAP_ON + #ifdef DIRLIGHTMAP_OFF + // single lightmap + fixed4 lmtex = UNITY_SAMPLE_TEX2D(unity_Lightmap, IN.lmap.xy); + fixed3 lm = DecodeLightmap (lmtex); + light.rgb += lm; + #elif DIRLIGHTMAP_COMBINED + half4 nspec = tex2Dproj (_CameraNormalsTexture, UNITY_PROJ_COORD(IN.screen)); + half3 normal = nspec.rgb * 2 - 1; + o.Normal = normalize(normal); + // directional lightmaps + fixed4 lmtex = UNITY_SAMPLE_TEX2D(unity_Lightmap, IN.lmap.xy); + half4 lm = half4(DecodeLightmap(lmtex), 0); + light += lm; + #endif // DIRLIGHTMAP_OFF + #else + light.rgb += IN.vlight; + #endif // LIGHTMAP_ON + + #ifdef DYNAMICLIGHTMAP_ON + fixed4 dynlmtex = UNITY_SAMPLE_TEX2D(unity_DynamicLightmap, IN.lmap.zw); + light.rgb += DecodeRealtimeLightmap (dynlmtex); + #endif + + half4 c = LightingLambert_PrePass (o, light); + UNITY_APPLY_FOG(_unity_fogCoord, c); // apply fog + UNITY_OPAQUE_ALPHA(c.a); + return c; +} + +#include "SceneMeshGShader.cginc" + +#endif + +// -------- variant for: INSTANCING_ON +#if defined(INSTANCING_ON) +// Surface shader code generated based on: +// vertex modifier: 'vert' +// writes to per-pixel normal: no +// writes to emission: no +// writes to occlusion: no +// needs world space reflection vector: no +// needs world space normal vector: no +// needs screen space position: no +// needs world space position: no +// needs view direction: no +// needs world space view direction: no +// needs world space position for lighting: YES +// needs world space view direction for lighting: no +// needs world space view direction for lightmaps: no +// needs vertex color: no +// needs VFACE: no +// passes tangent-to-world matrix to pixel shader: no +// reads from normal: no +// 1 texcoords actually used +// float2 _ColorTex +#include "UnityCG.cginc" +#include "Lighting.cginc" + +#define INTERNAL_DATA +#define WorldReflectionVector(data,normal) data.worldRefl +#define WorldNormalVector(data,normal) normal + +// Original surface shader snippet: +#line 15 "" +#ifdef DUMMY_PREPROCESSOR_TO_WORK_AROUND_HLSL_COMPILER_LINE_HANDLING +#endif +/* UNITY: Original start of shader */ + + //#pragma target 5.0 + + //#pragma surface surf Lambert vertex:vert addshadow + //#pragma exclude_renderers d3d11_9x + + #include "SceneMeshVShader.cginc" + + + +// vertex-to-fragment interpolation data +struct v2f_surf { + UNITY_POSITION(pos); + float2 uv_ColorTex : TEXCOORD0; // _ColorTex + float3 worldPos : TEXCOORD1; + float4 vertexPos : TEXCOORD2; // vertexPos + uint2 idxMask : TEXCOORD3; // idx mask + //float3 normal : TEXCOORD4; // normal + float4 screen : TEXCOORD5; + float4 lmap : TEXCOORD6; +#ifndef LIGHTMAP_ON + float3 vlight : TEXCOORD7; +#else +#ifdef DIRLIGHTMAP_OFF + float4 lmapFadePos : TEXCOORD7; +#endif +#endif + UNITY_FOG_COORDS(8) + #if defined(LIGHTMAP_ON) && defined(DIRLIGHTMAP_COMBINED) + float3 tSpace0 : TEXCOORD9; + float3 tSpace1 : TEXCOORD10; + float3 tSpace2 : TEXCOORD11; + #endif + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; +float4 _ColorTex_ST; + +// vertex shader +v2f_surf vert_surf (appdata_full v) { + UNITY_SETUP_INSTANCE_ID(v); + v2f_surf o; + UNITY_INITIALIZE_OUTPUT(v2f_surf,o); + UNITY_TRANSFER_INSTANCE_ID(v,o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + Input customInputData; + vert_body (v, customInputData); + o.vertexPos.xyzw = customInputData.vertexPos; + o.idxMask.x = customInputData.idx; + o.idxMask.y = customInputData.mask; + //o.normal.xyz = customInputData.normal; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv_ColorTex.xy = TRANSFORM_TEX(v.texcoord, _ColorTex); + float3 worldPos = mul(unity_ObjectToWorld, v.vertex).xyz; + float3 worldNormal = UnityObjectToWorldNormal(v.normal); + #if defined(LIGHTMAP_ON) && defined(DIRLIGHTMAP_COMBINED) + fixed3 worldTangent = UnityObjectToWorldDir(v.tangent.xyz); + fixed tangentSign = v.tangent.w * unity_WorldTransformParams.w; + fixed3 worldBinormal = cross(worldNormal, worldTangent) * tangentSign; + #endif + #if defined(LIGHTMAP_ON) && defined(DIRLIGHTMAP_COMBINED) && !defined(UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS) + o.tSpace0 = float4(worldTangent.x, worldBinormal.x, worldNormal.x, worldPos.x); + o.tSpace1 = float4(worldTangent.y, worldBinormal.y, worldNormal.y, worldPos.y); + o.tSpace2 = float4(worldTangent.z, worldBinormal.z, worldNormal.z, worldPos.z); + #endif + o.worldPos.xyz = worldPos; + o.screen = ComputeScreenPos (o.pos); +#ifdef DYNAMICLIGHTMAP_ON + o.lmap.zw = v.texcoord2.xy * unity_DynamicLightmapST.xy + unity_DynamicLightmapST.zw; +#else + o.lmap.zw = 0; +#endif +#ifdef LIGHTMAP_ON + o.lmap.xy = v.texcoord1.xy * unity_LightmapST.xy + unity_LightmapST.zw; + #ifdef DIRLIGHTMAP_OFF + o.lmapFadePos.xyz = (mul(unity_ObjectToWorld, v.vertex).xyz - unity_ShadowFadeCenterAndType.xyz) * unity_ShadowFadeCenterAndType.w; + o.lmapFadePos.w = (-UnityObjectToViewPos(v.vertex).z) * (1.0 - unity_ShadowFadeCenterAndType.w); + #endif +#else + o.lmap.xy = 0; + float3 worldN = UnityObjectToWorldNormal(v.normal); + o.vlight = ShadeSH9 (float4(worldN,1.0)); +#endif + UNITY_TRANSFER_FOG(o,o.pos); // pass fog coordinates to pixel shader + return o; +} +sampler2D _LightBuffer; +sampler2D _CameraNormalsTexture; +#ifdef LIGHTMAP_ON +float4 unity_LightmapFade; +#endif +fixed4 unity_Ambient; + +// fragment shader +fixed4 frag_surf (v2f_surf IN) : SV_Target { + UNITY_SETUP_INSTANCE_ID(IN); + // prepare and unpack data + Input surfIN; + #ifdef FOG_COMBINED_WITH_TSPACE + UNITY_EXTRACT_FOG_FROM_TSPACE(IN); + #elif defined (FOG_COMBINED_WITH_WORLD_POS) + UNITY_EXTRACT_FOG_FROM_WORLD_POS(IN); + #else + UNITY_EXTRACT_FOG(IN); + #endif + UNITY_INITIALIZE_OUTPUT(Input,surfIN); + surfIN.uv_ColorTex.x = 1.0; + surfIN.vertexPos.x = 1.0; + //surfIN.normal.x = 1.0; + surfIN.uv_ColorTex = IN.uv_ColorTex.xy; + surfIN.vertexPos = IN.vertexPos.xyzw; + surfIN.idx = IN.idxMask.x; + surfIN.mask = IN.idxMask.y; + //surfIN.normal = IN.normal.xyz; + float3 worldPos = IN.worldPos.xyz; + #ifndef USING_DIRECTIONAL_LIGHT + fixed3 lightDir = normalize(UnityWorldSpaceLightDir(worldPos)); + #else + fixed3 lightDir = _WorldSpaceLightPos0.xyz; + #endif + #ifdef UNITY_COMPILER_HLSL + SurfaceOutput o = (SurfaceOutput)0; + #else + SurfaceOutput o; + #endif + o.Albedo = 0.0; + o.Emission = 0.0; + o.Specular = 0.0; + o.Alpha = 0.0; + o.Gloss = 0.0; + fixed3 normalWorldVertex = fixed3(0,0,1); + + // call surface function + surf (surfIN, o); + half4 light = tex2Dproj (_LightBuffer, UNITY_PROJ_COORD(IN.screen)); +#if defined (SHADER_API_MOBILE) + light = max(light, half4(0.001, 0.001, 0.001, 0.001)); +#endif +#ifndef UNITY_HDR_ON + light = -log2(light); +#endif + #ifdef LIGHTMAP_ON + #ifdef DIRLIGHTMAP_OFF + // single lightmap + fixed4 lmtex = UNITY_SAMPLE_TEX2D(unity_Lightmap, IN.lmap.xy); + fixed3 lm = DecodeLightmap (lmtex); + light.rgb += lm; + #elif DIRLIGHTMAP_COMBINED + half4 nspec = tex2Dproj (_CameraNormalsTexture, UNITY_PROJ_COORD(IN.screen)); + half3 normal = nspec.rgb * 2 - 1; + o.Normal = normalize(normal); + // directional lightmaps + fixed4 lmtex = UNITY_SAMPLE_TEX2D(unity_Lightmap, IN.lmap.xy); + half4 lm = half4(DecodeLightmap(lmtex), 0); + light += lm; + #endif // DIRLIGHTMAP_OFF + #else + light.rgb += IN.vlight; + #endif // LIGHTMAP_ON + + #ifdef DYNAMICLIGHTMAP_ON + fixed4 dynlmtex = UNITY_SAMPLE_TEX2D(unity_DynamicLightmap, IN.lmap.zw); + light.rgb += DecodeRealtimeLightmap (dynlmtex); + #endif + + half4 c = LightingLambert_PrePass (o, light); + UNITY_APPLY_FOG(_unity_fogCoord, c); // apply fog + UNITY_OPAQUE_ALPHA(c.a); + return c; +} + +#include "SceneMeshGShader.cginc" + +#endif + + +ENDCG + +} + + // ---- deferred shading pass: + Pass { + Name "DEFERRED" + Tags { "LightMode" = "Deferred" } + +CGPROGRAM +// compile directives +#pragma vertex vert_surf +#pragma fragment frag_surf +#pragma geometry geom_tri_surf +#pragma target 5.0 +#pragma exclude_renderers d3d11_9x +#pragma multi_compile_instancing +#pragma exclude_renderers nomrt +#pragma skip_variants FOG_LINEAR FOG_EXP FOG_EXP2 +#pragma multi_compile_prepassfinal +#include "HLSLSupport.cginc" +#define UNITY_INSTANCED_LOD_FADE +#define UNITY_INSTANCED_SH +#define UNITY_INSTANCED_LIGHTMAPSTS +#include "UnityShaderVariables.cginc" +#include "UnityShaderUtilities.cginc" +// -------- variant for: +#if !defined(INSTANCING_ON) +// Surface shader code generated based on: +// vertex modifier: 'vert' +// writes to per-pixel normal: no +// writes to emission: no +// writes to occlusion: no +// needs world space reflection vector: no +// needs world space normal vector: no +// needs screen space position: no +// needs world space position: no +// needs view direction: no +// needs world space view direction: no +// needs world space position for lighting: YES +// needs world space view direction for lighting: no +// needs world space view direction for lightmaps: no +// needs vertex color: no +// needs VFACE: no +// passes tangent-to-world matrix to pixel shader: no +// reads from normal: YES +// 1 texcoords actually used +// float2 _ColorTex +#include "UnityCG.cginc" +#include "Lighting.cginc" + +#define INTERNAL_DATA +#define WorldReflectionVector(data,normal) data.worldRefl +#define WorldNormalVector(data,normal) normal + +// Original surface shader snippet: +#line 15 "" +#ifdef DUMMY_PREPROCESSOR_TO_WORK_AROUND_HLSL_COMPILER_LINE_HANDLING +#endif +/* UNITY: Original start of shader */ + + //#pragma target 5.0 + + //#pragma surface surf Lambert vertex:vert addshadow + //#pragma exclude_renderers d3d11_9x + + #include "SceneMeshVShader.cginc" + + + +// vertex-to-fragment interpolation data +struct v2f_surf { + UNITY_POSITION(pos); + float2 uv_ColorTex : TEXCOORD0; // _ColorTex + float3 worldNormal : TEXCOORD1; + float3 worldPos : TEXCOORD2; + float4 vertexPos : TEXCOORD3; // vertexPos + uint2 idxMask : TEXCOORD4; // idx mask + //float3 normal : TEXCOORD5; // normal + float4 lmap : TEXCOORD6; +#ifndef LIGHTMAP_ON + #if UNITY_SHOULD_SAMPLE_SH && !UNITY_SAMPLE_FULL_SH_PER_PIXEL + half3 sh : TEXCOORD7; // SH + #endif +#else + #ifdef DIRLIGHTMAP_OFF + float4 lmapFadePos : TEXCOORD7; + #endif +#endif + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; +float4 _ColorTex_ST; + +// vertex shader +v2f_surf vert_surf (appdata_full v) { + UNITY_SETUP_INSTANCE_ID(v); + v2f_surf o; + UNITY_INITIALIZE_OUTPUT(v2f_surf,o); + UNITY_TRANSFER_INSTANCE_ID(v,o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + Input customInputData; + vert_body (v, customInputData); + o.vertexPos.xyzw = customInputData.vertexPos; + o.idxMask.x = customInputData.idx; + o.idxMask.y = customInputData.mask; + //o.normal.xyz = customInputData.normal; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv_ColorTex.xy = TRANSFORM_TEX(v.texcoord, _ColorTex); + float3 worldPos = mul(unity_ObjectToWorld, v.vertex).xyz; + float3 worldNormal = UnityObjectToWorldNormal(v.normal); + o.worldPos.xyz = worldPos; + o.worldNormal = worldNormal; +#ifdef DYNAMICLIGHTMAP_ON + o.lmap.zw = v.texcoord2.xy * unity_DynamicLightmapST.xy + unity_DynamicLightmapST.zw; +#else + o.lmap.zw = 0; +#endif +#ifdef LIGHTMAP_ON + o.lmap.xy = v.texcoord1.xy * unity_LightmapST.xy + unity_LightmapST.zw; + #ifdef DIRLIGHTMAP_OFF + o.lmapFadePos.xyz = (mul(unity_ObjectToWorld, v.vertex).xyz - unity_ShadowFadeCenterAndType.xyz) * unity_ShadowFadeCenterAndType.w; + o.lmapFadePos.w = (-UnityObjectToViewPos(v.vertex).z) * (1.0 - unity_ShadowFadeCenterAndType.w); + #endif +#else + o.lmap.xy = 0; + #if UNITY_SHOULD_SAMPLE_SH && !UNITY_SAMPLE_FULL_SH_PER_PIXEL + o.sh = 0; + o.sh = ShadeSHPerVertex (worldNormal, o.sh); + #endif +#endif + return o; +} +#ifdef LIGHTMAP_ON +float4 unity_LightmapFade; +#endif +fixed4 unity_Ambient; + +// fragment shader +void frag_surf (v2f_surf IN, + out half4 outGBuffer0 : SV_Target0, + out half4 outGBuffer1 : SV_Target1, + out half4 outGBuffer2 : SV_Target2, + out half4 outEmission : SV_Target3 +#if defined(SHADOWS_SHADOWMASK) && (UNITY_ALLOWED_MRT_COUNT > 4) + , out half4 outShadowMask : SV_Target4 +#endif +) { + UNITY_SETUP_INSTANCE_ID(IN); + // prepare and unpack data + Input surfIN; + #ifdef FOG_COMBINED_WITH_TSPACE + UNITY_EXTRACT_FOG_FROM_TSPACE(IN); + #elif defined (FOG_COMBINED_WITH_WORLD_POS) + UNITY_EXTRACT_FOG_FROM_WORLD_POS(IN); + #else + UNITY_EXTRACT_FOG(IN); + #endif + UNITY_INITIALIZE_OUTPUT(Input,surfIN); + surfIN.uv_ColorTex.x = 1.0; + surfIN.vertexPos.x = 1.0; + //surfIN.normal.x = 1.0; + surfIN.uv_ColorTex = IN.uv_ColorTex.xy; + surfIN.vertexPos = IN.vertexPos.xyzw; + surfIN.idx = IN.idxMask.x; + surfIN.mask = IN.idxMask.y; + //surfIN.normal = IN.normal.xyz; + float3 worldPos = IN.worldPos.xyz; + #ifndef USING_DIRECTIONAL_LIGHT + fixed3 lightDir = normalize(UnityWorldSpaceLightDir(worldPos)); + #else + fixed3 lightDir = _WorldSpaceLightPos0.xyz; + #endif + #ifdef UNITY_COMPILER_HLSL + SurfaceOutput o = (SurfaceOutput)0; + #else + SurfaceOutput o; + #endif + o.Albedo = 0.0; + o.Emission = 0.0; + o.Specular = 0.0; + o.Alpha = 0.0; + o.Gloss = 0.0; + fixed3 normalWorldVertex = fixed3(0,0,1); + o.Normal = IN.worldNormal; + normalWorldVertex = IN.worldNormal; + + // call surface function + surf (surfIN, o); +fixed3 originalNormal = o.Normal; + half atten = 1; + + // Setup lighting environment + UnityGI gi; + UNITY_INITIALIZE_OUTPUT(UnityGI, gi); + gi.indirect.diffuse = 0; + gi.indirect.specular = 0; + gi.light.color = 0; + gi.light.dir = half3(0,1,0); + // Call GI (lightmaps/SH/reflections) lighting function + UnityGIInput giInput; + UNITY_INITIALIZE_OUTPUT(UnityGIInput, giInput); + giInput.light = gi.light; + giInput.worldPos = worldPos; + giInput.atten = atten; + #if defined(LIGHTMAP_ON) || defined(DYNAMICLIGHTMAP_ON) + giInput.lightmapUV = IN.lmap; + #else + giInput.lightmapUV = 0.0; + #endif + #if UNITY_SHOULD_SAMPLE_SH && !UNITY_SAMPLE_FULL_SH_PER_PIXEL + giInput.ambient = IN.sh; + #else + giInput.ambient.rgb = 0.0; + #endif + giInput.probeHDR[0] = unity_SpecCube0_HDR; + giInput.probeHDR[1] = unity_SpecCube1_HDR; + #if defined(UNITY_SPECCUBE_BLENDING) || defined(UNITY_SPECCUBE_BOX_PROJECTION) + giInput.boxMin[0] = unity_SpecCube0_BoxMin; // .w holds lerp value for blending + #endif + #ifdef UNITY_SPECCUBE_BOX_PROJECTION + giInput.boxMax[0] = unity_SpecCube0_BoxMax; + giInput.probePosition[0] = unity_SpecCube0_ProbePosition; + giInput.boxMax[1] = unity_SpecCube1_BoxMax; + giInput.boxMin[1] = unity_SpecCube1_BoxMin; + giInput.probePosition[1] = unity_SpecCube1_ProbePosition; + #endif + LightingLambert_GI(o, giInput, gi); + + // call lighting function to output g-buffer + outEmission = LightingLambert_Deferred (o, gi, outGBuffer0, outGBuffer1, outGBuffer2); + #if defined(SHADOWS_SHADOWMASK) && (UNITY_ALLOWED_MRT_COUNT > 4) + outShadowMask = UnityGetRawBakedOcclusions (IN.lmap.xy, worldPos); + #endif + #ifndef UNITY_HDR_ON + outEmission.rgb = exp2(-outEmission.rgb); + #endif +} + +#include "SceneMeshGShader.cginc" + +#endif + +// -------- variant for: INSTANCING_ON +#if defined(INSTANCING_ON) +// Surface shader code generated based on: +// vertex modifier: 'vert' +// writes to per-pixel normal: no +// writes to emission: no +// writes to occlusion: no +// needs world space reflection vector: no +// needs world space normal vector: no +// needs screen space position: no +// needs world space position: no +// needs view direction: no +// needs world space view direction: no +// needs world space position for lighting: YES +// needs world space view direction for lighting: no +// needs world space view direction for lightmaps: no +// needs vertex color: no +// needs VFACE: no +// passes tangent-to-world matrix to pixel shader: no +// reads from normal: YES +// 1 texcoords actually used +// float2 _ColorTex +#include "UnityCG.cginc" +#include "Lighting.cginc" + +#define INTERNAL_DATA +#define WorldReflectionVector(data,normal) data.worldRefl +#define WorldNormalVector(data,normal) normal + +// Original surface shader snippet: +#line 15 "" +#ifdef DUMMY_PREPROCESSOR_TO_WORK_AROUND_HLSL_COMPILER_LINE_HANDLING +#endif +/* UNITY: Original start of shader */ + + //#pragma target 5.0 + + //#pragma surface surf Lambert vertex:vert addshadow + //#pragma exclude_renderers d3d11_9x + + #include "SceneMeshVShader.cginc" + + + +// vertex-to-fragment interpolation data +struct v2f_surf { + UNITY_POSITION(pos); + float2 uv_ColorTex : TEXCOORD0; // _ColorTex + float3 worldNormal : TEXCOORD1; + float3 worldPos : TEXCOORD2; + float4 vertexPos : TEXCOORD3; // vertexPos + uint2 idxMask : TEXCOORD4; // idx mask + //float3 normal : TEXCOORD5; // normal + float4 lmap : TEXCOORD6; +#ifndef LIGHTMAP_ON + #if UNITY_SHOULD_SAMPLE_SH && !UNITY_SAMPLE_FULL_SH_PER_PIXEL + half3 sh : TEXCOORD7; // SH + #endif +#else + #ifdef DIRLIGHTMAP_OFF + float4 lmapFadePos : TEXCOORD7; + #endif +#endif + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; +float4 _ColorTex_ST; + +// vertex shader +v2f_surf vert_surf (appdata_full v) { + UNITY_SETUP_INSTANCE_ID(v); + v2f_surf o; + UNITY_INITIALIZE_OUTPUT(v2f_surf,o); + UNITY_TRANSFER_INSTANCE_ID(v,o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + Input customInputData; + vert_body (v, customInputData); + o.vertexPos.xyzw = customInputData.vertexPos; + o.idxMask.x = customInputData.idx; + o.idxMask.y = customInputData.mask; + //o.normal.xyz = customInputData.normal; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv_ColorTex.xy = TRANSFORM_TEX(v.texcoord, _ColorTex); + float3 worldPos = mul(unity_ObjectToWorld, v.vertex).xyz; + float3 worldNormal = UnityObjectToWorldNormal(v.normal); + o.worldPos.xyz = worldPos; + o.worldNormal = worldNormal; +#ifdef DYNAMICLIGHTMAP_ON + o.lmap.zw = v.texcoord2.xy * unity_DynamicLightmapST.xy + unity_DynamicLightmapST.zw; +#else + o.lmap.zw = 0; +#endif +#ifdef LIGHTMAP_ON + o.lmap.xy = v.texcoord1.xy * unity_LightmapST.xy + unity_LightmapST.zw; + #ifdef DIRLIGHTMAP_OFF + o.lmapFadePos.xyz = (mul(unity_ObjectToWorld, v.vertex).xyz - unity_ShadowFadeCenterAndType.xyz) * unity_ShadowFadeCenterAndType.w; + o.lmapFadePos.w = (-UnityObjectToViewPos(v.vertex).z) * (1.0 - unity_ShadowFadeCenterAndType.w); + #endif +#else + o.lmap.xy = 0; + #if UNITY_SHOULD_SAMPLE_SH && !UNITY_SAMPLE_FULL_SH_PER_PIXEL + o.sh = 0; + o.sh = ShadeSHPerVertex (worldNormal, o.sh); + #endif +#endif + return o; +} +#ifdef LIGHTMAP_ON +float4 unity_LightmapFade; +#endif +fixed4 unity_Ambient; + +// fragment shader +void frag_surf (v2f_surf IN, + out half4 outGBuffer0 : SV_Target0, + out half4 outGBuffer1 : SV_Target1, + out half4 outGBuffer2 : SV_Target2, + out half4 outEmission : SV_Target3 +#if defined(SHADOWS_SHADOWMASK) && (UNITY_ALLOWED_MRT_COUNT > 4) + , out half4 outShadowMask : SV_Target4 +#endif +) { + UNITY_SETUP_INSTANCE_ID(IN); + // prepare and unpack data + Input surfIN; + #ifdef FOG_COMBINED_WITH_TSPACE + UNITY_EXTRACT_FOG_FROM_TSPACE(IN); + #elif defined (FOG_COMBINED_WITH_WORLD_POS) + UNITY_EXTRACT_FOG_FROM_WORLD_POS(IN); + #else + UNITY_EXTRACT_FOG(IN); + #endif + UNITY_INITIALIZE_OUTPUT(Input,surfIN); + surfIN.uv_ColorTex.x = 1.0; + surfIN.vertexPos.x = 1.0; + //surfIN.normal.x = 1.0; + surfIN.uv_ColorTex = IN.uv_ColorTex.xy; + surfIN.vertexPos = IN.vertexPos.xyzw; + surfIN.idx = IN.idxMask.x; + surfIN.mask = IN.idxMask.y; + //surfIN.normal = IN.normal.xyz; + float3 worldPos = IN.worldPos.xyz; + #ifndef USING_DIRECTIONAL_LIGHT + fixed3 lightDir = normalize(UnityWorldSpaceLightDir(worldPos)); + #else + fixed3 lightDir = _WorldSpaceLightPos0.xyz; + #endif + #ifdef UNITY_COMPILER_HLSL + SurfaceOutput o = (SurfaceOutput)0; + #else + SurfaceOutput o; + #endif + o.Albedo = 0.0; + o.Emission = 0.0; + o.Specular = 0.0; + o.Alpha = 0.0; + o.Gloss = 0.0; + fixed3 normalWorldVertex = fixed3(0,0,1); + o.Normal = IN.worldNormal; + normalWorldVertex = IN.worldNormal; + + // call surface function + surf (surfIN, o); +fixed3 originalNormal = o.Normal; + half atten = 1; + + // Setup lighting environment + UnityGI gi; + UNITY_INITIALIZE_OUTPUT(UnityGI, gi); + gi.indirect.diffuse = 0; + gi.indirect.specular = 0; + gi.light.color = 0; + gi.light.dir = half3(0,1,0); + // Call GI (lightmaps/SH/reflections) lighting function + UnityGIInput giInput; + UNITY_INITIALIZE_OUTPUT(UnityGIInput, giInput); + giInput.light = gi.light; + giInput.worldPos = worldPos; + giInput.atten = atten; + #if defined(LIGHTMAP_ON) || defined(DYNAMICLIGHTMAP_ON) + giInput.lightmapUV = IN.lmap; + #else + giInput.lightmapUV = 0.0; + #endif + #if UNITY_SHOULD_SAMPLE_SH && !UNITY_SAMPLE_FULL_SH_PER_PIXEL + giInput.ambient = IN.sh; + #else + giInput.ambient.rgb = 0.0; + #endif + giInput.probeHDR[0] = unity_SpecCube0_HDR; + giInput.probeHDR[1] = unity_SpecCube1_HDR; + #if defined(UNITY_SPECCUBE_BLENDING) || defined(UNITY_SPECCUBE_BOX_PROJECTION) + giInput.boxMin[0] = unity_SpecCube0_BoxMin; // .w holds lerp value for blending + #endif + #ifdef UNITY_SPECCUBE_BOX_PROJECTION + giInput.boxMax[0] = unity_SpecCube0_BoxMax; + giInput.probePosition[0] = unity_SpecCube0_ProbePosition; + giInput.boxMax[1] = unity_SpecCube1_BoxMax; + giInput.boxMin[1] = unity_SpecCube1_BoxMin; + giInput.probePosition[1] = unity_SpecCube1_ProbePosition; + #endif + LightingLambert_GI(o, giInput, gi); + + // call lighting function to output g-buffer + outEmission = LightingLambert_Deferred (o, gi, outGBuffer0, outGBuffer1, outGBuffer2); + #if defined(SHADOWS_SHADOWMASK) && (UNITY_ALLOWED_MRT_COUNT > 4) + outShadowMask = UnityGetRawBakedOcclusions (IN.lmap.xy, worldPos); + #endif + #ifndef UNITY_HDR_ON + outEmission.rgb = exp2(-outEmission.rgb); + #endif +} + +#include "SceneMeshGShader.cginc" + +#endif + + +ENDCG + +} + + // ---- shadow caster pass: + Pass { + Name "ShadowCaster" + Tags { "LightMode" = "ShadowCaster" } + ZWrite On ZTest LEqual + +CGPROGRAM +// compile directives +#pragma vertex vert_surf +#pragma fragment frag_surf +#pragma geometry geom_tri_surf +#pragma target 5.0 +#pragma exclude_renderers d3d11_9x +#pragma multi_compile_instancing +#pragma skip_variants FOG_LINEAR FOG_EXP FOG_EXP2 +#pragma multi_compile_shadowcaster +#include "HLSLSupport.cginc" +#define UNITY_INSTANCED_LOD_FADE +#define UNITY_INSTANCED_SH +#define UNITY_INSTANCED_LIGHTMAPSTS +#include "UnityShaderVariables.cginc" +#include "UnityShaderUtilities.cginc" +// -------- variant for: +#if !defined(INSTANCING_ON) +// Surface shader code generated based on: +// vertex modifier: 'vert' +// writes to per-pixel normal: no +// writes to emission: no +// writes to occlusion: no +// needs world space reflection vector: no +// needs world space normal vector: no +// needs screen space position: no +// needs world space position: no +// needs view direction: no +// needs world space view direction: no +// needs world space position for lighting: YES +// needs world space view direction for lighting: no +// needs world space view direction for lightmaps: no +// needs vertex color: no +// needs VFACE: no +// passes tangent-to-world matrix to pixel shader: no +// reads from normal: no +// 0 texcoords actually used +#include "UnityCG.cginc" +#include "Lighting.cginc" + +#define INTERNAL_DATA +#define WorldReflectionVector(data,normal) data.worldRefl +#define WorldNormalVector(data,normal) normal + +// Original surface shader snippet: +#line 15 "" +#ifdef DUMMY_PREPROCESSOR_TO_WORK_AROUND_HLSL_COMPILER_LINE_HANDLING +#endif +/* UNITY: Original start of shader */ + + //#pragma target 5.0 + + //#pragma surface surf Lambert vertex:vert addshadow + //#pragma exclude_renderers d3d11_9x + + #include "SceneMeshVShader.cginc" + + + +// vertex-to-fragment interpolation data +struct v2f_surf { + V2F_SHADOW_CASTER; + float3 worldPos : TEXCOORD1; + float4 vertexPos : TEXCOORD2; // vertexPos + uint2 idxMask : TEXCOORD3; // idx mask + //float3 normal : TEXCOORD4; // normal + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; + +// vertex shader +v2f_surf vert_surf (appdata_full v) { + UNITY_SETUP_INSTANCE_ID(v); + v2f_surf o; + UNITY_INITIALIZE_OUTPUT(v2f_surf,o); + UNITY_TRANSFER_INSTANCE_ID(v,o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + Input customInputData; + vert_body (v, customInputData); + o.vertexPos.xyzw = customInputData.vertexPos; + o.idxMask.x = customInputData.idx; + o.idxMask.y = customInputData.mask; + //o.normal.xyz = customInputData.normal; + float3 worldPos = mul(unity_ObjectToWorld, v.vertex).xyz; + float3 worldNormal = UnityObjectToWorldNormal(v.normal); + o.worldPos.xyz = worldPos; + TRANSFER_SHADOW_CASTER_NORMALOFFSET(o) + return o; +} + +// fragment shader +fixed4 frag_surf (v2f_surf IN) : SV_Target { + UNITY_SETUP_INSTANCE_ID(IN); + // prepare and unpack data + Input surfIN; + #ifdef FOG_COMBINED_WITH_TSPACE + UNITY_EXTRACT_FOG_FROM_TSPACE(IN); + #elif defined (FOG_COMBINED_WITH_WORLD_POS) + UNITY_EXTRACT_FOG_FROM_WORLD_POS(IN); + #else + UNITY_EXTRACT_FOG(IN); + #endif + UNITY_INITIALIZE_OUTPUT(Input,surfIN); + surfIN.uv_ColorTex.x = 1.0; + surfIN.vertexPos.x = 1.0; + //surfIN.normal.x = 1.0; + surfIN.vertexPos = IN.vertexPos.xyzw; + surfIN.idx = IN.idxMask.x; + surfIN.mask = IN.idxMask.y; + //surfIN.normal = IN.normal.xyz; + float3 worldPos = IN.worldPos.xyz; + #ifndef USING_DIRECTIONAL_LIGHT + fixed3 lightDir = normalize(UnityWorldSpaceLightDir(worldPos)); + #else + fixed3 lightDir = _WorldSpaceLightPos0.xyz; + #endif + #ifdef UNITY_COMPILER_HLSL + SurfaceOutput o = (SurfaceOutput)0; + #else + SurfaceOutput o; + #endif + o.Albedo = 0.0; + o.Emission = 0.0; + o.Specular = 0.0; + o.Alpha = 0.0; + o.Gloss = 0.0; + fixed3 normalWorldVertex = fixed3(0,0,1); + + // call surface function + surf (surfIN, o); + SHADOW_CASTER_FRAGMENT(IN) +} + +#include "SceneMeshGShader.cginc" + +#endif + +// -------- variant for: INSTANCING_ON +#if defined(INSTANCING_ON) +// Surface shader code generated based on: +// vertex modifier: 'vert' +// writes to per-pixel normal: no +// writes to emission: no +// writes to occlusion: no +// needs world space reflection vector: no +// needs world space normal vector: no +// needs screen space position: no +// needs world space position: no +// needs view direction: no +// needs world space view direction: no +// needs world space position for lighting: YES +// needs world space view direction for lighting: no +// needs world space view direction for lightmaps: no +// needs vertex color: no +// needs VFACE: no +// passes tangent-to-world matrix to pixel shader: no +// reads from normal: no +// 0 texcoords actually used +#include "UnityCG.cginc" +#include "Lighting.cginc" + +#define INTERNAL_DATA +#define WorldReflectionVector(data,normal) data.worldRefl +#define WorldNormalVector(data,normal) normal + +// Original surface shader snippet: +#line 15 "" +#ifdef DUMMY_PREPROCESSOR_TO_WORK_AROUND_HLSL_COMPILER_LINE_HANDLING +#endif +/* UNITY: Original start of shader */ + + //#pragma target 5.0 + + //#pragma surface surf Lambert vertex:vert addshadow + //#pragma exclude_renderers d3d11_9x + + #include "SceneMeshVShader.cginc" + + + +// vertex-to-fragment interpolation data +struct v2f_surf { + V2F_SHADOW_CASTER; + float3 worldPos : TEXCOORD1; + float4 vertexPos : TEXCOORD2; // vertexPos + uint2 idxMask : TEXCOORD3; // idx mask + //float3 normal : TEXCOORD4; // normal + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; + +// vertex shader +v2f_surf vert_surf (appdata_full v) { + UNITY_SETUP_INSTANCE_ID(v); + v2f_surf o; + UNITY_INITIALIZE_OUTPUT(v2f_surf,o); + UNITY_TRANSFER_INSTANCE_ID(v,o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + Input customInputData; + vert_body (v, customInputData); + o.vertexPos.xyzw = customInputData.vertexPos; + o.idxMask.x = customInputData.idx; + o.idxMask.y = customInputData.mask; + //o.normal.xyz = customInputData.normal; + float3 worldPos = mul(unity_ObjectToWorld, v.vertex).xyz; + float3 worldNormal = UnityObjectToWorldNormal(v.normal); + o.worldPos.xyz = worldPos; + TRANSFER_SHADOW_CASTER_NORMALOFFSET(o) + return o; +} + +// fragment shader +fixed4 frag_surf (v2f_surf IN) : SV_Target { + UNITY_SETUP_INSTANCE_ID(IN); + // prepare and unpack data + Input surfIN; + #ifdef FOG_COMBINED_WITH_TSPACE + UNITY_EXTRACT_FOG_FROM_TSPACE(IN); + #elif defined (FOG_COMBINED_WITH_WORLD_POS) + UNITY_EXTRACT_FOG_FROM_WORLD_POS(IN); + #else + UNITY_EXTRACT_FOG(IN); + #endif + UNITY_INITIALIZE_OUTPUT(Input,surfIN); + surfIN.uv_ColorTex.x = 1.0; + surfIN.vertexPos.x = 1.0; + //surfIN.normal.x = 1.0; + surfIN.vertexPos = IN.vertexPos.xyzw; + surfIN.idx = IN.idxMask.x; + surfIN.mask = IN.idxMask.y; + //surfIN.normal = IN.normal.xyz; + float3 worldPos = IN.worldPos.xyz; + #ifndef USING_DIRECTIONAL_LIGHT + fixed3 lightDir = normalize(UnityWorldSpaceLightDir(worldPos)); + #else + fixed3 lightDir = _WorldSpaceLightPos0.xyz; + #endif + #ifdef UNITY_COMPILER_HLSL + SurfaceOutput o = (SurfaceOutput)0; + #else + SurfaceOutput o; + #endif + o.Albedo = 0.0; + o.Emission = 0.0; + o.Specular = 0.0; + o.Alpha = 0.0; + o.Gloss = 0.0; + fixed3 normalWorldVertex = fixed3(0,0,1); + + // call surface function + surf (surfIN, o); + SHADOW_CASTER_FRAGMENT(IN) +} + +#include "SceneMeshGShader.cginc" + +#endif + + +ENDCG + +} + + // ---- meta information extraction pass: + Pass { + Name "Meta" + Tags { "LightMode" = "Meta" } + Cull Off + +CGPROGRAM +// compile directives +#pragma vertex vert_surf +#pragma fragment frag_surf +#pragma geometry geom_tri_surf +#pragma target 5.0 +#pragma exclude_renderers d3d11_9x +#pragma multi_compile_instancing +#pragma skip_variants FOG_LINEAR FOG_EXP FOG_EXP2 +#pragma shader_feature EDITOR_VISUALIZATION + +#include "HLSLSupport.cginc" +#define UNITY_INSTANCED_LOD_FADE +#define UNITY_INSTANCED_SH +#define UNITY_INSTANCED_LIGHTMAPSTS +#include "UnityShaderVariables.cginc" +#include "UnityShaderUtilities.cginc" +// -------- variant for: +#if !defined(INSTANCING_ON) +// Surface shader code generated based on: +// vertex modifier: 'vert' +// writes to per-pixel normal: no +// writes to emission: no +// writes to occlusion: no +// needs world space reflection vector: no +// needs world space normal vector: no +// needs screen space position: no +// needs world space position: no +// needs view direction: no +// needs world space view direction: no +// needs world space position for lighting: YES +// needs world space view direction for lighting: no +// needs world space view direction for lightmaps: no +// needs vertex color: no +// needs VFACE: no +// passes tangent-to-world matrix to pixel shader: no +// reads from normal: no +// 1 texcoords actually used +// float2 _ColorTex +#include "UnityCG.cginc" +#include "Lighting.cginc" + +#define INTERNAL_DATA +#define WorldReflectionVector(data,normal) data.worldRefl +#define WorldNormalVector(data,normal) normal + +// Original surface shader snippet: +#line 15 "" +#ifdef DUMMY_PREPROCESSOR_TO_WORK_AROUND_HLSL_COMPILER_LINE_HANDLING +#endif +/* UNITY: Original start of shader */ + + //#pragma target 5.0 + + //#pragma surface surf Lambert vertex:vert addshadow + //#pragma exclude_renderers d3d11_9x + + #include "SceneMeshVShader.cginc" + + +#include "UnityMetaPass.cginc" + +// vertex-to-fragment interpolation data +struct v2f_surf { + UNITY_POSITION(pos); + float2 uv_ColorTex : TEXCOORD0; // _ColorTex + float3 worldPos : TEXCOORD1; + float4 vertexPos : TEXCOORD2; // vertexPos + uint2 idxMask : TEXCOORD3; // idx mask + //float3 normal : TEXCOORD4; // normal +#ifdef EDITOR_VISUALIZATION + float2 vizUV : TEXCOORD5; + float4 lightCoord : TEXCOORD6; +#endif + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; +float4 _ColorTex_ST; + +// vertex shader +v2f_surf vert_surf (appdata_full v) { + UNITY_SETUP_INSTANCE_ID(v); + v2f_surf o; + UNITY_INITIALIZE_OUTPUT(v2f_surf,o); + UNITY_TRANSFER_INSTANCE_ID(v,o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + Input customInputData; + vert_body (v, customInputData); + o.vertexPos.xyzw = customInputData.vertexPos; + o.idxMask.x = customInputData.idx; + o.idxMask.y = customInputData.mask; + //o.normal.xyz = customInputData.normal; + o.pos = UnityMetaVertexPosition(v.vertex, v.texcoord1.xy, v.texcoord2.xy, unity_LightmapST, unity_DynamicLightmapST); +#ifdef EDITOR_VISUALIZATION + o.vizUV = 0; + o.lightCoord = 0; + if (unity_VisualizationMode == EDITORVIZ_TEXTURE) + o.vizUV = UnityMetaVizUV(unity_EditorViz_UVIndex, v.texcoord.xy, v.texcoord1.xy, v.texcoord2.xy, unity_EditorViz_Texture_ST); + else if (unity_VisualizationMode == EDITORVIZ_SHOWLIGHTMASK) + { + o.vizUV = v.texcoord1.xy * unity_LightmapST.xy + unity_LightmapST.zw; + o.lightCoord = mul(unity_EditorViz_WorldToLight, mul(unity_ObjectToWorld, float4(v.vertex.xyz, 1))); + } +#endif + o.uv_ColorTex.xy = TRANSFORM_TEX(v.texcoord, _ColorTex); + float3 worldPos = mul(unity_ObjectToWorld, v.vertex).xyz; + float3 worldNormal = UnityObjectToWorldNormal(v.normal); + o.worldPos.xyz = worldPos; + return o; +} + +// fragment shader +fixed4 frag_surf (v2f_surf IN) : SV_Target { + UNITY_SETUP_INSTANCE_ID(IN); + // prepare and unpack data + Input surfIN; + #ifdef FOG_COMBINED_WITH_TSPACE + UNITY_EXTRACT_FOG_FROM_TSPACE(IN); + #elif defined (FOG_COMBINED_WITH_WORLD_POS) + UNITY_EXTRACT_FOG_FROM_WORLD_POS(IN); + #else + UNITY_EXTRACT_FOG(IN); + #endif + UNITY_INITIALIZE_OUTPUT(Input,surfIN); + surfIN.uv_ColorTex.x = 1.0; + surfIN.vertexPos.x = 1.0; + //surfIN.normal.x = 1.0; + surfIN.uv_ColorTex = IN.uv_ColorTex.xy; + surfIN.vertexPos = IN.vertexPos.xyzw; + surfIN.idx = IN.idxMask.x; + surfIN.mask = IN.idxMask.y; + //surfIN.normal = IN.normal.xyz; + float3 worldPos = IN.worldPos.xyz; + #ifndef USING_DIRECTIONAL_LIGHT + fixed3 lightDir = normalize(UnityWorldSpaceLightDir(worldPos)); + #else + fixed3 lightDir = _WorldSpaceLightPos0.xyz; + #endif + #ifdef UNITY_COMPILER_HLSL + SurfaceOutput o = (SurfaceOutput)0; + #else + SurfaceOutput o; + #endif + o.Albedo = 0.0; + o.Emission = 0.0; + o.Specular = 0.0; + o.Alpha = 0.0; + o.Gloss = 0.0; + fixed3 normalWorldVertex = fixed3(0,0,1); + + // call surface function + surf (surfIN, o); + UnityMetaInput metaIN; + UNITY_INITIALIZE_OUTPUT(UnityMetaInput, metaIN); + metaIN.Albedo = o.Albedo; + metaIN.Emission = o.Emission; + metaIN.SpecularColor = o.Specular; +#ifdef EDITOR_VISUALIZATION + metaIN.VizUV = IN.vizUV; + metaIN.LightCoord = IN.lightCoord; +#endif + return UnityMetaFragment(metaIN); +} + +#include "SceneMeshGShader.cginc" + +#endif + +// -------- variant for: INSTANCING_ON +#if defined(INSTANCING_ON) +// Surface shader code generated based on: +// vertex modifier: 'vert' +// writes to per-pixel normal: no +// writes to emission: no +// writes to occlusion: no +// needs world space reflection vector: no +// needs world space normal vector: no +// needs screen space position: no +// needs world space position: no +// needs view direction: no +// needs world space view direction: no +// needs world space position for lighting: YES +// needs world space view direction for lighting: no +// needs world space view direction for lightmaps: no +// needs vertex color: no +// needs VFACE: no +// passes tangent-to-world matrix to pixel shader: no +// reads from normal: no +// 1 texcoords actually used +// float2 _ColorTex +#include "UnityCG.cginc" +#include "Lighting.cginc" + +#define INTERNAL_DATA +#define WorldReflectionVector(data,normal) data.worldRefl +#define WorldNormalVector(data,normal) normal + +// Original surface shader snippet: +#line 15 "" +#ifdef DUMMY_PREPROCESSOR_TO_WORK_AROUND_HLSL_COMPILER_LINE_HANDLING +#endif +/* UNITY: Original start of shader */ + + //#pragma target 5.0 + + //#pragma surface surf Lambert vertex:vert addshadow + //#pragma exclude_renderers d3d11_9x + + #include "SceneMeshVShader.cginc" + + +#include "UnityMetaPass.cginc" + +// vertex-to-fragment interpolation data +struct v2f_surf { + UNITY_POSITION(pos); + float2 uv_ColorTex : TEXCOORD0; // _ColorTex + float3 worldPos : TEXCOORD1; + float4 vertexPos : TEXCOORD2; // vertexPos + uint2 idxMask : TEXCOORD3; // idx mask + //float3 normal : TEXCOORD4; // normal +#ifdef EDITOR_VISUALIZATION + float2 vizUV : TEXCOORD5; + float4 lightCoord : TEXCOORD6; +#endif + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; +float4 _ColorTex_ST; + +// vertex shader +v2f_surf vert_surf (appdata_full v) { + UNITY_SETUP_INSTANCE_ID(v); + v2f_surf o; + UNITY_INITIALIZE_OUTPUT(v2f_surf,o); + UNITY_TRANSFER_INSTANCE_ID(v,o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + Input customInputData; + vert_body (v, customInputData); + o.vertexPos.xyzw = customInputData.vertexPos; + o.idxMask.x = customInputData.idx; + o.idxMask.y = customInputData.mask; + //o.normal.xyz = customInputData.normal; + o.pos = UnityMetaVertexPosition(v.vertex, v.texcoord1.xy, v.texcoord2.xy, unity_LightmapST, unity_DynamicLightmapST); +#ifdef EDITOR_VISUALIZATION + o.vizUV = 0; + o.lightCoord = 0; + if (unity_VisualizationMode == EDITORVIZ_TEXTURE) + o.vizUV = UnityMetaVizUV(unity_EditorViz_UVIndex, v.texcoord.xy, v.texcoord1.xy, v.texcoord2.xy, unity_EditorViz_Texture_ST); + else if (unity_VisualizationMode == EDITORVIZ_SHOWLIGHTMASK) + { + o.vizUV = v.texcoord1.xy * unity_LightmapST.xy + unity_LightmapST.zw; + o.lightCoord = mul(unity_EditorViz_WorldToLight, mul(unity_ObjectToWorld, float4(v.vertex.xyz, 1))); + } +#endif + o.uv_ColorTex.xy = TRANSFORM_TEX(v.texcoord, _ColorTex); + float3 worldPos = mul(unity_ObjectToWorld, v.vertex).xyz; + float3 worldNormal = UnityObjectToWorldNormal(v.normal); + o.worldPos.xyz = worldPos; + return o; +} + +// fragment shader +fixed4 frag_surf (v2f_surf IN) : SV_Target { + UNITY_SETUP_INSTANCE_ID(IN); + // prepare and unpack data + Input surfIN; + #ifdef FOG_COMBINED_WITH_TSPACE + UNITY_EXTRACT_FOG_FROM_TSPACE(IN); + #elif defined (FOG_COMBINED_WITH_WORLD_POS) + UNITY_EXTRACT_FOG_FROM_WORLD_POS(IN); + #else + UNITY_EXTRACT_FOG(IN); + #endif + UNITY_INITIALIZE_OUTPUT(Input,surfIN); + surfIN.uv_ColorTex.x = 1.0; + surfIN.vertexPos.x = 1.0; + //surfIN.normal.x = 1.0; + surfIN.uv_ColorTex = IN.uv_ColorTex.xy; + surfIN.vertexPos = IN.vertexPos.xyzw; + surfIN.idx = IN.idxMask.x; + surfIN.mask = IN.idxMask.y; + //surfIN.normal = IN.normal.xyz; + float3 worldPos = IN.worldPos.xyz; + #ifndef USING_DIRECTIONAL_LIGHT + fixed3 lightDir = normalize(UnityWorldSpaceLightDir(worldPos)); + #else + fixed3 lightDir = _WorldSpaceLightPos0.xyz; + #endif + #ifdef UNITY_COMPILER_HLSL + SurfaceOutput o = (SurfaceOutput)0; + #else + SurfaceOutput o; + #endif + o.Albedo = 0.0; + o.Emission = 0.0; + o.Specular = 0.0; + o.Alpha = 0.0; + o.Gloss = 0.0; + fixed3 normalWorldVertex = fixed3(0,0,1); + + // call surface function + surf (surfIN, o); + UnityMetaInput metaIN; + UNITY_INITIALIZE_OUTPUT(UnityMetaInput, metaIN); + metaIN.Albedo = o.Albedo; + metaIN.Emission = o.Emission; + metaIN.SpecularColor = o.Specular; +#ifdef EDITOR_VISUALIZATION + metaIN.VizUV = IN.vizUV; + metaIN.LightCoord = IN.lightCoord; +#endif + return UnityMetaFragment(metaIN); +} + +#include "SceneMeshGShader.cginc" + +#endif + + +ENDCG + +} + + // ---- end of surface shader generated code + +#LINE 26 + + } + + FallBack "Diffuse" +} + diff --git a/Assets/Azure/Resources/UserMeshVShader.shader.meta b/Assets/Azure/Resources/UserMeshVShader.shader.meta new file mode 100644 index 0000000..621485d --- /dev/null +++ b/Assets/Azure/Resources/UserMeshVShader.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 4db604668478af54da6cbe7294871cb5 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/SDK.meta b/Assets/Azure/SDK.meta new file mode 100644 index 0000000..9eaf218 --- /dev/null +++ b/Assets/Azure/SDK.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 147a6a25d5249e043a2199775f2d7608 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/SDK/Kinect4AzureSDK.meta b/Assets/Azure/SDK/Kinect4AzureSDK.meta new file mode 100644 index 0000000..3ac3160 --- /dev/null +++ b/Assets/Azure/SDK/Kinect4AzureSDK.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4dbdb3c4b91975c4c9f3f35cb1b26b53 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/SDK/Kinect4AzureSDK/AzureKinectSDK_License.txt b/Assets/Azure/SDK/Kinect4AzureSDK/AzureKinectSDK_License.txt new file mode 100644 index 0000000..a9cfd10 --- /dev/null +++ b/Assets/Azure/SDK/Kinect4AzureSDK/AzureKinectSDK_License.txt @@ -0,0 +1,22 @@ +Copyright (c) Microsoft Corporation. All rights reserved. + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/Assets/Azure/SDK/Kinect4AzureSDK/AzureKinectSDK_License.txt.meta b/Assets/Azure/SDK/Kinect4AzureSDK/AzureKinectSDK_License.txt.meta new file mode 100644 index 0000000..42aa881 --- /dev/null +++ b/Assets/Azure/SDK/Kinect4AzureSDK/AzureKinectSDK_License.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f48accf486521be4ebadf798d2ccad76 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/SDK/Kinect4AzureSDK/Plugins.meta b/Assets/Azure/SDK/Kinect4AzureSDK/Plugins.meta new file mode 100644 index 0000000..a084753 --- /dev/null +++ b/Assets/Azure/SDK/Kinect4AzureSDK/Plugins.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c6d6245636c2fa44d8491f5773e63880 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/SDK/Kinect4AzureSDK/Plugins/Microsoft.Azure.Kinect.Sensor.dll.meta b/Assets/Azure/SDK/Kinect4AzureSDK/Plugins/Microsoft.Azure.Kinect.Sensor.dll.meta new file mode 100644 index 0000000..4234b7d --- /dev/null +++ b/Assets/Azure/SDK/Kinect4AzureSDK/Plugins/Microsoft.Azure.Kinect.Sensor.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 907a950a8d9451c4f8a12b9fadec2ab8 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/SDK/Kinect4AzureSDK/Plugins/System.Runtime.CompilerServices.Unsafe.dll.meta b/Assets/Azure/SDK/Kinect4AzureSDK/Plugins/System.Runtime.CompilerServices.Unsafe.dll.meta new file mode 100644 index 0000000..678a1ed --- /dev/null +++ b/Assets/Azure/SDK/Kinect4AzureSDK/Plugins/System.Runtime.CompilerServices.Unsafe.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: a38f37d8d2695f344a45c65cece2af37 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/SDK/Kinect4AzureSDK/Plugins/depthengine_2_0.dll.meta b/Assets/Azure/SDK/Kinect4AzureSDK/Plugins/depthengine_2_0.dll.meta new file mode 100644 index 0000000..1cb46dd --- /dev/null +++ b/Assets/Azure/SDK/Kinect4AzureSDK/Plugins/depthengine_2_0.dll.meta @@ -0,0 +1,107 @@ +fileFormatVersion: 2 +guid: 45145bc46a96ee64f982956342fd7a8a +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + '': Any + second: + enabled: 0 + settings: + Exclude Android: 1 + Exclude Editor: 0 + Exclude Linux: 0 + Exclude Linux64: 0 + Exclude LinuxUniversal: 0 + Exclude OSXUniversal: 0 + Exclude Win: 1 + Exclude Win64: 0 + Exclude WindowsStoreApps: 1 + - 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: AnyOS + - first: + Facebook: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Facebook: Win64 + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Standalone: Linux + second: + enabled: 1 + settings: + CPU: x86 + - first: + Standalone: Linux64 + second: + enabled: 1 + settings: + CPU: x86_64 + - first: + Standalone: LinuxUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: OSXUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win64 + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + DontProcess: false + PlaceholderPath: + SDK: AnySDK + ScriptingBackend: AnyScriptingBackend + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/SDK/Kinect4AzureSDK/Plugins/directml.dll.meta b/Assets/Azure/SDK/Kinect4AzureSDK/Plugins/directml.dll.meta new file mode 100644 index 0000000..b7ed0d1 --- /dev/null +++ b/Assets/Azure/SDK/Kinect4AzureSDK/Plugins/directml.dll.meta @@ -0,0 +1,107 @@ +fileFormatVersion: 2 +guid: dbcb4aebedd00334aaf0209b5eb2625a +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 1 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + '': Any + second: + enabled: 0 + settings: + Exclude Android: 1 + Exclude Editor: 0 + Exclude Linux: 0 + Exclude Linux64: 0 + Exclude LinuxUniversal: 0 + Exclude OSXUniversal: 0 + Exclude Win: 1 + Exclude Win64: 0 + Exclude WindowsStoreApps: 1 + - 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: AnyOS + - first: + Facebook: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Facebook: Win64 + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Standalone: Linux + second: + enabled: 1 + settings: + CPU: x86 + - first: + Standalone: Linux64 + second: + enabled: 1 + settings: + CPU: x86_64 + - first: + Standalone: LinuxUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: OSXUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win64 + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + DontProcess: false + PlaceholderPath: + SDK: AnySDK + ScriptingBackend: AnyScriptingBackend + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/SDK/Kinect4AzureSDK/Plugins/k4a.dll.meta b/Assets/Azure/SDK/Kinect4AzureSDK/Plugins/k4a.dll.meta new file mode 100644 index 0000000..ec21d75 --- /dev/null +++ b/Assets/Azure/SDK/Kinect4AzureSDK/Plugins/k4a.dll.meta @@ -0,0 +1,107 @@ +fileFormatVersion: 2 +guid: 36c0454f656ae5e4ea6bcdfb124212ed +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + '': Any + second: + enabled: 0 + settings: + Exclude Android: 1 + Exclude Editor: 0 + Exclude Linux: 0 + Exclude Linux64: 0 + Exclude LinuxUniversal: 0 + Exclude OSXUniversal: 0 + Exclude Win: 1 + Exclude Win64: 0 + Exclude WindowsStoreApps: 1 + - 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: AnyOS + - first: + Facebook: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Facebook: Win64 + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Standalone: Linux + second: + enabled: 1 + settings: + CPU: x86 + - first: + Standalone: Linux64 + second: + enabled: 1 + settings: + CPU: x86_64 + - first: + Standalone: LinuxUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: OSXUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win64 + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + DontProcess: false + PlaceholderPath: + SDK: AnySDK + ScriptingBackend: AnyScriptingBackend + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/SDK/Kinect4AzureSDK/Plugins/k4abt.dll.meta b/Assets/Azure/SDK/Kinect4AzureSDK/Plugins/k4abt.dll.meta new file mode 100644 index 0000000..c41cd0d --- /dev/null +++ b/Assets/Azure/SDK/Kinect4AzureSDK/Plugins/k4abt.dll.meta @@ -0,0 +1,107 @@ +fileFormatVersion: 2 +guid: 723f4beb0ef3bfe439d954c94f8a6a6e +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + '': Any + second: + enabled: 0 + settings: + Exclude Android: 1 + Exclude Editor: 0 + Exclude Linux: 0 + Exclude Linux64: 0 + Exclude LinuxUniversal: 0 + Exclude OSXUniversal: 0 + Exclude Win: 1 + Exclude Win64: 0 + Exclude WindowsStoreApps: 1 + - 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: AnyOS + - first: + Facebook: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Facebook: Win64 + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Standalone: Linux + second: + enabled: 1 + settings: + CPU: x86 + - first: + Standalone: Linux64 + second: + enabled: 1 + settings: + CPU: x86_64 + - first: + Standalone: LinuxUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: OSXUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win64 + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + DontProcess: false + PlaceholderPath: + SDK: AnySDK + ScriptingBackend: AnyScriptingBackend + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/SDK/Kinect4AzureSDK/Plugins/k4arecord.dll.meta b/Assets/Azure/SDK/Kinect4AzureSDK/Plugins/k4arecord.dll.meta new file mode 100644 index 0000000..a84a062 --- /dev/null +++ b/Assets/Azure/SDK/Kinect4AzureSDK/Plugins/k4arecord.dll.meta @@ -0,0 +1,107 @@ +fileFormatVersion: 2 +guid: a9c6159c921e6b64281d3cbda4a78e88 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + '': Any + second: + enabled: 0 + settings: + Exclude Android: 1 + Exclude Editor: 0 + Exclude Linux: 0 + Exclude Linux64: 0 + Exclude LinuxUniversal: 0 + Exclude OSXUniversal: 0 + Exclude Win: 1 + Exclude Win64: 0 + Exclude WindowsStoreApps: 1 + - 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: AnyOS + - first: + Facebook: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Facebook: Win64 + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Standalone: Linux + second: + enabled: 1 + settings: + CPU: x86 + - first: + Standalone: Linux64 + second: + enabled: 1 + settings: + CPU: x86_64 + - first: + Standalone: LinuxUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: OSXUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win64 + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + DontProcess: false + PlaceholderPath: + SDK: AnySDK + ScriptingBackend: AnyScriptingBackend + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/SDK/Kinect4AzureSDK/Plugins/onnxruntime.dll.meta b/Assets/Azure/SDK/Kinect4AzureSDK/Plugins/onnxruntime.dll.meta new file mode 100644 index 0000000..4b98996 --- /dev/null +++ b/Assets/Azure/SDK/Kinect4AzureSDK/Plugins/onnxruntime.dll.meta @@ -0,0 +1,107 @@ +fileFormatVersion: 2 +guid: 6475450827c309e4e8aac41d2ca6451f +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + '': Any + second: + enabled: 0 + settings: + Exclude Android: 1 + Exclude Editor: 0 + Exclude Linux: 0 + Exclude Linux64: 0 + Exclude LinuxUniversal: 0 + Exclude OSXUniversal: 0 + Exclude Win: 1 + Exclude Win64: 0 + Exclude WindowsStoreApps: 1 + - 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: AnyOS + - first: + Facebook: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Facebook: Win64 + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Standalone: Linux + second: + enabled: 1 + settings: + CPU: None + - first: + Standalone: Linux64 + second: + enabled: 1 + settings: + CPU: None + - first: + Standalone: LinuxUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: OSXUniversal + second: + enabled: 1 + settings: + CPU: x86 + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win64 + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + DontProcess: false + PlaceholderPath: + SDK: AnySDK + ScriptingBackend: AnyScriptingBackend + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/SDK/Kinect4AzureSDK/Plugins/onnxruntime_providers_cuda.dll.meta b/Assets/Azure/SDK/Kinect4AzureSDK/Plugins/onnxruntime_providers_cuda.dll.meta new file mode 100644 index 0000000..b6a1596 --- /dev/null +++ b/Assets/Azure/SDK/Kinect4AzureSDK/Plugins/onnxruntime_providers_cuda.dll.meta @@ -0,0 +1,107 @@ +fileFormatVersion: 2 +guid: 8daebe5ccad64a6439f849837e8fc2a4 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + '': Any + second: + enabled: 0 + settings: + Exclude Android: 1 + Exclude Editor: 0 + Exclude Linux: 0 + Exclude Linux64: 0 + Exclude LinuxUniversal: 0 + Exclude OSXUniversal: 0 + Exclude Win: 1 + Exclude Win64: 0 + Exclude WindowsStoreApps: 1 + - 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: AnyOS + - first: + Facebook: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Facebook: Win64 + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Standalone: Linux + second: + enabled: 1 + settings: + CPU: x86 + - first: + Standalone: Linux64 + second: + enabled: 1 + settings: + CPU: x86_64 + - first: + Standalone: LinuxUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: OSXUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win64 + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + DontProcess: false + PlaceholderPath: + SDK: AnySDK + ScriptingBackend: AnyScriptingBackend + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/SDK/Kinect4AzureSDK/Plugins/onnxruntime_providers_shared.dll.meta b/Assets/Azure/SDK/Kinect4AzureSDK/Plugins/onnxruntime_providers_shared.dll.meta new file mode 100644 index 0000000..83e14e4 --- /dev/null +++ b/Assets/Azure/SDK/Kinect4AzureSDK/Plugins/onnxruntime_providers_shared.dll.meta @@ -0,0 +1,107 @@ +fileFormatVersion: 2 +guid: 1b0141b193cba4d4aa29a1534586a3e0 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + '': Any + second: + enabled: 0 + settings: + Exclude Android: 1 + Exclude Editor: 0 + Exclude Linux: 0 + Exclude Linux64: 0 + Exclude LinuxUniversal: 0 + Exclude OSXUniversal: 0 + Exclude Win: 1 + Exclude Win64: 0 + Exclude WindowsStoreApps: 1 + - 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: AnyOS + - first: + Facebook: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Facebook: Win64 + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Standalone: Linux + second: + enabled: 1 + settings: + CPU: x86 + - first: + Standalone: Linux64 + second: + enabled: 1 + settings: + CPU: x86_64 + - first: + Standalone: LinuxUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: OSXUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win64 + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + DontProcess: false + PlaceholderPath: + SDK: AnySDK + ScriptingBackend: AnyScriptingBackend + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/SDK/Kinect4AzureSDK/Plugins/onnxruntime_providers_tensorrt.dll.meta b/Assets/Azure/SDK/Kinect4AzureSDK/Plugins/onnxruntime_providers_tensorrt.dll.meta new file mode 100644 index 0000000..197ae53 --- /dev/null +++ b/Assets/Azure/SDK/Kinect4AzureSDK/Plugins/onnxruntime_providers_tensorrt.dll.meta @@ -0,0 +1,107 @@ +fileFormatVersion: 2 +guid: 75d3fcfc96d4d9a4daafdac206ca8168 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + '': Any + second: + enabled: 0 + settings: + Exclude Android: 1 + Exclude Editor: 0 + Exclude Linux: 0 + Exclude Linux64: 0 + Exclude LinuxUniversal: 0 + Exclude OSXUniversal: 0 + Exclude Win: 1 + Exclude Win64: 0 + Exclude WindowsStoreApps: 1 + - 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: AnyOS + - first: + Facebook: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Facebook: Win64 + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Standalone: Linux + second: + enabled: 1 + settings: + CPU: x86 + - first: + Standalone: Linux64 + second: + enabled: 1 + settings: + CPU: x86_64 + - first: + Standalone: LinuxUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: OSXUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win64 + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + DontProcess: false + PlaceholderPath: + SDK: AnySDK + ScriptingBackend: AnyScriptingBackend + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/SDK/Kinect4AzureSDK/Resources.meta b/Assets/Azure/SDK/Kinect4AzureSDK/Resources.meta new file mode 100644 index 0000000..a12e536 --- /dev/null +++ b/Assets/Azure/SDK/Kinect4AzureSDK/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d0e04e67a0f731349b88526a23da2417 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/SDK/Kinect4AzureSDK/Resources/k4a-resources.txt b/Assets/Azure/SDK/Kinect4AzureSDK/Resources/k4a-resources.txt new file mode 100644 index 0000000..cbc26e2 --- /dev/null +++ b/Assets/Azure/SDK/Kinect4AzureSDK/Resources/k4a-resources.txt @@ -0,0 +1 @@ +Feel free to add binary or text files to this directory that need to be copied to the root folder at run time. diff --git a/Assets/Azure/SDK/Kinect4AzureSDK/Resources/k4a-resources.txt.meta b/Assets/Azure/SDK/Kinect4AzureSDK/Resources/k4a-resources.txt.meta new file mode 100644 index 0000000..4e4c07e --- /dev/null +++ b/Assets/Azure/SDK/Kinect4AzureSDK/Resources/k4a-resources.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 861e3276924a71b46b7f1853d777c3fb +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/SDK/KinectSDK2.0.meta b/Assets/Azure/SDK/KinectSDK2.0.meta new file mode 100644 index 0000000..3eebf7b --- /dev/null +++ b/Assets/Azure/SDK/KinectSDK2.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7f43ca9fd6a5fc042ae05ee5902c8eb6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/SDK/KinectSDK2.0/KinectSDK2.0_License.rtf b/Assets/Azure/SDK/KinectSDK2.0/KinectSDK2.0_License.rtf new file mode 100644 index 0000000..c2e634f --- /dev/null +++ b/Assets/Azure/SDK/KinectSDK2.0/KinectSDK2.0_License.rtf @@ -0,0 +1,525 @@ +{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff39\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi0\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;} +{\f2\fbidi \fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}{\f3\fbidi \froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}{\f10\fbidi \fnil\fcharset2\fprq2{\*\panose 05000000000000000000}Wingdings;} +{\f34\fbidi \froman\fcharset1\fprq2{\*\panose 02040503050406030204}Cambria Math;}{\f38\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0502040204020203}Segoe UI;}{\f39\fbidi \fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Tahoma;} +{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fhimajor\f31502\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light;}{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f40\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\f41\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\f43\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f44\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f45\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\f46\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f47\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f48\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f50\fbidi \fswiss\fcharset238\fprq2 Arial CE;} +{\f51\fbidi \fswiss\fcharset204\fprq2 Arial Cyr;}{\f53\fbidi \fswiss\fcharset161\fprq2 Arial Greek;}{\f54\fbidi \fswiss\fcharset162\fprq2 Arial Tur;}{\f55\fbidi \fswiss\fcharset177\fprq2 Arial (Hebrew);} +{\f56\fbidi \fswiss\fcharset178\fprq2 Arial (Arabic);}{\f57\fbidi \fswiss\fcharset186\fprq2 Arial Baltic;}{\f58\fbidi \fswiss\fcharset163\fprq2 Arial (Vietnamese);}{\f60\fbidi \fmodern\fcharset238\fprq1 Courier New CE;} +{\f61\fbidi \fmodern\fcharset204\fprq1 Courier New Cyr;}{\f63\fbidi \fmodern\fcharset161\fprq1 Courier New Greek;}{\f64\fbidi \fmodern\fcharset162\fprq1 Courier New Tur;}{\f65\fbidi \fmodern\fcharset177\fprq1 Courier New (Hebrew);} +{\f66\fbidi \fmodern\fcharset178\fprq1 Courier New (Arabic);}{\f67\fbidi \fmodern\fcharset186\fprq1 Courier New Baltic;}{\f68\fbidi \fmodern\fcharset163\fprq1 Courier New (Vietnamese);}{\f430\fbidi \fswiss\fcharset238\fprq2 Tahoma CE;} +{\f431\fbidi \fswiss\fcharset204\fprq2 Tahoma Cyr;}{\f433\fbidi \fswiss\fcharset161\fprq2 Tahoma Greek;}{\f434\fbidi \fswiss\fcharset162\fprq2 Tahoma Tur;}{\f435\fbidi \fswiss\fcharset177\fprq2 Tahoma (Hebrew);} +{\f436\fbidi \fswiss\fcharset178\fprq2 Tahoma (Arabic);}{\f437\fbidi \fswiss\fcharset186\fprq2 Tahoma Baltic;}{\f438\fbidi \fswiss\fcharset163\fprq2 Tahoma (Vietnamese);}{\f439\fbidi \fswiss\fcharset222\fprq2 Tahoma (Thai);} +{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} +{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhimajor\f31528\fbidi \fswiss\fcharset238\fprq2 Calibri Light CE;}{\fhimajor\f31529\fbidi \fswiss\fcharset204\fprq2 Calibri Light Cyr;} +{\fhimajor\f31531\fbidi \fswiss\fcharset161\fprq2 Calibri Light Greek;}{\fhimajor\f31532\fbidi \fswiss\fcharset162\fprq2 Calibri Light Tur;}{\fhimajor\f31535\fbidi \fswiss\fcharset186\fprq2 Calibri Light Baltic;} +{\fhimajor\f31536\fbidi \fswiss\fcharset163\fprq2 Calibri Light (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} +{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} +{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;} +{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;} +{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}} +{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0; +\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\caccentone\ctint255\cshade191\red46\green116\blue181;\caccentone\ctint255\cshade127\red31\green77\blue120;\red31\green73\blue125;} +{\*\defchp \fs22\loch\af31506\hich\af31506\dbch\af31505 }{\*\defpap \ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{ +\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af39\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{ +\s1\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel0\rin0\lin0\itap0 \rtlch\fcs1 \af39\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \slink15 \sqformat +heading 1;}{\s2\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin0\itap0 \rtlch\fcs1 \af39\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 +\sbasedon0 \snext0 \slink16 \sqformat heading 2;}{\s3\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel2\rin0\lin0\itap0 \rtlch\fcs1 \af39\afs24\alang1025 \ltrch\fcs0 +\fs24\lang1033\langfe1033\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \slink17 \sqformat heading 3;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\* +\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa160\sl259\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe1033\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 \snext11 \ssemihidden \sunhideused +Normal Table;}{\*\cs15 \additive \rtlch\fcs1 \af0\afs32 \ltrch\fcs0 \fs32\cf17\loch\f31502\hich\af31502\dbch\af31501 \sbasedon10 \slink1 \slocked \spriority9 Heading 1 Char;}{\*\cs16 \additive \rtlch\fcs1 \af0\afs26 \ltrch\fcs0 +\fs26\cf17\loch\f31502\hich\af31502\dbch\af31501 \sbasedon10 \slink2 \slocked \ssemihidden \spriority9 Heading 2 Char;}{\*\cs17 \additive \rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \fs24\cf18\loch\f31502\hich\af31502\dbch\af31501 +\sbasedon10 \slink3 \slocked \ssemihidden \spriority9 Heading 3 Char;}{\s18\ql \li0\ri0\nowidctlpar\tqc\tx4680\tqr\tx9360\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af39\afs24\alang1025 \ltrch\fcs0 +\fs24\lang1033\langfe1033\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext18 \slink19 \sunhideused \styrsid1930808 header;}{\*\cs19 \additive \rtlch\fcs1 \af39\afs24 \ltrch\fcs0 \f39\fs24 +\sbasedon10 \slink18 \slocked \styrsid1930808 Header Char;}{\s20\ql \li0\ri0\nowidctlpar\tqc\tx4680\tqr\tx9360\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af39\afs24\alang1025 \ltrch\fcs0 +\fs24\lang1033\langfe1033\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext20 \slink21 \sunhideused \styrsid1930808 footer;}{\*\cs21 \additive \rtlch\fcs1 \af39\afs24 \ltrch\fcs0 \f39\fs24 +\sbasedon10 \slink20 \slocked \styrsid1930808 Footer Char;}{\*\cs22 \additive \rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \fs16 \sbasedon10 \ssemihidden \sunhideused \styrsid4929922 annotation reference;}{ +\s23\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af39\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe1033\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 +\sbasedon0 \snext23 \slink24 \ssemihidden \sunhideused \styrsid4929922 annotation text;}{\*\cs24 \additive \rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \f39\fs20 \sbasedon10 \slink23 \slocked \ssemihidden \styrsid4929922 Comment Text Char;}{ +\s25\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \ab\af39\afs20\alang1025 \ltrch\fcs0 \b\fs20\lang1033\langfe1033\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 +\sbasedon23 \snext23 \slink26 \ssemihidden \sunhideused \styrsid4929922 annotation subject;}{\*\cs26 \additive \rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\f39\fs20 \sbasedon24 \slink25 \slocked \ssemihidden \styrsid4929922 Comment Subject Char;}{ +\s27\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs18\alang1025 \ltrch\fcs0 \fs18\lang1033\langfe1033\loch\f38\hich\af38\dbch\af31505\cgrid\langnp1033\langfenp1033 +\sbasedon0 \snext27 \slink28 \ssemihidden \sunhideused \styrsid4929922 Balloon Text;}{\*\cs28 \additive \rtlch\fcs1 \af38\afs18 \ltrch\fcs0 \f38\fs18 \sbasedon10 \slink27 \slocked \ssemihidden \styrsid4929922 Balloon Text Char;}{ +\s29\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\contextualspace \rtlch\fcs1 \af39\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\f39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 +\sbasedon0 \snext29 \sqformat \spriority34 \styrsid5338358 List Paragraph;}}{\*\listtable{\list\listtemplateid-1933036156\listsimple{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat0\levelspace0\levelindent0{\leveltext +\'01*;}{\levelnumbers;}}{\listname ;}\listid-2}{\list\listtemplateid1663739596\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693 +\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 +\fi-360\li2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li2880\lin2880 }{\listlevel +\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0 +\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1 +\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0 +\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext +\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li6480\lin6480 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698693 +\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li7200\lin7200 }{\listname ;}\listid296491462}{\list\listtemplateid1166995046\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext +\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698691 +\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 +\fi-360\li2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li3600\lin3600 }{\listlevel +\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0 +\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1 +\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0 +\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li6480\lin6480 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext +\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li7200\lin7200 }{\listname ;}\listid728115947}{\list\listtemplateid-576179798\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0 +\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li1260\lin1260 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext +\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li1980\lin1980 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698693 +\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li2700\lin2700 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;} +\f3\fbias0 \fi-360\li3420\lin3420 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li4140\lin4140 } +{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li4860\lin4860 }{\listlevel\levelnfc23\levelnfcn23 +\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5580\lin5580 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0 +\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li6300\lin6300 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0 +\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li7020\lin7020 }{\listname ;}\listid844515658}{\list\listtemplateid2023228974\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0 +\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li1800\lin1800 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0 +\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li2520\lin2520 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext +\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li3240\lin3240 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698689 +\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li3960\lin3960 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 +\fi-360\li4680\lin4680 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li5400\lin5400 }{\listlevel +\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li6120\lin6120 }{\listlevel\levelnfc23\levelnfcn23\leveljc0 +\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li6840\lin6840 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1 +\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li7560\lin7560 }{\listname ;}\listid1411999391}{\list\listtemplateid-926094602\listhybrid{\listlevel\levelnfc23\levelnfcn23 +\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li1800\lin1800 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1 +\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li2520\lin2520 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0 +{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li3240\lin3240 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698689 +\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li3960\lin3960 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 +\fi-360\li4680\lin4680 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li5400\lin5400 }{\listlevel +\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li6120\lin6120 }{\listlevel\levelnfc23\levelnfcn23\leveljc0 +\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li6840\lin6840 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1 +\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li7560\lin7560 }{\listname ;}\listid1653637060}{\list\listtemplateid11189262\listsimple{\listlevel\levelnfc4\levelnfcn4\leveljc0 +\leveljcn0\levelfollow0\levelstartat1\levelold\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}\rtlch\fcs1 \af39 \ltrch\fcs0 \b\f39\fbias0 }{\listname ;}\listid1681809293}}{\*\listoverridetable{\listoverride\listid1681809293 +\listoverridecount0\ls1}{\listoverride\listid296491462\listoverridecount0\ls2}{\listoverride\listid-2\listoverridecount1{\lfolevel\listoverrideformat{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat0\levelold\levelspace0 +\levelindent360{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 }}\ls3}{\listoverride\listid1653637060\listoverridecount0\ls4}{\listoverride\listid1411999391\listoverridecount0\ls5}{\listoverride\listid728115947\listoverridecount0\ls6} +{\listoverride\listid844515658\listoverridecount0\ls7}}{\*\pgptbl {\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}}{\*\rsidtbl \rsid73750\rsid91414\rsid675470\rsid1909739\rsid1930808\rsid2042763\rsid3882049\rsid3949644\rsid4196885\rsid4796860\rsid4929922\rsid5338358 +\rsid6816407\rsid6969745\rsid7096959\rsid7297413\rsid7679777\rsid7695099\rsid8139599\rsid8222967\rsid8745415\rsid9392452\rsid9909308\rsid10056964\rsid10234499\rsid10296048\rsid10437656\rsid10570424\rsid10897255\rsid11022658\rsid11090850\rsid11808396 +\rsid11829074\rsid11871500\rsid11937711\rsid11949759\rsid13329978\rsid13781786\rsid14225958\rsid14551182\rsid14579304\rsid15495172\rsid15621282\rsid16385968\rsid16457108}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0 +\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\creatim\yr2014\mo8\dy27\hr11\min25}{\revtim\yr2014\mo8\dy27\hr11\min25}{\version1}{\edmins0}{\nofpages6}{\nofwords1938}{\nofchars11052}{\nofcharsws12965}{\vern57437}}{\*\xmlnstbl {\xmlns1 http://schemas. +microsoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect +\widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont0\relyonvml1\donotembedlingdata0\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\horzdoc\dghspace120\dgvspace120\dghorigin1701 +\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewscale100\splytwnine\ftnlytwnine\htmautsp\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\rempersonalinfo\allowfieldendsel\wrppunct\asianbrkrule\rsidroot6816407 +\newtblstyruls\nogrowautofit\remdttm\usenormstyforlist\noindnmbrts\felnbrelev\nocxsptable\indrlsweleven\noafcnsttbl\afelev\utinl\hwelev\spltpgpar\notcvasp\notbrkcnstfrctbl\notvatxbx\krnprsnet\cachedcolbal \nouicompat \fet0{\*\wgrffmtfilter 2450} +\nofeaturethrottle1\ilfomacatclnup0{\*\ftnsep \ltrpar \pard\plain \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid1930808 \rtlch\fcs1 \af39\afs24\alang1025 \ltrch\fcs0 +\fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af39 \ltrch\fcs0 \insrsid10296048 \chftnsep +\par }}{\*\ftnsepc \ltrpar \pard\plain \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid1930808 \rtlch\fcs1 \af39\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 { +\rtlch\fcs1 \af39 \ltrch\fcs0 \insrsid10296048 \chftnsepc +\par }}{\*\aftnsep \ltrpar \pard\plain \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid1930808 \rtlch\fcs1 \af39\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 { +\rtlch\fcs1 \af39 \ltrch\fcs0 \insrsid10296048 \chftnsep +\par }}{\*\aftnsepc \ltrpar \pard\plain \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid1930808 \rtlch\fcs1 \af39\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 { +\rtlch\fcs1 \af39 \ltrch\fcs0 \insrsid10296048 \chftnsepc +\par }}\ltrpar \sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4 +\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (} +{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\sb120\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 +\af39\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Microsoft Kinect for Windows}{ +\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid4929922 \hich\af39\dbch\af31505\loch\f39 v2}{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Software Development Kit (SDK) +\par }\pard \ltrpar\ql \li0\ri0\sa120\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 +\par }\pard \ltrpar\ql \li0\ri0\sb120\sa120\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 +These license terms are an agreement between Microsoft Corporation (or based on where you live, one of its affiliates) and you. Please read them. They apply to the software named above, \hich\af39\dbch\af31505\loch\f39 +which includes the media on which you received it, if any. It also applies to any Microsoft}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8745415 +\par }\pard \ltrpar\ql \fi-360\li360\ri0\sb120\sa120\nowidctlpar\tx360\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 +\f1\fs20\insrsid8745415 \tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 updates}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8745415 , +\par }\pard \ltrpar\ql \fi-360\li360\ri0\sb120\sa120\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8745415 +\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 supplements, +\par }{\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8745415 \tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 +documentation, and}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8745415 +\par }{\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8745415 \tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 +support services}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8745415 +\par }\pard \ltrpar\ql \li0\ri0\sb120\sa120\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 +for this software, unless other terms accompany those items. If so, those terms apply. +\par }{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 The softwar\hich\af39\dbch\af31505\loch\f39 e is licensed, not sold.}{\rtlch\fcs1 \af39 \ltrch\fcs0 \insrsid8745415 \hich\af39\dbch\af31505\loch\f39 }{ +\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 \hich\f39 +By downloading, installing, accessing, or using the software, you accept all terms in this agreement. If you do not accept them, do not download, install, access, or use the software. \'93\loch\f39 \hich\f39 You\'94\loch\f39 \hich\f39 or \'93\loch\f39 +\hich\f39 you\'94\loch\f39 means the individual who downloa\hich\af39\dbch\af31505\loch\f39 +ds, installs, accesses, or uses the software (and, if you represent a legal entity, it also means that entity, and you represent and warrant that you are authorized to enter into this agreement for that entity).}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 +\par }{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 If you comply with these license terms, you\hich\af39\dbch\af31505\loch\f39 have the rights below.}{\rtlch\fcs1 \ab\af1\afs20 \ltrch\fcs0 +\b\f1\fs20\insrsid8745415 +\par }\pard \ltrpar\ql \li0\ri0\sb200\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af1\afs20 \ltrch\fcs0 \b\f1\fs20\insrsid8745415 \hich\af1\dbch\af31505\loch\f1 1. }{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 +\hich\af39\dbch\af31505\loch\f39 INSTALLATION AND USE RIGHTS. +\par {\pntext\pard\plain\ltrpar \rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\f39\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 a.\tab}}\pard \ltrpar\ql \fi-270\li450\ri0\sa100\nowidctlpar\tx540\wrapdefault{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pnlcltr\pnb1 +\pnf39\pnstart1 {\pntxta .}}\faauto\ls1\rin0\lin450\itap0\pararsid6816407 {\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Installation and Use.}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 +\hich\af39\dbch\af31505\loch\f39 You may (i) install and use any number of copies of the software (only when installed using the accompanying software installer package) on your computer to design, develop, and \hich\af39\dbch\af31505\loch\f39 +test your programs that run specifically on a Microsoft Windows operating system, and that are intended for use solely in connection with }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid11871500 \hich\af39\dbch\af31505\loch\f39 the }{\rtlch\fcs1 +\af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Microsoft Kinect for Windows}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid4929922 \hich\af39\dbch\af31505\loch\f39 }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid3882049 \hich\af39\dbch\af31505\loch\f39 v}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid4929922 \hich\af39\dbch\af31505\loch\f39 2}{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 }{ +\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 sensor}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid4929922 \hich\af39\dbch\af31505\loch\f39 \hich\f39 (\'93\loch\f39 Kinect }{\rtlch\fcs1 \af39\afs20 +\ltrch\fcs0 \fs20\insrsid3882049 \hich\af39\dbch\af31505\loch\f39 v}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid4929922 \hich\af39\dbch\af31505\loch\f39 2}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid7679777 \hich\af39\dbch\af31505\loch\f39 + Sensor}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid4929922 \loch\af39\dbch\af31505\hich\f39 \'94\loch\f39 )}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 +, and its associated drivers and runtime software, and no other sensor }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid73750 \hich\af39\dbch\af31505\loch\f39 unless such sensor is supported by Microsoft }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 (}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid6969745 \hich\af39\dbch\af31505\loch\f39 collectively, the }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 +\loch\af39\dbch\af31505\hich\f39 \'93\loch\f39 Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid4929922 \hich\af39\dbch\af31505\loch\f39 V2}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 \hich\f39 + Applications\'94\loch\f39 ), and (ii) distribute your Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid3882049 \hich\af39\dbch\af31505\loch\f39 v}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid4929922 \hich\af39\dbch\af31505\loch\f39 2 }{ +\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Applications, subject to the terms in this agreement. +\par {\pntext\pard\plain\ltrpar \rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \b\f39\fs20\insrsid7695099 \hich\af39\dbch\af31505\loch\f39 b.\tab}}\pard \ltrpar\ql \fi-270\li450\ri0\sa100\nowidctlpar\tx540\wrapdefault{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pnlcltr\pnb1 +\pnf39\pnstart1 {\pntxta .}}\faauto\ls1\rin0\lin450\itap0 {\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \b\fs20\insrsid7695099 \hich\af39\dbch\af31505\loch\f39 Tele\hich\af39\dbch\af31505\loch\f39 metry Data Collection. }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid7695099 \hich\af39\dbch\af31505\loch\f39 When in use by you, the software will provide Microsoft with telemetry data }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\lang9\langfe1033\langnp9\insrsid7695099 \hich\af39\dbch\af31505\loch\f39 +(e.g. operating system, number of processors, graphic chipset, memory, device type, locale, time) regarding your installation and use. }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\lang9\langfe1033\langnp9\insrsid14225958 \hich\af39\dbch\af31505\loch\f39 +The data will not be u\hich\af39\dbch\af31505\loch\f39 sed to identify specific individuals. }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\lang9\langfe1033\langnp9\insrsid7695099 \hich\af39\dbch\af31505\loch\f39 }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\lang9\langfe1033\langnp9\insrsid8222967 \hich\af39\dbch\af31505\loch\f39 Microsoft will}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\lang9\langfe1033\langnp9\insrsid7695099 \hich\af39\dbch\af31505\loch\f39 use the Telemetry Data for product and }{ +\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\lang9\langfe1033\langnp9\insrsid91414 \hich\af39\dbch\af31505\loch\f39 service}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\lang9\langfe1033\langnp9\insrsid7695099 \hich\af39\dbch\af31505\loch\f39 improvements. +}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid7695099\charrsid7695099 +\par {\pntext\pard\plain\ltrpar \rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\f39\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 c.\tab}}\pard \ltrpar\ql \fi-270\li450\ri0\sa100\nowidctlpar\tx540\wrapdefault{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pnlcltr\pnb1 +\pnf39\pnstart1 {\pntxta .}}\faauto\ls1\rin0\lin450\itap0\pararsid6816407 {\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Included Microsoft Programs.}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 The software includes other Microsoft programs. The license terms with those programs apply to your use o\hich\af39\dbch\af31505\loch\f39 f them. +\par {\pntext\pard\plain\ltrpar \rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\f39\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 d.\tab}}\pard \ltrpar\ql \fi-270\li450\ri0\sa100\nowidctlpar\tx540\wrapdefault{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pnlcltr\pnb1 +\pnf39\pnstart1 {\pntxta .}}\faauto\ls1\rin0\lin450\itap0\pararsid6816407 {\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 No High Risk Use. WARNING:}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 The Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid3949644 \hich\af39\dbch\af31505\loch\f39 v}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid4929922 \hich\af39\dbch\af31505\loch\f39 2 }{ +\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid7679777 \hich\af39\dbch\af31505\loch\f39 S}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 ensor and the software are not fault-tolerant. The Kinect }{\rtlch\fcs1 +\af39\afs20 \ltrch\fcs0 \fs20\insrsid3949644 \hich\af39\dbch\af31505\loch\f39 v}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid4929922 \hich\af39\dbch\af31505\loch\f39 2}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid7679777 +\hich\af39\dbch\af31505\loch\f39 Sensor }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 and the software are not designed or intended for use with any program where failure or fault of any kind of the Kinect }{ +\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid3949644 \hich\af39\dbch\af31505\loch\f39 v}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid4929922 \hich\af39\dbch\af31505\loch\f39 2}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid7679777 +\hich\af39\dbch\af31505\loch\f39 Sensor}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid4929922 \hich\af39\dbch\af31505\loch\f39 }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 or soft +\hich\af39\dbch\af31505\loch\f39 \hich\f39 ware could lead to death or serious bodily injury of any person, or to severe physical or environmental damage (\'93\loch\f39 \hich\f39 High Risk Use\'94\loch\f39 +). You are not licensed to, and you agree not to, use, distribute or sublicense the use of the Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid11871500 \hich\af39\dbch\af31505\loch\f39 v2 }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Sensor and/or software in, or in conjunction with, High Risk Use. High Risk Use is STRICTLY PROHIBITED. }{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 +\hich\af39\dbch\af31505\loch\f39 High Risk Use includes, for example, the following: aircraft navigation and control of other modes of human mass transportation, nuclear or chemical f\hich\af39\dbch\af31505\loch\f39 acilities. }{\rtlch\fcs1 \ab\af1\afs20 +\ltrch\fcs0 \b\f1\fs20\insrsid8745415 +\par }\pard \ltrpar\ql \li0\ri0\sb200\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af1\afs20 \ltrch\fcs0 \b\f1\fs20\insrsid8745415 \hich\af1\dbch\af31505\loch\f1 2}{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 +\hich\af39\dbch\af31505\loch\f39 . ADDITIONAL LICENSING REQUIREMENTS AND/OR USE RIGHTS +\par }\pard \ltrpar\ql \fi-183\li363\ri0\sa100\nowidctlpar\tx363\wrapdefault\faauto\rin0\lin363\itap0 {\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 a.\tab Distributable Code}{\rtlch\fcs1 \af39\afs20 +\ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 . The software contains code that you are permitted to distribute solely in Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid3949644 \hich\af39\dbch\af31505\loch\f39 v}{ +\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid4929922 \hich\af39\dbch\af31505\loch\f39 2}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Applications if you comply with the terms below. +\par }\pard\plain \ltrpar\s3\ql \fi-357\li1077\ri0\sb120\sa120\nowidctlpar\tx1080\wrapdefault\faauto\outlinelevel2\rin0\lin1077\itap0 \rtlch\fcs1 \af39\afs24\alang1025 \ltrch\fcs0 +\fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 i.\tab Right to Use and \hich\af39\dbch\af31505\loch\f39 \hich\f39 +Distribute. The code and text files listed below are \'93\loch\f39 \hich\f39 Distributable Code.\'94 +\par }\pard\plain \ltrpar\ql \fi-358\li1435\ri0\sb120\sa120\nowidctlpar\tx1437\wrapdefault\faauto\rin0\lin1435\itap0 \rtlch\fcs1 \af39\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 { +\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\ul\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 REDIST.TXT Files}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 . You may copy and distribute the object code form of code listed in REDIST.TXT files}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid11871500 \hich\af39\dbch\af31505\loch\f39 + as part of your Kinect v2 Application}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 . +\par }\pard \ltrpar\ql \fi-358\li1435\ri0\sb120\sa120\nowidctlpar\wrapdefault\faauto\rin0\lin1435\itap0 {\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\ul\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Sample Code}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 . You may modify, copy \hich\af39\dbch\af31505\loch\f39 +and distribute the source and object code form of code in the Samples subdirectory}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid11871500 \hich\af39\dbch\af31505\loch\f39 as part of your Kinect v2 Application}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 +\f1\fs20\insrsid8745415 .}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\insrsid8745415 +\par }{\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\ul\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Third Party Distribution}{\rtlch\fcs1 \af39\afs20 +\ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 . You may permit distributors of your Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid3949644 \hich\af39\dbch\af31505\loch\f39 v2}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Applications to copy and distribute the Distributable Code a\hich\af39\dbch\af31505\loch\f39 s part of those Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid3949644 +\hich\af39\dbch\af31505\loch\f39 v}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid4929922 \hich\af39\dbch\af31505\loch\f39 2}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Applications. +\par {\listtext\pard\plain\ltrpar \s29 \rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \f3\fs20\insrsid5338358\charrsid11829074 \loch\af3\dbch\af31505\hich\f3 \'b7\tab}}\pard\plain \ltrpar\s29\ql \fi-360\li1440\ri0\nowidctlpar +\tx900\wrapdefault\faauto\ls7\rin0\lin1440\itap0\pararsid11829074\contextualspace \rtlch\fcs1 \af39\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\ul\insrsid5338358\charrsid11829074 \hich\af39\dbch\af31505\loch\f39 Third Party Programs}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid5338358\charrsid11829074 \hich\af39\dbch\af31505\loch\f39 +. This software may contain certain third-party programs. You agree that your use of them is governed by the license terms provided with those programs. +\par }\pard\plain \ltrpar\ql \li0\ri0\sa100\nowidctlpar\tx1512\wrapdefault\faauto\rin0\lin0\itap0\pararsid11829074 \rtlch\fcs1 \af39\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 { +\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8745415 +\par }\pard \ltrpar\ql \li720\ri0\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 ii. Distribution Requirements.}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 }{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 For any D\hich\af39\dbch\af31505\loch\f39 istributable Code you distribute, you must: }{\rtlch\fcs1 +\af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8745415 +\par }\pard \ltrpar\ql \fi-360\li1440\ri0\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin1440\itap0 {\rtlch\fcs1 \af10\afs20 \ltrch\fcs0 \f10\fs20\insrsid8745415 \loch\af10\dbch\af31505\hich\f10 \'a7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 add significant primary functionality to it in your Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid11871500 \hich\af39\dbch\af31505\loch\f39 v2}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Applications; +\par }\pard \ltrpar\ql \fi-360\li1440\ri0\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin1440\itap0\pararsid11829074 {\rtlch\fcs1 \af10\afs20 \ltrch\fcs0 \f10\fs20\insrsid8745415 \loch\af10\dbch\af31505\hich\f10 \'a7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 distribute Distributable Code included in a setup program only as part of that setup program without modification}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid10234499 +\hich\af39\dbch\af31505\loch\f39 ;}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid11808396 +\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \f10\fs20\insrsid14225958 \loch\af10\dbch\af31505\hich\f10 \'a7\tab}}\pard \ltrpar\ql \fi-360\li1440\ri0\sa100\nowidctlpar\wrapdefault\faauto\ls6\rin0\lin1440\itap0\pararsid11829074 { +\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid14225958 \hich\af39\dbch\af31505\loch\f39 c}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid13329978 \hich\af39\dbch\af31505\loch\f39 learly state in your Kinect V2 }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid3949644 \hich\af39\dbch\af31505\loch\f39 A}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid13329978 \hich\af39\dbch\af31505\loch\f39 pplication (as well as require your licensees to do so) }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid15495172 \hich\af39\dbch\af31505\loch\f39 a privacy statement}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid13329978 \hich\af39\dbch\af31505\loch\f39 + regarding the collection and use of customer data as well as the following statement regarding Microsoft\hich\f39 \rquote \loch\f39 s }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid91414 \hich\af39\dbch\af31505\loch\f39 collection and }{\rtlch\fcs1 +\af39\afs20 \ltrch\fcs0 \fs20\insrsid13329978 \hich\af39\dbch\af31505\loch\f39 use of customer data}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid10234499 \hich\af39\dbch\af31505\loch\f39 \hich\f39 : \'93}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\ul\insrsid10234499\charrsid11829074 \hich\af39\dbch\af31505\loch\f39 No\hich\af39\dbch\af31505\loch\f39 te}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid10234499 \hich\af39\dbch\af31505\loch\f39 : When using }{\rtlch\fcs1 \af39\afs20 +\ltrch\fcs0 \fs20\insrsid3949644 \hich\af39\dbch\af31505\loch\f39 the _________________(insert name of Your}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid10234499 \hich\af39\dbch\af31505\loch\f39 Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid3949644 \hich\af39\dbch\af31505\loch\f39 v}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid10234499 \hich\af39\dbch\af31505\loch\f39 2 Application}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid3949644 \hich\af39\dbch\af31505\loch\f39 )} +{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid11871500 \hich\af39\dbch\af31505\loch\f39 with a Kinect for Windows v2 Sensor}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid14225958 ,}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid10234499 +\hich\af39\dbch\af31505\loch\f39 }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\lang9\langfe1033\langnp9\insrsid10234499 \hich\af39\dbch\af31505\loch\f39 +Microsoft will collect telemetry data (e.g. operating system, number of processors, graphic chipset, memory, device type, locale, time) in\hich\af39\dbch\af31505\loch\f39 order to improve }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\lang9\langfe1033\langnp9\insrsid91414 \hich\af39\dbch\af31505\loch\f39 Microsoft products and services}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\lang9\langfe1033\langnp9\insrsid10234499 \hich\af39\dbch\af31505\loch\f39 \hich\f39 +. The data will not be used to identify specific individuals.\'94\loch\f39 }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid13329978\charrsid11871500 \hich\af39\dbch\af31505\loch\f39 +\par }\pard \ltrpar\ql \fi-360\li1440\ri0\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin1440\itap0 {\rtlch\fcs1 \af10\afs20 \ltrch\fcs0 \f10\fs20\insrsid8745415 \loch\af10\dbch\af31505\hich\f10 \'a7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 clearly state in marketing materials, documentation and other materials related to the Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid3949644 \hich\af39\dbch\af31505\loch\f39 v}{\rtlch\fcs1 +\af39\afs20 \ltrch\fcs0 \fs20\insrsid13329978 \hich\af39\dbch\af31505\loch\f39 2}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Application (e.g. on the webpages on whi\hich\af39\dbch\af31505\loch\f39 +ch the Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid13329978 \hich\af39\dbch\af31505\loch\f39 V2 }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Application is described or from which the Kinect }{ +\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid13329978 \hich\af39\dbch\af31505\loch\f39 V2}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 + Application may be downloaded or otherwise obtained), that it is intended for use only with the Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid13329978 \hich\af39\dbch\af31505\loch\f39 V2}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid16457108 \hich\af39\dbch\af31505\loch\f39 S}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 ensor; +\par }\pard \ltrpar\ql \fi-360\li1440\ri0\sb120\sa120\nowidctlpar\wrapdefault\faauto\rin0\lin1440\itap0 {\rtlch\fcs1 \af10\afs20 \ltrch\fcs0 \f10\fs20\insrsid8745415 \loch\af10\dbch\af31505\hich\f10 \'a7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 require }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid3949644 \hich\af39\dbch\af31505\loch\f39 licensees, }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 +\hich\af39\dbch\af31505\loch\f39 distributors and external end users to agree to }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid3949644 \hich\af39\dbch\af31505\loch\f39 license }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 +\hich\af39\dbch\af31505\loch\f39 terms that}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid3949644 \hich\af39\dbch\af31505\loch\f39 are as protective of Microsoft\hich\f39 \rquote \loch\f39 +s rights and interests in the Distributable Code as stated in this agreement; and }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\insrsid8745415 +\par }\pard \ltrpar\ql \fi-360\li1440\ri0\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin1440\itap0 {\rtlch\fcs1 \af10\afs20 \ltrch\fcs0 \f10\fs20\insrsid8745415 \loch\af10\dbch\af31505\hich\f10 \'a7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 display your valid copyright notice on your Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid3949644 \hich\af39\dbch\af31505\loch\f39 v}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid13329978 \hich\af39\dbch\af31505\loch\f39 2}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Applications}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8745415 . +\par }\pard\plain \ltrpar\s3\ql \fi-357\li1077\ri0\sb120\sa120\nowidctlpar\tx1077\tx1440\wrapdefault\faauto\outlinelevel2\rin0\lin1077\itap0 \rtlch\fcs1 \af39\afs24\alang1025 \ltrch\fcs0 +\fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 iii.\tab Distribution Restrictions. You may not: +\par }\pard\plain \ltrpar\ql \fi-358\li1435\ri0\sb120\sa120\nowidctlpar\tx1437\wrapdefault\faauto\rin0\lin1435\itap0 \rtlch\fcs1 \af39\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\af39\hich\af39\dbch\af31505\cgrid\langnp1033\langfenp1033 { +\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 alter\hich\af39\dbch\af31505\loch\f39 + any copyright, trademark or patent notice in the Distributable Code; +\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \f10\fs20\insrsid13329978 \loch\af10\dbch\af31505\hich\f10 \'a7\tab}}\pard \ltrpar\ql \fi-360\li1440\ri0\sb120\sa120\nowidctlpar +\tx1437\wrapdefault\faauto\ls2\rin0\lin1440\itap0\pararsid11829074 {\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid13329978 \hich\af39\dbch\af31505\loch\f39 +License the Microsoft Distributable Code in a manner inconsistent with the terms of this License. +\par }\pard \ltrpar\ql \fi-358\li1435\ri0\sb120\sa120\nowidctlpar\tx1437\wrapdefault\faauto\rin0\lin1435\itap0 {\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 use Microsoft\hich\f39 \rquote \loch\f39 s trademarks, including but not limited to Microsoft, Kinect and Window\hich\af39\dbch\af31505\loch\f39 s, in your Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid3949644 \hich\af39\dbch\af31505\loch\f39 v2}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Applications\hich\f39 \rquote \loch\f39 names or in a way that suggests your Kinect for }{\rtlch\fcs1 +\af39\afs20 \ltrch\fcs0 \fs20\insrsid3949644 \hich\af39\dbch\af31505\loch\f39 v2 }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Applications come from or are endorsed by Microsoft; +\par }\pard \ltrpar\ql \fi-358\li1435\ri0\sb120\sa120\nowidctlpar\wrapdefault\faauto\rin0\lin1435\itap0 {\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 distribute Distributable Code to run on a platform other than a Microsoft Windows operating system; +\par }\pard \ltrpar\ql \fi-360\li1437\ri0\sb120\sa120\nowidctlpar\wrapdefault\faauto\rin0\lin1437\itap0 {\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 include Distr\hich\af39\dbch\af31505\loch\f39 ibutable Code in malicious, obscene, deceptive or unlawful programs; +\par }\pard \ltrpar\ql \fi-358\li1435\ri0\sb120\sa120\nowidctlpar\tx1437\wrapdefault\faauto\rin0\lin1435\itap0 {\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 include Distributable Code for any programs designed or intended for High Risk Use; or}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\insrsid8745415 +\par }{\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 +modify or distribute the source code of any Distributable Code so that any part of it becomes su\hich\af39\dbch\af31505\loch\f39 +bject to an Excluded License. An Excluded License is one that requires, as a condition of use, modification or distribution, that}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8745415 +\par }\pard \ltrpar\ql \fi-357\li1792\ri0\sb120\sa120\nowidctlpar\tx1795\wrapdefault\faauto\rin0\lin1792\itap0 {\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 the code be disclosed or distributed in source code form; or +\par }\pard \ltrpar\ql \fi-357\li1792\ri0\sb120\sa120\nowidctlpar\wrapdefault\faauto\rin0\lin1792\itap0 {\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 others have the right to modify it. +\par }\pard \ltrpar\ql \li0\ri0\sb200\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af1\afs20 \ltrch\fcs0 \b\f1\fs20\insrsid8745415 \hich\af1\dbch\af31505\loch\f1 3. }{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 +\hich\af39\dbch\af31505\loch\f39 SCOPE OF LICENSE.}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 + The software is licensed, not sold. This agreement only gives you some rights to use the software. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you may use the software only as expressly permit +\hich\af39\dbch\af31505\loch\f39 t\hich\af39\dbch\af31505\loch\f39 ed in this agreement. In doing so, you must comply with any technical limitations in the software that only allow you to use it in certain ways. You may not:}{\rtlch\fcs1 \af1\afs20 +\ltrch\fcs0 \f1\fs20\insrsid8745415 +\par }\pard \ltrpar\ql \fi-360\li720\ri0\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\cf1\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 +\hich\af39\dbch\af31505\loch\f39 access or use, or attempt to access or use, features of the Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid3949644 \hich\af39\dbch\af31505\loch\f39 v2 }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 +\hich\af39\dbch\af31505\loch\f39 Sensor that are not \hich\af39\dbch\af31505\loch\f39 exposed or enabled by the software; +\par }{\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\cf1\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415\charrsid1909739 \hich\af39\dbch\af31505\loch\f39 distribute Kinect }{\rtlch\fcs1 +\af39\afs20 \ltrch\fcs0 \fs20\insrsid3949644\charrsid1909739 \hich\af39\dbch\af31505\loch\f39 v2}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415\charrsid1909739 \hich\af39\dbch\af31505\loch\f39 Applications for use with any sensor other than }{ +\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid11871500\charrsid1909739 \hich\af39\dbch\af31505\loch\f39 the }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415\charrsid1909739 \hich\af39\dbch\af31505\loch\f39 Kinect }{\rtlch\fcs1 \af39\afs20 +\ltrch\fcs0 \fs20\insrsid3949644\charrsid1909739 \hich\af39\dbch\af31505\loch\f39 v2}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid16457108\charrsid1909739 \hich\af39\dbch\af31505\loch\f39 Sensor}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid14225958 \hich\af39\dbch\af31505\loch\f39 or }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415\charrsid1909739 \hich\af39\dbch\af31505\loch\f39 its associated drivers and runtime software;}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8745415 +\par }\pard \ltrpar\ql \fi-360\li720\ri0\sb200\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\cf1\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 use the software or any Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid3949644 \hich\af39\dbch\af31505\loch\f39 v2}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 +\hich\af39\dbch\af31505\loch\f39 Applications in any High Risk Use; }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8745415 +\par }\pard \ltrpar\ql \fi-360\li720\ri0\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\cf1\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 +\hich\af39\dbch\af31505\loch\f39 work \hich\af39\dbch\af31505\loch\f39 around any technical limitations in the software; +\par }{\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\cf1\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 +reverse engineer, decompile, or disassemble any part of the software not provided in source code form, except and only to the extent that applicable law expressly permits, despite this limitation; +\par }\pard \ltrpar\ql \fi-360\li720\ri0\sb200\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\cf1\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 publi\hich\af39\dbch\af31505\loch\f39 sh the software for others to copy; +\par }\pard \ltrpar\ql \fi-360\li720\ri0\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\cf1\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 +\hich\af39\dbch\af31505\loch\f39 rent, lease, or lend the software; +\par }\pard \ltrpar\ql \fi-360\li720\ri0\sb200\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\cf1\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 transfer the software or this agreement to any third party; or +\par }\pard \ltrpar\ql \fi-360\li720\ri0\sb200\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid11829074 {\rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\cf1\insrsid8745415 \loch\af3\dbch\af31505\hich\f3 \'b7\tab }{\rtlch\fcs1 \af39\afs20 +\ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 use the software for commercial software hosting services.}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid8745415 +\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 4. REGULATORY COMPLIANCE. }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 You agree that your developmen\hich\af39\dbch\af31505\loch\f39 t, marketing, sales, and distribution of Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid3949644 +\hich\af39\dbch\af31505\loch\f39 v2}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 + Applications shall be in compliance with all applicable legal requirements, including compliance with the medical device regulatory requirements of the U.S. Federal Food, Drug, and Cosmetic Act and any ass\hich\af39\dbch\af31505\loch\f39 +ociated requirements, or similar laws, regulations, or policies in other countries or territories.\~ + To the extent required by law, you are solely responsible for obtaining or filing any approval, clearance, registration, permit, or other regulatory author\hich\af39\dbch\af31505\loch\f39 i\hich\af39\dbch\af31505\loch\f39 +zation and shall comply with the requirements of such authorization. +\par }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\cf19\insrsid8745415 +\par }{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 5. ACKNOWLEDGEMENT AND WAIVER. }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 +You acknowledge the software may allow you to control the Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid16457108 \hich\af39\dbch\af31505\loch\f39 v2 }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 +Sensor, which are mechanical hardware devices that include motors to move the device, \hich\af39\dbch\af31505\loch\f39 +a fan to cool it, and other mechanical components. Depending on how you elect to use the software, you could harm persons or damage or destroy the Kinect}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid2042763 \hich\af39\dbch\af31505\loch\f39 v2}{ +\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Sensor, products incorporating the Kinect}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid2042763 \hich\af39\dbch\af31505\loch\f39 v2}{\rtlch\fcs1 \af39\afs20 +\ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Sensor, or other property. In using the software, you must take steps to design and test your Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid2042763 +\hich\af39\dbch\af31505\loch\f39 v2 }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 +Applications to ensure that your applications do not present unreasonable risks of personal injury or death, property damage, or other losses. Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid2042763 \hich\af39\dbch\af31505\loch\f39 v +\hich\af39\dbch\af31505\loch\f39 2 }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 +Sensors utilize complex hardware and software technology that may not always function as intended. You must design your application so that any failure of a Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid2042763 +\hich\af39\dbch\af31505\loch\f39 v2 }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Sensor and/or the software does not cause personal injury or death, property damage, or\hich\af39\dbch\af31505\loch\f39 + other losses. If you choose to use the software, you assume all risk that your use of the Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid2042763 \hich\af39\dbch\af31505\loch\f39 v2 }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 +\hich\af39\dbch\af31505\loch\f39 Sensors and/or the software causes any harm or loss, including to the end users of your Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid2042763 \hich\af39\dbch\af31505\loch\f39 v2}{\rtlch\fcs1 \af39\afs20 +\ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Applications, and you agree to waive all claims against M\hich\af39\dbch\af31505\loch\f39 +icrosoft and its affiliates related to such use (including but not limited to any claim that a Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid2042763 \hich\af39\dbch\af31505\loch\f39 v2 }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Sensor or the software is defective) and to hold Microsoft and its affiliates harmless from such claims. +\par }\pard \ltrpar\ql \li0\ri0\sb200\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 6. INDEMNIFICATION. }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 You agree to indemnify, \hich\af39\dbch\af31505\loch\f39 defend, and hold harmless Microsoft and its affiliates from any claims, including attorneys\hich\f39 \rquote \loch\f39 + fees, related to the distribution or use of your Kinect }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid2042763 \hich\af39\dbch\af31505\loch\f39 v2}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 + Applications. +\par }{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 7. BACKUP COPY.}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 + You may make one backup copy of the software. You may use it only to reins\hich\af39\dbch\af31505\loch\f39 tall the software. +\par }{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 8. DOCUMENTATION.}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 Any person }{\rtlch\fcs1 \af39\afs20 +\ltrch\fcs0 \fs20\insrsid1909739 \hich\af39\dbch\af31505\loch\f39 who }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 +has valid access to your computer or internal network may copy and use the documentation for your internal, reference purposes. +\par }\pard \ltrpar\ql \fi-360\li360\ri0\sb200\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 9. SUPPORT SERVICES.}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 \hich\f39 Because this software is \'93\loch\f39 \hich\f39 as is,\'94\loch\f39 we may not provide\hich\af39\dbch\af31505\loch\f39 support services for it. +\par }\pard \ltrpar\ql \fi-360\li360\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 10.}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 +\hich\af39\dbch\af31505\loch\f39 }{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 EXPORT RESTRICTIONS.}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 + The software is subject to United States export laws and regulations. You must comply with all domestic and international export laws and regulations that apply to the software. These laws include restrict\hich\af39\dbch\af31505\loch\f39 +ions on destinations, end users, and end use. For additional information, see }{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\ul\cf2\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 www.microsoft.com/exporting}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 .}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\ul\insrsid8745415 +\par }{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 11. ENTIRE AGREEMENT.}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 + This agreement, and the terms for supplements, updates, Internet-based services and support services that you use, are the enti\hich\af39\dbch\af31505\loch\f39 re agreement for the software and support services. +\par }{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 12. APPLICABLE LAW. +\par }\pard \ltrpar\ql \li360\ri0\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 a. United States.}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 + If you acquired the software in the United States, Washington state law governs the interpretation of this agreement and applies to claims for breach of it, regardless of conflict of laws principles. The laws of the state where you live govern all other +\hich\af39\dbch\af31505\loch\f39 c\hich\af39\dbch\af31505\loch\f39 laims, including claims under state consumer protection laws, unfair competition laws, and in tort. +\par }{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 b. Outside the United States.}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 + If you acquired the software in any other country, the laws of that country apply. +\par }\pard \ltrpar\ql \fi-360\li360\ri0\sb200\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 13. LEGAL EFFECT.}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 +\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 This agreement describes \hich\af39\dbch\af31505\loch\f39 +certain legal rights. You may have other rights under the laws of your state, province or country. This agreement does not change your rights under the laws of your state, province or country if the laws of your state, province or country do not permit it +\hich\af39\dbch\af31505\loch\f39 \hich\af39\dbch\af31505\loch\f39 to do so. +\par }{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 \hich\f39 14. DISCLAIMER OF WARRANTY. The software is licensed \'93\loch\f39 \hich\f39 as-is.\'94\loch\f39 + You bear all risk of using it. Microsoft gives no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws that this agreement cannot\hich\af39\dbch\af31505\loch\f39 + change. To the extent permitted under your local laws, Microsoft excludes the implied warranties of merchantability, fitness for a particular purpose, and non-infringement.}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 +\par }{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 15. LIMITATION ON AND EXCLUSION OF REMEDIES AND DAMAGES. You can recover from Micr\hich\af39\dbch\af31505\loch\f39 +osoft and its suppliers only direct damages up to U.S. $5.00. You cannot recover any other damages, including consequential, lost profits, special, indirect or incidental damages.}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 +\par }\pard \ltrpar\ql \li360\ri0\sa100\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 This limitation applies to +\par }{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 a.}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 anything related to the software, services, co +\hich\af39\dbch\af31505\loch\f39 ntent (including code) on third party Internet sites, or third party programs; and +\par }{\rtlch\fcs1 \ab\af39\afs20 \ltrch\fcs0 \b\fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 b.}{\rtlch\fcs1 \af39\afs20 \ltrch\fcs0 \fs20\insrsid8745415 \hich\af39\dbch\af31505\loch\f39 + claims for breach of contract; breach of warranty, guarantee, or condition; strict liability, negligence, or other tort, to the extent permitted by applicable law. +\par \hich\af39\dbch\af31505\loch\f39 It als\hich\af39\dbch\af31505\loch\f39 +o applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your state, province or country may not allow the exclusion or limitation of incidental, consequenti +\hich\af39\dbch\af31505\loch\f39 a\hich\af39\dbch\af31505\loch\f39 l, or other damages. +\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a +9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad +5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6 +b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0 +0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6 +a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f +c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512 +0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462 +a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865 +6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b +4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b +4757e8d3f729e245eb2b260a0238fd010000ffff0300504b030414000600080000002100aa5225dfc60600008b1a0000160000007468656d652f7468656d652f +7468656d65312e786d6cec595d8bdb46147d2ff43f08bd3bfe92fcb1c41b6cd9ceb6d94d42eca4e4716c8fadc98e344633de8d0981923c160aa569e943037deb +43691b48a02fe9afd936a54d217fa17746b63c638fbb9b2585a5640d8b343af7ce997bafce1d4997afdc8fa87384134e58dc708b970aae83e3211b9178d2706f +f7bbb99aeb7081e211a22cc60d778eb97b65f7c30f2ea31d11e2083b601ff31dd4704321a63bf93c1fc230e297d814c7706dcc920809384d26f951828ec16f44 +f3a542a1928f10895d274611b8bd311e932176fad2a5bbbb74dea1701a0b2e078634e949d7d8b050d8d1615122f89c0734718e106db830cf881df7f17de13a14 +7101171a6e41fdb9f9ddcb79b4b330a2628bad66d7557f0bbb85c1e8b0a4e64c26836c52cff3bd4a33f3af00546ce23ad54ea553c9fc29001a0e61a52917dda7 +dfaab7dafe02ab81d2438bef76b55d2e1a78cd7f798373d3973f03af40a97f6f03dfed06104503af4029dedfc07b5eb51478065e81527c65035f2d34db5ed5c0 +2b5048497cb8812ef89572b05c6d061933ba6785d77daf5b2d2d9caf50500d5975c929c62c16db6a2d42f758d2058004522448ec88f9148fd110aa3840940c12 +e2ec93490885374531e3305c2815ba8532fc973f4f1da988a01d8c346bc90b98f08d21c9c7e1c3844c45c3fd18bcba1ae4cdcb1fdfbc7cee9c3c7a71f2e89793 +c78f4f1efd9c3a32acf6503cd1ad5e7fffc5df4f3f75fe7afeddeb275fd9f15cc7fffed367bffdfaa51d082b5d85e0d5d7cffe78f1ecd5379ffff9c3130bbc99 +a0810eef930873e73a3e766eb10816a6426032c783e4ed2cfa2122ba45339e701423398bc57f478406fafa1c5164c1b5b019c13b09488c0d787576cf20dc0b93 +9920168fd7c2c8001e30465b2cb146e19a9c4b0b737f164fec9327331d770ba123dbdc018a8dfc766653d05662731984d8a07993a258a0098eb170e4357688b1 +6575770931e27a408609e36c2c9cbbc46921620d499f0c8c6a5a19ed9108f232b711847c1bb139b8e3b418b5adba8d8f4c24dc15885ac8f73135c27815cd048a +6c2efb28a27ac0f791086d247bf364a8e33a5c40a6279832a733c29cdb6c6e24b05e2de9d7405eec693fa0f3c84426821cda7cee23c674649b1d06218aa6366c +8fc4a18efd881f428922e7261336f80133ef10790e7940f1d674df21d848f7e96a701b9455a7b42a107965965872791533a37e7b733a4658490d08bfa1e71189 +4f15f73559f7ff5b5907217df5ed53cbaa2eaaa0371362bda3f6d6647c1b6e5dbc03968cc8c5d7ee369ac53731dc2e9b0decbd74bf976ef77f2fdddbeee7772f +d82b8d06f9965bc574abae36eed1d67dfb9850da13738af7b9daba73e84ca32e0c4a3bf5cc8ab3e7b8690887f24e86090cdc2441cac64998f88488b017a229ec +ef8bae7432e10bd713ee4c19876dbf1ab6fa96783a8b0ed8287d5c2d16e5a3692a1e1c89d578c1cfc6e15143a4e84a75f50896b9576c27ea51794940dabe0d09 +6d329344d942a2ba1c9441520fe610340b09b5b277c2a26e615193ee97a9da6001d4b2acc0d6c9810d57c3f53d30012378a242148f649ed2542fb3ab92f92e33 +bd2d984605c03e625901ab4cd725d7adcb93ab4b4bed0c99364868e566925091513d8c87688417d52947cf42e36d735d5fa5d4a02743a1e683d25ad1a8d6fe8d +c579730d76ebda40635d2968ec1c37dc4ad9879219a269c31dc3633f1c4653a81d2eb7bc884ee0ddd95024e90d7f1e6599265cb4110fd3802bd149d520220227 +0e2551c395cbcfd24063a5218a5bb104827061c9d541562e1a3948ba99643c1ee3a1d0d3ae8dc848a7a7a0f0a95658af2af3f383a5259b41ba7be1e8d819d059 +720b4189f9d5a20ce0887078fb534ca33922f03a3313b255fdad35a685eceaef13550da5e3884e43b4e828ba98a77025e5191d7596c5403b5bac1902aa8564d1 +080713d960f5a01add34eb1a2987ad5df7742319394d34573dd35015d935ed2a66ccb06c036bb13c5f93d7582d430c9aa677f854bad725b7bed4bab57d42d625 +20e059fc2c5df70c0d41a3b69acca026196fcab0d4ecc5a8d93b960b3c85da599a84a6fa95a5dbb5b8653dc23a1d0c9eabf383dd7ad5c2d078b9af549156df3d +f44f136c700fc4a30d2f81675470954af8f09020d810f5d49e24950db845ee8bc5ad0147ce2c210df741c16f7a41c90f72859adfc97965af90abf9cd72aee9fb +e562c72f16daadd243682c228c8a7efacda50bafa2e87cf1e5458d6f7c7d89966fdb2e0d599467eaeb4a5e11575f5f8aa5ed5f5f1c02a2f3a052ead6cbf55625 +572f37bb39afddaae5ea41a5956b57826abbdb0efc5abdfbd0758e14d86b9603afd2a9e52ac520c8799582a45fabe7aa5ea9d4f4aacd5ac76b3e5c6c6360e5a9 +7c2c6201e155bc76ff010000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d652f7468656d652f5f72656c732f +7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d363f2451eced0dae2c082e8761be +9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e3198720e274a939cd08a54f980 +ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d9850528a2c6cce0239baa4c04ca5b +babac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000001c0200001300000000000000000000000000000000005b436f6e74656e +745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000000000000000000000300100005f72656c732f +2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c00000000000000000000000000190200007468656d652f7468656d652f74 +68656d654d616e616765722e786d6c504b01022d0014000600080000002100aa5225dfc60600008b1a00001600000000000000000000000000d6020000746865 +6d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b0100002700000000000000000000000000d00900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000cb0a00000000} +{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d +617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169 +6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363 +656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e} +{\*\latentstyles\lsdstimax371\lsdlockeddef0\lsdsemihiddendef0\lsdunhideuseddef0\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;\lsdqformat1 \lsdlocked0 heading 1;\lsdqformat1 \lsdlocked0 heading 2; +\lsdqformat1 \lsdlocked0 heading 3;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 7; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 9;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 1;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 2; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 3;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 4;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 5; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 6;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 7;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 8; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Indent;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation text; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 header;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footer;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index heading;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority35 \lsdlocked0 caption; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of figures;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope return;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote reference; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 line number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 page number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote reference; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of authorities;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 macro;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 toa heading; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 5;\lsdqformat1 \lsdpriority10 \lsdlocked0 Title; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Closing;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Signature;\lsdsemihidden1 \lsdunhideused1 \lsdpriority1 \lsdlocked0 Default Paragraph Font;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Message Header;\lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Salutation;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Date;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Note Heading;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Block Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 FollowedHyperlink; +\lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;\lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Document Map;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Plain Text; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 E-mail Signature;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Top of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Bottom of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal (Web); +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Acronym;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Cite;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Code; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Definition;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Keyboard;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Preformatted;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Sample; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Typewriter;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Variable;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Table;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation subject; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 No List;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 1; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 1; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 1; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 5; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 1; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 5; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 1; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Contemporary;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Elegant; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Professional;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 1; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Balloon Text;\lsdpriority39 \lsdlocked0 Table Grid; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Theme;\lsdsemihidden1 \lsdlocked0 Placeholder Text;\lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdpriority60 \lsdlocked0 Light Shading;\lsdpriority61 \lsdlocked0 Light List; +\lsdpriority62 \lsdlocked0 Light Grid;\lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdpriority64 \lsdlocked0 Medium Shading 2;\lsdpriority65 \lsdlocked0 Medium List 1;\lsdpriority66 \lsdlocked0 Medium List 2;\lsdpriority67 \lsdlocked0 Medium Grid 1; +\lsdpriority68 \lsdlocked0 Medium Grid 2;\lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdpriority70 \lsdlocked0 Dark List;\lsdpriority71 \lsdlocked0 Colorful Shading;\lsdpriority72 \lsdlocked0 Colorful List;\lsdpriority73 \lsdlocked0 Colorful Grid; +\lsdpriority60 \lsdlocked0 Light Shading Accent 1;\lsdpriority61 \lsdlocked0 Light List Accent 1;\lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1; +\lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdsemihidden1 \lsdlocked0 Revision;\lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote; +\lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdpriority70 \lsdlocked0 Dark List Accent 1; +\lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;\lsdpriority72 \lsdlocked0 Colorful List Accent 1;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdpriority60 \lsdlocked0 Light Shading Accent 2;\lsdpriority61 \lsdlocked0 Light List Accent 2; +\lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 2; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;\lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 2; +\lsdpriority72 \lsdlocked0 Colorful List Accent 2;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 2;\lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdpriority61 \lsdlocked0 Light List Accent 3;\lsdpriority62 \lsdlocked0 Light Grid Accent 3; +\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 3; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;\lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 3; +\lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;\lsdpriority60 \lsdlocked0 Light Shading Accent 4;\lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdpriority62 \lsdlocked0 Light Grid Accent 4; +\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 4;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 4; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdpriority70 \lsdlocked0 Dark List Accent 4;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 4; +\lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdpriority60 \lsdlocked0 Light Shading Accent 5;\lsdpriority61 \lsdlocked0 Light List Accent 5;\lsdpriority62 \lsdlocked0 Light Grid Accent 5; +\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 5; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;\lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 5; +\lsdpriority72 \lsdlocked0 Colorful List Accent 5;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdpriority61 \lsdlocked0 Light List Accent 6;\lsdpriority62 \lsdlocked0 Light Grid Accent 6; +\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 6; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdpriority70 \lsdlocked0 Dark List Accent 6;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 6; +\lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;\lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis; +\lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;\lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdsemihidden1 \lsdunhideused1 \lsdpriority37 \lsdlocked0 Bibliography; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;\lsdpriority41 \lsdlocked0 Plain Table 1;\lsdpriority42 \lsdlocked0 Plain Table 2;\lsdpriority43 \lsdlocked0 Plain Table 3;\lsdpriority44 \lsdlocked0 Plain Table 4; +\lsdpriority45 \lsdlocked0 Plain Table 5;\lsdpriority40 \lsdlocked0 Grid Table Light;\lsdpriority46 \lsdlocked0 Grid Table 1 Light;\lsdpriority47 \lsdlocked0 Grid Table 2;\lsdpriority48 \lsdlocked0 Grid Table 3;\lsdpriority49 \lsdlocked0 Grid Table 4; +\lsdpriority50 \lsdlocked0 Grid Table 5 Dark;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 1; +\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 1;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 1;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 1; +\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 1;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 2;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 2; +\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 2;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 2; +\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 3;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 3;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 3;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 3; +\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 3;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 4; +\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 4;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 4;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 4;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 4; +\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 4;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 5; +\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 5;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 5;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 5; +\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 5;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 6;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 6; +\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 6;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 6; +\lsdpriority46 \lsdlocked0 List Table 1 Light;\lsdpriority47 \lsdlocked0 List Table 2;\lsdpriority48 \lsdlocked0 List Table 3;\lsdpriority49 \lsdlocked0 List Table 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark; +\lsdpriority51 \lsdlocked0 List Table 6 Colorful;\lsdpriority52 \lsdlocked0 List Table 7 Colorful;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 List Table 2 Accent 1;\lsdpriority48 \lsdlocked0 List Table 3 Accent 1; +\lsdpriority49 \lsdlocked0 List Table 4 Accent 1;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 1;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 1; +\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 List Table 2 Accent 2;\lsdpriority48 \lsdlocked0 List Table 3 Accent 2;\lsdpriority49 \lsdlocked0 List Table 4 Accent 2; +\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 2;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 3; +\lsdpriority47 \lsdlocked0 List Table 2 Accent 3;\lsdpriority48 \lsdlocked0 List Table 3 Accent 3;\lsdpriority49 \lsdlocked0 List Table 4 Accent 3;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 3; +\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 4;\lsdpriority47 \lsdlocked0 List Table 2 Accent 4; +\lsdpriority48 \lsdlocked0 List Table 3 Accent 4;\lsdpriority49 \lsdlocked0 List Table 4 Accent 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 4;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 4; +\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 List Table 2 Accent 5;\lsdpriority48 \lsdlocked0 List Table 3 Accent 5; +\lsdpriority49 \lsdlocked0 List Table 4 Accent 5;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 5;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 5; +\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 List Table 2 Accent 6;\lsdpriority48 \lsdlocked0 List Table 3 Accent 6;\lsdpriority49 \lsdlocked0 List Table 4 Accent 6; +\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 6;}}{\*\datastore 010500000200000018000000 +4d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000 +d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e5000000000000000000000000f062 +dc4024c2cf01feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000105000000000000}} \ No newline at end of file diff --git a/Assets/Azure/SDK/KinectSDK2.0/KinectSDK2.0_License.rtf.meta b/Assets/Azure/SDK/KinectSDK2.0/KinectSDK2.0_License.rtf.meta new file mode 100644 index 0000000..dfa4999 --- /dev/null +++ b/Assets/Azure/SDK/KinectSDK2.0/KinectSDK2.0_License.rtf.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 490c65bdc77ec304bb837ca91a25d1f5 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/SDK/KinectSDK2.0/Plugins.meta b/Assets/Azure/SDK/KinectSDK2.0/Plugins.meta new file mode 100644 index 0000000..d8a011f --- /dev/null +++ b/Assets/Azure/SDK/KinectSDK2.0/Plugins.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b9ad537c3792793438fa20e79a089044 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/SDK/KinectSDK2.0/Plugins/Kinect2UnityWrapper.dll.meta b/Assets/Azure/SDK/KinectSDK2.0/Plugins/Kinect2UnityWrapper.dll.meta new file mode 100644 index 0000000..9f03e57 --- /dev/null +++ b/Assets/Azure/SDK/KinectSDK2.0/Plugins/Kinect2UnityWrapper.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 8e37cc8ed8fcef74895483595073f19b +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/SDK/KinectSDK2.0/Plugins/x86.meta b/Assets/Azure/SDK/KinectSDK2.0/Plugins/x86.meta new file mode 100644 index 0000000..f8d2449 --- /dev/null +++ b/Assets/Azure/SDK/KinectSDK2.0/Plugins/x86.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 813e6c158fa38c348820862a94ac05ee +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/SDK/KinectSDK2.0/Plugins/x86/KinectUnityAddin.dll.meta b/Assets/Azure/SDK/KinectSDK2.0/Plugins/x86/KinectUnityAddin.dll.meta new file mode 100644 index 0000000..4d065e1 --- /dev/null +++ b/Assets/Azure/SDK/KinectSDK2.0/Plugins/x86/KinectUnityAddin.dll.meta @@ -0,0 +1,107 @@ +fileFormatVersion: 2 +guid: b65facb0c9c68b647b8ca7435b5f35c4 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + '': Any + second: + enabled: 0 + settings: + Exclude Android: 1 + Exclude Editor: 0 + Exclude Linux: 0 + Exclude Linux64: 0 + Exclude LinuxUniversal: 0 + Exclude OSXUniversal: 0 + Exclude Win: 0 + Exclude Win64: 0 + Exclude WindowsStoreApps: 1 + - first: + Android: Android + second: + enabled: 0 + settings: + CPU: ARMv7 + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + CPU: x86 + DefaultValueInitialized: true + OS: AnyOS + - first: + Facebook: Win + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Facebook: Win64 + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Linux + second: + enabled: 1 + settings: + CPU: x86 + - first: + Standalone: Linux64 + second: + enabled: 1 + settings: + CPU: None + - first: + Standalone: LinuxUniversal + second: + enabled: 1 + settings: + CPU: x86 + - first: + Standalone: OSXUniversal + second: + enabled: 1 + settings: + CPU: x86 + - first: + Standalone: Win + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Win64 + second: + enabled: 1 + settings: + CPU: None + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + DontProcess: false + PlaceholderPath: + SDK: AnySDK + ScriptingBackend: AnyScriptingBackend + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/SDK/KinectSDK2.0/Plugins/x86_64.meta b/Assets/Azure/SDK/KinectSDK2.0/Plugins/x86_64.meta new file mode 100644 index 0000000..24c7071 --- /dev/null +++ b/Assets/Azure/SDK/KinectSDK2.0/Plugins/x86_64.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 63ee782c0a490d047a52b9aa6415a3bc +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/SDK/KinectSDK2.0/Plugins/x86_64/KinectUnityAddin.dll.meta b/Assets/Azure/SDK/KinectSDK2.0/Plugins/x86_64/KinectUnityAddin.dll.meta new file mode 100644 index 0000000..fdceea0 --- /dev/null +++ b/Assets/Azure/SDK/KinectSDK2.0/Plugins/x86_64/KinectUnityAddin.dll.meta @@ -0,0 +1,107 @@ +fileFormatVersion: 2 +guid: 82e143d16729051459ae6a54b37e9eab +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + '': Any + second: + enabled: 0 + settings: + Exclude Android: 1 + Exclude Editor: 0 + Exclude Linux: 0 + Exclude Linux64: 0 + Exclude LinuxUniversal: 0 + Exclude OSXUniversal: 0 + Exclude Win: 0 + Exclude Win64: 0 + Exclude WindowsStoreApps: 1 + - 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: AnyOS + - first: + Facebook: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Facebook: Win64 + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Linux + second: + enabled: 1 + settings: + CPU: None + - first: + Standalone: Linux64 + second: + enabled: 1 + settings: + CPU: x86_64 + - first: + Standalone: LinuxUniversal + second: + enabled: 1 + settings: + CPU: x86_64 + - first: + Standalone: OSXUniversal + second: + enabled: 1 + settings: + CPU: x86_64 + - first: + Standalone: Win + second: + enabled: 1 + settings: + CPU: None + - first: + Standalone: Win64 + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + DontProcess: false + PlaceholderPath: + SDK: AnySDK + ScriptingBackend: AnyScriptingBackend + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/SDK/RealSenseSDK2.0.meta b/Assets/Azure/SDK/RealSenseSDK2.0.meta new file mode 100644 index 0000000..4110c5d --- /dev/null +++ b/Assets/Azure/SDK/RealSenseSDK2.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 842bedb6e90e3f9488f0fbda9826325f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/SDK/RealSenseSDK2.0/Plugins.meta b/Assets/Azure/SDK/RealSenseSDK2.0/Plugins.meta new file mode 100644 index 0000000..a3d646d --- /dev/null +++ b/Assets/Azure/SDK/RealSenseSDK2.0/Plugins.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4150e9beddee5464498abc36a915db1e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/SDK/RealSenseSDK2.0/Plugins/Intel.RealSense.dll.meta b/Assets/Azure/SDK/RealSenseSDK2.0/Plugins/Intel.RealSense.dll.meta new file mode 100644 index 0000000..bf26509 --- /dev/null +++ b/Assets/Azure/SDK/RealSenseSDK2.0/Plugins/Intel.RealSense.dll.meta @@ -0,0 +1,30 @@ +fileFormatVersion: 2 +guid: b609c398f3a0e724e834caa5fffd4079 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + isOverridable: 0 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/SDK/RealSenseSDK2.0/Plugins/librealsense2.so b/Assets/Azure/SDK/RealSenseSDK2.0/Plugins/librealsense2.so new file mode 100644 index 0000000..25299ad Binary files /dev/null and b/Assets/Azure/SDK/RealSenseSDK2.0/Plugins/librealsense2.so differ diff --git a/Assets/Azure/SDK/RealSenseSDK2.0/Plugins/librealsense2.so.meta b/Assets/Azure/SDK/RealSenseSDK2.0/Plugins/librealsense2.so.meta new file mode 100644 index 0000000..5b155b3 --- /dev/null +++ b/Assets/Azure/SDK/RealSenseSDK2.0/Plugins/librealsense2.so.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 6346281598419663e8520b6cd286964d +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + platformData: + - first: + '': Any + second: + enabled: 0 + settings: + Exclude Editor: 0 + Exclude Linux: 1 + Exclude Linux64: 0 + Exclude LinuxUniversal: 0 + Exclude OSXUniversal: 1 + Exclude Win: 0 + Exclude Win64: 0 + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + CPU: x86_64 + DefaultValueInitialized: true + OS: Linux + - 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: None + - first: + Standalone: Linux64 + second: + enabled: 1 + settings: + CPU: x86_64 + - first: + Standalone: LinuxUniversal + second: + enabled: 1 + settings: + CPU: x86_64 + - first: + Standalone: OSXUniversal + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Win64 + second: + enabled: 1 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/SDK/RealSenseSDK2.0/Plugins/realsense2.bundle.meta b/Assets/Azure/SDK/RealSenseSDK2.0/Plugins/realsense2.bundle.meta new file mode 100644 index 0000000..bc9f405 --- /dev/null +++ b/Assets/Azure/SDK/RealSenseSDK2.0/Plugins/realsense2.bundle.meta @@ -0,0 +1,84 @@ +fileFormatVersion: 2 +guid: 178ddcc18b6d24081a08b8335957bf19 +folderAsset: yes +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + '': Any + second: + enabled: 0 + settings: + Exclude Editor: 0 + Exclude Linux: 1 + Exclude Linux64: 1 + Exclude LinuxUniversal: 1 + Exclude OSXUniversal: 0 + Exclude Win: 1 + Exclude Win64: 1 + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + CPU: x86_64 + 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: 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/Azure/SDK/RealSenseSDK2.0/Plugins/realsense2.bundle/Contents.meta b/Assets/Azure/SDK/RealSenseSDK2.0/Plugins/realsense2.bundle/Contents.meta new file mode 100644 index 0000000..a2dffdc --- /dev/null +++ b/Assets/Azure/SDK/RealSenseSDK2.0/Plugins/realsense2.bundle/Contents.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b9cfc7d3c928d4c78baeaba98920e16e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/SDK/RealSenseSDK2.0/Plugins/realsense2.bundle/Contents/MacOS.meta b/Assets/Azure/SDK/RealSenseSDK2.0/Plugins/realsense2.bundle/Contents/MacOS.meta new file mode 100644 index 0000000..bca14a0 --- /dev/null +++ b/Assets/Azure/SDK/RealSenseSDK2.0/Plugins/realsense2.bundle/Contents/MacOS.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3d1f7e6ffe44141939942d9f28cd181d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/SDK/RealSenseSDK2.0/Plugins/realsense2.bundle/Contents/MacOS/realsense2 b/Assets/Azure/SDK/RealSenseSDK2.0/Plugins/realsense2.bundle/Contents/MacOS/realsense2 new file mode 100644 index 0000000..ad93d85 Binary files /dev/null and b/Assets/Azure/SDK/RealSenseSDK2.0/Plugins/realsense2.bundle/Contents/MacOS/realsense2 differ diff --git a/Assets/Azure/SDK/RealSenseSDK2.0/Plugins/realsense2.bundle/Contents/MacOS/realsense2.meta b/Assets/Azure/SDK/RealSenseSDK2.0/Plugins/realsense2.bundle/Contents/MacOS/realsense2.meta new file mode 100644 index 0000000..fb09390 --- /dev/null +++ b/Assets/Azure/SDK/RealSenseSDK2.0/Plugins/realsense2.bundle/Contents/MacOS/realsense2.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f0d30086ca75647548f080dce605e0d9 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/SDK/RealSenseSDK2.0/Plugins/realsense2.dll.meta b/Assets/Azure/SDK/RealSenseSDK2.0/Plugins/realsense2.dll.meta new file mode 100644 index 0000000..b36aad9 --- /dev/null +++ b/Assets/Azure/SDK/RealSenseSDK2.0/Plugins/realsense2.dll.meta @@ -0,0 +1,24 @@ +fileFormatVersion: 2 +guid: 970aab9f871cb0a4697cf99cd31e4428 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + isOverridable: 0 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Azure/SDK/RealSenseSDK2.0/RealSenseSDK_License.txt b/Assets/Azure/SDK/RealSenseSDK2.0/RealSenseSDK_License.txt new file mode 100644 index 0000000..c85b118 --- /dev/null +++ b/Assets/Azure/SDK/RealSenseSDK2.0/RealSenseSDK_License.txt @@ -0,0 +1,203 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2017 Intel Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this project except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + 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. + diff --git a/Assets/Azure/SDK/RealSenseSDK2.0/RealSenseSDK_License.txt.meta b/Assets/Azure/SDK/RealSenseSDK2.0/RealSenseSDK_License.txt.meta new file mode 100644 index 0000000..08f1c96 --- /dev/null +++ b/Assets/Azure/SDK/RealSenseSDK2.0/RealSenseSDK_License.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 016cffcd5b1951c438991ca44dab28ce +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Barracuda.meta b/Assets/Barracuda.meta new file mode 100644 index 0000000..46ca8a3 --- /dev/null +++ b/Assets/Barracuda.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a34b8b7e6ff09ef4cac7615c6e809b7c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Barracuda/Configuration.meta b/Assets/Barracuda/Configuration.meta new file mode 100644 index 0000000..04d5773 --- /dev/null +++ b/Assets/Barracuda/Configuration.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8854dd98ebf744f46a29f8f440eec41f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Barracuda/Configuration/Volume Profile.asset b/Assets/Barracuda/Configuration/Volume Profile.asset new file mode 100644 index 0000000..5be853e --- /dev/null +++ b/Assets/Barracuda/Configuration/Volume Profile.asset @@ -0,0 +1,254 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-3767038684690647511 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: 0d7593b3a9277ac4696b20006c21dde2, type: 3} + m_Name: VisualEnvironment + m_EditorClassIdentifier: + active: 1 + m_AdvancedMode: 0 + skyType: + m_OverrideState: 1 + m_Value: 0 + skyAmbientMode: + m_OverrideState: 0 + m_Value: 0 + fogType: + m_OverrideState: 0 + m_Value: 0 +--- !u!114 &-1619059759768125946 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: 24f077503be6ae942a1e1245dbd53ea9, type: 3} + m_Name: Bloom + m_EditorClassIdentifier: + active: 0 + m_AdvancedMode: 0 + quality: + m_OverrideState: 0 + m_Value: 1 + threshold: + m_OverrideState: 0 + m_Value: 0 + min: 0 + intensity: + m_OverrideState: 1 + m_Value: 0.2 + min: 0 + max: 1 + scatter: + m_OverrideState: 0 + m_Value: 0.7 + min: 0 + max: 1 + tint: + m_OverrideState: 0 + m_Value: {r: 1, g: 1, b: 1, a: 1} + hdr: 0 + showAlpha: 0 + showEyeDropper: 1 + dirtTexture: + m_OverrideState: 0 + m_Value: {fileID: 0} + dirtIntensity: + m_OverrideState: 0 + m_Value: 0 + min: 0 + anamorphic: + m_OverrideState: 0 + m_Value: 1 + m_Resolution: + m_OverrideState: 0 + m_Value: 2 + m_HighQualityPrefiltering: + m_OverrideState: 0 + m_Value: 0 + m_HighQualityFiltering: + m_OverrideState: 0 + m_Value: 1 +--- !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: d7fd9488000d3734a9e00ee676215985, type: 3} + m_Name: Volume Profile + m_EditorClassIdentifier: + components: + - {fileID: 8172179610224027075} + - {fileID: -3767038684690647511} + - {fileID: -1619059759768125946} +--- !u!114 &8172179610224027075 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: 2d08ce26990eb1a4a9177b860541e702, type: 3} + m_Name: Exposure + m_EditorClassIdentifier: + active: 1 + m_AdvancedMode: 0 + mode: + m_OverrideState: 1 + m_Value: 3 + meteringMode: + m_OverrideState: 0 + m_Value: 2 + luminanceSource: + m_OverrideState: 0 + m_Value: 1 + fixedExposure: + m_OverrideState: 0 + m_Value: 0 + compensation: + m_OverrideState: 0 + m_Value: 0 + limitMin: + m_OverrideState: 0 + m_Value: -10 + limitMax: + m_OverrideState: 0 + m_Value: 20 + curveMap: + m_OverrideState: 0 + m_Value: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: -10 + value: -10 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 20 + value: 20 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + limitMinCurveMap: + m_OverrideState: 0 + m_Value: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: -10 + value: -12 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 20 + value: 18 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + limitMaxCurveMap: + m_OverrideState: 0 + m_Value: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: -10 + value: -8 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 20 + value: 22 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + adaptationMode: + m_OverrideState: 0 + m_Value: 1 + adaptationSpeedDarkToLight: + m_OverrideState: 0 + m_Value: 3 + min: 0.001 + adaptationSpeedLightToDark: + m_OverrideState: 0 + m_Value: 1 + min: 0.001 + weightTextureMask: + m_OverrideState: 0 + m_Value: {fileID: 0} + histogramPercentages: + m_OverrideState: 0 + m_Value: {x: 40, y: 90} + min: 0 + max: 100 + histogramUseCurveRemapping: + m_OverrideState: 0 + m_Value: 0 + targetMidGray: + m_OverrideState: 0 + m_Value: 0 + centerAroundExposureTarget: + m_OverrideState: 0 + m_Value: 0 + proceduralCenter: + m_OverrideState: 0 + m_Value: {x: 0.5, y: 0.5} + proceduralRadii: + m_OverrideState: 0 + m_Value: {x: 0.3, y: 0.3} + maskMinIntensity: + m_OverrideState: 0 + m_Value: -30 + maskMaxIntensity: + m_OverrideState: 0 + m_Value: 30 + proceduralSoftness: + m_OverrideState: 0 + m_Value: 0.5 + min: 0 diff --git a/Assets/Barracuda/Configuration/Volume Profile.asset.meta b/Assets/Barracuda/Configuration/Volume Profile.asset.meta new file mode 100644 index 0000000..e86555a --- /dev/null +++ b/Assets/Barracuda/Configuration/Volume Profile.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d7f98742e27fe844fb5e4c6428f1cb8d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Barracuda/Materials.meta b/Assets/Barracuda/Materials.meta new file mode 100644 index 0000000..fffd52f --- /dev/null +++ b/Assets/Barracuda/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7c827786f17e0bf428be55f604fcfde8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Barracuda/Materials/Floor.mat b/Assets/Barracuda/Materials/Floor.mat new file mode 100644 index 0000000..f49603d --- /dev/null +++ b/Assets/Barracuda/Materials/Floor.mat @@ -0,0 +1,300 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-2422861951396797300 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 13 + hdPluginSubTargetMaterialVersions: + m_Keys: [] + m_Values: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Floor + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: + - _DISABLE_SSR_TRANSPARENT + - _NORMALMAP_TANGENT_SPACE + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2225 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DistortionVectorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + 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} + - _MaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmissionMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaRemapMax: 1 + - _AlphaRemapMin: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _BlendMode: 0 + - _CoatMask: 0 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedGIMode: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 1 + - _MaterialID: 1 + - _Metallic: 0.5 + - _MetallicRemapMax: 1 + - _MetallicRemapMin: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _ObjectSpaceUVMapping: 0 + - _ObjectSpaceUVMappingEmissive: 0 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _RayTracing: 0 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _Smoothness: 0.9 + - _SmoothnessRemapMax: 1 + - _SmoothnessRemapMin: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 9 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 15 + - _StencilWriteMaskMV: 41 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransmissionMask: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 1} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 1} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] diff --git a/Assets/Barracuda/Materials/Floor.mat.meta b/Assets/Barracuda/Materials/Floor.mat.meta new file mode 100644 index 0000000..45299b9 --- /dev/null +++ b/Assets/Barracuda/Materials/Floor.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c9e9c67ff6ff90f489027880d4ccbf3e +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Barracuda/Materials/Skeleton.mat b/Assets/Barracuda/Materials/Skeleton.mat new file mode 100644 index 0000000..91210c7 --- /dev/null +++ b/Assets/Barracuda/Materials/Skeleton.mat @@ -0,0 +1,343 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Skeleton + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: + - _DISABLE_SSR_TRANSPARENT + - _NORMALMAP_TANGENT_SPACE + m_InvalidKeywords: [] + m_LightmapFlags: 2 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2225 + stringTagMap: {} + disabledShaderPasses: + - DistortionVectors + - MOTIONVECTORS + - TransparentDepthPrepass + - TransparentDepthPostpass + - TransparentBackface + - RayTracingPrepass + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AnisotropyMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BentNormalMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _CoatMaskMap: + 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} + - _DetailMap: + 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} + - _DistortionVectorMap: + 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} + - _EmissiveColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HeightMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _IridescenceThicknessMap: + 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} + - _MaskMap: + 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} + - _NormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMapOS: + 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} + - _SpecularColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SubsurfaceMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TangentMapOS: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ThicknessMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmissionMaskMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TransmittanceColorMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AORemapMax: 1 + - _AORemapMin: 0 + - _ATDistance: 1 + - _AddPrecomputedVelocity: 0 + - _AlbedoAffectEmissive: 0 + - _AlphaCutoff: 0.5 + - _AlphaCutoffEnable: 0 + - _AlphaCutoffPostpass: 0.5 + - _AlphaCutoffPrepass: 0.5 + - _AlphaCutoffShadow: 0.5 + - _AlphaDstBlend: 0 + - _AlphaRemapMax: 1 + - _AlphaRemapMin: 0 + - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 + - _AlphaToMaskInspectorValue: 0 + - _Anisotropy: 0 + - _BlendMode: 0 + - _BumpScale: 1 + - _CoatMask: 0 + - _CullMode: 2 + - _CullModeForward: 2 + - _Cutoff: 0.5 + - _DepthOffsetEnable: 0 + - _DetailAlbedoScale: 1 + - _DetailNormalMapScale: 1 + - _DetailNormalScale: 1 + - _DetailSmoothnessScale: 1 + - _DiffusionProfile: 0 + - _DiffusionProfileHash: 0 + - _DisplacementLockObjectScale: 1 + - _DisplacementLockTilingScale: 1 + - _DisplacementMode: 0 + - _DistortionBlendMode: 0 + - _DistortionBlurBlendMode: 0 + - _DistortionBlurDstBlend: 1 + - _DistortionBlurRemapMax: 1 + - _DistortionBlurRemapMin: 0 + - _DistortionBlurScale: 1 + - _DistortionBlurSrcBlend: 1 + - _DistortionDepthTest: 1 + - _DistortionDstBlend: 1 + - _DistortionEnable: 0 + - _DistortionScale: 1 + - _DistortionSrcBlend: 1 + - _DistortionVectorBias: -1 + - _DistortionVectorScale: 2 + - _DoubleSidedEnable: 0 + - _DoubleSidedGIMode: 0 + - _DoubleSidedNormalMode: 1 + - _DstBlend: 0 + - _EmissiveColorMode: 1 + - _EmissiveExposureWeight: 1 + - _EmissiveIntensity: 1 + - _EmissiveIntensityUnit: 0 + - _EnableBlendModePreserveSpecularLighting: 1 + - _EnableFogOnTransparent: 1 + - _EnableGeometricSpecularAA: 0 + - _EnergyConservingSpecularColor: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.697 + - _GlossyReflections: 1 + - _HeightAmplitude: 0.02 + - _HeightCenter: 0.5 + - _HeightMapParametrization: 0 + - _HeightMax: 1 + - _HeightMin: -1 + - _HeightOffset: 0 + - _HeightPoMAmplitude: 2 + - _HeightTessAmplitude: 2 + - _HeightTessCenter: 0.5 + - _InvTilingScale: 1 + - _Ior: 1.5 + - _IridescenceMask: 1 + - _IridescenceThickness: 1 + - _LinkDetailsWithBase: 0 + - _MaterialID: 1 + - _Metallic: 0.31557876 + - _MetallicRemapMax: 0.31557876 + - _MetallicRemapMin: 0 + - _Mode: 0 + - _NormalMapSpace: 0 + - _NormalScale: 1 + - _ObjectSpaceUVMapping: 0 + - _ObjectSpaceUVMappingEmissive: 0 + - _OcclusionStrength: 1 + - _OpaqueCullMode: 2 + - _PPDLodThreshold: 5 + - _PPDMaxSamples: 15 + - _PPDMinSamples: 5 + - _PPDPrimitiveLength: 1 + - _PPDPrimitiveWidth: 1 + - _Parallax: 0.02 + - _RayTracing: 0 + - _ReceivesSSR: 1 + - _ReceivesSSRTransparent: 0 + - _RefractionModel: 0 + - _Smoothness: 0.697 + - _SmoothnessRemapMax: 0.697 + - _SmoothnessRemapMin: 0 + - _SmoothnessTextureChannel: 0 + - _SpecularAAScreenSpaceVariance: 0.1 + - _SpecularAAThreshold: 0.2 + - _SpecularHighlights: 1 + - _SpecularOcclusionMode: 1 + - _SrcBlend: 1 + - _StencilRef: 0 + - _StencilRefDepth: 8 + - _StencilRefDistortionVec: 4 + - _StencilRefGBuffer: 10 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 9 + - _StencilWriteMaskDistortionVec: 4 + - _StencilWriteMaskGBuffer: 15 + - _StencilWriteMaskMV: 41 + - _SubsurfaceMask: 1 + - _SupportDecals: 1 + - _SurfaceType: 0 + - _TexWorldScale: 1 + - _TexWorldScaleEmissive: 1 + - _Thickness: 1 + - _TransmissionEnable: 1 + - _TransmissionMask: 1 + - _TransparentBackfaceEnable: 0 + - _TransparentCullMode: 2 + - _TransparentDepthPostpassEnable: 0 + - _TransparentDepthPrepassEnable: 0 + - _TransparentSortPriority: 0 + - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 + - _UVBase: 0 + - _UVDetail: 0 + - _UVEmissive: 0 + - _UVSec: 0 + - _UseEmissiveIntensity: 0 + - _UseShadowThreshold: 0 + - _ZTestDepthEqualForOpaque: 3 + - _ZTestGBuffer: 4 + - _ZTestModeDistortion: 4 + - _ZTestTransparent: 4 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 0.15622398, g: 1, b: 0, a: 1} + - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 0.15622395, g: 1, b: 0, a: 1} + - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} + - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissiveColor: {r: 0, g: 0.69803923, b: 0.19123071, a: 1} + - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} + - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} + - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} + - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &794912886521385695 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 13 + hdPluginSubTargetMaterialVersions: + m_Keys: [] + m_Values: diff --git a/Assets/Barracuda/Materials/Skeleton.mat.meta b/Assets/Barracuda/Materials/Skeleton.mat.meta new file mode 100644 index 0000000..44a9e7e --- /dev/null +++ b/Assets/Barracuda/Materials/Skeleton.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f8188c9479a7aad41b7448fe5eeed839 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Barracuda/Materials/VideoCapture.mat b/Assets/Barracuda/Materials/VideoCapture.mat new file mode 100644 index 0000000..24d09fa --- /dev/null +++ b/Assets/Barracuda/Materials/VideoCapture.mat @@ -0,0 +1,77 @@ +%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: VideoCapture + m_Shader: {fileID: 4800000, guid: 1ed0907b442c1ba40abab7e3df22c161, 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 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/Barracuda/Materials/VideoCapture.mat.meta b/Assets/Barracuda/Materials/VideoCapture.mat.meta new file mode 100644 index 0000000..9a89f1b --- /dev/null +++ b/Assets/Barracuda/Materials/VideoCapture.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 393fc0bc42def7a42b82d7de2070ddf1 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling.meta b/Assets/Dwelling.meta new file mode 100644 index 0000000..64b883a --- /dev/null +++ b/Assets/Dwelling.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7e1ae13b8c07f3b4ab15d138b078983d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/Avatars.meta b/Assets/Dwelling/Avatars.meta new file mode 100644 index 0000000..68b7e8a --- /dev/null +++ b/Assets/Dwelling/Avatars.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9addcfefa1903ee479b255e1c638218d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/Avatars/Controller.controller b/Assets/Dwelling/Avatars/Controller.controller new file mode 100644 index 0000000..772c616 --- /dev/null +++ b/Assets/Dwelling/Avatars/Controller.controller @@ -0,0 +1,43 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1107 &-6715442212257685501 +AnimatorStateMachine: + serializedVersion: 5 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Base Layer + m_ChildStates: [] + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: 0} +--- !u!91 &9100000 +AnimatorController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Controller + serializedVersion: 5 + m_AnimatorParameters: [] + m_AnimatorLayers: + - serializedVersion: 5 + m_Name: Base Layer + m_StateMachine: {fileID: -6715442212257685501} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} diff --git a/Assets/Dwelling/Avatars/Controller.controller.meta b/Assets/Dwelling/Avatars/Controller.controller.meta new file mode 100644 index 0000000..507a193 --- /dev/null +++ b/Assets/Dwelling/Avatars/Controller.controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c80dbec155708994480231da88754eee +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 9100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/Avatars/female_model.fbx b/Assets/Dwelling/Avatars/female_model.fbx new file mode 100644 index 0000000..e0cc4f7 --- /dev/null +++ b/Assets/Dwelling/Avatars/female_model.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d771ced00fd15aac8994d88310947b5bfbc9f4c71477a65e039e46696ef4bbc0 +size 63580396 diff --git a/Assets/Dwelling/Avatars/female_model.fbx.meta b/Assets/Dwelling/Avatars/female_model.fbx.meta new file mode 100644 index 0000000..b098bea --- /dev/null +++ b/Assets/Dwelling/Avatars/female_model.fbx.meta @@ -0,0 +1,102 @@ +fileFormatVersion: 2 +guid: 23470acf8ba76b04f80eaec2151717f6 +ModelImporter: + serializedVersion: 20200 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 3 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 1 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 3 + humanoidOversampling: 1 + avatarSetup: 1 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/CameraFollow.cs b/Assets/Dwelling/CameraFollow.cs new file mode 100644 index 0000000..d387223 --- /dev/null +++ b/Assets/Dwelling/CameraFollow.cs @@ -0,0 +1,31 @@ +using UnityEngine; + +namespace Unity.MLAgentsExamples +{ + public class CameraFollow : MonoBehaviour + { + [Tooltip("The target to follow")] public Transform target; + + [Tooltip("The time it takes to move to the new position")] + public float smoothingTime; //The time it takes to move to the new position + + private Vector3 m_Offset; + private Vector3 m_CamVelocity; //Camera's velocity (used by SmoothDamp) + + // Use this for initialization + void Start() + { + m_Offset = gameObject.transform.position - target.position; + } + + void FixedUpdate() + { + var newPosition = new Vector3(target.position.x + m_Offset.x, transform.position.y, + target.position.z + m_Offset.z); + + gameObject.transform.position = + Vector3.SmoothDamp(transform.position, newPosition, ref m_CamVelocity, smoothingTime, Mathf.Infinity, + Time.fixedDeltaTime); + } + } +} diff --git a/Assets/Dwelling/CameraFollow.cs.meta b/Assets/Dwelling/CameraFollow.cs.meta new file mode 100644 index 0000000..4f9ddeb --- /dev/null +++ b/Assets/Dwelling/CameraFollow.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 00b2c39f05ffae945965878221cb0f33 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/Controller.controller b/Assets/Dwelling/Controller.controller new file mode 100644 index 0000000..7bfe77d --- /dev/null +++ b/Assets/Dwelling/Controller.controller @@ -0,0 +1,43 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1107 &-8090981446417310810 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Base Layer + m_ChildStates: [] + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: 0} +--- !u!91 &9100000 +AnimatorController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Controller + serializedVersion: 5 + m_AnimatorParameters: [] + m_AnimatorLayers: + - serializedVersion: 5 + m_Name: Base Layer + m_StateMachine: {fileID: -8090981446417310810} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} diff --git a/Assets/Dwelling/Controller.controller.meta b/Assets/Dwelling/Controller.controller.meta new file mode 100644 index 0000000..df6a89a --- /dev/null +++ b/Assets/Dwelling/Controller.controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: afdf00a23f40a0643911e7680bd9a0b3 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 9100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/Model.meta b/Assets/Dwelling/Model.meta new file mode 100644 index 0000000..fa538fd --- /dev/null +++ b/Assets/Dwelling/Model.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f554b36ae5005944ba3a3f98eb79a9d2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/Model/Cloth.dae b/Assets/Dwelling/Model/Cloth.dae new file mode 100644 index 0000000..5418d35 --- /dev/null +++ b/Assets/Dwelling/Model/Cloth.dae @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:66bd9a5c521857b4beac59b4cd4f814ebbbaf86d64d4f9eadb30e4b70170aad7 +size 10071349 diff --git a/Assets/Dwelling/Model/Cloth.dae.meta b/Assets/Dwelling/Model/Cloth.dae.meta new file mode 100644 index 0000000..a6165d0 --- /dev/null +++ b/Assets/Dwelling/Model/Cloth.dae.meta @@ -0,0 +1,109 @@ +fileFormatVersion: 2 +guid: af81081cb3cc77346bd29af60ea57457 +ModelImporter: + serializedVersion: 22200 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importPhysicalCameras: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + strictVertexDataChecks: 0 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + importBlendShapeDeformPercent: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/Model/Motion.controller b/Assets/Dwelling/Model/Motion.controller new file mode 100644 index 0000000..1deb0b2 --- /dev/null +++ b/Assets/Dwelling/Model/Motion.controller @@ -0,0 +1,43 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!91 &9100000 +AnimatorController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Motion + serializedVersion: 5 + m_AnimatorParameters: [] + m_AnimatorLayers: + - serializedVersion: 5 + m_Name: Base Layer + m_StateMachine: {fileID: 1222936784328574005} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} +--- !u!1107 &1222936784328574005 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Base Layer + m_ChildStates: [] + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: 0} diff --git a/Assets/Dwelling/Model/Motion.controller.meta b/Assets/Dwelling/Model/Motion.controller.meta new file mode 100644 index 0000000..309a2f6 --- /dev/null +++ b/Assets/Dwelling/Model/Motion.controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7a475d0ba0e661f4a925e6f7ec85ac51 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 9100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/Model/Resnet34_3inputs_448x448_20200609.onnx b/Assets/Dwelling/Model/Resnet34_3inputs_448x448_20200609.onnx new file mode 100644 index 0000000..c4c35f5 --- /dev/null +++ b/Assets/Dwelling/Model/Resnet34_3inputs_448x448_20200609.onnx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6eec544846e66c7bd585aa493cb5fca983fd86c6d9879ac6f6c50372a8e319d6 +size 113999203 diff --git a/Assets/Dwelling/Model/Resnet34_3inputs_448x448_20200609.onnx.meta b/Assets/Dwelling/Model/Resnet34_3inputs_448x448_20200609.onnx.meta new file mode 100644 index 0000000..400b2f8 --- /dev/null +++ b/Assets/Dwelling/Model/Resnet34_3inputs_448x448_20200609.onnx.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 03c27c5acf3dfb5489d6b32d68546daa +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 683b6cb6d0a474744822c888b46772c9, type: 3} + optimizeModel: 1 + forceArbitraryBatchSize: 1 + treatErrorsAsWarnings: 0 diff --git a/Assets/Dwelling/Model/Scripts.meta b/Assets/Dwelling/Model/Scripts.meta new file mode 100644 index 0000000..8b6dbf0 --- /dev/null +++ b/Assets/Dwelling/Model/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9e473acdc74631141bb72668e9229a0a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/Model/Scripts/Avatar.cs b/Assets/Dwelling/Model/Scripts/Avatar.cs new file mode 100644 index 0000000..dbc5184 --- /dev/null +++ b/Assets/Dwelling/Model/Scripts/Avatar.cs @@ -0,0 +1,316 @@ +using System.Collections.Generic; +using UnityEngine; + +public class Avatar : MonoBehaviour +{ + public bool showSkeleton = true; + public Material skeletonMaterial; + public float skeletonX; + public float skeletonY; + public float skeletonZ; + public float skeletonScale = 1; + private GameObject skeleton; + private List skeletons = new List(); + + public GameObject nose; + public JointPoint[] jointPoints; + + private Animator animator; + private Vector3 initPosition; + private float centerTall = 224 * 0.75f; + private float tall = 224 * 0.75f; + private float prevTall = 224 * 0.75f; + private float zScale = 1; + + private void Awake() + { + skeleton = new GameObject("Skeleton"); + animator = this.GetComponent(); + + Initialize(); + } + + private void Update() + { + PoseUpdate(); + } + + public void Initialize() + { + jointPoints = new JointPoint[PositionIndex.Count.Int()]; + for( int i = 0; i < PositionIndex.Count.Int(); i++ ) + { + jointPoints[i] = new JointPoint(); + } + + // Right arm. + jointPoints[PositionIndex.RightShoulderBend.Int()].transform = animator.GetBoneTransform(HumanBodyBones.RightUpperArm); + jointPoints[PositionIndex.RightForearmBend.Int()].transform = animator.GetBoneTransform(HumanBodyBones.RightLowerArm); + jointPoints[PositionIndex.RightHand.Int()].transform = animator.GetBoneTransform(HumanBodyBones.RightHand); + jointPoints[PositionIndex.RightThumb2.Int()].transform = animator.GetBoneTransform(HumanBodyBones.RightThumbIntermediate); + jointPoints[PositionIndex.RightMid1.Int()].transform = animator.GetBoneTransform(HumanBodyBones.RightMiddleProximal); + + // Left arm. + jointPoints[PositionIndex.LeftShoulderBend.Int()].transform = animator.GetBoneTransform(HumanBodyBones.LeftUpperArm); + jointPoints[PositionIndex.LeftForearmBend.Int()].transform = animator.GetBoneTransform(HumanBodyBones.LeftLowerArm); + jointPoints[PositionIndex.LeftHand.Int()].transform = animator.GetBoneTransform(HumanBodyBones.LeftHand); + jointPoints[PositionIndex.LeftThumb2.Int()].transform = animator.GetBoneTransform(HumanBodyBones.LeftThumbIntermediate); + jointPoints[PositionIndex.LeftMid1.Int()].transform = animator.GetBoneTransform(HumanBodyBones.LeftMiddleProximal); + + // Face. + jointPoints[PositionIndex.LeftEar.Int()].transform = animator.GetBoneTransform(HumanBodyBones.Head); + jointPoints[PositionIndex.LeftEye.Int()].transform = animator.GetBoneTransform(HumanBodyBones.LeftEye); + jointPoints[PositionIndex.RightEar.Int()].transform = animator.GetBoneTransform(HumanBodyBones.Head); + jointPoints[PositionIndex.RightEye.Int()].transform = animator.GetBoneTransform(HumanBodyBones.RightEye); + jointPoints[PositionIndex.Nose.Int()].transform = nose.transform; + + // Right leg. + jointPoints[PositionIndex.RightThighBend.Int()].transform = animator.GetBoneTransform(HumanBodyBones.RightUpperLeg); + jointPoints[PositionIndex.RightShin.Int()].transform = animator.GetBoneTransform(HumanBodyBones.RightLowerLeg); + jointPoints[PositionIndex.RightFoot.Int()].transform = animator.GetBoneTransform(HumanBodyBones.RightFoot); + jointPoints[PositionIndex.RightToe.Int()].transform = animator.GetBoneTransform(HumanBodyBones.RightToes); + + // Left leg. + jointPoints[PositionIndex.LeftThighBend.Int()].transform = animator.GetBoneTransform(HumanBodyBones.LeftUpperLeg); + jointPoints[PositionIndex.LeftShin.Int()].transform = animator.GetBoneTransform(HumanBodyBones.LeftLowerLeg); + jointPoints[PositionIndex.LeftFoot.Int()].transform = animator.GetBoneTransform(HumanBodyBones.LeftFoot); + jointPoints[PositionIndex.LeftToe.Int()].transform = animator.GetBoneTransform(HumanBodyBones.LeftToes); + + // Etc. + jointPoints[PositionIndex.AbdomenUpper.Int()].transform = animator.GetBoneTransform(HumanBodyBones.Spine); + jointPoints[PositionIndex.Hip.Int()].transform = animator.GetBoneTransform(HumanBodyBones.Hips); + jointPoints[PositionIndex.Head.Int()].transform = animator.GetBoneTransform(HumanBodyBones.Head); + jointPoints[PositionIndex.Neck.Int()].transform = animator.GetBoneTransform(HumanBodyBones.Neck); + jointPoints[PositionIndex.Spine.Int()].transform = animator.GetBoneTransform(HumanBodyBones.Spine); + + // Child settings. + + // Right arm. + jointPoints[PositionIndex.RightShoulderBend.Int()].child = jointPoints[PositionIndex.RightForearmBend.Int()]; + jointPoints[PositionIndex.RightForearmBend.Int()].child = jointPoints[PositionIndex.RightHand.Int()]; + jointPoints[PositionIndex.RightForearmBend.Int()].parent = jointPoints[PositionIndex.RightShoulderBend.Int()]; + + // Left arm. + jointPoints[PositionIndex.LeftShoulderBend.Int()].child = jointPoints[PositionIndex.LeftForearmBend.Int()]; + jointPoints[PositionIndex.LeftForearmBend.Int()].child = jointPoints[PositionIndex.LeftHand.Int()]; + jointPoints[PositionIndex.LeftForearmBend.Int()].parent = jointPoints[PositionIndex.LeftShoulderBend.Int()]; + + // Fase. + + // Right leg. + jointPoints[PositionIndex.RightThighBend.Int()].child = jointPoints[PositionIndex.RightShin.Int()]; + jointPoints[PositionIndex.RightShin.Int()].child = jointPoints[PositionIndex.RightFoot.Int()]; + jointPoints[PositionIndex.RightFoot.Int()].child = jointPoints[PositionIndex.RightToe.Int()]; + jointPoints[PositionIndex.RightFoot.Int()].parent = jointPoints[PositionIndex.RightShin.Int()]; + + // Left leg. + jointPoints[PositionIndex.LeftThighBend.Int()].child = jointPoints[PositionIndex.LeftShin.Int()]; + jointPoints[PositionIndex.LeftShin.Int()].child = jointPoints[PositionIndex.LeftFoot.Int()]; + jointPoints[PositionIndex.LeftFoot.Int()].child = jointPoints[PositionIndex.LeftToe.Int()]; + jointPoints[PositionIndex.LeftFoot.Int()].parent = jointPoints[PositionIndex.LeftShin.Int()]; + + // Etc. + jointPoints[PositionIndex.Spine.Int()].child = jointPoints[PositionIndex.Neck.Int()]; + jointPoints[PositionIndex.Neck.Int()].child = jointPoints[PositionIndex.Head.Int()]; + //jointPoints[PositionIndex.Head.Int()].child = jointPoints[PositionIndex.Nose.Int()]; + + if( showSkeleton ) + { + // Line child settings. + + // Right arm. + AddSkeleton(PositionIndex.RightShoulderBend, PositionIndex.RightForearmBend); + AddSkeleton(PositionIndex.RightForearmBend, PositionIndex.RightHand); + AddSkeleton(PositionIndex.RightHand, PositionIndex.RightThumb2); + AddSkeleton(PositionIndex.RightHand, PositionIndex.RightMid1); + + // Left arm. + AddSkeleton(PositionIndex.LeftShoulderBend, PositionIndex.LeftForearmBend); + AddSkeleton(PositionIndex.LeftForearmBend, PositionIndex.LeftHand); + AddSkeleton(PositionIndex.LeftHand, PositionIndex.LeftThumb2); + AddSkeleton(PositionIndex.LeftHand, PositionIndex.LeftMid1); + + // Fase. + AddSkeleton(PositionIndex.LeftEar, PositionIndex.Nose); + AddSkeleton(PositionIndex.RightEar, PositionIndex.Nose); + + // Right leg. + AddSkeleton(PositionIndex.RightThighBend, PositionIndex.RightShin); + AddSkeleton(PositionIndex.RightShin, PositionIndex.RightFoot); + AddSkeleton(PositionIndex.RightFoot, PositionIndex.RightToe); + + // Left leg. + AddSkeleton(PositionIndex.LeftThighBend, PositionIndex.LeftShin); + AddSkeleton(PositionIndex.LeftShin, PositionIndex.LeftFoot); + AddSkeleton(PositionIndex.LeftFoot, PositionIndex.LeftToe); + + // Etc. + AddSkeleton(PositionIndex.Spine, PositionIndex.Neck); + AddSkeleton(PositionIndex.Neck, PositionIndex.Head); + AddSkeleton(PositionIndex.Head, PositionIndex.Nose); + AddSkeleton(PositionIndex.Neck, PositionIndex.RightShoulderBend); + AddSkeleton(PositionIndex.Neck, PositionIndex.LeftShoulderBend); + AddSkeleton(PositionIndex.RightThighBend, PositionIndex.RightShoulderBend); + AddSkeleton(PositionIndex.LeftThighBend, PositionIndex.LeftShoulderBend); + AddSkeleton(PositionIndex.RightShoulderBend, PositionIndex.AbdomenUpper); + AddSkeleton(PositionIndex.LeftShoulderBend, PositionIndex.AbdomenUpper); + AddSkeleton(PositionIndex.RightThighBend, PositionIndex.AbdomenUpper); + AddSkeleton(PositionIndex.LeftThighBend, PositionIndex.AbdomenUpper); + AddSkeleton(PositionIndex.LeftThighBend, PositionIndex.RightThighBend); + } + + // Set inverse. + Vector3 forward = TriangleNormal(jointPoints[PositionIndex.Hip.Int()].transform.position, jointPoints[PositionIndex.LeftThighBend.Int()].transform.position, jointPoints[PositionIndex.RightThighBend.Int()].transform.position); + foreach( JointPoint jointPoint in jointPoints ) + { + if( jointPoint.transform != null ) + { + jointPoint.initRotation = jointPoint.transform.rotation; + } + + if( jointPoint.child != null ) + { + jointPoint.inverse = GetInverse(jointPoint, jointPoint.child, forward); + jointPoint.inverseRotation = jointPoint.inverse * jointPoint.initRotation; + } + } + + JointPoint hip = jointPoints[PositionIndex.Hip.Int()]; + initPosition = jointPoints[PositionIndex.Hip.Int()].transform.position; + hip.inverse = Quaternion.Inverse(Quaternion.LookRotation(forward)); + hip.inverseRotation = hip.inverse * hip.initRotation; + + // Head rotation. + JointPoint head = jointPoints[PositionIndex.Head.Int()]; + head.initRotation = jointPoints[PositionIndex.Head.Int()].transform.rotation; + Vector3 gaze = jointPoints[PositionIndex.Nose.Int()].transform.position - jointPoints[PositionIndex.Head.Int()].transform.position; + head.inverse = Quaternion.Inverse(Quaternion.LookRotation(gaze)); + head.inverseRotation = head.inverse * head.initRotation; + + JointPoint lHand = jointPoints[PositionIndex.LeftHand.Int()]; + Vector3 lf = TriangleNormal(lHand.pos3D, jointPoints[PositionIndex.LeftMid1.Int()].pos3D, jointPoints[PositionIndex.LeftThumb2.Int()].pos3D); + lHand.initRotation = lHand.transform.rotation; + lHand.inverse = Quaternion.Inverse(Quaternion.LookRotation(jointPoints[PositionIndex.LeftThumb2.Int()].transform.position - jointPoints[PositionIndex.LeftMid1.Int()].transform.position, lf)); + lHand.inverseRotation = lHand.inverse * lHand.initRotation; + + JointPoint rHand = jointPoints[PositionIndex.RightHand.Int()]; + Vector3 rf = TriangleNormal(rHand.pos3D, jointPoints[PositionIndex.RightThumb2.Int()].pos3D, jointPoints[PositionIndex.RightMid1.Int()].pos3D); + rHand.initRotation = jointPoints[PositionIndex.RightHand.Int()].transform.rotation; + rHand.inverse = Quaternion.Inverse(Quaternion.LookRotation(jointPoints[PositionIndex.RightThumb2.Int()].transform.position - jointPoints[PositionIndex.RightMid1.Int()].transform.position, rf)); + rHand.inverseRotation = rHand.inverse * rHand.initRotation; + + jointPoints[PositionIndex.Hip.Int()].score3D = 1f; + jointPoints[PositionIndex.Neck.Int()].score3D = 1f; + jointPoints[PositionIndex.Nose.Int()].score3D = 1f; + jointPoints[PositionIndex.Head.Int()].score3D = 1f; + jointPoints[PositionIndex.Spine.Int()].score3D = 1f; + } + + public void PoseUpdate() + { + // Calculate movement range of z-coordinate from height. + float t1 = Vector3.Distance(jointPoints[PositionIndex.Head.Int()].pos3D, jointPoints[PositionIndex.Neck.Int()].pos3D); + float t2 = Vector3.Distance(jointPoints[PositionIndex.Neck.Int()].pos3D, jointPoints[PositionIndex.Spine.Int()].pos3D); + Vector3 pm = (jointPoints[PositionIndex.RightThighBend.Int()].pos3D + jointPoints[PositionIndex.LeftThighBend.Int()].pos3D) / 2f; + float t3 = Vector3.Distance(jointPoints[PositionIndex.Spine.Int()].pos3D, pm); + float t4r = Vector3.Distance(jointPoints[PositionIndex.RightThighBend.Int()].pos3D, jointPoints[PositionIndex.RightShin.Int()].pos3D); + float t4l = Vector3.Distance(jointPoints[PositionIndex.LeftThighBend.Int()].pos3D, jointPoints[PositionIndex.LeftShin.Int()].pos3D); + float t4 = (t4r + t4l) / 2f; + float t5r = Vector3.Distance(jointPoints[PositionIndex.RightShin.Int()].pos3D, jointPoints[PositionIndex.RightFoot.Int()].pos3D); + float t5l = Vector3.Distance(jointPoints[PositionIndex.LeftShin.Int()].pos3D, jointPoints[PositionIndex.LeftFoot.Int()].pos3D); + float t5 = (t5r + t5l) / 2f; + float t = t1 + t2 + t3 + t4 + t5; + + // Low pass filter in z direction. + tall = t * 0.7f + prevTall * 0.3f; + prevTall = tall; + + if( tall == 0 ) + { + tall = centerTall; + } + + float dz = (centerTall - tall) / centerTall * zScale; + + // Movement and rotatation of center. + Vector3 forward = TriangleNormal(jointPoints[PositionIndex.Hip.Int()].pos3D, jointPoints[PositionIndex.LeftThighBend.Int()].pos3D, jointPoints[PositionIndex.RightThighBend.Int()].pos3D); + jointPoints[PositionIndex.Hip.Int()].transform.position = jointPoints[PositionIndex.Hip.Int()].pos3D * 0.005f + new Vector3(initPosition.x, initPosition.y, initPosition.z + dz); + jointPoints[PositionIndex.Hip.Int()].transform.rotation = Quaternion.LookRotation(forward) * jointPoints[PositionIndex.Hip.Int()].inverseRotation; + + // Rotate each of the bones. + foreach( JointPoint jointPoint in jointPoints ) + { + if( jointPoint.parent != null ) + { + Vector3 fv = jointPoint.parent.pos3D - jointPoint.pos3D; + jointPoint.transform.rotation = Quaternion.LookRotation(jointPoint.pos3D - jointPoint.child.pos3D, fv) * jointPoint.inverseRotation; + } + else if( jointPoint.child != null ) + { + jointPoint.transform.rotation = Quaternion.LookRotation(jointPoint.pos3D - jointPoint.child.pos3D, forward) * jointPoint.inverseRotation; + } + } + + // Head rotation. + Vector3 gaze = jointPoints[PositionIndex.Nose.Int()].pos3D - jointPoints[PositionIndex.Head.Int()].pos3D; + Vector3 f = TriangleNormal(jointPoints[PositionIndex.Nose.Int()].pos3D, jointPoints[PositionIndex.RightEar.Int()].pos3D, jointPoints[PositionIndex.LeftEar.Int()].pos3D); + JointPoint head = jointPoints[PositionIndex.Head.Int()]; + head.transform.rotation = Quaternion.LookRotation(gaze, f) * head.inverseRotation; + + // Wrist rotation (test). + JointPoint lHand = jointPoints[PositionIndex.LeftHand.Int()]; + Vector3 lf = TriangleNormal(lHand.pos3D, jointPoints[PositionIndex.LeftMid1.Int()].pos3D, jointPoints[PositionIndex.LeftThumb2.Int()].pos3D); + lHand.transform.rotation = Quaternion.LookRotation(jointPoints[PositionIndex.LeftThumb2.Int()].pos3D - jointPoints[PositionIndex.LeftMid1.Int()].pos3D, lf) * lHand.inverseRotation; + + JointPoint rHand = jointPoints[PositionIndex.RightHand.Int()]; + Vector3 rf = TriangleNormal(rHand.pos3D, jointPoints[PositionIndex.RightThumb2.Int()].pos3D, jointPoints[PositionIndex.RightMid1.Int()].pos3D); + //rHand.transform.rotation = Quaternion.LookRotation(jointPoints[PositionIndex.RightThumb2.Int()].pos3D - jointPoints[PositionIndex.RightMid1.Int()].pos3D, rf) * rHand.inverseRotation; + rHand.transform.rotation = Quaternion.LookRotation(jointPoints[PositionIndex.RightThumb2.Int()].pos3D - jointPoints[PositionIndex.RightMid1.Int()].pos3D, rf) * rHand.inverseRotation; + + foreach( Skeleton sk in skeletons ) + { + JointPoint s = sk.start; + JointPoint e = sk.end; + + sk.lineRenderer.SetPosition(0, new Vector3(s.pos3D.x * skeletonScale + skeletonX, s.pos3D.y * skeletonScale + skeletonY, s.pos3D.z * skeletonScale + skeletonZ)); + sk.lineRenderer.SetPosition(1, new Vector3(e.pos3D.x * skeletonScale + skeletonX, e.pos3D.y * skeletonScale + skeletonY, e.pos3D.z * skeletonScale + skeletonZ)); + } + } + + private Vector3 TriangleNormal( Vector3 a, Vector3 b, Vector3 c ) + { + Vector3 d1 = a - b; + Vector3 d2 = a - c; + + Vector3 dd = Vector3.Cross(d1, d2); + dd.Normalize(); + + return dd; + } + + private Quaternion GetInverse( JointPoint p1, JointPoint p2, Vector3 forward ) + { + return Quaternion.Inverse(Quaternion.LookRotation(p1.transform.position - p2.transform.position, forward)); + } + + private void AddSkeleton( PositionIndex s, PositionIndex e ) + { + Skeleton sk = new Skeleton() + { + gameObject = new GameObject("Line"), + start = jointPoints[s.Int()], + end = jointPoints[e.Int()], + }; + + sk.gameObject.transform.SetParent(skeleton.transform); + sk.lineRenderer = sk.gameObject.AddComponent(); + sk.lineRenderer.startWidth = 0.04f; + sk.lineRenderer.endWidth = 0.01f; + + // Define the number of vertices. + sk.lineRenderer.positionCount = 2; + sk.lineRenderer.material = skeletonMaterial; + + skeletons.Add(sk); + } +} \ No newline at end of file diff --git a/Assets/Dwelling/Model/Scripts/Avatar.cs.meta b/Assets/Dwelling/Model/Scripts/Avatar.cs.meta new file mode 100644 index 0000000..7ce9b94 --- /dev/null +++ b/Assets/Dwelling/Model/Scripts/Avatar.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3558338e378282c4a91d1a3356b57301 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/Model/Scripts/BarracudaRunner.cs b/Assets/Dwelling/Model/Scripts/BarracudaRunner.cs new file mode 100644 index 0000000..96f081c --- /dev/null +++ b/Assets/Dwelling/Model/Scripts/BarracudaRunner.cs @@ -0,0 +1,277 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using Unity.Barracuda; + +public class BarracudaRunner : MonoBehaviour +{ + public NNModel neuralNetworkModel; + public WorkerFactory.Type workerType = WorkerFactory.Type.Auto; + public float waitTime = 10; + public bool verbose = true; + + /// + /// Number of joint points. + /// + private const int jointNum = 24; + private int jointNumSquared { get { return jointNum * 2; } } + private int jointNumCube { get { return jointNum * 3; } } + + /// + /// Input image size. + /// + public int inputImageSize; + private float inputImageHalfSize { get { return (float)inputImageSize / 2f; } } + private float imageScale { get { return inputImageSize / (float)heatMapCol; } } + + /// + /// Column number of heatmap. + /// + public int heatMapCol; + private int heatMapColSquared { get { return heatMapCol * heatMapCol; } } + private int heatMapColCube { get { return heatMapCol * heatMapCol * heatMapCol; } } + + /// + /// Kalman filter parameter Q. + /// + public float kalmanParamQ; + + /// + /// Kalman filter parameter R. + /// + public float kalmanParamR; + + public bool useLowPassFilter = true; + public float lowPassParam = 0.1f; + + public Texture2D baseTexture; + public VideoCapture videoCapture; + public Avatar avatar; + + private float[] heatMap3D; + private float[] offset3D; + private int heatMapColxJointNum { get { return heatMapCol * jointNum; } } + private int cubeOffsetLinear { get { return heatMapCol * jointNumCube; } } + private int cubeOffsetSquared { get { return heatMapColSquared * jointNumCube; } } + + private const string inputName1 = "input.1"; + private const string inputName2 = "input.4"; + private const string inputName3 = "input.7"; + private Tensor input = new Tensor(); + private Dictionary inputs = new Dictionary() { { inputName1, null }, { inputName2, null }, { inputName3, null }, }; + private Tensor[] outputs = new Tensor[4]; + + private Model model; + private IWorker worker; + private bool loaded = false; + + private void Start() + { + heatMap3D = new float[jointNum * heatMapColCube]; + offset3D = new float[jointNum * heatMapColCube * 3]; + + // Disabel sleep. + Screen.sleepTimeout = SleepTimeout.NeverSleep; + + // Initialize the model. + model = ModelLoader.Load(neuralNetworkModel, verbose); + worker = WorkerFactory.CreateWorker(workerType, model, verbose); + + StartCoroutine(Load()); + } + + private void Update() + { + if( loaded ) + { + UpdateAvatar(); + } + } + + private IEnumerator Load() + { + inputs[inputName1] = new Tensor(baseTexture); + inputs[inputName2] = new Tensor(baseTexture); + inputs[inputName3] = new Tensor(baseTexture); + + // Create input and execute model. + yield return worker.StartManualSchedule(inputs); + + // Get outputs. + for( int i = 2; i < model.outputs.Count; i++ ) + { + outputs[i] = worker.PeekOutput(model.outputs[i]); + } + + // Get data from outputs. + offset3D = outputs[2].data.Download(outputs[2].shape); + heatMap3D = outputs[3].data.Download(outputs[3].shape); + + // Release outputs. + for( int i = 2; i < outputs.Length; i++ ) + { + outputs[i].Dispose(); + } + + PredictPose(); + + yield return new WaitForSeconds(waitTime); + + videoCapture.Initialize(inputImageSize, inputImageSize); + + loaded = true; + } + + private void UpdateAvatar() + { + input = new Tensor(videoCapture.renderTexture); + if( inputs[inputName1] == null ) + { + inputs[inputName1] = input; + inputs[inputName2] = new Tensor(videoCapture.renderTexture); + inputs[inputName3] = new Tensor(videoCapture.renderTexture); + } + else + { + inputs[inputName3].Dispose(); + inputs[inputName2].Dispose(); + inputs[inputName1].Dispose(); + + + inputs[inputName3] = input; + inputs[inputName2] = input; + inputs[inputName1] = input; + } + + StartCoroutine(ExecuteModel()); + } + + private IEnumerator ExecuteModel() + { + // Create input and execute model. + yield return worker.StartManualSchedule(inputs); + + // Get outputs. + for( int i = 2; i < model.outputs.Count; i++ ) + { + outputs[i] = worker.PeekOutput(model.outputs[i]); + } + + // Get data from outputs. + offset3D = outputs[2].ToReadOnlyArray(); + heatMap3D = outputs[3].ToReadOnlyArray(); + + // Release outputs. + for ( int i = 2; i < outputs.Length; i++ ) + { + outputs[i].Dispose(); + } + + PredictPose(); + } + + private void PredictPose() + { + for( int j = 0; j < jointNum; j++ ) + { + int maxXIndex = 0; + int maxYIndex = 0; + int maxZIndex = 0; + avatar.jointPoints[j].score3D = 0.0f; + int jj = j * heatMapCol; + for( int z = 0; z < heatMapCol; z++ ) + { + int zz = jj + z; + for( int y = 0; y < heatMapCol; y++ ) + { + int yy = y * heatMapColSquared * jointNum + zz; + for( int x = 0; x < heatMapCol; x++ ) + { + float v = heatMap3D[yy + x * heatMapColxJointNum]; + if( v > avatar.jointPoints[j].score3D ) + { + avatar.jointPoints[j].score3D = v; + maxXIndex = x; + maxYIndex = y; + maxZIndex = z; + } + } + } + } + + avatar.jointPoints[j].now3D.x = (offset3D[maxYIndex * cubeOffsetSquared + maxXIndex * cubeOffsetLinear + j * heatMapCol + maxZIndex] + 0.5f + (float)maxXIndex) * imageScale - inputImageHalfSize; + avatar.jointPoints[j].now3D.y = inputImageHalfSize - (offset3D[maxYIndex * cubeOffsetSquared + maxXIndex * cubeOffsetLinear + (j + jointNum) * heatMapCol + maxZIndex] + 0.5f + (float)maxYIndex) * imageScale; + avatar.jointPoints[j].now3D.z = (offset3D[maxYIndex * cubeOffsetSquared + maxXIndex * cubeOffsetLinear + (j + jointNumSquared) * heatMapCol + maxZIndex] + 0.5f + (float)(maxZIndex - 14)) * imageScale; + } + + // Calculate hip location. + Vector3 lc = (avatar.jointPoints[PositionIndex.RightThighBend.Int()].now3D + avatar.jointPoints[PositionIndex.LeftThighBend.Int()].now3D) / 2f; + avatar.jointPoints[PositionIndex.Hip.Int()].now3D = (avatar.jointPoints[PositionIndex.AbdomenUpper.Int()].now3D + lc) / 2f; + + // Calculate neck location. + avatar.jointPoints[PositionIndex.Neck.Int()].now3D = (avatar.jointPoints[PositionIndex.RightShoulderBend.Int()].now3D + avatar.jointPoints[PositionIndex.LeftShoulderBend.Int()].now3D) / 2f; + + // Calculate head location. + Vector3 cEar = (avatar.jointPoints[PositionIndex.RightEar.Int()].now3D + avatar.jointPoints[PositionIndex.LeftEar.Int()].now3D) / 2f; + Vector3 hv = cEar - avatar.jointPoints[PositionIndex.Neck.Int()].now3D; + Vector3 nhv = Vector3.Normalize(hv); + Vector3 nv = avatar.jointPoints[PositionIndex.Nose.Int()].now3D - avatar.jointPoints[PositionIndex.Neck.Int()].now3D; + avatar.jointPoints[PositionIndex.Head.Int()].now3D = avatar.jointPoints[PositionIndex.Neck.Int()].now3D + nhv * Vector3.Dot(nhv, nv); + + // Calculate spine location. + avatar.jointPoints[PositionIndex.Spine.Int()].now3D = avatar.jointPoints[PositionIndex.AbdomenUpper.Int()].now3D; + + // Kalman filter. + foreach( JointPoint jp in avatar.jointPoints ) + { + KalmanFilter(jp); + } + + // Low pass filter. + if( useLowPassFilter ) + { + foreach( JointPoint jp in avatar.jointPoints ) + { + jp.prevPos3D[0] = jp.pos3D; + for( int i = 1; i < jp.prevPos3D.Length; i++ ) + { + jp.prevPos3D[i] = jp.prevPos3D[i] * lowPassParam + jp.prevPos3D[i - 1] * (1f - lowPassParam); + } + + jp.pos3D = jp.prevPos3D[jp.prevPos3D.Length - 1]; + } + } + } + + private void KalmanFilter( JointPoint measurement ) + { + MeasurementUpdate(measurement); + measurement.pos3D.x = measurement.x.x + (measurement.now3D.x - measurement.x.x) * measurement.k.x; + measurement.pos3D.y = measurement.x.y + (measurement.now3D.y - measurement.x.y) * measurement.k.y; + measurement.pos3D.z = measurement.x.z + (measurement.now3D.z - measurement.x.z) * measurement.k.z; + measurement.x = measurement.pos3D; + } + + private void MeasurementUpdate( JointPoint measurement ) + { + measurement.k.x = (measurement.p.x + kalmanParamQ) / (measurement.p.x + kalmanParamQ + kalmanParamR); + measurement.k.y = (measurement.p.y + kalmanParamQ) / (measurement.p.y + kalmanParamQ + kalmanParamR); + measurement.k.z = (measurement.p.z + kalmanParamQ) / (measurement.p.z + kalmanParamQ + kalmanParamR); + measurement.p.x = kalmanParamR * (measurement.p.x + kalmanParamQ) / (kalmanParamR + measurement.p.x + kalmanParamQ); + measurement.p.y = kalmanParamR * (measurement.p.y + kalmanParamQ) / (kalmanParamR + measurement.p.y + kalmanParamQ); + measurement.p.z = kalmanParamR * (measurement.p.z + kalmanParamQ) / (kalmanParamR + measurement.p.z + kalmanParamQ); + } + + private void OnDestroy() + { + worker?.Dispose(); + + // Assuming model with multiple inputs that were passed as a Dictionary + foreach (var key in inputs.Keys) + { + inputs[key].Dispose(); + } + + inputs.Clear(); + } +} \ No newline at end of file diff --git a/Assets/Dwelling/Model/Scripts/BarracudaRunner.cs.meta b/Assets/Dwelling/Model/Scripts/BarracudaRunner.cs.meta new file mode 100644 index 0000000..6f82b4c --- /dev/null +++ b/Assets/Dwelling/Model/Scripts/BarracudaRunner.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a27889227d895094c8cd75784aa13cc2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/Model/Scripts/JointPoint.cs b/Assets/Dwelling/Model/Scripts/JointPoint.cs new file mode 100644 index 0000000..390b8e9 --- /dev/null +++ b/Assets/Dwelling/Model/Scripts/JointPoint.cs @@ -0,0 +1,28 @@ +using System; +using UnityEngine; + +[Serializable] +public class JointPoint +{ + public Vector2 pos2D = new Vector2(); + public float score2D; + + public Vector3 pos3D = new Vector3(); + public Vector3 now3D = new Vector3(); + public Vector3[] prevPos3D = new Vector3[6]; + public float score3D; + + // Bones. + public Transform transform; + public Quaternion initRotation; + public Quaternion inverse; + public Quaternion inverseRotation; + + public JointPoint child; + public JointPoint parent; + + // Kalman filter. + public Vector3 p = new Vector3(); + public Vector3 x = new Vector3(); + public Vector3 k = new Vector3(); +} \ No newline at end of file diff --git a/Assets/Dwelling/Model/Scripts/JointPoint.cs.meta b/Assets/Dwelling/Model/Scripts/JointPoint.cs.meta new file mode 100644 index 0000000..4edd0f0 --- /dev/null +++ b/Assets/Dwelling/Model/Scripts/JointPoint.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 48ba34ea03c643749b7b06587802e469 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/Model/Scripts/PositionIndex.cs b/Assets/Dwelling/Model/Scripts/PositionIndex.cs new file mode 100644 index 0000000..45df25e --- /dev/null +++ b/Assets/Dwelling/Model/Scripts/PositionIndex.cs @@ -0,0 +1,49 @@ +public enum PositionIndex +{ + RightShoulderBend = 0, + RightForearmBend, + RightHand, + RightThumb2, + RightMid1, + + LeftShoulderBend, + LeftForearmBend, + LeftHand, + LeftThumb2, + LeftMid1, + + LeftEar, + LeftEye, + RightEar, + RightEye, + Nose, + + RightThighBend, + RightShin, + RightFoot, + RightToe, + + LeftThighBend, + LeftShin, + LeftFoot, + LeftToe, + + AbdomenUpper, + + // Calculated coordinates. + Hip, + Head, + Neck, + Spine, + + Count, + None, +} + +public static class PositionIndexExtension +{ + public static int Int( this PositionIndex i ) + { + return (int)i; + } +} \ No newline at end of file diff --git a/Assets/Dwelling/Model/Scripts/PositionIndex.cs.meta b/Assets/Dwelling/Model/Scripts/PositionIndex.cs.meta new file mode 100644 index 0000000..e98223a --- /dev/null +++ b/Assets/Dwelling/Model/Scripts/PositionIndex.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: be46075d790932645bec94cdf28c3e2a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/Model/Scripts/Skeleton.cs b/Assets/Dwelling/Model/Scripts/Skeleton.cs new file mode 100644 index 0000000..c314811 --- /dev/null +++ b/Assets/Dwelling/Model/Scripts/Skeleton.cs @@ -0,0 +1,9 @@ +using UnityEngine; + +public class Skeleton +{ + public GameObject gameObject; + public LineRenderer lineRenderer; + public JointPoint start; + public JointPoint end; +} \ No newline at end of file diff --git a/Assets/Dwelling/Model/Scripts/Skeleton.cs.meta b/Assets/Dwelling/Model/Scripts/Skeleton.cs.meta new file mode 100644 index 0000000..541eca1 --- /dev/null +++ b/Assets/Dwelling/Model/Scripts/Skeleton.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 33347b742e6f3a542ba754b233cf6d6b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/Model/Scripts/VideoCapture.cs b/Assets/Dwelling/Model/Scripts/VideoCapture.cs new file mode 100644 index 0000000..83bc609 --- /dev/null +++ b/Assets/Dwelling/Model/Scripts/VideoCapture.cs @@ -0,0 +1,118 @@ +using UnityEngine; +using UnityEngine.UI; +using UnityEngine.Video; + +[RequireComponent(typeof(VideoPlayer))] +public class VideoCapture : MonoBehaviour +{ + public RawImage rawImage; + public float scale = 1; + public bool useWebCam = true; + public int webCamIndex = 0; + + public RenderTexture renderTexture { get; private set; } + + private WebCamTexture webCamTexture; + private RenderTexture videoTexture; + + private VideoPlayer videoPlayer; + private int rawImageWidth = 2560; + private int width, height; + + private void Awake() + { + videoPlayer = this.GetComponent(); + } + + public void Initialize( int width, int height ) + { + this.width = width; + this.height = height; + + if( useWebCam ) + { + PlayWebCamera(); + } + else + { + PlayVideo(); + } + } + + private void PlayWebCamera() + { + WebCamDevice[] devices = WebCamTexture.devices; + if( devices.Length <= webCamIndex ) + { + webCamIndex = 0; + } + + webCamTexture = new WebCamTexture(devices[webCamIndex].name); + + RectTransform rectTransform = rawImage.GetComponent(); + rawImage.texture = webCamTexture; + + webCamTexture.Play(); + + rectTransform.sizeDelta = new Vector2(rawImageWidth, rawImageWidth * webCamTexture.height / webCamTexture.width); + float aspect = (float)webCamTexture.width / webCamTexture.height; + this.transform.localScale = new Vector3(aspect, 1, 1) * scale; + this.GetComponent().material.mainTexture = webCamTexture; + + InitializeTexture(); + } + + private void PlayVideo() + { + videoTexture = new RenderTexture((int)videoPlayer.clip.width, (int)videoPlayer.clip.height, 24); + + videoPlayer.renderMode = VideoRenderMode.RenderTexture; + videoPlayer.targetTexture = videoTexture; + + RectTransform rectTransform = rawImage.GetComponent(); + rectTransform.sizeDelta = new Vector2(rawImageWidth, (int)(rawImageWidth * videoPlayer.clip.height / videoPlayer.clip.width)); + rawImage.texture = videoTexture; + + videoPlayer.Play(); + + float aspect = (float)videoTexture.width / videoTexture.height; + + this.transform.localScale = new Vector3(aspect, 1, 1) * scale; + this.GetComponent().material.mainTexture = videoTexture; + + InitializeTexture(); + } + + private void InitializeTexture() + { + GameObject go = new GameObject("Camera", typeof(Camera)); + + go.transform.parent = this.transform; + go.transform.localScale = new Vector3(-1, -1, 1); + go.transform.localPosition = new Vector3(0, 0, -2); + go.transform.localEulerAngles = Vector3.zero; + + Camera camera = go.GetComponent(); + camera.orthographic = true; + camera.orthographicSize = 0.5f ; + camera.depth = -5; + camera.depthTextureMode = 0; + camera.clearFlags = CameraClearFlags.Color; + camera.backgroundColor = Color.black; + camera.useOcclusionCulling = false; + camera.nearClipPlane = 1.0f; + camera.farClipPlane = 5.0f; + camera.allowMSAA = false; + camera.allowHDR = false; + + renderTexture = new RenderTexture(width, height, 0, RenderTextureFormat.RGB565, RenderTextureReadWrite.sRGB) + { + useMipMap = false, + autoGenerateMips = false, + wrapMode = TextureWrapMode.Clamp, + filterMode = FilterMode.Point, + }; + + camera.targetTexture = renderTexture; + } +} \ No newline at end of file diff --git a/Assets/Dwelling/Model/Scripts/VideoCapture.cs.meta b/Assets/Dwelling/Model/Scripts/VideoCapture.cs.meta new file mode 100644 index 0000000..553be79 --- /dev/null +++ b/Assets/Dwelling/Model/Scripts/VideoCapture.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b0015fead31b30e44a6ac6586bfda03c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/Model/female_model.fbx b/Assets/Dwelling/Model/female_model.fbx new file mode 100644 index 0000000..e0cc4f7 --- /dev/null +++ b/Assets/Dwelling/Model/female_model.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d771ced00fd15aac8994d88310947b5bfbc9f4c71477a65e039e46696ef4bbc0 +size 63580396 diff --git a/Assets/Dwelling/Model/female_model.fbx.meta b/Assets/Dwelling/Model/female_model.fbx.meta new file mode 100644 index 0000000..e434364 --- /dev/null +++ b/Assets/Dwelling/Model/female_model.fbx.meta @@ -0,0 +1,920 @@ +fileFormatVersion: 2 +guid: 184e8f3c9fd8e7347bc6408e7a166b07 +ModelImporter: + serializedVersion: 22200 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 3 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importPhysicalCameras: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + strictVertexDataChecks: 0 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: + - boneName: pelvis + humanName: Hips + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: left_hip + humanName: LeftUpperLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: right_hip + humanName: RightUpperLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: left_knee + humanName: LeftLowerLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: right_knee + humanName: RightLowerLeg + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: left_ankle + humanName: LeftFoot + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: right_ankle + humanName: RightFoot + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: spine1 + humanName: Spine + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: spine2 + humanName: Chest + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: neck + humanName: Neck + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: head + humanName: Head + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: left_collar + humanName: LeftShoulder + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: right_collar + humanName: RightShoulder + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: left_shoulder + humanName: LeftUpperArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: right_shoulder + humanName: RightUpperArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: left_elbow + humanName: LeftLowerArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: right_elbow + humanName: RightLowerArm + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: left_wrist + humanName: LeftHand + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: right_wrist + humanName: RightHand + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: left_foot + humanName: LeftToes + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: right_foot + humanName: RightToes + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: left_eye_smplhf + humanName: LeftEye + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: right_eye_smplhf + humanName: RightEye + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: jaw + humanName: Jaw + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: left_thumb1 + humanName: Left Thumb Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: left_thumb2 + humanName: Left Thumb Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: left_thumb3 + humanName: Left Thumb Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: left_index1 + humanName: Left Index Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: left_index2 + humanName: Left Index Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: left_index3 + humanName: Left Index Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: left_middle1 + humanName: Left Middle Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: left_middle2 + humanName: Left Middle Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: left_middle3 + humanName: Left Middle Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: left_ring1 + humanName: Left Ring Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: left_ring2 + humanName: Left Ring Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: left_ring3 + humanName: Left Ring Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: left_pinky1 + humanName: Left Little Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: left_pinky2 + humanName: Left Little Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: left_pinky3 + humanName: Left Little Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: right_thumb1 + humanName: Right Thumb Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: right_thumb2 + humanName: Right Thumb Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: right_thumb3 + humanName: Right Thumb Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: right_index1 + humanName: Right Index Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: right_index2 + humanName: Right Index Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: right_index3 + humanName: Right Index Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: right_middle1 + humanName: Right Middle Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: right_middle2 + humanName: Right Middle Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: right_middle3 + humanName: Right Middle Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: right_ring1 + humanName: Right Ring Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: right_ring2 + humanName: Right Ring Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: right_ring3 + humanName: Right Ring Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: right_pinky1 + humanName: Right Little Proximal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: right_pinky2 + humanName: Right Little Intermediate + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: right_pinky3 + humanName: Right Little Distal + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + - boneName: spine3 + humanName: UpperChest + limit: + min: {x: 0, y: 0, z: 0} + max: {x: 0, y: 0, z: 0} + value: {x: 0, y: 0, z: 0} + length: 0 + modified: 0 + skeleton: + - name: female_model(Clone) + parentName: + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: 0, z: 0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: SMPLX-mesh-female + parentName: female_model(Clone) + position: {x: -0, y: 0, z: 0} + rotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} + scale: {x: 100, y: 100, z: 100} + - name: SMPLX-female + parentName: female_model(Clone) + position: {x: -0, y: 0, z: 0} + rotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} + scale: {x: 100, y: 100, z: 100} + - name: root + parentName: SMPLX-female + position: {x: -0, y: 0, z: 0} + rotation: {x: 0.7071068, y: -0, z: -0, w: 0.7071068} + scale: {x: 1, y: 0.9999998, z: 0.9999998} + - name: pelvis + parentName: root + position: {x: -0.0000055597066, y: 0.009181982, z: 0.00013525321} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: left_hip + parentName: pelvis + position: {x: -0.00072898774, y: -0.00088478177, z: -0.0001448424} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: left_knee + parentName: left_hip + position: {x: -0.00026337756, y: -0.0037622415, z: -0.00021244488} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: left_ankle + parentName: left_knee + position: {x: 0.000082758816, y: -0.003869508, z: -0.00020596973} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: left_foot + parentName: left_ankle + position: {x: -0.0002154786, y: -0.0004389107, z: 0.0010739969} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: left_foot_end + parentName: left_foot + position: {x: -0, y: 0.0010000002, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: right_hip + parentName: pelvis + position: {x: 0.00072194927, y: -0.0009492826, z: -0.00015812609} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: right_knee + parentName: right_hip + position: {x: 0.00030216112, y: -0.0037205836, z: -0.00015110234} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: right_ankle + parentName: right_knee + position: {x: -0.00003603086, y: -0.003783856, z: -0.00016892522} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: right_foot + parentName: right_ankle + position: {x: 0.00017403334, y: -0.00047334193, z: 0.0010112992} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: right_foot_end + parentName: right_foot + position: {x: -0, y: 0.0010000002, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: spine1 + parentName: pelvis + position: {x: 0.000054604643, y: 0.001022124, z: -0.00026461255} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: spine2 + parentName: spine1 + position: {x: -0.00010170944, y: 0.001171658, z: -0.000102759106} + rotation: {x: -0.07224696, y: -0.0000000027939675, z: 0.012540868, w: 0.99730796} + scale: {x: 1, y: 1, z: 1} + - name: spine3 + parentName: spine2 + position: {x: 0.00005562553, y: 0.0004382453, z: 0.00032045445} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: neck + parentName: spine3 + position: {x: 0.000057622357, y: 0.0019407584, z: -0.00039961768} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: head + parentName: neck + position: {x: -0.00008775151, y: 0.0014609157, z: 0.00020743415} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: jaw + parentName: head + position: {x: 0.00003098343, y: -0.000027728676, z: -0.00006770011} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: jaw_end + parentName: jaw + position: {x: -0, y: 0.0009999999, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: left_eye_smplhf + parentName: head + position: {x: -0.00028241365, y: 0.00034706295, z: 0.00068637414} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: left_eye_smplhf_end + parentName: left_eye_smplhf + position: {x: -0, y: 0.0009999999, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: right_eye_smplhf + parentName: head + position: {x: 0.00033675638, y: 0.00034705788, z: 0.00068636023} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: right_eye_smplhf_end + parentName: right_eye_smplhf + position: {x: -0, y: 0.0009999999, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: left_collar + parentName: spine3 + position: {x: -0.0005223837, y: 0.0011427989, z: -0.00017978383} + rotation: {x: 0.0018165705, y: 0.054644626, z: 0.08424247, w: 0.9949442} + scale: {x: 1, y: 1, z: 1} + - name: left_shoulder + parentName: left_collar + position: {x: -0.0008847861, y: 0.00045554474, z: -0.00027641506} + rotation: {x: 0.016678263, y: -0.0022343248, z: -0.16187234, w: 0.9866683} + scale: {x: 1, y: 1, z: 1} + - name: left_elbow + parentName: left_shoulder + position: {x: -0.0027224422, y: -0.0005588281, z: -0.00027278773} + rotation: {x: -0.00028429538, y: -0.036877725, z: 0.052266642, w: 0.997952} + scale: {x: 1, y: 1, z: 1} + - name: left_wrist + parentName: left_elbow + position: {x: -0.0022742006, y: 0.0000754229, z: 0.00004084561} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: left_index1 + parentName: left_wrist + position: {x: -0.000999763, y: -0.00014504924, z: 0.00019800809} + rotation: {x: 0.0011160078, y: -0.015021581, z: 0.028354201, w: 0.99948454} + scale: {x: 0.9999998, y: 1.0000001, z: 1.0000001} + - name: left_index2 + parentName: left_index1 + position: {x: -0.000309294, y: 0.000027192686, z: 0.000026581094} + rotation: {x: -0.0017915812, y: 0.017459912, z: -0.03870809, w: 0.99909645} + scale: {x: 1, y: 0.99999994, z: 1} + - name: left_index3 + parentName: left_index2 + position: {x: -0.0002190473, y: -0.000013644704, z: 0.000003983745} + rotation: {x: 0.01321623, y: -0.00000014714887, z: 0.726706, w: 0.68682146} + scale: {x: 1.0000004, y: 1.0000001, z: 1} + - name: left_index3_end + parentName: left_index3 + position: {x: -0, y: 0.001, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: left_middle1 + parentName: left_wrist + position: {x: -0.0010679954, y: -0.000121801415, z: -0.000022489166} + rotation: {x: -0.0011134053, y: 0.007667617, z: 0.0113438545, w: 0.9999057} + scale: {x: 0.9999999, y: 1.0000001, z: 1} + - name: left_middle2 + parentName: left_middle1 + position: {x: -0.00029370128, y: 0.000013634143, z: -0.000038040725} + rotation: {x: 6.3527467e-18, y: 0.0000000021827873, z: 0.000000007548806, w: 1} + scale: {x: 1.0000004, y: 1.0000002, z: 1} + - name: left_middle3 + parentName: left_middle2 + position: {x: -0.00022789228, y: -0.0000054550565, z: -0.00003684975} + rotation: {x: -0.11377603, y: -0.00000043932477, z: 0.70362884, w: 0.7013998} + scale: {x: 0.9999999, y: 0.9999999, z: 1} + - name: left_middle3_end + parentName: left_middle3 + position: {x: -0, y: 0.001, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: left_pinky1 + parentName: left_wrist + position: {x: -0.0008205938, y: -0.00019658051, z: -0.000396193} + rotation: {x: -0.03004144, y: 0.25830898, z: 0.027646707, w: 0.9651993} + scale: {x: 0.9999999, y: 1, z: 1} + - name: left_pinky2 + parentName: left_pinky1 + position: {x: -0.00014282469, y: -0.000004075458, z: -0.00011711542} + rotation: {x: 1.3552535e-16, y: 0.000000011641536, z: 0.000000011641536, w: 1} + scale: {x: 1, y: 1, z: 0.9999999} + - name: left_pinky3 + parentName: left_pinky2 + position: {x: -0.00014562054, y: -0.000008646352, z: -0.00011355521} + rotation: {x: -0.44351918, y: -0.00000021151678, z: 0.56875765, w: 0.6926799} + scale: {x: 1.0000002, y: 1.0000002, z: 1.0000001} + - name: left_pinky3_end + parentName: left_pinky3 + position: {x: -0, y: 0.001, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: left_ring1 + parentName: left_wrist + position: {x: -0.0009502011, y: -0.00014763698, z: -0.00024294297} + rotation: {x: -0.003934992, y: 0.029105648, z: 0.029230384, w: 0.9991411} + scale: {x: 0.9999998, y: 1.0000001, z: 1.0000001} + - name: left_ring2 + parentName: left_ring1 + position: {x: -0.0002672887, y: 0.0000165636, z: -0.000052474177} + rotation: {x: 0.006340733, y: 0.027652068, z: -0.023569735, w: 0.99931955} + scale: {x: 1, y: 1, z: 1} + - name: left_ring3 + parentName: left_ring2 + position: {x: -0.00021861654, y: -0.000009346667, z: -0.0000697774} + rotation: {x: -0.21863143, y: -0.000000020489084, z: 0.68498504, w: 0.6949791} + scale: {x: 1.0000004, y: 1.0000005, z: 1.0000001} + - name: left_ring3_end + parentName: left_ring3 + position: {x: -0, y: 0.001, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: left_thumb1 + parentName: left_wrist + position: {x: -0.000416072, y: -0.00021897106, z: 0.00025896516} + rotation: {x: 0.029686067, y: -0.032789234, z: 0.022514913, w: 0.9987676} + scale: {x: 1, y: 1.0000001, z: 1} + - name: left_thumb2 + parentName: left_thumb1 + position: {x: -0.00016685366, y: 0.0000073319297, z: 0.00023067722} + rotation: {x: -0.084905736, y: 0.13532493, z: -0.06571527, w: 0.9849669} + scale: {x: 0.9999999, y: 1, z: 0.99999994} + - name: left_thumb3 + parentName: left_thumb2 + position: {x: -0.00019785376, y: -0.000056211662, z: 0.00013987944} + rotation: {x: 0.45197698, y: -0.00000066310133, z: 0.6393038, w: 0.62209934} + scale: {x: 1.0000001, y: 1, z: 1.0000001} + - name: left_thumb3_end + parentName: left_thumb3 + position: {x: -0, y: 0.001, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: right_collar + parentName: spine3 + position: {x: 0.000546977, y: 0.0011025515, z: -0.0002447681} + rotation: {x: -0.001414366, y: -0.03663966, z: -0.09094644, w: 0.99518055} + scale: {x: 1, y: 1, z: 1} + - name: right_shoulder + parentName: right_collar + position: {x: 0.0009560347, y: 0.00047853365, z: -0.00020765566} + rotation: {x: 0.010884552, y: 0.00097430486, z: 0.1383456, w: 0.9903238} + scale: {x: 1, y: 1, z: 1} + - name: right_elbow + parentName: right_shoulder + position: {x: 0.0026255709, y: -0.0005077782, z: -0.00020299334} + rotation: {x: -0.00083316286, y: 0.01289102, z: -0.030876193, w: 0.9994398} + scale: {x: 1, y: 1, z: 1} + - name: right_wrist + parentName: right_elbow + position: {x: 0.0022811478, y: 0.000033539978, z: -0.000047555117} + rotation: {x: -0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: right_index1 + parentName: right_wrist + position: {x: 0.0009879296, y: -0.00013693265, z: 0.00021285698} + rotation: {x: 0.0010281977, y: 0.011124225, z: -0.023348453, w: 0.99966496} + scale: {x: 0.9999998, y: 1.0000001, z: 1.0000001} + - name: right_index2 + parentName: right_index1 + position: {x: 0.00030929124, y: 0.000027182248, z: 0.0000265706} + rotation: {x: -0.00179085, y: -0.01745934, z: 0.038707074, w: 0.99909645} + scale: {x: 1, y: 0.99999994, z: 1} + - name: right_index3 + parentName: right_index2 + position: {x: 0.00021904298, y: -0.000013651042, z: 0.0000039768556} + rotation: {x: 0.01319372, y: 0.00000030919907, z: -0.72671896, w: 0.68680835} + scale: {x: 1.0000004, y: 1.0000001, z: 1} + - name: right_index3_end + parentName: right_index3 + position: {x: -0, y: 0.001, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: right_middle1 + parentName: right_wrist + position: {x: 0.0010561639, y: -0.0001136937, z: -0.000007659383} + rotation: {x: -0.0011111026, y: -0.009514155, z: -0.011987994, w: 0.9998823} + scale: {x: 0.9999999, y: 1.0000001, z: 1} + - name: right_middle2 + parentName: right_middle1 + position: {x: 0.00029369848, y: 0.000013632234, z: -0.000038040394} + rotation: {x: 6.3527467e-18, y: -0.0000000021827873, z: -0.000000007548806, + w: 1} + scale: {x: 1.0000004, y: 1.0000002, z: 1} + - name: right_middle3 + parentName: right_middle2 + position: {x: 0.0002278906, y: -0.000005463422, z: -0.00003685466} + rotation: {x: -0.113792956, y: 0.00000014409558, z: -0.7036398, w: 0.701386} + scale: {x: 0.9999999, y: 0.9999999, z: 1} + - name: right_middle3_end + parentName: right_middle3 + position: {x: -0, y: 0.001, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: right_pinky1 + parentName: right_wrist + position: {x: 0.0008087748, y: -0.00018849826, z: -0.0003813709} + rotation: {x: -0.028746337, y: -0.26530156, z: -0.02583223, w: 0.9633906} + scale: {x: 0.9999999, y: 1, z: 1} + - name: right_pinky2 + parentName: right_pinky1 + position: {x: 0.00014281551, y: -0.000004071691, z: -0.00011710957} + rotation: {x: 1.3552535e-16, y: -0.000000011641536, z: -0.000000011641536, w: 1} + scale: {x: 1, y: 1, z: 0.9999999} + - name: right_pinky3 + parentName: right_pinky2 + position: {x: 0.00014561528, y: -0.000008639784, z: -0.0001135554} + rotation: {x: -0.44352135, y: 0.00000013701111, z: -0.56874037, w: 0.6926927} + scale: {x: 1.0000002, y: 1.0000002, z: 1.0000001} + - name: right_pinky3_end + parentName: right_pinky3 + position: {x: -0, y: 0.001, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: right_ring1 + parentName: right_wrist + position: {x: 0.0009383744, y: -0.00013954059, z: -0.00022812288} + rotation: {x: -0.0037600081, y: -0.032938432, z: -0.029549563, w: 0.9990135} + scale: {x: 0.9999998, y: 1.0000001, z: 1.0000001} + - name: right_ring2 + parentName: right_ring1 + position: {x: 0.00026728198, y: 0.0000165671, z: -0.000052476957} + rotation: {x: 0.006344754, y: -0.027657164, z: 0.02358414, w: 0.99931914} + scale: {x: 1, y: 1, z: 1} + - name: right_ring3 + parentName: right_ring2 + position: {x: 0.00021861267, y: -0.000009352525, z: -0.000069779206} + rotation: {x: -0.21864416, y: 0.000000061467254, z: -0.684991, w: 0.6949691} + scale: {x: 1.0000004, y: 1.0000005, z: 1.0000001} + - name: right_ring3_end + parentName: right_ring3 + position: {x: -0, y: 0.0009999999, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + - name: right_thumb1 + parentName: right_wrist + position: {x: 0.00040421367, y: -0.00021088071, z: 0.00027382153} + rotation: {x: 0.028257368, y: 0.02872438, z: -0.021352524, w: 0.9989598} + scale: {x: 1, y: 1.0000001, z: 1} + - name: right_thumb2 + parentName: right_thumb1 + position: {x: 0.00016685243, y: 0.0000073361975, z: 0.0002306774} + rotation: {x: -0.08491283, y: -0.13537632, z: 0.06572385, w: 0.9849586} + scale: {x: 0.9999999, y: 1, z: 0.99999994} + - name: right_thumb3 + parentName: right_thumb2 + position: {x: 0.00019787122, y: -0.00005621143, z: 0.00013986087} + rotation: {x: 0.45190835, y: 0.0000008121128, z: -0.6393502, w: 0.6221015} + scale: {x: 1.0000001, y: 1, z: 1.0000001} + - name: right_thumb3_end + parentName: right_thumb3 + position: {x: -0, y: 0.001, z: 0} + rotation: {x: 0, y: -0, z: -0, w: 1} + scale: {x: 1, y: 1, z: 1} + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 1 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 3 + humanoidOversampling: 1 + avatarSetup: 1 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + importBlendShapeDeformPercent: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/OSC.meta b/Assets/Dwelling/OSC.meta new file mode 100644 index 0000000..e7df1ba --- /dev/null +++ b/Assets/Dwelling/OSC.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e7cd8492b8dfd4f45a627cd029f4a22d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/OSC/OscConnection.asset b/Assets/Dwelling/OSC/OscConnection.asset new file mode 100644 index 0000000..b75ea13 --- /dev/null +++ b/Assets/Dwelling/OSC/OscConnection.asset @@ -0,0 +1,17 @@ +%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: 3fc33fd9d04d644019471cb272c0fe46, type: 3} + m_Name: OscConnection + m_EditorClassIdentifier: + type: 0 + host: 127.0.0.1 + port: 8000 diff --git a/Assets/Dwelling/OSC/OscConnection.asset.meta b/Assets/Dwelling/OSC/OscConnection.asset.meta new file mode 100644 index 0000000..103c96d --- /dev/null +++ b/Assets/Dwelling/OSC/OscConnection.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 43574dbafae74644391e86025a2e5863 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/OSC/PoseSender.cs b/Assets/Dwelling/OSC/PoseSender.cs new file mode 100644 index 0000000..9356b25 --- /dev/null +++ b/Assets/Dwelling/OSC/PoseSender.cs @@ -0,0 +1,150 @@ +// OSC Jack - Open Sound Control plugin for Unity +// https://github.com/keijiro/OscJack + +using UnityEngine; +using System; +using System.Reflection; + +namespace OscJack +{ + [AddComponentMenu("OSC/Property Sender")] + public sealed class PoseSender : MonoBehaviour + { + #region Editable fields + + [SerializeField] OscConnection _connection = null; + [SerializeField] string _oscAddress = "/unity"; + [SerializeField] Component _dataSource = null; + [SerializeField] string _propertyName = ""; + [SerializeField] bool _keepSending = false; + + #endregion + + #region Internal members + + OscClient _client; + PropertyInfo _propertyInfo; + + void UpdateSettings() + { + if (_connection != null) + _client = OscMaster.GetSharedClient(_connection.host, _connection.port); + else + _client = null; + + if (_dataSource != null && !string.IsNullOrEmpty(_propertyName)) + _propertyInfo = _dataSource.GetType().GetProperty(_propertyName); + else + _propertyInfo = null; + } + + #endregion + + #region MonoBehaviour implementation + + void Start() + { + UpdateSettings(); + } + + void OnValidate() + { + if (Application.isPlaying) UpdateSettings(); + } + + void Update() + { + if (_client == null || _propertyInfo == null) return; + + var type = _propertyInfo.PropertyType; + var value = _propertyInfo.GetValue(_dataSource, null); // boxing!! + + if (type == typeof(int)) Send((int)value); + else if (type == typeof(float)) Send((float)value); + else if (type == typeof(string)) Send((string)value); + else if (type == typeof(Vector2)) Send((Vector2)value); + else if (type == typeof(Vector3)) Send((Vector3)value); + else if (type == typeof(Vector4)) Send((Vector4)value); + else if (type == typeof(Vector2Int)) Send((Vector2Int)value); + else if (type == typeof(Vector3Int)) Send((Vector3Int)value); + } + + #endregion + + #region Sender methods + + int _intValue = Int32.MaxValue; + + public void Send(int data) + { + if (!_keepSending && data == _intValue) return; + _client.Send(_oscAddress, data); + _intValue = data; + } + + float _floatValue = Single.MaxValue; + + public void Send(float data) + { + if (!_keepSending && data == _floatValue) return; + _client.Send(_oscAddress, data); + _floatValue = data; + } + + Vector2 _vector2Value = new Vector2(Single.MaxValue, 0); + + public void Send(Vector2 data) + { + if (!_keepSending && data == _vector2Value) return; + _client.Send(_oscAddress, data.x, data.y); + _vector2Value = data; + } + + Vector3 _vector3Value = new Vector3(Single.MaxValue, 0, 0); + + public void Send(Vector3 data) + { + if (!_keepSending && data == _vector3Value) return; + _client.Send(_oscAddress, data.x, data.y, data.z); + _vector3Value = data; + } + + Vector4 _vector4Value = new Vector4(Single.MaxValue, 0, 0, 0); + + public void Send(Vector4 data) + { + if (!_keepSending && data == _vector4Value) return; + _client.Send(_oscAddress, data.x, data.y, data.z, data.w); + _vector4Value = data; + } + + Vector2Int _vector2IntValue = new Vector2Int(Int32.MaxValue, 0); + + public void Send(Vector2Int data) + { + if (!_keepSending && data == _vector2IntValue) return; + _client.Send(_oscAddress, data.x, data.y); + _vector2IntValue = data; + } + + Vector3Int _vector3IntValue = new Vector3Int(Int32.MaxValue, 0, 0); + + public void Send(Vector3Int data) + { + if (!_keepSending && data == _vector3IntValue) return; + _client.Send(_oscAddress, data.x, data.y, data.z); + _vector3IntValue = data; + } + + string _stringValue = string.Empty; + + public void Send(string data) + { + if (!_keepSending && data == _stringValue) return; + _client.Send(_oscAddress, data); + _stringValue = data; + } + + #endregion + } +} diff --git a/Assets/Dwelling/OSC/PoseSender.cs.meta b/Assets/Dwelling/OSC/PoseSender.cs.meta new file mode 100644 index 0000000..a89ea2b --- /dev/null +++ b/Assets/Dwelling/OSC/PoseSender.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6e0dffb01e7889349aa443ad3397fddb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/Shaders.meta b/Assets/Dwelling/Shaders.meta new file mode 100644 index 0000000..d8d6d65 --- /dev/null +++ b/Assets/Dwelling/Shaders.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9b845af183367a949bbed4ea19a28f4e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/Shaders/Texture.shader b/Assets/Dwelling/Shaders/Texture.shader new file mode 100644 index 0000000..d746f45 --- /dev/null +++ b/Assets/Dwelling/Shaders/Texture.shader @@ -0,0 +1,53 @@ +Shader "Custom/Texture" +{ + Properties + { + _MainTex ("Base (RGB)", 2D) = "white" { } + } + + SubShader + { + Tags { "RenderType" = "Opaque" } + LOD 100 + + Pass + { + CGPROGRAM + #pragma vertex Vertex + #pragma fragment Fragment + #pragma target 2.0 + + #include "UnityCG.cginc" + + struct Attributes + { + float4 positionOS : POSITION; + float2 uv : TEXCOORD0; + }; + + struct Varyings + { + float4 positionCS : SV_POSITION; + float2 uv : TEXCOORD0; + }; + + sampler2D _MainTex; + float4 _MainTex_ST; + + Varyings Vertex( Attributes input ) + { + Varyings output; + output.positionCS = UnityObjectToClipPos(input.positionOS); + output.uv = TRANSFORM_TEX(input.uv, _MainTex); + return output; + } + + half4 Fragment( Varyings input ) : SV_Target + { + half4 color = tex2D(_MainTex, input.uv); + return color; + } + ENDCG + } + } +} \ No newline at end of file diff --git a/Assets/Dwelling/Shaders/Texture.shader.meta b/Assets/Dwelling/Shaders/Texture.shader.meta new file mode 100644 index 0000000..82774fa --- /dev/null +++ b/Assets/Dwelling/Shaders/Texture.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 1ed0907b442c1ba40abab7e3df22c161 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/Textures.meta b/Assets/Dwelling/Textures.meta new file mode 100644 index 0000000..e092d81 --- /dev/null +++ b/Assets/Dwelling/Textures.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 74874b97a55113242bc67c0b87cb43d2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/Textures/Base.psd b/Assets/Dwelling/Textures/Base.psd new file mode 100644 index 0000000..efe4613 --- /dev/null +++ b/Assets/Dwelling/Textures/Base.psd @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3c342fe8eed1429c348a921912e3b073c55644c8f6b52fd07a7f5a970e798e0 +size 1225446 diff --git a/Assets/Dwelling/Textures/Base.psd.meta b/Assets/Dwelling/Textures/Base.psd.meta new file mode 100644 index 0000000..1a2e085 --- /dev/null +++ b/Assets/Dwelling/Textures/Base.psd.meta @@ -0,0 +1,104 @@ +fileFormatVersion: 2 +guid: 7322ccd0ff5309147a9faf5de7a100ae +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + 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 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + 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: Standalone + 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: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/Textures/Disk.png b/Assets/Dwelling/Textures/Disk.png new file mode 100644 index 0000000..277a15f --- /dev/null +++ b/Assets/Dwelling/Textures/Disk.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa08ec9e2536971d3169bf6b6a7199be06c34000cd42efbb92c81917611db44a +size 573 diff --git a/Assets/Dwelling/Textures/Disk.png.meta b/Assets/Dwelling/Textures/Disk.png.meta new file mode 100644 index 0000000..4833504 --- /dev/null +++ b/Assets/Dwelling/Textures/Disk.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: aa1245d7376cab442b9e9d397598decb +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + 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: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 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 + ignorePlatformSupport: 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 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/VFX.meta b/Assets/Dwelling/VFX.meta new file mode 100644 index 0000000..33dd6d2 --- /dev/null +++ b/Assets/Dwelling/VFX.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 229656fc5b12ee842a007552411dee54 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/VFX/Avatar.vfx b/Assets/Dwelling/VFX/Avatar.vfx new file mode 100644 index 0000000..3fcebff --- /dev/null +++ b/Assets/Dwelling/VFX/Avatar.vfx @@ -0,0 +1,38266 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &114340500867371532 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: d01270efd3285ea4a9d6c555cb0a8027, type: 3} + m_Name: VFXUI + m_EditorClassIdentifier: + groupInfos: + - title: Target Distance + position: + serializedVersion: 2 + x: 12 + y: 2147 + width: 633 + height: 144 + contents: + - model: {fileID: 8926484042661614944} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661614882} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661614900} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661614887} + id: 0 + isStickyNote: 0 + - title: Distance fade + position: + serializedVersion: 2 + x: 773 + y: 2350 + width: 433 + height: 202 + contents: + - model: {fileID: 8926484042661615015} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615020} + id: 0 + isStickyNote: 0 + - title: Line thickness + position: + serializedVersion: 2 + x: 1296 + y: 2352 + width: 353 + height: 202 + contents: + - model: {fileID: 8926484042661615037} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615046} + id: 0 + isStickyNote: 0 + - title: Between position and target + position: + serializedVersion: 2 + x: 1106 + y: 1910 + width: 602 + height: 202 + contents: + - model: {fileID: 8926484042661615062} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615067} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661614968} + id: 0 + isStickyNote: 0 + - title: Normal offset + position: + serializedVersion: 2 + x: -2899 + y: 1387 + width: 497 + height: 165 + contents: + - model: {fileID: 8926484042661615117} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615112} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615134} + id: 0 + isStickyNote: 0 + - title: Random size + position: + serializedVersion: 2 + x: -3017 + y: 1030 + width: 609 + height: 310 + contents: + - model: {fileID: 8926484042661614676} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615136} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615138} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661614681} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661614667} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615420} + id: 0 + isStickyNote: 0 + - title: Orient + position: + serializedVersion: 2 + x: 941 + y: 2953 + width: 501 + height: 144 + contents: + - model: {fileID: 8926484042661614837} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661614832} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661614846} + id: 0 + isStickyNote: 0 + - title: Turbulences + position: + serializedVersion: 2 + x: -4899 + y: 2680 + width: 1814 + height: 624 + contents: + - model: {fileID: 8926484042661615512} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615454} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615436} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615422} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615487} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615466} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615479} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615510} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615491} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615614} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615604} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615609} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615616} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615766} + id: 0 + isStickyNote: 0 + - title: Noise + position: + serializedVersion: 2 + x: -3299 + y: 1591 + width: 903 + height: 588 + contents: + - model: {fileID: 8926484042661615519} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615514} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615524} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615529} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615538} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615550} + id: 0 + isStickyNote: 0 + stickyNoteInfos: + - title: Points + position: + serializedVersion: 2 + x: -2293 + y: 589 + width: 169 + height: 100 + contents: + theme: Classic + textSize: Small + - title: Bubble + position: + serializedVersion: 2 + x: -902 + y: 564 + width: 169 + height: 100 + contents: + theme: Classic + textSize: Small + - title: Lines + position: + serializedVersion: 2 + x: 1453 + y: 563 + width: 169 + height: 100 + contents: + theme: Classic + textSize: Small + - title: Trails + position: + serializedVersion: 2 + x: 3276 + y: 574 + width: 169 + height: 100 + contents: + theme: Classic + textSize: Small + - title: Droplet + position: + serializedVersion: 2 + x: 5969.8364 + y: 527.68146 + width: 169 + height: 100 + contents: + theme: Classic + textSize: Small + - title: Antenna + position: + serializedVersion: 2 + x: 8466.855 + y: 653.19434 + width: 169 + height: 100 + contents: + theme: Classic + textSize: Small + categories: + - name: Data + collapsed: 0 + - name: Point + collapsed: 0 + - name: Line + collapsed: 1 + - name: Bubble + collapsed: 0 + - name: Trail + collapsed: 1 + - name: Antenna + collapsed: 0 + - name: Falling + collapsed: 0 + uiBounds: + serializedVersion: 2 + x: -4899 + y: 522 + width: 14391 + height: 3062 +--- !u!114 &114350483966674976 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: 7d4c867f6b72b714dbb5fd1780afe208, type: 3} + m_Name: Avatar + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614555} + - {fileID: 8926484042661614558} + - {fileID: 8926484042661614583} + - {fileID: 8926484042661614606} + - {fileID: 8926484042661614659} + - {fileID: 8926484042661614667} + - {fileID: 8926484042661614676} + - {fileID: 8926484042661614681} + - {fileID: 8926484042661614702} + - {fileID: 8926484042661614708} + - {fileID: 8926484042661614752} + - {fileID: 8926484042661614778} + - {fileID: 8926484042661614832} + - {fileID: 8926484042661614837} + - {fileID: 8926484042661614846} + - {fileID: 8926484042661614882} + - {fileID: 8926484042661614887} + - {fileID: 8926484042661614900} + - {fileID: 8926484042661614944} + - {fileID: 8926484042661614968} + - {fileID: 8926484042661615015} + - {fileID: 8926484042661615020} + - {fileID: 8926484042661615037} + - {fileID: 8926484042661615046} + - {fileID: 8926484042661615062} + - {fileID: 8926484042661615067} + - {fileID: 8926484042661615072} + - {fileID: 8926484042661615074} + - {fileID: 8926484042661615112} + - {fileID: 8926484042661615117} + - {fileID: 8926484042661615134} + - {fileID: 8926484042661615136} + - {fileID: 8926484042661615138} + - {fileID: 8926484042661615216} + - {fileID: 8926484042661615246} + - {fileID: 8926484042661615248} + - {fileID: 8926484042661615250} + - {fileID: 8926484042661615286} + - {fileID: 8926484042661615319} + - {fileID: 8926484042661615420} + - {fileID: 8926484042661615422} + - {fileID: 8926484042661615436} + - {fileID: 8926484042661615441} + - {fileID: 8926484042661615454} + - {fileID: 8926484042661615466} + - {fileID: 8926484042661615479} + - {fileID: 8926484042661615487} + - {fileID: 8926484042661615491} + - {fileID: 8926484042661615510} + - {fileID: 8926484042661615512} + - {fileID: 8926484042661615514} + - {fileID: 8926484042661615519} + - {fileID: 8926484042661615524} + - {fileID: 8926484042661615529} + - {fileID: 8926484042661615538} + - {fileID: 8926484042661615550} + - {fileID: 8926484042661615604} + - {fileID: 8926484042661615609} + - {fileID: 8926484042661615614} + - {fileID: 8926484042661615616} + - {fileID: 8926484042661615628} + - {fileID: 8926484042661615643} + - {fileID: 8926484042661615649} + - {fileID: 8926484042661615651} + - {fileID: 8926484042661615657} + - {fileID: 8926484042661615659} + - {fileID: 8926484042661615707} + - {fileID: 8926484042661615711} + - {fileID: 8926484042661615732} + - {fileID: 8926484042661615738} + - {fileID: 8926484042661615744} + - {fileID: 8926484042661615762} + - {fileID: 8926484042661615764} + - {fileID: 8926484042661615766} + - {fileID: 8926484042661615774} + - {fileID: 8926484042661615776} + - {fileID: 8926484042661615778} + - {fileID: 8926484042661615780} + - {fileID: 8926484042661615792} + - {fileID: 8926484042661615801} + - {fileID: 8926484042661615806} + - {fileID: 8926484042661615808} + - {fileID: 8926484042661615816} + - {fileID: 8926484042661615818} + - {fileID: 8926484042661615822} + - {fileID: 8926484042661615826} + - {fileID: 8926484042661615828} + - {fileID: 8926484042661615833} + - {fileID: 8926484042661615867} + - {fileID: 8926484042661615894} + - {fileID: 8926484042661615897} + - {fileID: 8926484042661615919} + - {fileID: 8926484042661615942} + - {fileID: 8926484042661615973} + - {fileID: 8926484042661615985} + - {fileID: 8926484042661615991} + - {fileID: 8926484042661615993} + - {fileID: 8926484042661615995} + - {fileID: 8926484042661615999} + - {fileID: 8926484042661616005} + - {fileID: 8926484042661616020} + - {fileID: 8926484042661616050} + - {fileID: 8926484042661616059} + - {fileID: 8926484042661616090} + - {fileID: 8926484042661616119} + - {fileID: 8926484042661616143} + - {fileID: 8926484042661616173} + - {fileID: 8926484042661616229} + - {fileID: 8926484042661616251} + - {fileID: 8926484042661616256} + - {fileID: 8926484042661616324} + - {fileID: 8926484042661616329} + - {fileID: 8926484042661616352} + - {fileID: 8926484042661616372} + - {fileID: 8926484042661616383} + - {fileID: 8926484042661616388} + - {fileID: 8926484042661616394} + - {fileID: 8926484042661616403} + - {fileID: 8926484042661616405} + - {fileID: 8926484042661616407} + - {fileID: 8926484042661616409} + - {fileID: 8926484042661616413} + - {fileID: 8926484042661616415} + - {fileID: 8926484042661616419} + - {fileID: 8926484042661616421} + - {fileID: 8926484042661616482} + - {fileID: 8926484042661616491} + - {fileID: 8926484042661616496} + - {fileID: 8926484042661616501} + - {fileID: 8926484042661616504} + - {fileID: 8926484042661616508} + - {fileID: 8926484042661616516} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_UIInfos: {fileID: 114340500867371532} + m_ParameterInfo: + - name: Data + path: + tooltip: + sheetType: + realType: + defaultValue: + m_Type: + m_SerializableType: + m_SerializableObject: + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: PositionMap + path: PositionMap + tooltip: + sheetType: m_NamedObject + realType: Texture2D + defaultValue: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":2800000,"guid":"276d9e395ae18fe40a9b4988549f2349","type":3}}' + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: VelocityMap + path: VelocityMap + tooltip: + sheetType: m_NamedObject + realType: Texture2D + defaultValue: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":2800000,"guid":"276d9e395ae18fe40a9b4988549f2349","type":3}}' + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: NormalMap + path: NormalMap + tooltip: + sheetType: m_NamedObject + realType: Texture2D + defaultValue: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":2800000,"guid":"276d9e395ae18fe40a9b4988549f2349","type":3}}' + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Point + path: + tooltip: + sheetType: + realType: + defaultValue: + m_Type: + m_SerializableType: + m_SerializableObject: + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Point Rate + path: Point Rate + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1000 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Point Color + path: Point Color + tooltip: + sheetType: m_Vector4f + realType: Color + defaultValue: + m_Type: + m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"r":1.0,"g":1.0,"b":1.0,"a":1.0}' + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Point Smoothness + path: Point Smoothness + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + min: 0 + max: 1 + enumValues: [] + descendantCount: 0 + - name: Point Metallic + path: Point Metallic + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + min: 0 + max: 1 + enumValues: [] + descendantCount: 0 + - name: Point Lifetime + path: Point Lifetime + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 3 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Point Size Small + path: Point Size Small + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.01 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Point Size Big + path: Point Size Big + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.02 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Point Size Ratio + path: Point Size Ratio + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.85 + min: 0 + max: 1 + enumValues: [] + descendantCount: 0 + - name: Normal Offset + path: Normal Offset + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Noise + path: Noise + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.1 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Turbulences + path: Turbulences + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.1 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Turbulences Speed + path: Turbulences Speed + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.1 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Turbulences Frequency + path: Turbulences Frequency + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 10 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Turbulences Ratio + path: Turbulences Ratio + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.85 + min: 0 + max: 1 + enumValues: [] + descendantCount: 0 + - name: Line + path: + tooltip: + sheetType: + realType: + defaultValue: + m_Type: + m_SerializableType: + m_SerializableObject: + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Toggle Line + path: Toggle Line + tooltip: + sheetType: m_Bool + realType: Boolean + defaultValue: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Line Rate + path: Line Rate + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1000 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Line Lifetime + path: Line Lifetime + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 3 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Line Color + path: Line Color + tooltip: + sheetType: m_Vector4f + realType: Color + defaultValue: + m_Type: + m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"r":1.0,"g":1.0,"b":1.0,"a":1.0}' + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Line Point Color + path: Line Point Color + tooltip: + sheetType: m_Vector4f + realType: Color + defaultValue: + m_Type: + m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"r":1.0,"g":1.0,"b":1.0,"a":1.0}' + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Line Range + path: Line Range + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.1 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Line Thickness + path: Line Thickness + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.02 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Line Point Size + path: Line Point Size + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.02 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Line Smoothness + path: Line Smoothness + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + min: 0 + max: 1 + enumValues: [] + descendantCount: 0 + - name: Line Metallic + path: Line Metallic + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + min: 0 + max: 1 + enumValues: [] + descendantCount: 0 + - name: Bubble + path: + tooltip: + sheetType: + realType: + defaultValue: + m_Type: + m_SerializableType: + m_SerializableObject: + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Toggle Bubble + path: Toggle Bubble + tooltip: + sheetType: m_Bool + realType: Boolean + defaultValue: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Bubble Color + path: Bubble Color + tooltip: + sheetType: m_Vector4f + realType: Color + defaultValue: + m_Type: + m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"r":1.0,"g":1.0,"b":1.0,"a":1.0}' + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Bubble Size + path: Bubble Size + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.02 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Bubble Rate + path: Bubble Rate + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 100 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Bubble Lifetime + path: Bubble Lifetime + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Bubble Turbulences + path: Bubble Turbulences + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Bubble Turbulences Frequency + path: Bubble Turbulences Frequency + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Bubble Force + path: Bubble Force + tooltip: + sheetType: m_Vector3f + realType: Vector3 + defaultValue: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":1.0,"z":0.0}' + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Bubble Alpha + path: Bubble Alpha + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Trail + path: + tooltip: + sheetType: + realType: + defaultValue: + m_Type: + m_SerializableType: + m_SerializableObject: + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Toggle Trail + path: Toggle Trail + tooltip: + sheetType: m_Bool + realType: Boolean + defaultValue: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Trail Color + path: Trail Color + tooltip: + sheetType: m_Vector4f + realType: Color + defaultValue: + m_Type: + m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"r":1.0,"g":1.0,"b":1.0,"a":1.0}' + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Trail Lifetime + path: Trail Lifetime + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 6 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Antenna + path: + tooltip: + sheetType: + realType: + defaultValue: + m_Type: + m_SerializableType: + m_SerializableObject: + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Toggle Antenna + path: Toggle Antenna + tooltip: + sheetType: m_Bool + realType: Boolean + defaultValue: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Antenna Rate + path: Antenna Rate + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 100 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Antenna Point Size + path: Antenna Point Size + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.05 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Falling + path: + tooltip: + sheetType: + realType: + defaultValue: + m_Type: + m_SerializableType: + m_SerializableObject: + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Toggle Falling + path: Toggle Falling + tooltip: + sheetType: m_Bool + realType: Boolean + defaultValue: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + m_ImportDependencies: [] + m_GraphVersion: 12 + m_ResourceVersion: 1 + m_SubgraphDependencies: [] + m_CategoryPath: +--- !u!2058629511 &8926484042661614527 +VisualEffectResource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Avatar + m_Graph: {fileID: 114350483966674976} + m_Infos: + m_RendererSettings: + motionVectorGenerationMode: 0 + shadowCastingMode: 1 + receiveShadows: 0 + reflectionProbeUsage: 0 + lightProbeUsage: 0 + m_CullingFlags: 3 + m_UpdateMode: 0 + m_PreWarmDeltaTime: 0.05 + m_PreWarmStepCount: 0 + m_InitialEventName: OnPlay + m_InstancingMode: 0 + m_InstancingCapacity: 64 +--- !u!114 &8926484042661614555 +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: 73a13919d81fb7444849bae8b5c812a2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661616377} + m_UIPosition: {x: -2045, y: 618} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: Spawn system + m_Data: {fileID: 8926484042661614595} + m_InputFlowSlot: + - link: [] + - link: [] + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661614558} + slotIndex: 0 + loopDuration: 0 + loopCount: 0 + delayBeforeLoop: 0 + delayAfterLoop: 0 +--- !u!114 &8926484042661614558 +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: 9dfea48843f53fc438eabc12a3a30abc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661616385} + - {fileID: 8926484042661616427} + - {fileID: 8926484042661616430} + - {fileID: 8926484042661616442} + - {fileID: 8926484042661616454} + m_UIPosition: {x: -2045, y: 931} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614559} + - {fileID: 8926484042661614596} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661614568} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661614555} + slotIndex: 0 + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661614583} + slotIndex: 0 +--- !u!114 &8926484042661614559 +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: 1b605c022ee79394a8a776c0869b3f9a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614560} + - {fileID: 8926484042661614564} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614559} + m_MasterData: + m_Owner: {fileID: 8926484042661614558} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"center":{"x":-0.008661508560180664,"y":1.4014217853546143,"z":-0.018482446670532228},"size":{"x":3.004997730255127,"y":3.960069179534912,"z":3.0607447624206545}}' + m_Space: 0 + m_Property: + name: bounds + m_serializedType: + m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614560 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614559} + m_Children: + - {fileID: 8926484042661614561} + - {fileID: 8926484042661614562} + - {fileID: 8926484042661614563} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614559} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: center + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614561 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614560} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614559} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614562 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614560} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614559} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614563 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614560} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614559} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614564 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614559} + m_Children: + - {fileID: 8926484042661614565} + - {fileID: 8926484042661614566} + - {fileID: 8926484042661614567} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614559} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: size + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614565 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614564} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614559} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614566 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614564} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614559} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614567 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614564} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614559} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614568 +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: d78581a96eae8bf4398c282eb0b098bd, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 8926484042661614558} + - {fileID: 8926484042661614583} + - {fileID: 8926484042661614659} + dataType: 0 + capacity: 10000 + stripCapacity: 16 + particlePerStripCount: 16 + needsComputeBounds: 0 + boundsMode: 0 + m_Space: 1 +--- !u!114 &8926484042661614583 +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: 2dc095764ededfa4bb32fa602511ea4b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661616461} + m_UIPosition: {x: -2097, y: 2494} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661614568} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661614558} + slotIndex: 0 + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661614659} + slotIndex: 0 + integration: 0 + angularIntegration: 0 + ageParticles: 1 + reapParticles: 1 + skipZeroDeltaUpdate: 0 +--- !u!114 &8926484042661614595 +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: f68759077adc0b143b6e1c101e82065e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 8926484042661614555} +--- !u!114 &8926484042661614596 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614597} + - {fileID: 8926484042661614598} + - {fileID: 8926484042661614599} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614596} + m_MasterData: + m_Owner: {fileID: 8926484042661614558} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.5,"y":0.5,"z":0.5}' + m_Space: 2147483647 + m_Property: + name: boundsPadding + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614597 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614596} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614596} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614598 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614596} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614596} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614599 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614596} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614596} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614606 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661614607} + m_ExposedName: PositionMap + m_Exposed: 1 + m_Order: 0 + m_Category: Data + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661614607} + inputSlot: {fileID: 8926484042661616431} + position: {x: -2315.2, y: 1306.4} + expandedSlots: [] + expanded: 1 + - m_Id: 1 + linkedSlots: + - outputSlot: {fileID: 8926484042661614607} + inputSlot: {fileID: 8926484042661615405} + position: {x: 1546, y: 1722} + expandedSlots: [] + expanded: 0 + - m_Id: 2 + linkedSlots: + - outputSlot: {fileID: 8926484042661614607} + inputSlot: {fileID: 8926484042661615272} + position: {x: 1546, y: 1803} + expandedSlots: [] + expanded: 0 + - m_Id: 3 + linkedSlots: + - outputSlot: {fileID: 8926484042661614607} + inputSlot: {fileID: 8926484042661615665} + position: {x: -856, y: 1330} + expandedSlots: [] + expanded: 0 + - m_Id: 5 + linkedSlots: + - outputSlot: {fileID: 8926484042661614607} + inputSlot: {fileID: 8926484042661615956} + position: {x: 3247, y: 1502} + expandedSlots: [] + expanded: 0 + - m_Id: 6 + linkedSlots: + - outputSlot: {fileID: 8926484042661614607} + inputSlot: {fileID: 8926484042661616039} + position: {x: 5900, y: 1317} + expandedSlots: [] + expanded: 1 + - m_Id: 7 + linkedSlots: + - outputSlot: {fileID: 8926484042661614607} + inputSlot: {fileID: 8926484042661616198} + position: {x: 8534, y: 1668} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661614607 +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: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614607} + m_MasterData: + m_Owner: {fileID: 8926484042661614606} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":2800000,"guid":"276d9e395ae18fe40a9b4988549f2349","type":3}}' + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661616431} + - {fileID: 8926484042661615405} + - {fileID: 8926484042661615272} + - {fileID: 8926484042661615665} + - {fileID: 8926484042661615956} + - {fileID: 8926484042661616039} + - {fileID: 8926484042661616198} +--- !u!114 &8926484042661614659 +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: 08b03824843e33840a03794c433c3cef, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661615750} + - {fileID: 8926484042661616390} + m_UIPosition: {x: -2097, y: 3210} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614660} + - {fileID: 8926484042661615061} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661614568} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661614583} + slotIndex: 0 + m_OutputFlowSlot: + - link: [] + blendMode: 3 + cullMode: 0 + zWriteMode: 0 + zTestMode: 0 + useAlphaClipping: 0 + generateMotionVector: 0 + excludeFromTAA: 0 + sortingPriority: 0 + m_SubOutputs: + - {fileID: 8926484042661614663} + colorMapping: 0 + uvMode: 0 + flipbookLayout: 0 + useSoftParticle: 0 + vfxSystemSortPriority: 0 + sort: 0 + sortMode: 0 + revertSorting: 0 + indirectDraw: 0 + computeCulling: 0 + frustumCulling: 0 + castShadows: 1 + useExposureWeight: 0 + needsOwnSort: 0 + shaderGraph: {fileID: 0} + materialSettings: + m_PropertyNames: [] + m_PropertyValues: [] + useBaseColorMap: 3 + useMaskMap: 0 + useNormalMap: 0 + useEmissiveMap: 0 + colorMode: 1 + useEmissive: 0 + materialType: 0 + onlyAmbientLighting: 0 + diffusionProfileAsset: {fileID: 11400000, guid: d88fa25264effc247923557049bed8ad, + type: 2} + multiplyThicknessWithAlpha: 0 + doubleSided: 0 + preserveSpecularLighting: 0 + enableSpecular: 1 + lightmapRemapMode: 0 + lightmapRemapRanges: 0 + useAlphaRemap: 0 + emissiveMode: 0 + useEmissiveChannelScale: 0 + useColorAbsorption: 1 + receiveShadows: 1 + enableCookie: 1 + enableEnvLight: 1 +--- !u!114 &8926484042661614660 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614660} + m_MasterData: + m_Owner: {fileID: 8926484042661614659} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: smoothness + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615658} +--- !u!114 &8926484042661614663 +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: 081ffb0090424ba4cb05370a42ead6b9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + opaqueRenderQueue: 0 + transparentRenderQueue: 1 +--- !u!114 &8926484042661614667 +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: c42128e17c583714a909b4997c80c916, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -2992, y: 1147} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614668} + - {fileID: 8926484042661614669} + - {fileID: 8926484042661614670} + m_OutputSlots: + - {fileID: 8926484042661614671} + seed: 0 + constant: 1 +--- !u!114 &8926484042661614668 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614668} + m_MasterData: + m_Owner: {fileID: 8926484042661614667} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: min + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614669 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614669} + m_MasterData: + m_Owner: {fileID: 8926484042661614667} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: max + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614670 +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: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614670} + m_MasterData: + m_Owner: {fileID: 8926484042661614667} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 196 + m_Space: 2147483647 + m_Property: + name: seed + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614671 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614671} + m_MasterData: + m_Owner: {fileID: 8926484042661614667} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: r + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614684} +--- !u!114 &8926484042661614676 +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: fab5164109319454a9bccf2583401f6e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -2549, y: 1201} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: + - {fileID: 8926484042661614677} + - {fileID: 8926484042661614678} + - {fileID: 8926484042661614679} + m_OutputSlots: + - {fileID: 8926484042661614680} + m_Type: + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661614677 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614677} + m_MasterData: + m_Owner: {fileID: 8926484042661614676} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.01 + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615137} +--- !u!114 &8926484042661614678 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614678} + m_MasterData: + m_Owner: {fileID: 8926484042661614676} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.02 + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615139} +--- !u!114 &8926484042661614679 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614679} + m_MasterData: + m_Owner: {fileID: 8926484042661614676} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.5 + m_Space: 2147483647 + m_Property: + name: s + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614685} +--- !u!114 &8926484042661614680 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614680} + m_MasterData: + m_Owner: {fileID: 8926484042661614676} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661616428} +--- !u!114 &8926484042661614681 +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: b4bb186c1c47c9d4191c5f523b1744b8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -2768, y: 1191} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614682} + - {fileID: 8926484042661614683} + - {fileID: 8926484042661614684} + m_OutputSlots: + - {fileID: 8926484042661614685} + m_Type: + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661614682 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614682} + m_MasterData: + m_Owner: {fileID: 8926484042661614681} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.9 + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615421} +--- !u!114 &8926484042661614683 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614683} + m_MasterData: + m_Owner: {fileID: 8926484042661614681} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614684 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614684} + m_MasterData: + m_Owner: {fileID: 8926484042661614681} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.5 + m_Space: 2147483647 + m_Property: + name: s + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614671} +--- !u!114 &8926484042661614685 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614685} + m_MasterData: + m_Owner: {fileID: 8926484042661614681} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614679} +--- !u!114 &8926484042661614702 +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: 73a13919d81fb7444849bae8b5c812a2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661614704} + - {fileID: 8926484042661615810} + m_UIPosition: {x: 1800, y: 624} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: Spawn system + m_Data: {fileID: 8926484042661614703} + m_InputFlowSlot: + - link: [] + - link: [] + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661614708} + slotIndex: 0 + loopDuration: 0 + loopCount: 0 + delayBeforeLoop: 0 + delayAfterLoop: 0 +--- !u!114 &8926484042661614703 +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: f68759077adc0b143b6e1c101e82065e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 8926484042661614702} +--- !u!114 &8926484042661614704 +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: 5e382412bb691334bb79457a6c127924, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614702} + m_Children: [] + m_UIPosition: {x: 0, y: 2} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614705} + - {fileID: 8926484042661614706} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614707} + repeat: 0 + spawnMode: 0 + delayMode: 0 +--- !u!114 &8926484042661614705 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614705} + m_MasterData: + m_Owner: {fileID: 8926484042661614704} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 10000 + m_Space: 2147483647 + m_Property: + name: Count + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614706 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614706} + m_MasterData: + m_Owner: {fileID: 8926484042661614704} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: Delay + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614707 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614707} + m_MasterData: + m_Owner: {fileID: 8926484042661614704} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: False + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614708 +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: 9dfea48843f53fc438eabc12a3a30abc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661615008} + - {fileID: 8926484042661615813} + m_UIPosition: {x: 1756, y: 1083} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614709} + - {fileID: 8926484042661614718} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661614722} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661614702} + slotIndex: 0 + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661615250} + slotIndex: 0 +--- !u!114 &8926484042661614709 +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: 1b605c022ee79394a8a776c0869b3f9a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614710} + - {fileID: 8926484042661614714} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614709} + m_MasterData: + m_Owner: {fileID: 8926484042661614708} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"center":{"x":-0.008661508560180664,"y":1.4014217853546143,"z":-0.018482446670532228},"size":{"x":3.004997730255127,"y":3.960069179534912,"z":3.0607447624206545}}' + m_Space: 0 + m_Property: + name: bounds + m_serializedType: + m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614710 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614709} + m_Children: + - {fileID: 8926484042661614711} + - {fileID: 8926484042661614712} + - {fileID: 8926484042661614713} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614709} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: center + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614711 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614710} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614709} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614712 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614710} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614709} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614713 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614710} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614709} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614714 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614709} + m_Children: + - {fileID: 8926484042661614715} + - {fileID: 8926484042661614716} + - {fileID: 8926484042661614717} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614709} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: size + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614715 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614714} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614709} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614716 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614714} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614709} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614717 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614714} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614709} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614718 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614719} + - {fileID: 8926484042661614720} + - {fileID: 8926484042661614721} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614718} + m_MasterData: + m_Owner: {fileID: 8926484042661614708} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.5,"y":0.5,"z":0.5}' + m_Space: 2147483647 + m_Property: + name: boundsPadding + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614719 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614718} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614718} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614720 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614718} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614718} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614721 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614718} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614718} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614722 +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: d78581a96eae8bf4398c282eb0b098bd, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 8926484042661614708} + - {fileID: 8926484042661615250} + - {fileID: 8926484042661614752} + - {fileID: 8926484042661615286} + dataType: 0 + capacity: 10000 + stripCapacity: 16 + particlePerStripCount: 16 + needsComputeBounds: 0 + boundsMode: 0 + m_Space: 1 +--- !u!114 &8926484042661614752 +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: d1622f1b21236b9418846ede6cf6bd40, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661614825} + - {fileID: 8926484042661614759} + - {fileID: 8926484042661615726} + - {fileID: 8926484042661615803} + m_UIPosition: {x: 1469, y: 2716} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614753} + - {fileID: 8926484042661614754} + - {fileID: 8926484042661614755} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661614722} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661615250} + slotIndex: 0 + m_OutputFlowSlot: + - link: [] + blendMode: 3 + cullMode: 0 + zWriteMode: 0 + zTestMode: 0 + useAlphaClipping: 0 + generateMotionVector: 0 + excludeFromTAA: 0 + sortingPriority: 0 + m_SubOutputs: + - {fileID: 8926484042661614757} + colorMapping: 0 + uvMode: 0 + flipbookLayout: 0 + useSoftParticle: 0 + vfxSystemSortPriority: 0 + sort: 0 + sortMode: 0 + revertSorting: 0 + indirectDraw: 0 + computeCulling: 0 + frustumCulling: 0 + castShadows: 1 + useExposureWeight: 0 + needsOwnSort: 0 + shaderGraph: {fileID: 0} + materialSettings: + m_PropertyNames: [] + m_PropertyValues: [] + useBaseColorMap: 3 + useMaskMap: 0 + useNormalMap: 0 + useEmissiveMap: 0 + colorMode: 1 + useEmissive: 0 + materialType: 0 + onlyAmbientLighting: 0 + diffusionProfileAsset: {fileID: 0} + multiplyThicknessWithAlpha: 0 + doubleSided: 0 + preserveSpecularLighting: 0 + enableSpecular: 1 + lightmapRemapMode: 0 + lightmapRemapRanges: 0 + useAlphaRemap: 0 + emissiveMode: 0 + useEmissiveChannelScale: 0 + useColorAbsorption: 1 + receiveShadows: 1 + enableCookie: 1 + enableEnvLight: 1 + primitiveType: 1 + normalBending: 0 +--- !u!114 &8926484042661614753 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614753} + m_MasterData: + m_Owner: {fileID: 8926484042661614752} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: smoothness + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615763} +--- !u!114 &8926484042661614754 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614754} + m_MasterData: + m_Owner: {fileID: 8926484042661614752} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: metallic + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615765} +--- !u!114 &8926484042661614755 +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: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614755} + m_MasterData: + m_Owner: {fileID: 8926484042661614752} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":2800000,"guid":"63f4b6edd115ffb4282c012ec8a01e7c","type":3}}' + m_Space: 2147483647 + m_Property: + name: baseColorMap + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614757 +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: 081ffb0090424ba4cb05370a42ead6b9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + opaqueRenderQueue: 0 + transparentRenderQueue: 1 +--- !u!114 &8926484042661614759 +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: d16c6aeaef944094b9a1633041804207, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614752} + m_Children: [] + m_UIPosition: {x: 0, y: 76} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614770} + mode: 6 + axes: 4 +--- !u!114 &8926484042661614770 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614770} + m_MasterData: + m_Owner: {fileID: 8926484042661614759} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614778 +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: 486e063e1ed58c843942ea4122829ab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 1461, y: 1773} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661614779} + attribute: position + location: 0 + mask: xyz +--- !u!114 &8926484042661614779 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614780} + - {fileID: 8926484042661614781} + - {fileID: 8926484042661614782} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614779} + m_MasterData: + m_Owner: {fileID: 8926484042661614778} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615398} +--- !u!114 &8926484042661614780 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614779} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614779} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614781 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614779} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614779} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614782 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614779} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614779} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614825 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614752} + m_Children: [] + m_UIPosition: {x: 0, y: 2} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614826} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614831} + attribute: velocity + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661614826 +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: a9f9544b71b7dab44a4644b6807e8bf6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614827} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614826} + m_MasterData: + m_Owner: {fileID: 8926484042661614825} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Vector, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"vector":{"x":0.0,"y":0.0,"z":0.0}}' + m_Space: 1 + m_Property: + name: Velocity + m_serializedType: + m_SerializableType: UnityEditor.VFX.Vector, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614854} +--- !u!114 &8926484042661614827 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614826} + m_Children: + - {fileID: 8926484042661614828} + - {fileID: 8926484042661614829} + - {fileID: 8926484042661614830} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614826} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: vector + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614828 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614827} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614826} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614829 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614827} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614826} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614830 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614827} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614826} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614831 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614831} + m_MasterData: + m_Owner: {fileID: 8926484042661614825} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614832 +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: 486e063e1ed58c843942ea4122829ab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 1000, y: 3042} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661614833} + attribute: position + location: 0 + mask: xyz +--- !u!114 &8926484042661614833 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614834} + - {fileID: 8926484042661614835} + - {fileID: 8926484042661614836} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614833} + m_MasterData: + m_Owner: {fileID: 8926484042661614832} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614858} +--- !u!114 &8926484042661614834 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614833} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614833} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614835 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614833} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614833} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614836 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614833} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614833} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614837 +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: 486e063e1ed58c843942ea4122829ab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 966, y: 3012} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661614842} + attribute: targetPosition + location: 0 + mask: xyz +--- !u!114 &8926484042661614842 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614843} + - {fileID: 8926484042661614844} + - {fileID: 8926484042661614845} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614842} + m_MasterData: + m_Owner: {fileID: 8926484042661614837} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: targetPosition + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614850} +--- !u!114 &8926484042661614843 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614842} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614842} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614844 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614842} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614842} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614845 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614842} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614842} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614846 +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: 0155ae97d9a75e3449c6d0603b79c2f4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 1258, y: 3027} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: + - {fileID: 8926484042661614850} + - {fileID: 8926484042661614858} + m_OutputSlots: + - {fileID: 8926484042661614854} + m_Operands: + - name: a + type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + - name: b + type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &8926484042661614850 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614851} + - {fileID: 8926484042661614852} + - {fileID: 8926484042661614853} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614850} + m_MasterData: + m_Owner: {fileID: 8926484042661614846} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614842} +--- !u!114 &8926484042661614851 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614850} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614850} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614852 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614850} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614850} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614853 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614850} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614850} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614854 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614855} + - {fileID: 8926484042661614856} + - {fileID: 8926484042661614857} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614854} + m_MasterData: + m_Owner: {fileID: 8926484042661614846} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614826} +--- !u!114 &8926484042661614855 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614854} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614854} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614856 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614854} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614854} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614857 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614854} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614854} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614858 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614859} + - {fileID: 8926484042661614860} + - {fileID: 8926484042661614861} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614858} + m_MasterData: + m_Owner: {fileID: 8926484042661614846} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614833} +--- !u!114 &8926484042661614859 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614858} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614858} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614860 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614858} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614858} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614861 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614858} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614858} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614882 +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: 486e063e1ed58c843942ea4122829ab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 37, y: 2206} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661614883} + attribute: targetPosition + location: 0 + mask: xyz +--- !u!114 &8926484042661614883 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614884} + - {fileID: 8926484042661614885} + - {fileID: 8926484042661614886} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614883} + m_MasterData: + m_Owner: {fileID: 8926484042661614882} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: targetPosition + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614888} +--- !u!114 &8926484042661614884 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614883} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614883} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614885 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614883} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614883} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614886 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614883} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614883} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614887 +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: 0155ae97d9a75e3449c6d0603b79c2f4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 354, y: 2221} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: + - {fileID: 8926484042661614888} + - {fileID: 8926484042661614892} + m_OutputSlots: + - {fileID: 8926484042661614896} + m_Operands: + - name: a + type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + - name: b + type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &8926484042661614888 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614889} + - {fileID: 8926484042661614890} + - {fileID: 8926484042661614891} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614888} + m_MasterData: + m_Owner: {fileID: 8926484042661614887} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614883} +--- !u!114 &8926484042661614889 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614888} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614888} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614890 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614888} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614888} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614891 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614888} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614888} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614892 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614893} + - {fileID: 8926484042661614894} + - {fileID: 8926484042661614895} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614892} + m_MasterData: + m_Owner: {fileID: 8926484042661614887} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614901} +--- !u!114 &8926484042661614893 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614892} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614892} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614894 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614892} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614892} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614895 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614892} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614892} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614896 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614897} + - {fileID: 8926484042661614898} + - {fileID: 8926484042661614899} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614896} + m_MasterData: + m_Owner: {fileID: 8926484042661614887} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614945} +--- !u!114 &8926484042661614897 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614896} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614896} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614898 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614896} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614896} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614899 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614896} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614896} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614900 +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: 486e063e1ed58c843942ea4122829ab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 71, y: 2236} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661614901} + attribute: position + location: 0 + mask: xyz +--- !u!114 &8926484042661614901 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614902} + - {fileID: 8926484042661614903} + - {fileID: 8926484042661614904} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614901} + m_MasterData: + m_Owner: {fileID: 8926484042661614900} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614892} +--- !u!114 &8926484042661614902 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614901} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614901} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614903 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614901} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614901} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614904 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614901} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614901} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614944 +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: b89d44d34b0b0ca4bb334636b7b2060a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 528, y: 2221} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: + - {fileID: 8926484042661614945} + m_OutputSlots: + - {fileID: 8926484042661614949} + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &8926484042661614945 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614946} + - {fileID: 8926484042661614947} + - {fileID: 8926484042661614948} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614945} + m_MasterData: + m_Owner: {fileID: 8926484042661614944} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614896} +--- !u!114 &8926484042661614946 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614945} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614945} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614947 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614945} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614945} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614948 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614945} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614945} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614949 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614949} + m_MasterData: + m_Owner: {fileID: 8926484042661614944} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: l + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615021} + - {fileID: 8926484042661615217} +--- !u!114 &8926484042661614968 +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: fab5164109319454a9bccf2583401f6e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 1420, y: 1969} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614973} + - {fileID: 8926484042661614981} + - {fileID: 8926484042661614971} + m_OutputSlots: + - {fileID: 8926484042661614977} + m_Type: + - m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + - m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661614971 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614971} + m_MasterData: + m_Owner: {fileID: 8926484042661614968} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.5 + m_Space: 2147483647 + m_Property: + name: s + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614973 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614974} + - {fileID: 8926484042661614975} + - {fileID: 8926484042661614976} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614973} + m_MasterData: + m_Owner: {fileID: 8926484042661614968} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615063} +--- !u!114 &8926484042661614974 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614973} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614973} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614975 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614973} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614973} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614976 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614973} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614973} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614977 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614978} + - {fileID: 8926484042661614979} + - {fileID: 8926484042661614980} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614977} + m_MasterData: + m_Owner: {fileID: 8926484042661614968} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615265} +--- !u!114 &8926484042661614978 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614977} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614977} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614979 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614977} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614977} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614980 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614977} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614977} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614981 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614982} + - {fileID: 8926484042661614983} + - {fileID: 8926484042661614984} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614981} + m_MasterData: + m_Owner: {fileID: 8926484042661614968} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615068} +--- !u!114 &8926484042661614982 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614981} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614981} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614983 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614981} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614981} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614984 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614981} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614981} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615008 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614708} + m_Children: [] + m_UIPosition: {x: 0, y: 2} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615009} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615013} + attribute: pivot + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615009 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615010} + - {fileID: 8926484042661615011} + - {fileID: 8926484042661615012} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615009} + m_MasterData: + m_Owner: {fileID: 8926484042661615008} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.5,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: Pivot + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615010 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615009} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615009} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615011 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615009} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615009} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615012 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615009} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615009} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615013 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615013} + m_MasterData: + m_Owner: {fileID: 8926484042661615008} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615015 +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: b4bb186c1c47c9d4191c5f523b1744b8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 1000, y: 2409} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615016} + - {fileID: 8926484042661615017} + - {fileID: 8926484042661615018} + m_OutputSlots: + - {fileID: 8926484042661615019} + m_Type: + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615016 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615016} + m_MasterData: + m_Owner: {fileID: 8926484042661615015} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.1 + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615017 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615017} + m_MasterData: + m_Owner: {fileID: 8926484042661615015} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615018 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615018} + m_MasterData: + m_Owner: {fileID: 8926484042661615015} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.5 + m_Space: 2147483647 + m_Property: + name: s + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615023} +--- !u!114 &8926484042661615019 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615019} + m_MasterData: + m_Owner: {fileID: 8926484042661615015} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615058} +--- !u!114 &8926484042661615020 +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: 0155ae97d9a75e3449c6d0603b79c2f4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 798, y: 2409} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615021} + - {fileID: 8926484042661615022} + m_OutputSlots: + - {fileID: 8926484042661615023} + m_Operands: + - name: a + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - name: b + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615021 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615021} + m_MasterData: + m_Owner: {fileID: 8926484042661615020} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614949} +--- !u!114 &8926484042661615022 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615022} + m_MasterData: + m_Owner: {fileID: 8926484042661615020} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.2 + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615247} +--- !u!114 &8926484042661615023 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615023} + m_MasterData: + m_Owner: {fileID: 8926484042661615020} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615018} +--- !u!114 &8926484042661615037 +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: 955b0c175a6f3bb4582e92f3de8f0626, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 1526, y: 2411} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: + - {fileID: 8926484042661615038} + m_OutputSlots: + - {fileID: 8926484042661615042} + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &8926484042661615038 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615039} + - {fileID: 8926484042661615040} + - {fileID: 8926484042661615041} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615038} + m_MasterData: + m_Owner: {fileID: 8926484042661615037} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":1.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615039 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615038} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615038} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615059} +--- !u!114 &8926484042661615040 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615038} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615038} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615041 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615038} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615038} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615059} +--- !u!114 &8926484042661615042 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615043} + - {fileID: 8926484042661615044} + - {fileID: 8926484042661615045} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615042} + m_MasterData: + m_Owner: {fileID: 8926484042661615037} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615392} +--- !u!114 &8926484042661615043 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615042} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615042} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615044 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615042} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615042} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615045 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615042} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615042} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615046 +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: b8ee8a7543fa09e42a7c8616f60d2ad7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 1321, y: 2411} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615058} + - {fileID: 8926484042661615048} + m_OutputSlots: + - {fileID: 8926484042661615059} + m_Operands: + - name: a + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - name: b + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615048 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615048} + m_MasterData: + m_Owner: {fileID: 8926484042661615046} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.02 + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615825} +--- !u!114 &8926484042661615058 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615058} + m_MasterData: + m_Owner: {fileID: 8926484042661615046} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615019} +--- !u!114 &8926484042661615059 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615059} + m_MasterData: + m_Owner: {fileID: 8926484042661615046} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615039} + - {fileID: 8926484042661615041} +--- !u!114 &8926484042661615061 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615061} + m_MasterData: + m_Owner: {fileID: 8926484042661614659} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: metallic + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615660} +--- !u!114 &8926484042661615062 +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: 486e063e1ed58c843942ea4122829ab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 1131, y: 1998} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615063} + attribute: targetPosition + location: 0 + mask: xyz +--- !u!114 &8926484042661615063 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615064} + - {fileID: 8926484042661615065} + - {fileID: 8926484042661615066} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615063} + m_MasterData: + m_Owner: {fileID: 8926484042661615062} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: targetPosition + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614973} +--- !u!114 &8926484042661615064 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615063} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615063} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615065 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615063} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615063} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615066 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615063} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615063} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615067 +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: 486e063e1ed58c843942ea4122829ab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 1165, y: 2028} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615068} + attribute: position + location: 0 + mask: xyz +--- !u!114 &8926484042661615068 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615069} + - {fileID: 8926484042661615070} + - {fileID: 8926484042661615071} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615068} + m_MasterData: + m_Owner: {fileID: 8926484042661615067} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614981} +--- !u!114 &8926484042661615069 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615068} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615068} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615070 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615068} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615068} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615071 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615068} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615068} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615072 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615073} + m_ExposedName: VelocityMap + m_Exposed: 1 + m_Order: 31 + m_Category: Data + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615073} + inputSlot: {fileID: 8926484042661616218} + position: {x: 8534, y: 1719} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615073 +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: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615073} + m_MasterData: + m_Owner: {fileID: 8926484042661615072} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":2800000,"guid":"276d9e395ae18fe40a9b4988549f2349","type":3}}' + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661616218} +--- !u!114 &8926484042661615074 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615075} + m_ExposedName: NormalMap + m_Exposed: 1 + m_Order: 40 + m_Category: Data + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615075} + inputSlot: {fileID: 8926484042661616443} + position: {x: -2257.6, y: 1439.2001} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615075 +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: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615075} + m_MasterData: + m_Owner: {fileID: 8926484042661615074} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":2800000,"guid":"276d9e395ae18fe40a9b4988549f2349","type":3}}' + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661616443} +--- !u!114 &8926484042661615112 +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: 486e063e1ed58c843942ea4122829ab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -2874, y: 1446} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615113} + attribute: direction + location: 0 + mask: xyz +--- !u!114 &8926484042661615113 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615114} + - {fileID: 8926484042661615115} + - {fileID: 8926484042661615116} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615113} + m_MasterData: + m_Owner: {fileID: 8926484042661615112} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: direction + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615121} +--- !u!114 &8926484042661615114 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615113} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615113} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615115 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615113} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615113} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615116 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615113} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615113} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615117 +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: b8ee8a7543fa09e42a7c8616f60d2ad7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -2582, y: 1454} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: + - {fileID: 8926484042661615121} + - {fileID: 8926484042661615119} + m_OutputSlots: + - {fileID: 8926484042661615125} + m_Operands: + - name: a + type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + - name: b + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615119 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615119} + m_MasterData: + m_Owner: {fileID: 8926484042661615117} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.1 + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615135} +--- !u!114 &8926484042661615121 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615122} + - {fileID: 8926484042661615123} + - {fileID: 8926484042661615124} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615121} + m_MasterData: + m_Owner: {fileID: 8926484042661615117} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":1.0,"z":1.0}' + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615113} +--- !u!114 &8926484042661615122 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615121} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615121} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615123 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615121} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615121} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615124 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615121} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615121} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615125 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615126} + - {fileID: 8926484042661615127} + - {fileID: 8926484042661615128} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615125} + m_MasterData: + m_Owner: {fileID: 8926484042661615117} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615442} +--- !u!114 &8926484042661615126 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615125} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615125} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615127 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615125} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615125} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615128 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615125} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615125} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615134 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615135} + m_ExposedName: Normal Offset + m_Exposed: 1 + m_Order: 19 + m_Category: Point + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615135} + inputSlot: {fileID: 8926484042661615119} + position: {x: -2802, y: 1476} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615135 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615135} + m_MasterData: + m_Owner: {fileID: 8926484042661615134} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615119} +--- !u!114 &8926484042661615136 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615137} + m_ExposedName: Point Size Small + m_Exposed: 1 + m_Order: 15 + m_Category: Point + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615137} + inputSlot: {fileID: 8926484042661614677} + position: {x: -2754, y: 1104} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615137 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615137} + m_MasterData: + m_Owner: {fileID: 8926484042661615136} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.01 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614677} +--- !u!114 &8926484042661615138 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615139} + m_ExposedName: Point Size Big + m_Exposed: 1 + m_Order: 16 + m_Category: Point + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615139} + inputSlot: {fileID: 8926484042661614678} + position: {x: -2741, y: 1140} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615139 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615139} + m_MasterData: + m_Owner: {fileID: 8926484042661615138} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.02 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614678} +--- !u!114 &8926484042661615216 +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: 955b0c175a6f3bb4582e92f3de8f0626, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 1233, y: 2173} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615217} + m_OutputSlots: + - {fileID: 8926484042661615218} + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615217 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615217} + m_MasterData: + m_Owner: {fileID: 8926484042661615216} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614949} +--- !u!114 &8926484042661615218 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615218} + m_MasterData: + m_Owner: {fileID: 8926484042661615216} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615390} +--- !u!114 &8926484042661615246 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615247} + m_ExposedName: Line Range + m_Exposed: 1 + m_Order: 32 + m_Category: Line + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615247} + inputSlot: {fileID: 8926484042661615022} + position: {x: 598, y: 2502} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615247 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615247} + m_MasterData: + m_Owner: {fileID: 8926484042661615246} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.1 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615022} +--- !u!114 &8926484042661615248 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615249} + m_ExposedName: Line Thickness + m_Exposed: 1 + m_Order: 34 + m_Category: Line + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615249} + inputSlot: {fileID: 8926484042661615823} + position: {x: 914, y: 2600} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615249 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615249} + m_MasterData: + m_Owner: {fileID: 8926484042661615248} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.02 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615823} +--- !u!114 &8926484042661615250 +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: 2dc095764ededfa4bb32fa602511ea4b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661615404} + - {fileID: 8926484042661615397} + - {fileID: 8926484042661615271} + - {fileID: 8926484042661615264} + - {fileID: 8926484042661615261} + - {fileID: 8926484042661615391} + m_UIPosition: {x: 1815, y: 1604} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: Line Position + m_Data: {fileID: 8926484042661614722} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661614708} + slotIndex: 0 + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661614752} + slotIndex: 0 + - context: {fileID: 8926484042661615286} + slotIndex: 0 + integration: 0 + angularIntegration: 0 + ageParticles: 1 + reapParticles: 1 + skipZeroDeltaUpdate: 0 +--- !u!114 &8926484042661615261 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615250} + m_Children: [] + m_UIPosition: {x: 0, y: 283} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615390} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615263} + attribute: size + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615263 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615263} + m_MasterData: + m_Owner: {fileID: 8926484042661615261} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615264 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615250} + m_Children: [] + m_UIPosition: {x: 0, y: 207} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615265} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615270} + attribute: position + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615265 +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: 5265657162cc1a241bba03a3b0476d99, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615266} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615265} + m_MasterData: + m_Owner: {fileID: 8926484042661615264} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0}}' + m_Space: 1 + m_Property: + name: Position + m_serializedType: + m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614977} +--- !u!114 &8926484042661615266 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615265} + m_Children: + - {fileID: 8926484042661615267} + - {fileID: 8926484042661615268} + - {fileID: 8926484042661615269} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615265} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615267 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615266} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615265} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615268 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615266} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615265} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615269 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615266} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615265} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615270 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615270} + m_MasterData: + m_Owner: {fileID: 8926484042661615264} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615271 +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: 60fff265f139e2a4194a44c2bac41757, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615250} + m_Children: [] + m_UIPosition: {x: 0, y: 138} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615272} + - {fileID: 8926484042661615273} + - {fileID: 8926484042661615274} + - {fileID: 8926484042661615278} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615282} + attribute: position + Composition: 0 + SampleMode: 6 + mode: 0 + channels: 6 + usePointCount: 0 +--- !u!114 &8926484042661615272 +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: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615272} + m_MasterData: + m_Owner: {fileID: 8926484042661615271} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":2800000,"guid":"1d8481de16af723418a688958c41224b","type":3}}' + m_Space: 2147483647 + m_Property: + name: attributeMap + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614607} +--- !u!114 &8926484042661615273 +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: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615273} + m_MasterData: + m_Owner: {fileID: 8926484042661615271} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: Seed + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615274 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615275} + - {fileID: 8926484042661615276} + - {fileID: 8926484042661615277} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615274} + m_MasterData: + m_Owner: {fileID: 8926484042661615271} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: valueBias + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615275 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615274} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615274} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615276 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615274} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615274} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615277 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615274} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615274} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615278 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615279} + - {fileID: 8926484042661615280} + - {fileID: 8926484042661615281} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615278} + m_MasterData: + m_Owner: {fileID: 8926484042661615271} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":1.0,"z":1.0}' + m_Space: 2147483647 + m_Property: + name: valueScale + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615279 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615278} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615278} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615280 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615278} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615278} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615281 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615278} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615278} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615282 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615282} + m_MasterData: + m_Owner: {fileID: 8926484042661615271} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615286 +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: 08b03824843e33840a03794c433c3cef, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661615303} + - {fileID: 8926484042661615309} + - {fileID: 8926484042661615785} + - {fileID: 8926484042661615312} + m_UIPosition: {x: 2294, y: 2743} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615287} + - {fileID: 8926484042661615288} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661614722} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661615250} + slotIndex: 0 + m_OutputFlowSlot: + - link: [] + blendMode: 3 + cullMode: 0 + zWriteMode: 0 + zTestMode: 0 + useAlphaClipping: 0 + generateMotionVector: 0 + excludeFromTAA: 0 + sortingPriority: 0 + m_SubOutputs: + - {fileID: 8926484042661615290} + colorMapping: 0 + uvMode: 0 + flipbookLayout: 0 + useSoftParticle: 0 + vfxSystemSortPriority: 0 + sort: 0 + sortMode: 0 + revertSorting: 0 + indirectDraw: 0 + computeCulling: 0 + frustumCulling: 0 + castShadows: 0 + useExposureWeight: 0 + needsOwnSort: 0 + shaderGraph: {fileID: 0} + materialSettings: + m_PropertyNames: [] + m_PropertyValues: [] + useBaseColorMap: 3 + useMaskMap: 0 + useNormalMap: 0 + useEmissiveMap: 0 + colorMode: 1 + useEmissive: 0 + materialType: 0 + onlyAmbientLighting: 0 + diffusionProfileAsset: {fileID: 0} + multiplyThicknessWithAlpha: 0 + doubleSided: 0 + preserveSpecularLighting: 0 + enableSpecular: 1 + lightmapRemapMode: 0 + lightmapRemapRanges: 0 + useAlphaRemap: 0 + emissiveMode: 0 + useEmissiveChannelScale: 0 + useColorAbsorption: 1 + receiveShadows: 1 + enableCookie: 1 + enableEnvLight: 1 +--- !u!114 &8926484042661615287 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615287} + m_MasterData: + m_Owner: {fileID: 8926484042661615286} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: smoothness + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615763} +--- !u!114 &8926484042661615288 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615288} + m_MasterData: + m_Owner: {fileID: 8926484042661615286} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: metallic + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615765} +--- !u!114 &8926484042661615290 +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: 081ffb0090424ba4cb05370a42ead6b9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + opaqueRenderQueue: 0 + transparentRenderQueue: 1 +--- !u!114 &8926484042661615303 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615286} + m_Children: [] + m_UIPosition: {x: 0, y: 2} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615304} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615308} + attribute: color + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615304 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615305} + - {fileID: 8926484042661615306} + - {fileID: 8926484042661615307} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615304} + m_MasterData: + m_Owner: {fileID: 8926484042661615303} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":1.0,"z":1.0}' + m_Space: 2147483647 + m_Property: + name: Color + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615745} +--- !u!114 &8926484042661615305 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615304} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615304} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615306 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615304} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615304} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615307 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615304} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615304} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615308 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615308} + m_MasterData: + m_Owner: {fileID: 8926484042661615303} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615309 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615286} + m_Children: [] + m_UIPosition: {x: 0, y: 96} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615310} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615311} + attribute: size + Composition: 2 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615310 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615310} + m_MasterData: + m_Owner: {fileID: 8926484042661615309} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.02 + m_Space: 2147483647 + m_Property: + name: Size + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615793} +--- !u!114 &8926484042661615311 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615311} + m_MasterData: + m_Owner: {fileID: 8926484042661615309} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615312 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615286} + m_Children: [] + m_UIPosition: {x: 0, y: 283} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615313} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615318} + attribute: position + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615313 +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: 5265657162cc1a241bba03a3b0476d99, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615314} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615313} + m_MasterData: + m_Owner: {fileID: 8926484042661615312} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0}}' + m_Space: 1 + m_Property: + name: Position + m_serializedType: + m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615320} +--- !u!114 &8926484042661615314 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615313} + m_Children: + - {fileID: 8926484042661615315} + - {fileID: 8926484042661615316} + - {fileID: 8926484042661615317} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615313} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615315 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615314} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615313} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615316 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615314} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615313} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615317 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615314} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615313} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615318 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615318} + m_MasterData: + m_Owner: {fileID: 8926484042661615312} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615319 +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: 486e063e1ed58c843942ea4122829ab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 2004, y: 3180} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615320} + attribute: targetPosition + location: 0 + mask: xyz +--- !u!114 &8926484042661615320 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615321} + - {fileID: 8926484042661615322} + - {fileID: 8926484042661615323} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615320} + m_MasterData: + m_Owner: {fileID: 8926484042661615319} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: targetPosition + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615313} +--- !u!114 &8926484042661615321 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615320} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615320} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615322 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615320} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615320} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615323 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615320} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615320} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615390 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615390} + m_MasterData: + m_Owner: {fileID: 8926484042661615261} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.23 + m_Space: 2147483647 + m_Property: + name: Size + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615218} +--- !u!114 &8926484042661615391 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615250} + m_Children: [] + m_UIPosition: {x: 0, y: 359} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615392} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615396} + attribute: scale + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615392 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615393} + - {fileID: 8926484042661615394} + - {fileID: 8926484042661615395} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615392} + m_MasterData: + m_Owner: {fileID: 8926484042661615391} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.009999999776482582,"y":1.0,"z":0.009999999776482582}' + m_Space: 2147483647 + m_Property: + name: Scale + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615042} +--- !u!114 &8926484042661615393 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615392} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615392} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615394 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615392} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615392} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615395 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615392} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615392} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615396 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615396} + m_MasterData: + m_Owner: {fileID: 8926484042661615391} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615397 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615250} + m_Children: [] + m_UIPosition: {x: 0, y: 69} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615398} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615403} + attribute: targetPosition + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615398 +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: 5265657162cc1a241bba03a3b0476d99, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615399} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615398} + m_MasterData: + m_Owner: {fileID: 8926484042661615397} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0}}' + m_Space: 1 + m_Property: + name: TargetPosition + m_serializedType: + m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614779} +--- !u!114 &8926484042661615399 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615398} + m_Children: + - {fileID: 8926484042661615400} + - {fileID: 8926484042661615401} + - {fileID: 8926484042661615402} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615398} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615400 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615399} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615398} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615401 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615399} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615398} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615402 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615399} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615398} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615403 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615403} + m_MasterData: + m_Owner: {fileID: 8926484042661615397} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615404 +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: 60fff265f139e2a4194a44c2bac41757, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615250} + m_Children: [] + m_UIPosition: {x: 0, y: 2} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615405} + - {fileID: 8926484042661615406} + - {fileID: 8926484042661615407} + - {fileID: 8926484042661615411} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615415} + attribute: position + Composition: 0 + SampleMode: 6 + mode: 0 + channels: 6 + usePointCount: 0 +--- !u!114 &8926484042661615405 +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: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615405} + m_MasterData: + m_Owner: {fileID: 8926484042661615404} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":2800000,"guid":"1d8481de16af723418a688958c41224b","type":3}}' + m_Space: 2147483647 + m_Property: + name: attributeMap + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614607} +--- !u!114 &8926484042661615406 +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: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615406} + m_MasterData: + m_Owner: {fileID: 8926484042661615404} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 196 + m_Space: 2147483647 + m_Property: + name: Seed + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615407 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615408} + - {fileID: 8926484042661615409} + - {fileID: 8926484042661615410} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615407} + m_MasterData: + m_Owner: {fileID: 8926484042661615404} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: valueBias + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615408 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615407} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615407} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615409 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615407} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615407} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615410 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615407} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615407} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615411 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615412} + - {fileID: 8926484042661615413} + - {fileID: 8926484042661615414} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615411} + m_MasterData: + m_Owner: {fileID: 8926484042661615404} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":1.0,"z":1.0}' + m_Space: 2147483647 + m_Property: + name: valueScale + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615412 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615411} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615411} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615413 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615411} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615411} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615414 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615411} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615411} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615415 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615415} + m_MasterData: + m_Owner: {fileID: 8926484042661615404} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615420 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615421} + m_ExposedName: Point Size Ratio + m_Exposed: 1 + m_Order: 17 + m_Category: Point + m_Min: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Max: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 1 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615421} + inputSlot: {fileID: 8926484042661614682} + position: {x: -2988, y: 1089} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615421 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615421} + m_MasterData: + m_Owner: {fileID: 8926484042661615420} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.85 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614682} +--- !u!114 &8926484042661615422 +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: 1fb2f8fde2589884fae38ab8bc886b6f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -3773, y: 2739} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615423} + - {fileID: 8926484042661615427} + - {fileID: 8926484042661615428} + - {fileID: 8926484042661615429} + - {fileID: 8926484042661615430} + - {fileID: 8926484042661615431} + m_OutputSlots: + - {fileID: 8926484042661615432} + type: 0 + dimensions: 1 +--- !u!114 &8926484042661615423 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615424} + - {fileID: 8926484042661615425} + - {fileID: 8926484042661615426} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615423} + m_MasterData: + m_Owner: {fileID: 8926484042661615422} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: coordinate + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615462} +--- !u!114 &8926484042661615424 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615423} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615423} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615425 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615423} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615423} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615426 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615423} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615423} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615427 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615427} + m_MasterData: + m_Owner: {fileID: 8926484042661615422} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 10 + m_Space: 2147483647 + m_Property: + name: frequency + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615511} +--- !u!114 &8926484042661615428 +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: 4d246e354feb93041a837a9ef59437cb, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615428} + m_MasterData: + m_Owner: {fileID: 8926484042661615422} + m_Value: + m_Type: + m_SerializableType: System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: octaves + m_serializedType: + m_SerializableType: System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615429 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615429} + m_MasterData: + m_Owner: {fileID: 8926484042661615422} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.5 + m_Space: 2147483647 + m_Property: + name: roughness + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615430 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615430} + m_MasterData: + m_Owner: {fileID: 8926484042661615422} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 2 + m_Space: 2147483647 + m_Property: + name: lacunarity + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615431 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615431} + m_MasterData: + m_Owner: {fileID: 8926484042661615422} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.1 + m_Space: 2147483647 + m_Property: + name: amplitude + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615492} +--- !u!114 &8926484042661615432 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615433} + - {fileID: 8926484042661615434} + - {fileID: 8926484042661615435} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615432} + m_MasterData: + m_Owner: {fileID: 8926484042661615422} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: Noise + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615769} +--- !u!114 &8926484042661615433 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615432} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615432} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615434 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615432} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615432} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615435 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615432} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615432} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615436 +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: 486e063e1ed58c843942ea4122829ab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -4406, y: 2809} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615437} + attribute: position + location: 0 + mask: xyz +--- !u!114 &8926484042661615437 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615438} + - {fileID: 8926484042661615439} + - {fileID: 8926484042661615440} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615437} + m_MasterData: + m_Owner: {fileID: 8926484042661615436} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615458} +--- !u!114 &8926484042661615438 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615437} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615437} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615439 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615437} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615437} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615440 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615437} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615437} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615441 +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: c7acf5424f3655744af4b8f63298fa0f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -2315, y: 1654} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: + - {fileID: 8926484042661615442} + - {fileID: 8926484042661615446} + m_OutputSlots: + - {fileID: 8926484042661615450} + m_Operands: + - name: a + type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + - name: b + type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &8926484042661615442 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615443} + - {fileID: 8926484042661615444} + - {fileID: 8926484042661615445} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615442} + m_MasterData: + m_Owner: {fileID: 8926484042661615441} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615125} +--- !u!114 &8926484042661615443 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615442} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615442} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615444 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615442} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615442} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615445 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615442} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615442} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615446 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615447} + - {fileID: 8926484042661615448} + - {fileID: 8926484042661615449} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615446} + m_MasterData: + m_Owner: {fileID: 8926484042661615441} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615546} +--- !u!114 &8926484042661615447 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615446} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615446} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615448 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615446} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615446} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615449 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615446} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615446} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615450 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615451} + - {fileID: 8926484042661615452} + - {fileID: 8926484042661615453} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615450} + m_MasterData: + m_Owner: {fileID: 8926484042661615441} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661616455} +--- !u!114 &8926484042661615451 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615450} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615450} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615452 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615450} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615450} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615453 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615450} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615450} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615454 +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: c7acf5424f3655744af4b8f63298fa0f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -4105, y: 2824} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: + - {fileID: 8926484042661615458} + - {fileID: 8926484042661615475} + m_OutputSlots: + - {fileID: 8926484042661615462} + m_Operands: + - name: a + type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + - name: b + type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &8926484042661615458 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615459} + - {fileID: 8926484042661615460} + - {fileID: 8926484042661615461} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615458} + m_MasterData: + m_Owner: {fileID: 8926484042661615454} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615437} +--- !u!114 &8926484042661615459 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615458} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615458} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615460 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615458} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615458} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615461 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615458} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615458} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615462 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615463} + - {fileID: 8926484042661615464} + - {fileID: 8926484042661615465} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615462} + m_MasterData: + m_Owner: {fileID: 8926484042661615454} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615423} +--- !u!114 &8926484042661615463 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615462} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615462} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615464 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615462} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615462} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615465 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615462} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615462} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615466 +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: 955b0c175a6f3bb4582e92f3de8f0626, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -4454, y: 2869} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615467} + m_OutputSlots: + - {fileID: 8926484042661615471} + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &8926484042661615467 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615468} + - {fileID: 8926484042661615469} + - {fileID: 8926484042661615470} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615467} + m_MasterData: + m_Owner: {fileID: 8926484042661615466} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615468 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615467} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615467} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615469 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615467} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615467} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615490} +--- !u!114 &8926484042661615470 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615467} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615467} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615471 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615472} + - {fileID: 8926484042661615473} + - {fileID: 8926484042661615474} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615471} + m_MasterData: + m_Owner: {fileID: 8926484042661615466} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615475} +--- !u!114 &8926484042661615472 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615471} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615471} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615473 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615471} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615471} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615474 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615471} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615471} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615475 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615476} + - {fileID: 8926484042661615477} + - {fileID: 8926484042661615478} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615475} + m_MasterData: + m_Owner: {fileID: 8926484042661615454} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615471} +--- !u!114 &8926484042661615476 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615475} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615475} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615477 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615475} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615475} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615478 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615475} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615475} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615479 +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: a72fbb93ebe17974e90a144ef2ec8ceb, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -4874, y: 2826} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615480} + - {fileID: 8926484042661615481} + - {fileID: 8926484042661615482} + - {fileID: 8926484042661615483} + - {fileID: 8926484042661615484} + - {fileID: 8926484042661615485} + - {fileID: 8926484042661615486} + m_BuiltInParameters: 127 +--- !u!114 &8926484042661615480 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615480} + m_MasterData: + m_Owner: {fileID: 8926484042661615479} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: Delta Time + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615481 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615481} + m_MasterData: + m_Owner: {fileID: 8926484042661615479} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: Unscaled Delta Time + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615482 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615482} + m_MasterData: + m_Owner: {fileID: 8926484042661615479} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: Total Time + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615488} +--- !u!114 &8926484042661615483 +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: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615483} + m_MasterData: + m_Owner: {fileID: 8926484042661615479} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: Frame Index + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615484 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615484} + m_MasterData: + m_Owner: {fileID: 8926484042661615479} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: Play Rate + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615485 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615485} + m_MasterData: + m_Owner: {fileID: 8926484042661615479} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: Fixed Time Step + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615486 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615486} + m_MasterData: + m_Owner: {fileID: 8926484042661615479} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: Max Delta Time + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615487 +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: b8ee8a7543fa09e42a7c8616f60d2ad7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -4644, y: 2901} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615488} + - {fileID: 8926484042661615489} + m_OutputSlots: + - {fileID: 8926484042661615490} + m_Operands: + - name: a + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - name: b + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615488 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615488} + m_MasterData: + m_Owner: {fileID: 8926484042661615487} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615482} +--- !u!114 &8926484042661615489 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615489} + m_MasterData: + m_Owner: {fileID: 8926484042661615487} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.1 + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615513} +--- !u!114 &8926484042661615490 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615490} + m_MasterData: + m_Owner: {fileID: 8926484042661615487} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615469} +--- !u!114 &8926484042661615491 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615492} + m_ExposedName: Turbulences + m_Exposed: 1 + m_Order: 23 + m_Category: Point + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615492} + inputSlot: {fileID: 8926484042661615431} + position: {x: -3998, y: 2929} + expandedSlots: [] + expanded: 0 + - m_Id: 2 + linkedSlots: + - outputSlot: {fileID: 8926484042661615492} + inputSlot: {fileID: 8926484042661616506} + position: {x: -2496, y: 2768} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615492 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615492} + m_MasterData: + m_Owner: {fileID: 8926484042661615491} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.1 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615431} + - {fileID: 8926484042661616506} +--- !u!114 &8926484042661615510 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615511} + m_ExposedName: Turbulences Frequency + m_Exposed: 1 + m_Order: 26 + m_Category: Point + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615511} + inputSlot: {fileID: 8926484042661615427} + position: {x: -4061, y: 2869} + expandedSlots: [] + expanded: 0 + - m_Id: 1 + linkedSlots: + - outputSlot: {fileID: 8926484042661615511} + inputSlot: {fileID: 8926484042661616477} + position: {x: -2367, y: 2873} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615511 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615511} + m_MasterData: + m_Owner: {fileID: 8926484042661615510} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 10 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615427} + - {fileID: 8926484042661616477} +--- !u!114 &8926484042661615512 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615513} + m_ExposedName: Turbulences Speed + m_Exposed: 1 + m_Order: 24 + m_Category: Point + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615513} + inputSlot: {fileID: 8926484042661615489} + position: {x: -4874, y: 3075} + expandedSlots: [] + expanded: 0 + - m_Id: 1 + linkedSlots: + - outputSlot: {fileID: 8926484042661615513} + inputSlot: {fileID: 8926484042661616485} + position: {x: -2667, y: 2504} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615513 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615513} + m_MasterData: + m_Owner: {fileID: 8926484042661615512} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.1 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615489} + - {fileID: 8926484042661616485} +--- !u!114 &8926484042661615514 +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: c42128e17c583714a909b4997c80c916, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -3274, y: 1986} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615515} + - {fileID: 8926484042661615516} + - {fileID: 8926484042661615517} + m_OutputSlots: + - {fileID: 8926484042661615518} + seed: 0 + constant: 1 +--- !u!114 &8926484042661615515 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615515} + m_MasterData: + m_Owner: {fileID: 8926484042661615514} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: -1 + m_Space: 2147483647 + m_Property: + name: min + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615516 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615516} + m_MasterData: + m_Owner: {fileID: 8926484042661615514} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: max + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615517 +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: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615517} + m_MasterData: + m_Owner: {fileID: 8926484042661615514} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 190 + m_Space: 2147483647 + m_Property: + name: seed + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615518 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615518} + m_MasterData: + m_Owner: {fileID: 8926484042661615514} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: r + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615533} +--- !u!114 &8926484042661615519 +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: c42128e17c583714a909b4997c80c916, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -3274, y: 1818} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615520} + - {fileID: 8926484042661615521} + - {fileID: 8926484042661615522} + m_OutputSlots: + - {fileID: 8926484042661615523} + seed: 0 + constant: 1 +--- !u!114 &8926484042661615520 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615520} + m_MasterData: + m_Owner: {fileID: 8926484042661615519} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: -1 + m_Space: 2147483647 + m_Property: + name: min + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615521 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615521} + m_MasterData: + m_Owner: {fileID: 8926484042661615519} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: max + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615522 +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: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615522} + m_MasterData: + m_Owner: {fileID: 8926484042661615519} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 798 + m_Space: 2147483647 + m_Property: + name: seed + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615523 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615523} + m_MasterData: + m_Owner: {fileID: 8926484042661615519} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: r + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615532} +--- !u!114 &8926484042661615524 +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: c42128e17c583714a909b4997c80c916, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -3274, y: 1650} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615525} + - {fileID: 8926484042661615526} + - {fileID: 8926484042661615527} + m_OutputSlots: + - {fileID: 8926484042661615528} + seed: 0 + constant: 1 +--- !u!114 &8926484042661615525 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615525} + m_MasterData: + m_Owner: {fileID: 8926484042661615524} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: -1 + m_Space: 2147483647 + m_Property: + name: min + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615526 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615526} + m_MasterData: + m_Owner: {fileID: 8926484042661615524} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: max + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615527 +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: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615527} + m_MasterData: + m_Owner: {fileID: 8926484042661615524} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 321 + m_Space: 2147483647 + m_Property: + name: seed + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615528 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615528} + m_MasterData: + m_Owner: {fileID: 8926484042661615524} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: r + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615531} +--- !u!114 &8926484042661615529 +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: 955b0c175a6f3bb4582e92f3de8f0626, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -3008, y: 1745} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615530} + m_OutputSlots: + - {fileID: 8926484042661615534} + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &8926484042661615530 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615531} + - {fileID: 8926484042661615532} + - {fileID: 8926484042661615533} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615530} + m_MasterData: + m_Owner: {fileID: 8926484042661615529} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615531 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615530} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615530} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615528} +--- !u!114 &8926484042661615532 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615530} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615530} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615523} +--- !u!114 &8926484042661615533 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615530} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615530} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615518} +--- !u!114 &8926484042661615534 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615535} + - {fileID: 8926484042661615536} + - {fileID: 8926484042661615537} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615534} + m_MasterData: + m_Owner: {fileID: 8926484042661615529} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615542} +--- !u!114 &8926484042661615535 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615534} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615534} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615536 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615534} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615534} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615537 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615534} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615534} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615538 +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: b8ee8a7543fa09e42a7c8616f60d2ad7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -2684, y: 1709} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615542} + - {fileID: 8926484042661615540} + m_OutputSlots: + - {fileID: 8926484042661615546} + m_Operands: + - name: a + type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + - name: b + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615540 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615540} + m_MasterData: + m_Owner: {fileID: 8926484042661615538} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615551} +--- !u!114 &8926484042661615542 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615543} + - {fileID: 8926484042661615544} + - {fileID: 8926484042661615545} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615542} + m_MasterData: + m_Owner: {fileID: 8926484042661615538} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":1.0,"z":1.0}' + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615534} +--- !u!114 &8926484042661615543 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615542} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615542} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615544 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615542} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615542} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615545 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615542} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615542} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615546 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615547} + - {fileID: 8926484042661615548} + - {fileID: 8926484042661615549} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615546} + m_MasterData: + m_Owner: {fileID: 8926484042661615538} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615446} +--- !u!114 &8926484042661615547 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615546} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615546} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615548 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615546} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615546} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615549 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615546} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615546} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615550 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615551} + m_ExposedName: Noise + m_Exposed: 1 + m_Order: 22 + m_Category: Point + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615551} + inputSlot: {fileID: 8926484042661615540} + position: {x: -2861, y: 1898} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615551 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615551} + m_MasterData: + m_Owner: {fileID: 8926484042661615550} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.1 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615540} +--- !u!114 &8926484042661615604 +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: c42128e17c583714a909b4997c80c916, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -3811, y: 3111} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615605} + - {fileID: 8926484042661615606} + - {fileID: 8926484042661615607} + m_OutputSlots: + - {fileID: 8926484042661615608} + seed: 0 + constant: 1 +--- !u!114 &8926484042661615605 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615605} + m_MasterData: + m_Owner: {fileID: 8926484042661615604} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: min + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615606 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615606} + m_MasterData: + m_Owner: {fileID: 8926484042661615604} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: max + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615607 +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: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615607} + m_MasterData: + m_Owner: {fileID: 8926484042661615604} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 72 + m_Space: 2147483647 + m_Property: + name: seed + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615608 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615608} + m_MasterData: + m_Owner: {fileID: 8926484042661615604} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: r + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615612} +--- !u!114 &8926484042661615609 +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: b4bb186c1c47c9d4191c5f523b1744b8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -3608, y: 3040} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615610} + - {fileID: 8926484042661615611} + - {fileID: 8926484042661615612} + m_OutputSlots: + - {fileID: 8926484042661615613} + m_Type: + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615610 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615610} + m_MasterData: + m_Owner: {fileID: 8926484042661615609} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615768} +--- !u!114 &8926484042661615611 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615611} + m_MasterData: + m_Owner: {fileID: 8926484042661615609} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615612 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615612} + m_MasterData: + m_Owner: {fileID: 8926484042661615609} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.5 + m_Space: 2147483647 + m_Property: + name: s + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615608} +--- !u!114 &8926484042661615613 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615613} + m_MasterData: + m_Owner: {fileID: 8926484042661615609} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615773} +--- !u!114 &8926484042661615614 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615615} + m_ExposedName: Turbulences Ratio + m_Exposed: 1 + m_Order: 28 + m_Category: Point + m_Min: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Max: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 1 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615615} + inputSlot: {fileID: 8926484042661615767} + position: {x: -4039, y: 3004} + expandedSlots: [] + expanded: 0 + - m_Id: 2 + linkedSlots: + - outputSlot: {fileID: 8926484042661615615} + inputSlot: {fileID: 8926484042661616502} + position: {x: -2970, y: 2598} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615615 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615615} + m_MasterData: + m_Owner: {fileID: 8926484042661615614} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.85 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615767} + - {fileID: 8926484042661616502} +--- !u!114 &8926484042661615616 +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: b8ee8a7543fa09e42a7c8616f60d2ad7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -3373, y: 2826} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615769} + - {fileID: 8926484042661615773} + m_OutputSlots: + - {fileID: 8926484042661615624} + m_Operands: + - name: a + type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + - name: b + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615624 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615625} + - {fileID: 8926484042661615626} + - {fileID: 8926484042661615627} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615624} + m_MasterData: + m_Owner: {fileID: 8926484042661615616} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615625 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615624} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615624} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615626 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615624} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615624} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615627 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615624} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615624} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615628 +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: 9dfea48843f53fc438eabc12a3a30abc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661615661} + - {fileID: 8926484042661615664} + - {fileID: 8926484042661616510} + m_UIPosition: {x: -676, y: 1060} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615629} + - {fileID: 8926484042661615638} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615642} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661615643} + slotIndex: 0 + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661615649} + slotIndex: 0 +--- !u!114 &8926484042661615629 +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: 1b605c022ee79394a8a776c0869b3f9a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615630} + - {fileID: 8926484042661615634} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615629} + m_MasterData: + m_Owner: {fileID: 8926484042661615628} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"center":{"x":-0.008661508560180664,"y":1.4014217853546143,"z":-0.018482446670532228},"size":{"x":3.004997730255127,"y":3.960069179534912,"z":3.0607447624206545}}' + m_Space: 0 + m_Property: + name: bounds + m_serializedType: + m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615630 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615629} + m_Children: + - {fileID: 8926484042661615631} + - {fileID: 8926484042661615632} + - {fileID: 8926484042661615633} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615629} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: center + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615631 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615630} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615629} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615632 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615630} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615629} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615633 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615630} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615629} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615634 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615629} + m_Children: + - {fileID: 8926484042661615635} + - {fileID: 8926484042661615636} + - {fileID: 8926484042661615637} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615629} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: size + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615635 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615634} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615629} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615636 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615634} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615629} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615637 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615634} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615629} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615638 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615639} + - {fileID: 8926484042661615640} + - {fileID: 8926484042661615641} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615638} + m_MasterData: + m_Owner: {fileID: 8926484042661615628} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.5,"y":0.5,"z":0.5}' + m_Space: 2147483647 + m_Property: + name: boundsPadding + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615639 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615638} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615638} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615640 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615638} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615638} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615641 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615638} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615638} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615642 +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: d78581a96eae8bf4398c282eb0b098bd, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 8926484042661615628} + - {fileID: 8926484042661615649} + - {fileID: 8926484042661615651} + dataType: 0 + capacity: 1000 + stripCapacity: 16 + particlePerStripCount: 16 + needsComputeBounds: 0 + boundsMode: 0 + m_Space: 1 +--- !u!114 &8926484042661615643 +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: 73a13919d81fb7444849bae8b5c812a2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661615697} + m_UIPosition: {x: -676, y: 571} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: Spawn system + m_Data: {fileID: 8926484042661615644} + m_InputFlowSlot: + - link: [] + - link: [] + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661615628} + slotIndex: 0 + loopDuration: 0 + loopCount: 0 + delayBeforeLoop: 0 + delayAfterLoop: 0 +--- !u!114 &8926484042661615644 +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: f68759077adc0b143b6e1c101e82065e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 8926484042661615643} +--- !u!114 &8926484042661615649 +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: 2dc095764ededfa4bb32fa602511ea4b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661615676} + - {fileID: 8926484042661615713} + m_UIPosition: {x: -676, y: 1544} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615642} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661615628} + slotIndex: 0 + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661615651} + slotIndex: 0 + integration: 0 + angularIntegration: 0 + ageParticles: 1 + reapParticles: 1 + skipZeroDeltaUpdate: 0 +--- !u!114 &8926484042661615651 +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: 08b03824843e33840a03794c433c3cef, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661615704} + - {fileID: 8926484042661615756} + - {fileID: 8926484042661616513} + m_UIPosition: {x: -676, y: 2254} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615652} + - {fileID: 8926484042661615653} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615642} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661615649} + slotIndex: 0 + m_OutputFlowSlot: + - link: [] + blendMode: 3 + cullMode: 0 + zWriteMode: 0 + zTestMode: 0 + useAlphaClipping: 0 + generateMotionVector: 0 + excludeFromTAA: 0 + sortingPriority: 0 + m_SubOutputs: + - {fileID: 8926484042661615656} + colorMapping: 0 + uvMode: 0 + flipbookLayout: 0 + useSoftParticle: 0 + vfxSystemSortPriority: 0 + sort: 0 + sortMode: 0 + revertSorting: 0 + indirectDraw: 0 + computeCulling: 0 + frustumCulling: 0 + castShadows: 1 + useExposureWeight: 0 + needsOwnSort: 0 + shaderGraph: {fileID: 0} + materialSettings: + m_PropertyNames: [] + m_PropertyValues: [] + useBaseColorMap: 3 + useMaskMap: 0 + useNormalMap: 0 + useEmissiveMap: 0 + colorMode: 1 + useEmissive: 0 + materialType: 0 + onlyAmbientLighting: 0 + diffusionProfileAsset: {fileID: 11400000, guid: d88fa25264effc247923557049bed8ad, + type: 2} + multiplyThicknessWithAlpha: 0 + doubleSided: 0 + preserveSpecularLighting: 0 + enableSpecular: 1 + lightmapRemapMode: 0 + lightmapRemapRanges: 0 + useAlphaRemap: 0 + emissiveMode: 0 + useEmissiveChannelScale: 0 + useColorAbsorption: 1 + receiveShadows: 1 + enableCookie: 1 + enableEnvLight: 1 +--- !u!114 &8926484042661615652 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615652} + m_MasterData: + m_Owner: {fileID: 8926484042661615651} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: smoothness + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615658} +--- !u!114 &8926484042661615653 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615653} + m_MasterData: + m_Owner: {fileID: 8926484042661615651} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: metallic + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615660} +--- !u!114 &8926484042661615656 +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: 081ffb0090424ba4cb05370a42ead6b9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + opaqueRenderQueue: 0 + transparentRenderQueue: 1 +--- !u!114 &8926484042661615657 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615658} + m_ExposedName: Point Smoothness + m_Exposed: 1 + m_Order: 8 + m_Category: Point + m_Min: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Max: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 1 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615658} + inputSlot: {fileID: 8926484042661614660} + position: {x: -2304, y: 3213} + expandedSlots: [] + expanded: 0 + - m_Id: 1 + linkedSlots: + - outputSlot: {fileID: 8926484042661615658} + inputSlot: {fileID: 8926484042661615652} + position: {x: -902, y: 2323} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615658 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615658} + m_MasterData: + m_Owner: {fileID: 8926484042661615657} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614660} + - {fileID: 8926484042661615652} +--- !u!114 &8926484042661615659 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615660} + m_ExposedName: Point Metallic + m_Exposed: 1 + m_Order: 12 + m_Category: Point + m_Min: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Max: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 1 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615660} + inputSlot: {fileID: 8926484042661615061} + position: {x: -2278, y: 3264} + expandedSlots: [] + expanded: 0 + - m_Id: 1 + linkedSlots: + - outputSlot: {fileID: 8926484042661615660} + inputSlot: {fileID: 8926484042661615653} + position: {x: -876, y: 2374} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615660 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615660} + m_MasterData: + m_Owner: {fileID: 8926484042661615659} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615061} + - {fileID: 8926484042661615653} +--- !u!114 &8926484042661615661 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615628} + m_Children: [] + m_UIPosition: {x: 0, y: 2} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615662} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615663} + attribute: lifetime + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615662 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615662} + m_MasterData: + m_Owner: {fileID: 8926484042661615661} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: Lifetime + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615777} +--- !u!114 &8926484042661615663 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615663} + m_MasterData: + m_Owner: {fileID: 8926484042661615661} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615664 +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: 60fff265f139e2a4194a44c2bac41757, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615628} + m_Children: [] + m_UIPosition: {x: 0, y: 76} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615665} + - {fileID: 8926484042661615700} + - {fileID: 8926484042661615667} + - {fileID: 8926484042661615671} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615675} + attribute: position + Composition: 0 + SampleMode: 6 + mode: 0 + channels: 6 + usePointCount: 0 +--- !u!114 &8926484042661615665 +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: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615665} + m_MasterData: + m_Owner: {fileID: 8926484042661615664} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":2800000,"guid":"1d8481de16af723418a688958c41224b","type":3}}' + m_Space: 2147483647 + m_Property: + name: attributeMap + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614607} +--- !u!114 &8926484042661615667 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615668} + - {fileID: 8926484042661615669} + - {fileID: 8926484042661615670} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615667} + m_MasterData: + m_Owner: {fileID: 8926484042661615664} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: valueBias + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615668 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615667} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615667} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615669 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615667} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615667} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615670 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615667} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615667} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615671 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615672} + - {fileID: 8926484042661615673} + - {fileID: 8926484042661615674} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615671} + m_MasterData: + m_Owner: {fileID: 8926484042661615664} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":1.0,"z":1.0}' + m_Space: 2147483647 + m_Property: + name: valueScale + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615672 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615671} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615671} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615673 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615671} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615671} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615674 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615671} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615671} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615675 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615675} + m_MasterData: + m_Owner: {fileID: 8926484042661615664} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615676 +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: 63716c0daf1806941a123003dc6d7398, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615649} + m_Children: [] + m_UIPosition: {x: 0, y: 2} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615677} + - {fileID: 8926484042661615690} + - {fileID: 8926484042661615691} + - {fileID: 8926484042661615692} + - {fileID: 8926484042661615693} + - {fileID: 8926484042661615694} + - {fileID: 8926484042661615695} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615696} + Mode: 1 + NoiseType: 0 +--- !u!114 &8926484042661615677 +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: 3e3f628d80ffceb489beac74258f9cf7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615678} + - {fileID: 8926484042661615682} + - {fileID: 8926484042661615686} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615677} + m_MasterData: + m_Owner: {fileID: 8926484042661615676} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Transform, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0},"angles":{"x":0.0,"y":0.0,"z":0.0},"scale":{"x":1.0,"y":1.0,"z":1.0}}' + m_Space: 1 + m_Property: + name: FieldTransform + m_serializedType: + m_SerializableType: UnityEditor.VFX.Transform, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615678 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615677} + m_Children: + - {fileID: 8926484042661615679} + - {fileID: 8926484042661615680} + - {fileID: 8926484042661615681} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615677} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615679 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615678} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615677} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615680 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615678} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615677} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615710} +--- !u!114 &8926484042661615681 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615678} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615677} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615682 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615677} + m_Children: + - {fileID: 8926484042661615683} + - {fileID: 8926484042661615684} + - {fileID: 8926484042661615685} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615677} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: angles + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615683 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615682} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615677} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615684 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615682} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615677} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615685 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615682} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615677} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615686 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615677} + m_Children: + - {fileID: 8926484042661615687} + - {fileID: 8926484042661615688} + - {fileID: 8926484042661615689} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615677} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: scale + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615687 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615686} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615677} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615688 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615686} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615677} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615689 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615686} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615677} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615690 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615690} + m_MasterData: + m_Owner: {fileID: 8926484042661615676} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: Intensity + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615779} +--- !u!114 &8926484042661615691 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615691} + m_MasterData: + m_Owner: {fileID: 8926484042661615676} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: Drag + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615692 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615692} + m_MasterData: + m_Owner: {fileID: 8926484042661615676} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: frequency + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615807} +--- !u!114 &8926484042661615693 +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: 4d246e354feb93041a837a9ef59437cb, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615693} + m_MasterData: + m_Owner: {fileID: 8926484042661615676} + m_Value: + m_Type: + m_SerializableType: System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: octaves + m_serializedType: + m_SerializableType: System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615694 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615694} + m_MasterData: + m_Owner: {fileID: 8926484042661615676} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.5 + m_Space: 2147483647 + m_Property: + name: roughness + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615695 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615695} + m_MasterData: + m_Owner: {fileID: 8926484042661615676} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 2 + m_Space: 2147483647 + m_Property: + name: lacunarity + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615696 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615696} + m_MasterData: + m_Owner: {fileID: 8926484042661615676} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615697 +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: f05c6884b705ce14d82ae720f0ec209f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615643} + m_Children: [] + m_UIPosition: {x: 0, y: 149} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615698} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615699} +--- !u!114 &8926484042661615698 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615698} + m_MasterData: + m_Owner: {fileID: 8926484042661615697} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 100 + m_Space: 2147483647 + m_Property: + name: Rate + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615775} +--- !u!114 &8926484042661615699 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615699} + m_MasterData: + m_Owner: {fileID: 8926484042661615697} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615802} +--- !u!114 &8926484042661615700 +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: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615700} + m_MasterData: + m_Owner: {fileID: 8926484042661615664} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: Seed + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615704 +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: 01ec2c1930009b04ea08905b47262415, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615651} + m_Children: [] + m_UIPosition: {x: 0, y: 2} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615705} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615706} + attribute: size + Composition: 2 + AlphaComposition: 0 + SampleMode: 0 + Mode: 1 + ColorMode: 3 + channels: 6 +--- !u!114 &8926484042661615705 +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: c117b74c5c58db542bffe25c78fe92db, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615705} + m_MasterData: + m_Owner: {fileID: 8926484042661615704} + m_Value: + m_Type: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"frames":[{"time":0.0,"value":0.0,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":0.25,"value":0.25,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":1.0,"value":0.0,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false}],"preWrapMode":8,"postWrapMode":8,"version":1}' + m_Space: 2147483647 + m_Property: + name: Size + m_serializedType: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615706 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615706} + m_MasterData: + m_Owner: {fileID: 8926484042661615704} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615707 +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: b8ee8a7543fa09e42a7c8616f60d2ad7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -876, y: 1743} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615708} + - {fileID: 8926484042661615709} + m_OutputSlots: + - {fileID: 8926484042661615710} + m_Operands: + - name: a + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - name: b + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615708 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615708} + m_MasterData: + m_Owner: {fileID: 8926484042661615707} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615712} +--- !u!114 &8926484042661615709 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615709} + m_MasterData: + m_Owner: {fileID: 8926484042661615707} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.1 + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615710 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615710} + m_MasterData: + m_Owner: {fileID: 8926484042661615707} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615680} +--- !u!114 &8926484042661615711 +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: a72fbb93ebe17974e90a144ef2ec8ceb, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -1054, y: 1751} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615712} + m_BuiltInParameters: 1024 +--- !u!114 &8926484042661615712 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615712} + m_MasterData: + m_Owner: {fileID: 8926484042661615711} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: Total Time + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615708} +--- !u!114 &8926484042661615713 +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: c079bc84df7c7e94f88c8ae0d1b0691d, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615649} + m_Children: [] + m_UIPosition: {x: 0, y: 369} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615720} + - {fileID: 8926484042661615725} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615719} + Mode: 1 +--- !u!114 &8926484042661615719 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615719} + m_MasterData: + m_Owner: {fileID: 8926484042661615713} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615720 +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: a9f9544b71b7dab44a4644b6807e8bf6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615721} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615720} + m_MasterData: + m_Owner: {fileID: 8926484042661615713} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Vector, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"vector":{"x":0.0,"y":1.0,"z":0.0}}' + m_Space: 1 + m_Property: + name: Velocity + m_serializedType: + m_SerializableType: UnityEditor.VFX.Vector, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615781} +--- !u!114 &8926484042661615721 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615720} + m_Children: + - {fileID: 8926484042661615722} + - {fileID: 8926484042661615723} + - {fileID: 8926484042661615724} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615720} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: vector + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615722 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615721} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615720} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615723 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615721} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615720} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615724 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615721} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615720} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615725 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615725} + m_MasterData: + m_Owner: {fileID: 8926484042661615713} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: Drag + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615726 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614752} + m_Children: [] + m_UIPosition: {x: 0, y: 125} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615727} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615731} + attribute: color + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615727 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615728} + - {fileID: 8926484042661615729} + - {fileID: 8926484042661615730} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615727} + m_MasterData: + m_Owner: {fileID: 8926484042661615726} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":2.0,"y":2.0,"z":2.0}' + m_Space: 2147483647 + m_Property: + name: Color + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615733} +--- !u!114 &8926484042661615728 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615727} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615727} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615729 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615727} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615727} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615730 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615727} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615727} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615731 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615731} + m_MasterData: + m_Owner: {fileID: 8926484042661615726} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615732 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615733} + m_ExposedName: Line Color + m_Exposed: 1 + m_Order: 25 + m_Category: Line + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615733} + inputSlot: {fileID: 8926484042661615727} + position: {x: 1255, y: 3129} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615733 +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: c82227d5759e296488798b1554a72a15, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615734} + - {fileID: 8926484042661615735} + - {fileID: 8926484042661615736} + - {fileID: 8926484042661615737} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615733} + m_MasterData: + m_Owner: {fileID: 8926484042661615732} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"r":1.0,"g":1.0,"b":1.0,"a":1.0}' + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615727} +--- !u!114 &8926484042661615734 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615733} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615733} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: r + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615735 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615733} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615733} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: g + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615736 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615733} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615733} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615737 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615733} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615733} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615738 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615739} + m_ExposedName: Point Color + m_Exposed: 1 + m_Order: 5 + m_Category: Point + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615739} + inputSlot: {fileID: 8926484042661615751} + position: {x: -2278, y: 3350} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615739 +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: c82227d5759e296488798b1554a72a15, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615740} + - {fileID: 8926484042661615741} + - {fileID: 8926484042661615742} + - {fileID: 8926484042661615743} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615739} + m_MasterData: + m_Owner: {fileID: 8926484042661615738} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"r":1.0,"g":1.0,"b":1.0,"a":1.0}' + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615751} +--- !u!114 &8926484042661615740 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615739} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615739} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: r + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615741 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615739} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615739} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: g + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615742 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615739} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615739} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615743 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615739} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615739} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615744 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615745} + m_ExposedName: Line Point Color + m_Exposed: 1 + m_Order: 29 + m_Category: Line + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615745} + inputSlot: {fileID: 8926484042661615304} + position: {x: 2073, y: 2969} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615745 +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: c82227d5759e296488798b1554a72a15, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615746} + - {fileID: 8926484042661615747} + - {fileID: 8926484042661615748} + - {fileID: 8926484042661615749} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615745} + m_MasterData: + m_Owner: {fileID: 8926484042661615744} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"r":1.0,"g":1.0,"b":1.0,"a":1.0}' + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615304} +--- !u!114 &8926484042661615746 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615745} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615745} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: r + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615747 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615745} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615745} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: g + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615748 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615745} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615745} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615749 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615745} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615745} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615750 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614659} + m_Children: [] + m_UIPosition: {x: 0, y: 2} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615751} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615755} + attribute: color + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615751 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615752} + - {fileID: 8926484042661615753} + - {fileID: 8926484042661615754} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615751} + m_MasterData: + m_Owner: {fileID: 8926484042661615750} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":1.0,"z":1.0}' + m_Space: 2147483647 + m_Property: + name: Color + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615739} +--- !u!114 &8926484042661615752 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615751} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615751} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615753 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615751} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615751} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615754 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615751} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615751} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615755 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615755} + m_MasterData: + m_Owner: {fileID: 8926484042661615750} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615756 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615651} + m_Children: [] + m_UIPosition: {x: 0, y: 111} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615757} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615761} + attribute: color + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615757 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615758} + - {fileID: 8926484042661615759} + - {fileID: 8926484042661615760} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615757} + m_MasterData: + m_Owner: {fileID: 8926484042661615756} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":1.0,"z":1.0}' + m_Space: 2147483647 + m_Property: + name: Color + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615986} +--- !u!114 &8926484042661615758 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615757} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615757} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615759 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615757} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615757} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615760 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615757} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615757} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615761 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615761} + m_MasterData: + m_Owner: {fileID: 8926484042661615756} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615762 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615763} + m_ExposedName: Line Smoothness + m_Exposed: 1 + m_Order: 38 + m_Category: Line + m_Min: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Max: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 1 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615763} + inputSlot: {fileID: 8926484042661614753} + position: {x: 1248, y: 2835} + expandedSlots: [] + expanded: 0 + - m_Id: 1 + linkedSlots: + - outputSlot: {fileID: 8926484042661615763} + inputSlot: {fileID: 8926484042661615287} + position: {x: 2085, y: 2784} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615763 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615763} + m_MasterData: + m_Owner: {fileID: 8926484042661615762} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614753} + - {fileID: 8926484042661615287} +--- !u!114 &8926484042661615764 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615765} + m_ExposedName: Line Metallic + m_Exposed: 1 + m_Order: 41 + m_Category: Line + m_Min: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Max: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 1 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615765} + inputSlot: {fileID: 8926484042661614754} + position: {x: 1286, y: 2889} + expandedSlots: [] + expanded: 0 + - m_Id: 1 + linkedSlots: + - outputSlot: {fileID: 8926484042661615765} + inputSlot: {fileID: 8926484042661615288} + position: {x: 2113, y: 2834} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615765 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615765} + m_MasterData: + m_Owner: {fileID: 8926484042661615764} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614754} + - {fileID: 8926484042661615288} +--- !u!114 &8926484042661615766 +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: c8ac0ebcb5fd27b408f3700034222acb, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -3833, y: 3014} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615767} + m_OutputSlots: + - {fileID: 8926484042661615768} + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615767 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615767} + m_MasterData: + m_Owner: {fileID: 8926484042661615766} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615615} +--- !u!114 &8926484042661615768 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615768} + m_MasterData: + m_Owner: {fileID: 8926484042661615766} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615610} +--- !u!114 &8926484042661615769 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615770} + - {fileID: 8926484042661615771} + - {fileID: 8926484042661615772} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615769} + m_MasterData: + m_Owner: {fileID: 8926484042661615616} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":1.0,"z":1.0}' + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615432} +--- !u!114 &8926484042661615770 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615769} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615769} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615771 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615769} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615769} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615772 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615769} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615769} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615773 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615773} + m_MasterData: + m_Owner: {fileID: 8926484042661615616} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615613} +--- !u!114 &8926484042661615774 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615775} + m_ExposedName: Bubble Rate + m_Exposed: 1 + m_Order: 30 + m_Category: Bubble + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615775} + inputSlot: {fileID: 8926484042661615698} + position: {x: -870, y: 723} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615775 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615775} + m_MasterData: + m_Owner: {fileID: 8926484042661615774} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 100 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615698} +--- !u!114 &8926484042661615776 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615777} + m_ExposedName: Bubble Lifetime + m_Exposed: 1 + m_Order: 33 + m_Category: Bubble + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615777} + inputSlot: {fileID: 8926484042661615662} + position: {x: -876, y: 1245} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615777 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615777} + m_MasterData: + m_Owner: {fileID: 8926484042661615776} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615662} +--- !u!114 &8926484042661615778 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615779} + m_ExposedName: Bubble Turbulences + m_Exposed: 1 + m_Order: 35 + m_Category: Bubble + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615779} + inputSlot: {fileID: 8926484042661615690} + position: {x: -919, y: 1904} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615779 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615779} + m_MasterData: + m_Owner: {fileID: 8926484042661615778} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615690} +--- !u!114 &8926484042661615780 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615781} + m_ExposedName: Bubble Force + m_Exposed: 1 + m_Order: 39 + m_Category: Bubble + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615781} + inputSlot: {fileID: 8926484042661615720} + position: {x: -876, y: 2037} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615781 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615782} + - {fileID: 8926484042661615783} + - {fileID: 8926484042661615784} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615781} + m_MasterData: + m_Owner: {fileID: 8926484042661615780} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":1.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615720} +--- !u!114 &8926484042661615782 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615781} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615781} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615783 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615781} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615781} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615784 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615781} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615781} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615785 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615286} + m_Children: [] + m_UIPosition: {x: 0, y: 172} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615788} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615787} + attribute: scale + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615787 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615787} + m_MasterData: + m_Owner: {fileID: 8926484042661615785} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: False + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615788 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615789} + - {fileID: 8926484042661615790} + - {fileID: 8926484042661615791} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615788} + m_MasterData: + m_Owner: {fileID: 8926484042661615785} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":1.0,"z":1.0}' + m_Space: 2147483647 + m_Property: + name: Scale + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615789 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615788} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615788} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615790 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615788} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615788} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615791 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615788} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615788} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615792 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615793} + m_ExposedName: Line Point Size + m_Exposed: 1 + m_Order: 36 + m_Category: Line + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615793} + inputSlot: {fileID: 8926484042661615310} + position: {x: 2085, y: 3026} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615793 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615793} + m_MasterData: + m_Owner: {fileID: 8926484042661615792} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.02 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615310} +--- !u!114 &8926484042661615801 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615802} + m_ExposedName: Toggle Bubble + m_Exposed: 1 + m_Order: 9 + m_Category: Bubble + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615802} + inputSlot: {fileID: 8926484042661615699} + position: {x: -884, y: 680} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615802 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615802} + m_MasterData: + m_Owner: {fileID: 8926484042661615801} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615699} +--- !u!114 &8926484042661615803 +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: 01ec2c1930009b04ea08905b47262415, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614752} + m_Children: [] + m_UIPosition: {x: 0, y: 221} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615804} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615805} + attribute: size + Composition: 2 + AlphaComposition: 0 + SampleMode: 0 + Mode: 1 + ColorMode: 3 + channels: 6 +--- !u!114 &8926484042661615804 +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: c117b74c5c58db542bffe25c78fe92db, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615804} + m_MasterData: + m_Owner: {fileID: 8926484042661615803} + m_Value: + m_Type: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"frames":[{"time":0.0,"value":0.0,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":0.25,"value":0.25,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":1.0,"value":0.0,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false}],"preWrapMode":8,"postWrapMode":8,"version":1}' + m_Space: 2147483647 + m_Property: + name: Size + m_serializedType: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615805 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615805} + m_MasterData: + m_Owner: {fileID: 8926484042661615803} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: False + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615806 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615807} + m_ExposedName: Bubble Turbulences Frequency + m_Exposed: 1 + m_Order: 37 + m_Category: Bubble + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615807} + inputSlot: {fileID: 8926484042661615692} + position: {x: -977, y: 1967} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615807 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615807} + m_MasterData: + m_Owner: {fileID: 8926484042661615806} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615692} +--- !u!114 &8926484042661615808 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615809} + m_ExposedName: Toggle Line + m_Exposed: 1 + m_Order: 13 + m_Category: Line + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615809} + inputSlot: {fileID: 8926484042661615812} + position: {x: 1443, y: 727} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615809 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615809} + m_MasterData: + m_Owner: {fileID: 8926484042661615808} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615812} +--- !u!114 &8926484042661615810 +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: f05c6884b705ce14d82ae720f0ec209f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614702} + m_Children: [] + m_UIPosition: {x: 0, y: 149} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615811} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615812} +--- !u!114 &8926484042661615811 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615811} + m_MasterData: + m_Owner: {fileID: 8926484042661615810} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1000 + m_Space: 2147483647 + m_Property: + name: Rate + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615827} +--- !u!114 &8926484042661615812 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615812} + m_MasterData: + m_Owner: {fileID: 8926484042661615810} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615809} +--- !u!114 &8926484042661615813 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614708} + m_Children: [] + m_UIPosition: {x: 0, y: 111} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616425} + - {fileID: 8926484042661616426} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615815} + attribute: lifetime + Composition: 0 + Source: 0 + Random: 2 + channels: 6 +--- !u!114 &8926484042661615815 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615815} + m_MasterData: + m_Owner: {fileID: 8926484042661615813} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615816 +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: ba941214d319b454f90d5480e85886f2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 672, y: 2651} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615817} +--- !u!114 &8926484042661615817 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615817} + m_MasterData: + m_Owner: {fileID: 8926484042661615816} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: t + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615820} +--- !u!114 &8926484042661615818 +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: f8bcc906a6d398c46b18826714448709, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 874, y: 2651} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615819} + - {fileID: 8926484042661615820} + m_OutputSlots: + - {fileID: 8926484042661615821} +--- !u!114 &8926484042661615819 +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: c117b74c5c58db542bffe25c78fe92db, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615819} + m_MasterData: + m_Owner: {fileID: 8926484042661615818} + m_Value: + m_Type: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"frames":[{"time":0.0,"value":0.0,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":0.25,"value":1.0,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":1.0,"value":0.0,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false}],"preWrapMode":8,"postWrapMode":8,"version":1}' + m_Space: 2147483647 + m_Property: + name: curve + m_serializedType: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615820 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615820} + m_MasterData: + m_Owner: {fileID: 8926484042661615818} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: time + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615817} +--- !u!114 &8926484042661615821 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615821} + m_MasterData: + m_Owner: {fileID: 8926484042661615818} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: s + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615824} +--- !u!114 &8926484042661615822 +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: b8ee8a7543fa09e42a7c8616f60d2ad7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 1131, y: 2641} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: + - {fileID: 8926484042661615823} + - {fileID: 8926484042661615824} + m_OutputSlots: + - {fileID: 8926484042661615825} + m_Operands: + - name: a + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - name: b + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615823 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615823} + m_MasterData: + m_Owner: {fileID: 8926484042661615822} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615249} +--- !u!114 &8926484042661615824 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615824} + m_MasterData: + m_Owner: {fileID: 8926484042661615822} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615821} +--- !u!114 &8926484042661615825 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615825} + m_MasterData: + m_Owner: {fileID: 8926484042661615822} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615048} +--- !u!114 &8926484042661615826 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615827} + m_ExposedName: Line Rate + m_Exposed: 1 + m_Order: 18 + m_Category: Line + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615827} + inputSlot: {fileID: 8926484042661615811} + position: {x: 1443, y: 789} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615827 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615827} + m_MasterData: + m_Owner: {fileID: 8926484042661615826} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1000 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615811} +--- !u!114 &8926484042661615828 +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: 73a13919d81fb7444849bae8b5c812a2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661615830} + m_UIPosition: {x: 3566, y: 563} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615829} + m_InputFlowSlot: + - link: [] + - link: [] + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661615833} + slotIndex: 0 + loopDuration: 0 + loopCount: 0 + delayBeforeLoop: 0 + delayAfterLoop: 0 +--- !u!114 &8926484042661615829 +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: f68759077adc0b143b6e1c101e82065e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 8926484042661615828} +--- !u!114 &8926484042661615830 +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: f05c6884b705ce14d82ae720f0ec209f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615828} + m_Children: [] + m_UIPosition: {x: 0, y: 2} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615831} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615832} +--- !u!114 &8926484042661615831 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615831} + m_MasterData: + m_Owner: {fileID: 8926484042661615830} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 10 + m_Space: 2147483647 + m_Property: + name: Rate + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615832 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615832} + m_MasterData: + m_Owner: {fileID: 8926484042661615830} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615833 +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: 9dfea48843f53fc438eabc12a3a30abc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661615848} + - {fileID: 8926484042661615860} + - {fileID: 8926484042661615863} + - {fileID: 8926484042661615967} + m_UIPosition: {x: 3567, y: 854} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615834} + - {fileID: 8926484042661615843} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615847} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661615828} + slotIndex: 0 + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661615867} + slotIndex: 0 +--- !u!114 &8926484042661615834 +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: 1b605c022ee79394a8a776c0869b3f9a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615835} + - {fileID: 8926484042661615839} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615834} + m_MasterData: + m_Owner: {fileID: 8926484042661615833} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"center":{"x":-0.08967018127441406,"y":0.39300286769866946,"z":0.19125854969024659},"size":{"x":3.6874237060546877,"y":3.0518534183502199,"z":2.478353977203369}}' + m_Space: 0 + m_Property: + name: bounds + m_serializedType: + m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615835 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615834} + m_Children: + - {fileID: 8926484042661615836} + - {fileID: 8926484042661615837} + - {fileID: 8926484042661615838} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615834} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: center + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615836 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615835} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615834} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615837 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615835} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615834} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615838 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615835} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615834} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615839 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615834} + m_Children: + - {fileID: 8926484042661615840} + - {fileID: 8926484042661615841} + - {fileID: 8926484042661615842} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615834} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: size + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615840 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615839} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615834} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615841 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615839} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615834} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615842 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615839} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615834} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615843 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615844} + - {fileID: 8926484042661615845} + - {fileID: 8926484042661615846} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615843} + m_MasterData: + m_Owner: {fileID: 8926484042661615833} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: boundsPadding + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615844 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615843} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615843} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615845 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615843} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615843} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615846 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615843} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615843} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615847 +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: d78581a96eae8bf4398c282eb0b098bd, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: Heads + m_Owners: + - {fileID: 8926484042661615833} + - {fileID: 8926484042661615867} + - {fileID: 8926484042661616005} + dataType: 0 + capacity: 100 + stripCapacity: 16 + particlePerStripCount: 16 + needsComputeBounds: 0 + boundsMode: 0 + m_Space: 0 +--- !u!114 &8926484042661615848 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615833} + m_Children: [] + m_UIPosition: {x: 0, y: 2} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615849} + - {fileID: 8926484042661615854} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615859} + attribute: velocity + Composition: 0 + Source: 0 + Random: 1 + channels: 6 +--- !u!114 &8926484042661615849 +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: a9f9544b71b7dab44a4644b6807e8bf6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615850} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615849} + m_MasterData: + m_Owner: {fileID: 8926484042661615848} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Vector, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"vector":{"x":-0.3330000042915344,"y":0.20000000298023225,"z":-0.3330000042915344}}' + m_Space: 0 + m_Property: + name: A + m_serializedType: + m_SerializableType: UnityEditor.VFX.Vector, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615850 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615849} + m_Children: + - {fileID: 8926484042661615851} + - {fileID: 8926484042661615852} + - {fileID: 8926484042661615853} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615849} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: vector + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615851 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615850} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615849} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615852 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615850} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615849} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615853 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615850} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615849} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615854 +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: a9f9544b71b7dab44a4644b6807e8bf6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615855} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615854} + m_MasterData: + m_Owner: {fileID: 8926484042661615848} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Vector, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"vector":{"x":0.3330000042915344,"y":1.0,"z":0.3330000042915344}}' + m_Space: 0 + m_Property: + name: B + m_serializedType: + m_SerializableType: UnityEditor.VFX.Vector, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615855 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615854} + m_Children: + - {fileID: 8926484042661615856} + - {fileID: 8926484042661615857} + - {fileID: 8926484042661615858} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615854} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: vector + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615856 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615855} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615854} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615857 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615855} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615854} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615858 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615855} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615854} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615859 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615859} + m_MasterData: + m_Owner: {fileID: 8926484042661615848} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615860 +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: 01ec2c1930009b04ea08905b47262415, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615833} + m_Children: [] + m_UIPosition: {x: 0, y: 96} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615861} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615862} + attribute: color + Composition: 0 + AlphaComposition: 0 + SampleMode: 2 + Mode: 1 + ColorMode: 3 + channels: 6 +--- !u!114 &8926484042661615861 +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: 76f778ff57c4e8145b9681fe3268d8e9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615861} + m_MasterData: + m_Owner: {fileID: 8926484042661615860} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Gradient, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"colorKeys":[{"color":{"r":12.294321060180664,"g":3.160656452178955,"b":65.96597290039063,"a":1.0},"time":0.0},{"color":{"r":126.0575180053711,"g":3.8471741676330568,"b":309.3669738769531,"a":1.0},"time":0.5153429508209229},{"color":{"r":351.81451416015627,"g":6.442227363586426,"b":53.29756164550781,"a":1.0},"time":1.0}],"alphaKeys":[{"alpha":1.0,"time":0.0},{"alpha":1.0,"time":1.0}],"gradientMode":0}' + m_Space: 2147483647 + m_Property: + name: Color + m_serializedType: + m_SerializableType: UnityEngine.Gradient, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615862 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615862} + m_MasterData: + m_Owner: {fileID: 8926484042661615860} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: False + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615863 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615833} + m_Children: [] + m_UIPosition: {x: 0, y: 225} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615864} + - {fileID: 8926484042661615865} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615866} + attribute: lifetime + Composition: 0 + Source: 0 + Random: 2 + channels: 6 +--- !u!114 &8926484042661615864 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615864} + m_MasterData: + m_Owner: {fileID: 8926484042661615863} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 3 + m_Space: 2147483647 + m_Property: + name: A + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615865 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615865} + m_MasterData: + m_Owner: {fileID: 8926484042661615863} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 6 + m_Space: 2147483647 + m_Property: + name: B + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615866 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615866} + m_MasterData: + m_Owner: {fileID: 8926484042661615863} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615867 +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: 2dc095764ededfa4bb32fa602511ea4b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661615955} + - {fileID: 8926484042661615890} + m_UIPosition: {x: 3567, y: 1512} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615847} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661615833} + slotIndex: 0 + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661616005} + slotIndex: 0 + integration: 0 + angularIntegration: 0 + ageParticles: 1 + reapParticles: 1 + skipZeroDeltaUpdate: 0 +--- !u!114 &8926484042661615890 +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: 2af1b51cb5343364eb75bae8fceffd25, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615867} + m_Children: [] + m_UIPosition: {x: 0, y: 205} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615891} + m_OutputSlots: + - {fileID: 8926484042661615892} + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615893} + mode: 1 + clampToOne: 1 +--- !u!114 &8926484042661615891 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615891} + m_MasterData: + m_Owner: {fileID: 8926484042661615890} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 30 + m_Space: 2147483647 + m_Property: + name: Rate + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615998} +--- !u!114 &8926484042661615892 +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: 1b605c022ee79394a8a776c0869b3f9a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615892} + m_MasterData: + m_Owner: {fileID: 8926484042661615890} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.GPUEvent, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{}' + m_Space: 2147483647 + m_Property: + name: evt + m_serializedType: + m_SerializableType: UnityEditor.VFX.GPUEvent, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615895} +--- !u!114 &8926484042661615893 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615893} + m_MasterData: + m_Owner: {fileID: 8926484042661615890} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615894 +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: f42a6449da2296343af0d8536de8588a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 4285.9746, y: 535.1865} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615895} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615896} + m_InputFlowSlot: + - link: [] + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661615897} + slotIndex: 0 +--- !u!114 &8926484042661615895 +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: 1b605c022ee79394a8a776c0869b3f9a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615895} + m_MasterData: + m_Owner: {fileID: 8926484042661615894} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.GPUEvent, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{}' + m_Space: 2147483647 + m_Property: + name: evt + m_serializedType: + m_SerializableType: UnityEditor.VFX.GPUEvent, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615892} +--- !u!114 &8926484042661615896 +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: f68759077adc0b143b6e1c101e82065e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 8926484042661615894} +--- !u!114 &8926484042661615897 +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: 9dfea48843f53fc438eabc12a3a30abc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661615912} + - {fileID: 8926484042661615914} + - {fileID: 8926484042661615916} + m_UIPosition: {x: 4276.9746, y: 811.1865} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615898} + - {fileID: 8926484042661615907} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615911} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661615894} + slotIndex: 0 + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661615919} + slotIndex: 0 +--- !u!114 &8926484042661615898 +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: 1b605c022ee79394a8a776c0869b3f9a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615899} + - {fileID: 8926484042661615903} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615898} + m_MasterData: + m_Owner: {fileID: 8926484042661615897} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"center":{"x":-0.07987534999847412,"y":0.36923301219940188,"z":0.20121359825134278},"size":{"x":3.709437847137451,"y":3.0992510318756105,"z":2.5473875999450685}}' + m_Space: 0 + m_Property: + name: bounds + m_serializedType: + m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615899 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615898} + m_Children: + - {fileID: 8926484042661615900} + - {fileID: 8926484042661615901} + - {fileID: 8926484042661615902} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615898} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: center + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615900 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615899} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615898} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615901 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615899} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615898} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615902 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615899} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615898} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615903 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615898} + m_Children: + - {fileID: 8926484042661615904} + - {fileID: 8926484042661615905} + - {fileID: 8926484042661615906} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615898} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: size + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615904 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615903} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615898} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615905 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615903} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615898} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615906 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615903} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615898} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615907 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615908} + - {fileID: 8926484042661615909} + - {fileID: 8926484042661615910} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615907} + m_MasterData: + m_Owner: {fileID: 8926484042661615897} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: boundsPadding + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615908 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615907} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615907} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615909 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615907} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615907} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615910 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615907} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615907} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615911 +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: d78581a96eae8bf4398c282eb0b098bd, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: Trail Bodies + m_Owners: + - {fileID: 8926484042661615897} + - {fileID: 8926484042661615919} + - {fileID: 8926484042661616394} + dataType: 1 + capacity: 9000 + stripCapacity: 100 + particlePerStripCount: 90 + needsComputeBounds: 0 + boundsMode: 0 + m_Space: 0 +--- !u!114 &8926484042661615912 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615897} + m_Children: [] + m_UIPosition: {x: 2793.9744, y: 748.1865} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615913} + attribute: position + Composition: 0 + Source: 1 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615913 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615913} + m_MasterData: + m_Owner: {fileID: 8926484042661615912} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615914 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615897} + m_Children: [] + m_UIPosition: {x: 2793.9744, y: 788.1865} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615915} + attribute: color + Composition: 0 + Source: 1 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615915 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615915} + m_MasterData: + m_Owner: {fileID: 8926484042661615914} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615916 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615897} + m_Children: [] + m_UIPosition: {x: 2793.9744, y: 830.1865} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615917} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615918} + attribute: lifetime + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615917 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615917} + m_MasterData: + m_Owner: {fileID: 8926484042661615916} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 6 + m_Space: 2147483647 + m_Property: + name: Lifetime + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661616404} +--- !u!114 &8926484042661615918 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615918} + m_MasterData: + m_Owner: {fileID: 8926484042661615916} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615919 +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: 2dc095764ededfa4bb32fa602511ea4b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661615921} + m_UIPosition: {x: 4160, y: 1317} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615911} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661615897} + slotIndex: 0 + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661616394} + slotIndex: 0 + integration: 0 + angularIntegration: 0 + ageParticles: 1 + reapParticles: 1 + skipZeroDeltaUpdate: 0 +--- !u!114 &8926484042661615921 +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: 63716c0daf1806941a123003dc6d7398, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615919} + m_Children: [] + m_UIPosition: {x: 2793.9744, y: 748.1865} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615922} + - {fileID: 8926484042661615935} + - {fileID: 8926484042661615936} + - {fileID: 8926484042661615937} + - {fileID: 8926484042661615938} + - {fileID: 8926484042661615939} + - {fileID: 8926484042661615940} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615941} + Mode: 1 + NoiseType: 1 +--- !u!114 &8926484042661615922 +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: 3e3f628d80ffceb489beac74258f9cf7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615923} + - {fileID: 8926484042661615927} + - {fileID: 8926484042661615931} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615922} + m_MasterData: + m_Owner: {fileID: 8926484042661615921} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Transform, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0},"angles":{"x":0.0,"y":0.0,"z":0.0},"scale":{"x":0.30000001192092898,"y":0.30000001192092898,"z":0.30000001192092898}}' + m_Space: 0 + m_Property: + name: FieldTransform + m_serializedType: + m_SerializableType: UnityEditor.VFX.Transform, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615923 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615922} + m_Children: + - {fileID: 8926484042661615924} + - {fileID: 8926484042661615925} + - {fileID: 8926484042661615926} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615922} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615924 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615923} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615922} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615925 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615923} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615922} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615926 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615923} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615922} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615927 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615922} + m_Children: + - {fileID: 8926484042661615928} + - {fileID: 8926484042661615929} + - {fileID: 8926484042661615930} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615922} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: angles + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615928 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615927} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615922} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615929 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615927} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615922} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615930 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615927} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615922} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615931 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615922} + m_Children: + - {fileID: 8926484042661615932} + - {fileID: 8926484042661615933} + - {fileID: 8926484042661615934} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615922} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: scale + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615932 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615931} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615922} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615933 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615931} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615922} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615934 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615931} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615922} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615935 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615935} + m_MasterData: + m_Owner: {fileID: 8926484042661615921} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.1 + m_Space: 2147483647 + m_Property: + name: Intensity + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615936 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615936} + m_MasterData: + m_Owner: {fileID: 8926484042661615921} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: Drag + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615937 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615937} + m_MasterData: + m_Owner: {fileID: 8926484042661615921} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: frequency + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615938 +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: 4d246e354feb93041a837a9ef59437cb, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615938} + m_MasterData: + m_Owner: {fileID: 8926484042661615921} + m_Value: + m_Type: + m_SerializableType: System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: octaves + m_serializedType: + m_SerializableType: System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615939 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615939} + m_MasterData: + m_Owner: {fileID: 8926484042661615921} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.8348661 + m_Space: 2147483647 + m_Property: + name: roughness + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615940 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615940} + m_MasterData: + m_Owner: {fileID: 8926484042661615921} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 2 + m_Space: 2147483647 + m_Property: + name: lacunarity + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615941 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615941} + m_MasterData: + m_Owner: {fileID: 8926484042661615921} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: False + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615942 +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: 756b42789c29cb74085def1da319fa0b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661615946} + - {fileID: 8926484042661615949} + - {fileID: 8926484042661615952} + m_UIPosition: {x: 4612, y: 1865} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615943} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615979} + m_InputFlowSlot: + - link: [] + m_OutputFlowSlot: + - link: [] + blendMode: 3 + cullMode: 0 + zWriteMode: 0 + zTestMode: 0 + useAlphaClipping: 0 + generateMotionVector: 0 + excludeFromTAA: 0 + sortingPriority: 0 + m_SubOutputs: + - {fileID: 8926484042661615948} + colorMapping: 0 + uvMode: 0 + flipbookLayout: 0 + useSoftParticle: 0 + vfxSystemSortPriority: 0 + sort: 0 + sortMode: 0 + revertSorting: 0 + indirectDraw: 0 + computeCulling: 0 + frustumCulling: 0 + castShadows: 0 + useExposureWeight: 0 + needsOwnSort: 0 + shaderGraph: {fileID: 0} + materialSettings: + m_PropertyNames: [] + m_PropertyValues: [] + tilingMode: 0 + swapUV: 0 + UseCustomZAxis: 0 +--- !u!114 &8926484042661615943 +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: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615943} + m_MasterData: + m_Owner: {fileID: 8926484042661615942} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: mainTexture + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615946 +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: d16c6aeaef944094b9a1633041804207, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615942} + m_Children: [] + m_UIPosition: {x: 2793.9744, y: 746.1865} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615947} + mode: 1 + axes: 4 +--- !u!114 &8926484042661615947 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615947} + m_MasterData: + m_Owner: {fileID: 8926484042661615946} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615948 +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: 081ffb0090424ba4cb05370a42ead6b9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + opaqueRenderQueue: 0 + transparentRenderQueue: 1 +--- !u!114 &8926484042661615949 +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: 01ec2c1930009b04ea08905b47262415, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615942} + m_Children: [] + m_UIPosition: {x: 2793.9744, y: 748.1865} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615950} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615951} + attribute: size + Composition: 0 + AlphaComposition: 0 + SampleMode: 0 + Mode: 1 + ColorMode: 3 + channels: 6 +--- !u!114 &8926484042661615950 +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: c117b74c5c58db542bffe25c78fe92db, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615950} + m_MasterData: + m_Owner: {fileID: 8926484042661615949} + m_Value: + m_Type: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"frames":[{"time":0.0,"value":0.0,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":0.07135193049907685,"value":0.07475508004426956,"inTangent":-0.1664172112941742,"outTangent":-0.1664172112941742,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":1.0,"value":0.0,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false}],"preWrapMode":8,"postWrapMode":8,"version":1}' + m_Space: 2147483647 + m_Property: + name: Size + m_serializedType: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615951 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615951} + m_MasterData: + m_Owner: {fileID: 8926484042661615949} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615952 +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: d03231f387e7ed54d888c74e4e13228e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615942} + m_Children: [] + m_UIPosition: {x: 2793.9744, y: 746.1865} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615953} +--- !u!114 &8926484042661615953 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615953} + m_MasterData: + m_Owner: {fileID: 8926484042661615952} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: False + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615955 +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: 60fff265f139e2a4194a44c2bac41757, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615867} + m_Children: [] + m_UIPosition: {x: 0, y: 2} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615956} + - {fileID: 8926484042661615966} + - {fileID: 8926484042661615957} + - {fileID: 8926484042661615961} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615965} + attribute: position + Composition: 0 + SampleMode: 6 + mode: 0 + channels: 6 + usePointCount: 0 +--- !u!114 &8926484042661615956 +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: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615956} + m_MasterData: + m_Owner: {fileID: 8926484042661615955} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":2800000,"guid":"1d8481de16af723418a688958c41224b","type":3}}' + m_Space: 2147483647 + m_Property: + name: attributeMap + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614607} +--- !u!114 &8926484042661615957 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615958} + - {fileID: 8926484042661615959} + - {fileID: 8926484042661615960} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615957} + m_MasterData: + m_Owner: {fileID: 8926484042661615955} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: valueBias + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615958 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615957} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615957} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615959 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615957} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615957} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615960 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615957} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615957} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615961 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615962} + - {fileID: 8926484042661615963} + - {fileID: 8926484042661615964} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615961} + m_MasterData: + m_Owner: {fileID: 8926484042661615955} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":1.0,"z":1.0}' + m_Space: 2147483647 + m_Property: + name: valueScale + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615962 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615961} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615961} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615963 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615961} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615961} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615964 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615961} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615961} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615965 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615965} + m_MasterData: + m_Owner: {fileID: 8926484042661615955} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615966 +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: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615966} + m_MasterData: + m_Owner: {fileID: 8926484042661615955} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: Seed + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615967 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615833} + m_Children: [] + m_UIPosition: {x: 0, y: 321} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615968} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615972} + attribute: color + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615968 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615969} + - {fileID: 8926484042661615970} + - {fileID: 8926484042661615971} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615968} + m_MasterData: + m_Owner: {fileID: 8926484042661615967} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":1.0,"z":1.0}' + m_Space: 2147483647 + m_Property: + name: Color + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661616000} +--- !u!114 &8926484042661615969 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615968} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615968} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615970 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615968} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615968} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615971 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615968} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615968} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615972 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615972} + m_MasterData: + m_Owner: {fileID: 8926484042661615967} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615973 +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: daaadde2834125343af62067a70bbc5d, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661615980} + - {fileID: 8926484042661615982} + m_UIPosition: {x: 4134, y: 1889} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615974} + - {fileID: 8926484042661615975} + - {fileID: 8926484042661615976} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661616393} + m_InputFlowSlot: + - link: [] + m_OutputFlowSlot: + - link: [] + blendMode: 3 + cullMode: 0 + zWriteMode: 0 + zTestMode: 0 + useAlphaClipping: 0 + generateMotionVector: 0 + excludeFromTAA: 0 + sortingPriority: 0 + m_SubOutputs: + - {fileID: 8926484042661615978} + colorMapping: 0 + uvMode: 0 + flipbookLayout: 0 + useSoftParticle: 0 + vfxSystemSortPriority: 0 + sort: 0 + sortMode: 0 + revertSorting: 0 + indirectDraw: 0 + computeCulling: 0 + frustumCulling: 0 + castShadows: 0 + useExposureWeight: 0 + needsOwnSort: 0 + shaderGraph: {fileID: 0} + materialSettings: + m_PropertyNames: [] + m_PropertyValues: [] + useBaseColorMap: 3 + useMaskMap: 0 + useNormalMap: 0 + useEmissiveMap: 0 + colorMode: 1 + useEmissive: 0 + materialType: 0 + onlyAmbientLighting: 0 + diffusionProfileAsset: {fileID: 0} + multiplyThicknessWithAlpha: 0 + doubleSided: 0 + preserveSpecularLighting: 0 + enableSpecular: 1 + lightmapRemapMode: 0 + lightmapRemapRanges: 0 + useAlphaRemap: 0 + emissiveMode: 0 + useEmissiveChannelScale: 0 + useColorAbsorption: 1 + receiveShadows: 1 + enableCookie: 1 + enableEnvLight: 1 + normalBending: 0 + tilingMode: 0 + swapUV: 0 + UseCustomZAxis: 0 +--- !u!114 &8926484042661615974 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615974} + m_MasterData: + m_Owner: {fileID: 8926484042661615973} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: smoothness + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615975 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615975} + m_MasterData: + m_Owner: {fileID: 8926484042661615973} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: metallic + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615976 +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: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615976} + m_MasterData: + m_Owner: {fileID: 8926484042661615973} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: baseColorMap + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615978 +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: 081ffb0090424ba4cb05370a42ead6b9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + opaqueRenderQueue: 0 + transparentRenderQueue: 1 +--- !u!114 &8926484042661615979 +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: d78581a96eae8bf4398c282eb0b098bd, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 8926484042661615942} + dataType: 1 + capacity: 128 + stripCapacity: 1 + particlePerStripCount: 128 + needsComputeBounds: 0 + boundsMode: 0 + m_Space: 0 +--- !u!114 &8926484042661615980 +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: d16c6aeaef944094b9a1633041804207, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615973} + m_Children: [] + m_UIPosition: {x: 2793.9744, y: 746.1865} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615981} + mode: 1 + axes: 4 +--- !u!114 &8926484042661615981 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615981} + m_MasterData: + m_Owner: {fileID: 8926484042661615980} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615982 +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: 01ec2c1930009b04ea08905b47262415, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615973} + m_Children: [] + m_UIPosition: {x: 2793.9744, y: 748.1865} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615983} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615984} + attribute: size + Composition: 2 + AlphaComposition: 0 + SampleMode: 0 + Mode: 1 + ColorMode: 3 + channels: 6 +--- !u!114 &8926484042661615983 +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: c117b74c5c58db542bffe25c78fe92db, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615983} + m_MasterData: + m_Owner: {fileID: 8926484042661615982} + m_Value: + m_Type: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"frames":[{"time":0.0,"value":0.0,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":0.08296386897563935,"value":0.11485517770051956,"inTangent":-0.1664172112941742,"outTangent":-0.1664172112941742,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":1.0,"value":0.0,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false}],"preWrapMode":8,"postWrapMode":8,"version":1}' + m_Space: 2147483647 + m_Property: + name: Size + m_serializedType: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615984 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615984} + m_MasterData: + m_Owner: {fileID: 8926484042661615982} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615985 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615986} + m_ExposedName: Bubble Color + m_Exposed: 1 + m_Order: 20 + m_Category: Bubble + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615986} + inputSlot: {fileID: 8926484042661615757} + position: {x: -961, y: 2575} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615986 +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: c82227d5759e296488798b1554a72a15, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615987} + - {fileID: 8926484042661615988} + - {fileID: 8926484042661615989} + - {fileID: 8926484042661615990} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615986} + m_MasterData: + m_Owner: {fileID: 8926484042661615985} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"r":1.0,"g":1.0,"b":1.0,"a":1.0}' + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615757} +--- !u!114 &8926484042661615987 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615986} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615986} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: r + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615988 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615986} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615986} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: g + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615989 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615986} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615986} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615990 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615986} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615986} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615991 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615992} + m_ExposedName: Bubble Size + m_Exposed: 1 + m_Order: 27 + m_Category: Bubble + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615992} + inputSlot: {fileID: 8926484042661616511} + position: {x: -852, y: 1424} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615992 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615992} + m_MasterData: + m_Owner: {fileID: 8926484042661615991} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.02 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661616511} +--- !u!114 &8926484042661615993 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615994} + m_ExposedName: Toggle Trail + m_Exposed: 1 + m_Order: 1 + m_Category: Trail + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615994} + inputSlot: {fileID: 8926484042661615996} + position: {x: 3208, y: 1787} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615994 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615994} + m_MasterData: + m_Owner: {fileID: 8926484042661615993} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615996} +--- !u!114 &8926484042661615995 +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: b8ee8a7543fa09e42a7c8616f60d2ad7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 3387, y: 1796} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615996} + - {fileID: 8926484042661615997} + m_OutputSlots: + - {fileID: 8926484042661615998} + m_Operands: + - name: a + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - name: b + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615996 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615996} + m_MasterData: + m_Owner: {fileID: 8926484042661615995} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615994} +--- !u!114 &8926484042661615997 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615997} + m_MasterData: + m_Owner: {fileID: 8926484042661615995} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 5 + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615998 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615998} + m_MasterData: + m_Owner: {fileID: 8926484042661615995} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615891} +--- !u!114 &8926484042661615999 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661616000} + m_ExposedName: Trail Color + m_Exposed: 1 + m_Order: 6 + m_Category: Trail + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661616000} + inputSlot: {fileID: 8926484042661615968} + position: {x: 3280, y: 1304} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661616000 +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: c82227d5759e296488798b1554a72a15, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661616001} + - {fileID: 8926484042661616002} + - {fileID: 8926484042661616003} + - {fileID: 8926484042661616004} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616000} + m_MasterData: + m_Owner: {fileID: 8926484042661615999} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"r":1.0,"g":1.0,"b":1.0,"a":1.0}' + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615968} +--- !u!114 &8926484042661616001 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616000} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616000} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: r + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661616002 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616000} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616000} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: g + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661616003 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616000} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616000} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661616004 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616000} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616000} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661616005 +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: 08b03824843e33840a03794c433c3cef, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661616010} + - {fileID: 8926484042661616017} + m_UIPosition: {x: 3453, y: 2065} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616006} + - {fileID: 8926484042661616007} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615847} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661615867} + slotIndex: 0 + m_OutputFlowSlot: + - link: [] + blendMode: 3 + cullMode: 0 + zWriteMode: 0 + zTestMode: 0 + useAlphaClipping: 0 + generateMotionVector: 0 + excludeFromTAA: 0 + sortingPriority: 0 + m_SubOutputs: + - {fileID: 8926484042661616016} + colorMapping: 0 + uvMode: 0 + flipbookLayout: 0 + useSoftParticle: 0 + vfxSystemSortPriority: 0 + sort: 0 + sortMode: 0 + revertSorting: 0 + indirectDraw: 0 + computeCulling: 0 + frustumCulling: 0 + castShadows: 1 + useExposureWeight: 0 + needsOwnSort: 0 + shaderGraph: {fileID: 0} + materialSettings: + m_PropertyNames: [] + m_PropertyValues: [] + useBaseColorMap: 3 + useMaskMap: 0 + useNormalMap: 0 + useEmissiveMap: 0 + colorMode: 1 + useEmissive: 0 + materialType: 0 + onlyAmbientLighting: 0 + diffusionProfileAsset: {fileID: 11400000, guid: d88fa25264effc247923557049bed8ad, + type: 2} + multiplyThicknessWithAlpha: 0 + doubleSided: 0 + preserveSpecularLighting: 0 + enableSpecular: 1 + lightmapRemapMode: 0 + lightmapRemapRanges: 0 + useAlphaRemap: 0 + emissiveMode: 0 + useEmissiveChannelScale: 0 + useColorAbsorption: 1 + receiveShadows: 1 + enableCookie: 1 + enableEnvLight: 1 +--- !u!114 &8926484042661616006 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616006} + m_MasterData: + m_Owner: {fileID: 8926484042661616005} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: smoothness + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616007 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616007} + m_MasterData: + m_Owner: {fileID: 8926484042661616005} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: metallic + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616010 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616005} + m_Children: [] + m_UIPosition: {x: 5750.414, y: 86.680176} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616011} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616015} + attribute: color + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661616011 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661616012} + - {fileID: 8926484042661616013} + - {fileID: 8926484042661616014} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616011} + m_MasterData: + m_Owner: {fileID: 8926484042661616010} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":1.0,"z":1.0}' + m_Space: 2147483647 + m_Property: + name: Color + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616012 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616011} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616011} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616013 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616011} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616011} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616014 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616011} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616011} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616015 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616015} + m_MasterData: + m_Owner: {fileID: 8926484042661616010} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: False + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616016 +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: 081ffb0090424ba4cb05370a42ead6b9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + opaqueRenderQueue: 0 + transparentRenderQueue: 1 +--- !u!114 &8926484042661616017 +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: 01ec2c1930009b04ea08905b47262415, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616005} + m_Children: [] + m_UIPosition: {x: 2793.9744, y: 748.1865} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616018} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616019} + attribute: size + Composition: 2 + AlphaComposition: 0 + SampleMode: 0 + Mode: 1 + ColorMode: 3 + channels: 6 +--- !u!114 &8926484042661616018 +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: c117b74c5c58db542bffe25c78fe92db, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616018} + m_MasterData: + m_Owner: {fileID: 8926484042661616017} + m_Value: + m_Type: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"frames":[{"time":0.0,"value":0.0,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":0.08296386897563935,"value":0.11485517770051956,"inTangent":-0.1664172112941742,"outTangent":-0.1664172112941742,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":1.0,"value":0.0,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false}],"preWrapMode":8,"postWrapMode":8,"version":1}' + m_Space: 2147483647 + m_Property: + name: Size + m_serializedType: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616019 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616019} + m_MasterData: + m_Owner: {fileID: 8926484042661616017} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616020 +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: 9dfea48843f53fc438eabc12a3a30abc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661616035} + - {fileID: 8926484042661616038} + m_UIPosition: {x: 6269.691, y: 1011.98694} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616021} + - {fileID: 8926484042661616030} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661616034} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661616050} + slotIndex: 0 + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661616059} + slotIndex: 0 +--- !u!114 &8926484042661616021 +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: 1b605c022ee79394a8a776c0869b3f9a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661616022} + - {fileID: 8926484042661616026} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616021} + m_MasterData: + m_Owner: {fileID: 8926484042661616020} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"center":{"x":-0.008661508560180664,"y":1.4014217853546143,"z":-0.018482446670532228},"size":{"x":3.004997730255127,"y":3.960069179534912,"z":3.0607447624206545}}' + m_Space: 0 + m_Property: + name: bounds + m_serializedType: + m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616022 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616021} + m_Children: + - {fileID: 8926484042661616023} + - {fileID: 8926484042661616024} + - {fileID: 8926484042661616025} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616021} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: center + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616023 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616022} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616021} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616024 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616022} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616021} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616025 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616022} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616021} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616026 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616021} + m_Children: + - {fileID: 8926484042661616027} + - {fileID: 8926484042661616028} + - {fileID: 8926484042661616029} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616021} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: size + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616027 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616026} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616021} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616028 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616026} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616021} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616029 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616026} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616021} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616030 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661616031} + - {fileID: 8926484042661616032} + - {fileID: 8926484042661616033} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616030} + m_MasterData: + m_Owner: {fileID: 8926484042661616020} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.5,"y":0.5,"z":0.5}' + m_Space: 2147483647 + m_Property: + name: boundsPadding + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616031 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616030} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616030} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616032 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616030} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616030} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616033 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616030} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616030} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616034 +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: d78581a96eae8bf4398c282eb0b098bd, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 8926484042661616020} + - {fileID: 8926484042661616059} + - {fileID: 8926484042661616090} + dataType: 0 + capacity: 1000 + stripCapacity: 16 + particlePerStripCount: 16 + needsComputeBounds: 0 + boundsMode: 0 + m_Space: 1 +--- !u!114 &8926484042661616035 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616020} + m_Children: [] + m_UIPosition: {x: 6945.691, y: -46.01306} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616036} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616037} + attribute: lifetime + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661616036 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616036} + m_MasterData: + m_Owner: {fileID: 8926484042661616035} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: Lifetime + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616037 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616037} + m_MasterData: + m_Owner: {fileID: 8926484042661616035} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616038 +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: 60fff265f139e2a4194a44c2bac41757, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616020} + m_Children: [] + m_UIPosition: {x: 6945.691, y: 27.986938} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616039} + - {fileID: 8926484042661616040} + - {fileID: 8926484042661616041} + - {fileID: 8926484042661616045} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616049} + attribute: position + Composition: 0 + SampleMode: 6 + mode: 0 + channels: 6 + usePointCount: 0 +--- !u!114 &8926484042661616039 +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: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616039} + m_MasterData: + m_Owner: {fileID: 8926484042661616038} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":2800000,"guid":"1d8481de16af723418a688958c41224b","type":3}}' + m_Space: 2147483647 + m_Property: + name: attributeMap + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614607} +--- !u!114 &8926484042661616040 +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: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616040} + m_MasterData: + m_Owner: {fileID: 8926484042661616038} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: Seed + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616041 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661616042} + - {fileID: 8926484042661616043} + - {fileID: 8926484042661616044} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616041} + m_MasterData: + m_Owner: {fileID: 8926484042661616038} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: valueBias + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616042 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616041} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616041} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616043 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616041} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616041} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616044 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616041} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616041} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616045 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661616046} + - {fileID: 8926484042661616047} + - {fileID: 8926484042661616048} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616045} + m_MasterData: + m_Owner: {fileID: 8926484042661616038} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":1.0,"z":1.0}' + m_Space: 2147483647 + m_Property: + name: valueScale + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616046 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616045} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616045} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616047 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616045} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616045} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616048 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616045} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616045} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616049 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616049} + m_MasterData: + m_Owner: {fileID: 8926484042661616038} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616050 +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: 73a13919d81fb7444849bae8b5c812a2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661616052} + - {fileID: 8926484042661616056} + m_UIPosition: {x: 6269.691, y: 522.98694} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: Spawn system + m_Data: {fileID: 8926484042661616051} + m_InputFlowSlot: + - link: [] + - link: [] + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661616020} + slotIndex: 0 + loopDuration: 0 + loopCount: 0 + delayBeforeLoop: 0 + delayAfterLoop: 0 +--- !u!114 &8926484042661616051 +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: f68759077adc0b143b6e1c101e82065e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 8926484042661616050} +--- !u!114 &8926484042661616052 +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: 5e382412bb691334bb79457a6c127924, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616050} + m_Children: [] + m_UIPosition: {x: 6945.691, y: -46.01306} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616053} + - {fileID: 8926484042661616054} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616055} + repeat: 0 + spawnMode: 0 + delayMode: 0 +--- !u!114 &8926484042661616053 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616053} + m_MasterData: + m_Owner: {fileID: 8926484042661616052} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 20000 + m_Space: 2147483647 + m_Property: + name: Count + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616054 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616054} + m_MasterData: + m_Owner: {fileID: 8926484042661616052} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: Delay + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616055 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616055} + m_MasterData: + m_Owner: {fileID: 8926484042661616052} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: False + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616056 +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: f05c6884b705ce14d82ae720f0ec209f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616050} + m_Children: [] + m_UIPosition: {x: 6945.691, y: 100.98694} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616057} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616058} +--- !u!114 &8926484042661616057 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616057} + m_MasterData: + m_Owner: {fileID: 8926484042661616056} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 100 + m_Space: 2147483647 + m_Property: + name: Rate + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661616412} +--- !u!114 &8926484042661616058 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616058} + m_MasterData: + m_Owner: {fileID: 8926484042661616056} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616059 +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: 2dc095764ededfa4bb32fa602511ea4b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661616082} + - {fileID: 8926484042661616105} + m_UIPosition: {x: 6269.691, y: 1495.9869} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661616034} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661616020} + slotIndex: 0 + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661616090} + slotIndex: 0 + integration: 0 + angularIntegration: 0 + ageParticles: 1 + reapParticles: 1 + skipZeroDeltaUpdate: 0 +--- !u!114 &8926484042661616082 +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: c079bc84df7c7e94f88c8ae0d1b0691d, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616059} + m_Children: [] + m_UIPosition: {x: 6945.691, y: 320.98694} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616083} + - {fileID: 8926484042661616088} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616089} + Mode: 1 +--- !u!114 &8926484042661616083 +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: a9f9544b71b7dab44a4644b6807e8bf6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661616084} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616083} + m_MasterData: + m_Owner: {fileID: 8926484042661616082} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Vector, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"vector":{"x":0.0,"y":-9.0,"z":0.0}}' + m_Space: 1 + m_Property: + name: Velocity + m_serializedType: + m_SerializableType: UnityEditor.VFX.Vector, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616084 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616083} + m_Children: + - {fileID: 8926484042661616085} + - {fileID: 8926484042661616086} + - {fileID: 8926484042661616087} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616083} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: vector + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616085 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616084} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616083} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616086 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616084} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616083} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616087 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616084} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616083} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616088 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616088} + m_MasterData: + m_Owner: {fileID: 8926484042661616082} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: Drag + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616089 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616089} + m_MasterData: + m_Owner: {fileID: 8926484042661616082} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616090 +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: 08b03824843e33840a03794c433c3cef, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661616095} + - {fileID: 8926484042661616099} + m_UIPosition: {x: 6269.691, y: 2205.9868} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616091} + - {fileID: 8926484042661616092} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661616034} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661616059} + slotIndex: 0 + m_OutputFlowSlot: + - link: [] + blendMode: 3 + cullMode: 0 + zWriteMode: 0 + zTestMode: 0 + useAlphaClipping: 0 + generateMotionVector: 0 + excludeFromTAA: 0 + sortingPriority: 0 + m_SubOutputs: + - {fileID: 8926484042661616098} + colorMapping: 0 + uvMode: 0 + flipbookLayout: 0 + useSoftParticle: 0 + vfxSystemSortPriority: 0 + sort: 0 + sortMode: 0 + revertSorting: 0 + indirectDraw: 0 + computeCulling: 0 + frustumCulling: 0 + castShadows: 1 + useExposureWeight: 0 + needsOwnSort: 0 + shaderGraph: {fileID: 0} + materialSettings: + m_PropertyNames: [] + m_PropertyValues: [] + useBaseColorMap: 3 + useMaskMap: 0 + useNormalMap: 0 + useEmissiveMap: 0 + colorMode: 1 + useEmissive: 0 + materialType: 0 + onlyAmbientLighting: 0 + diffusionProfileAsset: {fileID: 11400000, guid: d88fa25264effc247923557049bed8ad, + type: 2} + multiplyThicknessWithAlpha: 0 + doubleSided: 0 + preserveSpecularLighting: 0 + enableSpecular: 1 + lightmapRemapMode: 0 + lightmapRemapRanges: 0 + useAlphaRemap: 0 + emissiveMode: 0 + useEmissiveChannelScale: 0 + useColorAbsorption: 1 + receiveShadows: 1 + enableCookie: 1 + enableEnvLight: 1 +--- !u!114 &8926484042661616091 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616091} + m_MasterData: + m_Owner: {fileID: 8926484042661616090} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: smoothness + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616092 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616092} + m_MasterData: + m_Owner: {fileID: 8926484042661616090} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: metallic + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616095 +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: 01ec2c1930009b04ea08905b47262415, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616090} + m_Children: [] + m_UIPosition: {x: 6945.691, y: -46.01306} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616096} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616097} + attribute: size + Composition: 2 + AlphaComposition: 0 + SampleMode: 0 + Mode: 1 + ColorMode: 3 + channels: 6 +--- !u!114 &8926484042661616096 +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: c117b74c5c58db542bffe25c78fe92db, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616096} + m_MasterData: + m_Owner: {fileID: 8926484042661616095} + m_Value: + m_Type: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"frames":[{"time":0.0,"value":0.0,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":0.25,"value":0.25,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":1.0,"value":0.0,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false}],"preWrapMode":8,"postWrapMode":8,"version":1}' + m_Space: 2147483647 + m_Property: + name: Size + m_serializedType: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616097 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616097} + m_MasterData: + m_Owner: {fileID: 8926484042661616095} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616098 +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: 081ffb0090424ba4cb05370a42ead6b9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + opaqueRenderQueue: 0 + transparentRenderQueue: 1 +--- !u!114 &8926484042661616099 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616090} + m_Children: [] + m_UIPosition: {x: 6945.691, y: 62.98694} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616100} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616104} + attribute: color + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661616100 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661616101} + - {fileID: 8926484042661616102} + - {fileID: 8926484042661616103} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616100} + m_MasterData: + m_Owner: {fileID: 8926484042661616099} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: Color + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616101 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616100} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616100} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616102 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616100} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616100} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616103 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616100} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616100} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616104 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616104} + m_MasterData: + m_Owner: {fileID: 8926484042661616099} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616105 +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: 2c7b1f3e894605a48a0436807a6faeee, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616059} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616106} + - {fileID: 8926484042661616115} + - {fileID: 8926484042661616116} + - {fileID: 8926484042661616117} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616118} + mode: 0 + radiusMode: 0 + roughSurface: 0 +--- !u!114 &8926484042661616106 +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: 1b605c022ee79394a8a776c0869b3f9a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661616107} + - {fileID: 8926484042661616111} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616106} + m_MasterData: + m_Owner: {fileID: 8926484042661616105} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Plane, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0},"normal":{"x":0.0,"y":1.0,"z":0.0}}' + m_Space: 1 + m_Property: + name: Plane + m_serializedType: + m_SerializableType: UnityEditor.VFX.Plane, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616107 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616106} + m_Children: + - {fileID: 8926484042661616108} + - {fileID: 8926484042661616109} + - {fileID: 8926484042661616110} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616106} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616108 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616107} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616106} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616109 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616107} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616106} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616110 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616107} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616106} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616111 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616106} + m_Children: + - {fileID: 8926484042661616112} + - {fileID: 8926484042661616113} + - {fileID: 8926484042661616114} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616106} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: normal + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616112 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616111} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616106} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616113 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616111} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616106} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616114 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616111} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616106} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616115 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616115} + m_MasterData: + m_Owner: {fileID: 8926484042661616105} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.1 + m_Space: 2147483647 + m_Property: + name: Bounce + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616116 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616116} + m_MasterData: + m_Owner: {fileID: 8926484042661616105} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: Friction + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616117 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616117} + m_MasterData: + m_Owner: {fileID: 8926484042661616105} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: LifetimeLoss + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616118 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616118} + m_MasterData: + m_Owner: {fileID: 8926484042661616105} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616119 +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: 73a13919d81fb7444849bae8b5c812a2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661616121} + - {fileID: 8926484042661616125} + m_UIPosition: {x: 8766.709, y: 648.4998} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: Spawn system + m_Data: {fileID: 8926484042661616120} + m_InputFlowSlot: + - link: [] + - link: [] + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661616143} + slotIndex: 0 + loopDuration: 0 + loopCount: 0 + delayBeforeLoop: 0 + delayAfterLoop: 0 +--- !u!114 &8926484042661616120 +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: f68759077adc0b143b6e1c101e82065e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 8926484042661616119} +--- !u!114 &8926484042661616121 +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: 5e382412bb691334bb79457a6c127924, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616119} + m_Children: [] + m_UIPosition: {x: 9442.709, y: 79.49982} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616122} + - {fileID: 8926484042661616123} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616124} + repeat: 0 + spawnMode: 0 + delayMode: 0 +--- !u!114 &8926484042661616122 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616122} + m_MasterData: + m_Owner: {fileID: 8926484042661616121} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 20000 + m_Space: 2147483647 + m_Property: + name: Count + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616123 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616123} + m_MasterData: + m_Owner: {fileID: 8926484042661616121} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: Delay + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616124 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616124} + m_MasterData: + m_Owner: {fileID: 8926484042661616121} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: False + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616125 +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: f05c6884b705ce14d82ae720f0ec209f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616119} + m_Children: [] + m_UIPosition: {x: 9442.709, y: 226.49982} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616126} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616127} +--- !u!114 &8926484042661616126 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616126} + m_MasterData: + m_Owner: {fileID: 8926484042661616125} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 100 + m_Space: 2147483647 + m_Property: + name: Rate + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661616418} +--- !u!114 &8926484042661616127 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616127} + m_MasterData: + m_Owner: {fileID: 8926484042661616125} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616143 +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: 9dfea48843f53fc438eabc12a3a30abc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661616158} + - {fileID: 8926484042661616311} + m_UIPosition: {x: 8766.709, y: 1137.4998} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616144} + - {fileID: 8926484042661616153} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661616157} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661616119} + slotIndex: 0 + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661616173} + slotIndex: 0 +--- !u!114 &8926484042661616144 +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: 1b605c022ee79394a8a776c0869b3f9a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661616145} + - {fileID: 8926484042661616149} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616144} + m_MasterData: + m_Owner: {fileID: 8926484042661616143} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"center":{"x":-0.008661508560180664,"y":1.4014217853546143,"z":-0.018482446670532228},"size":{"x":3.004997730255127,"y":3.960069179534912,"z":3.0607447624206545}}' + m_Space: 0 + m_Property: + name: bounds + m_serializedType: + m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616145 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616144} + m_Children: + - {fileID: 8926484042661616146} + - {fileID: 8926484042661616147} + - {fileID: 8926484042661616148} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616144} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: center + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616146 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616145} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616144} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616147 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616145} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616144} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616148 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616145} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616144} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616149 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616144} + m_Children: + - {fileID: 8926484042661616150} + - {fileID: 8926484042661616151} + - {fileID: 8926484042661616152} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616144} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: size + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616150 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616149} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616144} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616151 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616149} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616144} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616152 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616149} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616144} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616153 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661616154} + - {fileID: 8926484042661616155} + - {fileID: 8926484042661616156} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616153} + m_MasterData: + m_Owner: {fileID: 8926484042661616143} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.5,"y":0.5,"z":0.5}' + m_Space: 2147483647 + m_Property: + name: boundsPadding + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616154 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616153} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616153} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616155 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616153} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616153} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616156 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616153} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616153} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616157 +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: d78581a96eae8bf4398c282eb0b098bd, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 8926484042661616143} + - {fileID: 8926484042661616173} + - {fileID: 8926484042661616229} + - {fileID: 8926484042661616256} + dataType: 0 + capacity: 1000 + stripCapacity: 16 + particlePerStripCount: 16 + needsComputeBounds: 0 + boundsMode: 0 + m_Space: 1 +--- !u!114 &8926484042661616158 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616143} + m_Children: [] + m_UIPosition: {x: 9442.709, y: 79.49982} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616159} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616160} + attribute: lifetime + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661616159 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616159} + m_MasterData: + m_Owner: {fileID: 8926484042661616158} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: Lifetime + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616160 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616160} + m_MasterData: + m_Owner: {fileID: 8926484042661616158} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616173 +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: 2dc095764ededfa4bb32fa602511ea4b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661616197} + - {fileID: 8926484042661616217} + - {fileID: 8926484042661616345} + - {fileID: 8926484042661616317} + m_UIPosition: {x: 8767, y: 1608} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661616157} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661616143} + slotIndex: 0 + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661616229} + slotIndex: 0 + - context: {fileID: 8926484042661616256} + slotIndex: 0 + integration: 0 + angularIntegration: 0 + ageParticles: 1 + reapParticles: 1 + skipZeroDeltaUpdate: 0 +--- !u!114 &8926484042661616197 +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: 60fff265f139e2a4194a44c2bac41757, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616173} + m_Children: [] + m_UIPosition: {x: 9442.709, y: 153.49982} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616198} + - {fileID: 8926484042661616199} + - {fileID: 8926484042661616200} + - {fileID: 8926484042661616204} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616208} + attribute: position + Composition: 0 + SampleMode: 6 + mode: 0 + channels: 6 + usePointCount: 0 +--- !u!114 &8926484042661616198 +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: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616198} + m_MasterData: + m_Owner: {fileID: 8926484042661616197} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":2800000,"guid":"1d8481de16af723418a688958c41224b","type":3}}' + m_Space: 2147483647 + m_Property: + name: attributeMap + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614607} +--- !u!114 &8926484042661616199 +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: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616199} + m_MasterData: + m_Owner: {fileID: 8926484042661616197} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: Seed + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616200 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661616201} + - {fileID: 8926484042661616202} + - {fileID: 8926484042661616203} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616200} + m_MasterData: + m_Owner: {fileID: 8926484042661616197} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: valueBias + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616201 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616200} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616200} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616202 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616200} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616200} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616203 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616200} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616200} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616204 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661616205} + - {fileID: 8926484042661616206} + - {fileID: 8926484042661616207} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616204} + m_MasterData: + m_Owner: {fileID: 8926484042661616197} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":1.0,"z":1.0}' + m_Space: 2147483647 + m_Property: + name: valueScale + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616205 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616204} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616204} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616206 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616204} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616204} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616207 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616204} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616204} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616208 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616208} + m_MasterData: + m_Owner: {fileID: 8926484042661616197} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616217 +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: 60fff265f139e2a4194a44c2bac41757, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616173} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616218} + - {fileID: 8926484042661616228} + - {fileID: 8926484042661616219} + - {fileID: 8926484042661616223} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616227} + attribute: direction + Composition: 0 + SampleMode: 6 + mode: 0 + channels: 6 + usePointCount: 0 +--- !u!114 &8926484042661616218 +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: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616218} + m_MasterData: + m_Owner: {fileID: 8926484042661616217} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":2800000,"guid":"1d8481de16af723418a688958c41224b","type":3}}' + m_Space: 2147483647 + m_Property: + name: attributeMap + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615073} +--- !u!114 &8926484042661616219 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661616220} + - {fileID: 8926484042661616221} + - {fileID: 8926484042661616222} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616219} + m_MasterData: + m_Owner: {fileID: 8926484042661616217} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: valueBias + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616220 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616219} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616219} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616221 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616219} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616219} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616222 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616219} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616219} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616223 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661616224} + - {fileID: 8926484042661616225} + - {fileID: 8926484042661616226} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616223} + m_MasterData: + m_Owner: {fileID: 8926484042661616217} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":1.0,"z":1.0}' + m_Space: 2147483647 + m_Property: + name: valueScale + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616224 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616223} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616223} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616225 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616223} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616223} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616226 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616223} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616223} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616227 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616227} + m_MasterData: + m_Owner: {fileID: 8926484042661616217} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616228 +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: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616228} + m_MasterData: + m_Owner: {fileID: 8926484042661616217} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: Seed + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616229 +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: e11cc5d75a2f7ad44bf3be8842ccab7f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 8600, y: 2169} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661616157} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661616173} + slotIndex: 0 + m_OutputFlowSlot: + - link: [] + blendMode: 3 + cullMode: 3 + zWriteMode: 0 + zTestMode: 0 + useAlphaClipping: 0 + generateMotionVector: 0 + excludeFromTAA: 0 + sortingPriority: 0 + m_SubOutputs: + - {fileID: 8926484042661616235} + colorMapping: 0 + uvMode: 0 + flipbookLayout: 0 + useSoftParticle: 0 + vfxSystemSortPriority: 0 + sort: 0 + sortMode: 0 + revertSorting: 0 + indirectDraw: 0 + computeCulling: 0 + frustumCulling: 0 + castShadows: 0 + useExposureWeight: 0 + needsOwnSort: 0 + useTargetOffset: 0 + useNativeLines: 0 +--- !u!114 &8926484042661616235 +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: 081ffb0090424ba4cb05370a42ead6b9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + opaqueRenderQueue: 0 + transparentRenderQueue: 1 +--- !u!114 &8926484042661616251 +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: 486e063e1ed58c843942ea4122829ab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 8282, y: 1934} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661616252} + attribute: direction + location: 0 + mask: xyz +--- !u!114 &8926484042661616252 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661616253} + - {fileID: 8926484042661616254} + - {fileID: 8926484042661616255} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616252} + m_MasterData: + m_Owner: {fileID: 8926484042661616251} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: direction + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661616341} +--- !u!114 &8926484042661616253 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616252} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616252} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661616254 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616252} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616252} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661616255 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616252} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616252} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661616256 +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: 08b03824843e33840a03794c433c3cef, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661616261} + - {fileID: 8926484042661616314} + - {fileID: 8926484042661616366} + m_UIPosition: {x: 9068, y: 2169} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616257} + - {fileID: 8926484042661616258} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661616157} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661616173} + slotIndex: 0 + m_OutputFlowSlot: + - link: [] + blendMode: 3 + cullMode: 0 + zWriteMode: 0 + zTestMode: 0 + useAlphaClipping: 0 + generateMotionVector: 0 + excludeFromTAA: 0 + sortingPriority: 0 + m_SubOutputs: + - {fileID: 8926484042661616260} + colorMapping: 0 + uvMode: 0 + flipbookLayout: 0 + useSoftParticle: 0 + vfxSystemSortPriority: 0 + sort: 0 + sortMode: 0 + revertSorting: 0 + indirectDraw: 0 + computeCulling: 0 + frustumCulling: 0 + castShadows: 0 + useExposureWeight: 0 + needsOwnSort: 0 + shaderGraph: {fileID: 0} + materialSettings: + m_PropertyNames: [] + m_PropertyValues: [] + useBaseColorMap: 3 + useMaskMap: 0 + useNormalMap: 0 + useEmissiveMap: 0 + colorMode: -1 + useEmissive: 0 + materialType: 0 + onlyAmbientLighting: 0 + diffusionProfileAsset: {fileID: 0} + multiplyThicknessWithAlpha: 0 + doubleSided: 0 + preserveSpecularLighting: 0 + enableSpecular: 1 + lightmapRemapMode: 0 + lightmapRemapRanges: 0 + useAlphaRemap: 0 + emissiveMode: 0 + useEmissiveChannelScale: 0 + useColorAbsorption: 1 + receiveShadows: 1 + enableCookie: 1 + enableEnvLight: 1 +--- !u!114 &8926484042661616257 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616257} + m_MasterData: + m_Owner: {fileID: 8926484042661616256} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.5 + m_Space: 2147483647 + m_Property: + name: smoothness + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616258 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616258} + m_MasterData: + m_Owner: {fileID: 8926484042661616256} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: metallic + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616260 +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: 081ffb0090424ba4cb05370a42ead6b9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + opaqueRenderQueue: 0 + transparentRenderQueue: 1 +--- !u!114 &8926484042661616261 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616256} + m_Children: [] + m_UIPosition: {x: 0, y: 2} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616278} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616267} + attribute: position + Composition: 1 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661616267 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616267} + m_MasterData: + m_Owner: {fileID: 8926484042661616261} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616278 +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: 5265657162cc1a241bba03a3b0476d99, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661616279} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616278} + m_MasterData: + m_Owner: {fileID: 8926484042661616261} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0}}' + m_Space: 1 + m_Property: + name: Position + m_serializedType: + m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661616373} +--- !u!114 &8926484042661616279 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616278} + m_Children: + - {fileID: 8926484042661616280} + - {fileID: 8926484042661616281} + - {fileID: 8926484042661616282} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616278} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616280 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616279} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616278} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616281 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616279} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616278} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616282 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616279} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616278} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616311 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616143} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616312} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616313} + attribute: size + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661616312 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616312} + m_MasterData: + m_Owner: {fileID: 8926484042661616311} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.1 + m_Space: 2147483647 + m_Property: + name: Size + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661616509} +--- !u!114 &8926484042661616313 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616313} + m_MasterData: + m_Owner: {fileID: 8926484042661616311} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616314 +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: 01ec2c1930009b04ea08905b47262415, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616256} + m_Children: [] + m_UIPosition: {x: 0, y: 76} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616315} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616316} + attribute: size + Composition: 2 + AlphaComposition: 0 + SampleMode: 0 + Mode: 1 + ColorMode: 3 + channels: 6 +--- !u!114 &8926484042661616315 +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: c117b74c5c58db542bffe25c78fe92db, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616315} + m_MasterData: + m_Owner: {fileID: 8926484042661616314} + m_Value: + m_Type: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"frames":[{"time":0.0,"value":0.0,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":0.25,"value":0.25,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":1.0,"value":0.0,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false}],"preWrapMode":8,"postWrapMode":8,"version":1}' + m_Space: 2147483647 + m_Property: + name: Size + m_serializedType: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616316 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616316} + m_MasterData: + m_Owner: {fileID: 8926484042661616314} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616317 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616173} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616318} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616323} + attribute: targetPosition + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661616318 +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: 5265657162cc1a241bba03a3b0476d99, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661616319} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616318} + m_MasterData: + m_Owner: {fileID: 8926484042661616317} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0}}' + m_Space: 1 + m_Property: + name: TargetPosition + m_serializedType: + m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661616337} +--- !u!114 &8926484042661616319 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616318} + m_Children: + - {fileID: 8926484042661616320} + - {fileID: 8926484042661616321} + - {fileID: 8926484042661616322} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616318} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616320 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616319} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616318} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616321 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616319} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616318} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616322 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616319} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616318} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616323 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616323} + m_MasterData: + m_Owner: {fileID: 8926484042661616317} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616324 +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: 486e063e1ed58c843942ea4122829ab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 8287, y: 1886} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661616325} + attribute: position + location: 0 + mask: xyz +--- !u!114 &8926484042661616325 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661616326} + - {fileID: 8926484042661616327} + - {fileID: 8926484042661616328} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616325} + m_MasterData: + m_Owner: {fileID: 8926484042661616324} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661616333} +--- !u!114 &8926484042661616326 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616325} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616325} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661616327 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616325} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616325} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661616328 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616325} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616325} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661616329 +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: c7acf5424f3655744af4b8f63298fa0f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 8558, y: 1916} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: + - {fileID: 8926484042661616333} + - {fileID: 8926484042661616341} + m_OutputSlots: + - {fileID: 8926484042661616337} + m_Operands: + - name: a + type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + - name: b + type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &8926484042661616333 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661616334} + - {fileID: 8926484042661616335} + - {fileID: 8926484042661616336} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616333} + m_MasterData: + m_Owner: {fileID: 8926484042661616329} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661616325} +--- !u!114 &8926484042661616334 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616333} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616333} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616335 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616333} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616333} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616336 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616333} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616333} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616337 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661616338} + - {fileID: 8926484042661616339} + - {fileID: 8926484042661616340} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616337} + m_MasterData: + m_Owner: {fileID: 8926484042661616329} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661616318} +--- !u!114 &8926484042661616338 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616337} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616337} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661616339 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616337} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616337} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661616340 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616337} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616337} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661616341 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661616342} + - {fileID: 8926484042661616343} + - {fileID: 8926484042661616344} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616341} + m_MasterData: + m_Owner: {fileID: 8926484042661616329} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661616252} +--- !u!114 &8926484042661616342 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616341} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616341} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616343 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616341} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616341} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616344 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616341} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616341} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616345 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616173} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616346} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616351} + attribute: direction + Composition: 2 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661616346 +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: a9f9544b71b7dab44a4644b6807e8bf6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661616347} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616346} + m_MasterData: + m_Owner: {fileID: 8926484042661616345} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Vector, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"vector":{"x":0.0,"y":0.0,"z":1.0}}' + m_Space: 1 + m_Property: + name: Direction + m_serializedType: + m_SerializableType: UnityEditor.VFX.Vector, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661616354} +--- !u!114 &8926484042661616347 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616346} + m_Children: + - {fileID: 8926484042661616348} + - {fileID: 8926484042661616349} + - {fileID: 8926484042661616350} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616346} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: vector + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616348 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616347} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616346} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616349 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616347} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616346} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616350 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616347} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616346} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616351 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616351} + m_MasterData: + m_Owner: {fileID: 8926484042661616345} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616352 +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: 955b0c175a6f3bb4582e92f3de8f0626, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 8537.277, y: 1769.7274} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616353} + m_OutputSlots: + - {fileID: 8926484042661616354} + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661616353 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616353} + m_MasterData: + m_Owner: {fileID: 8926484042661616352} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.5 + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616354 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616354} + m_MasterData: + m_Owner: {fileID: 8926484042661616352} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661616346} +--- !u!114 &8926484042661616366 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616256} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616367} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616371} + attribute: color + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661616367 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661616368} + - {fileID: 8926484042661616369} + - {fileID: 8926484042661616370} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616367} + m_MasterData: + m_Owner: {fileID: 8926484042661616366} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":95.87451934814453,"y":95.87451934814453,"z":95.87451934814453}' + m_Space: 2147483647 + m_Property: + name: Color + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616368 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616367} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616367} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616369 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616367} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616367} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616370 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616367} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616367} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616371 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616371} + m_MasterData: + m_Owner: {fileID: 8926484042661616366} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616372 +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: 486e063e1ed58c843942ea4122829ab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 8780, y: 2397} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661616373} + attribute: direction + location: 0 + mask: xyz +--- !u!114 &8926484042661616373 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661616374} + - {fileID: 8926484042661616375} + - {fileID: 8926484042661616376} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616373} + m_MasterData: + m_Owner: {fileID: 8926484042661616372} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: direction + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661616278} +--- !u!114 &8926484042661616374 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616373} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616373} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661616375 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616373} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616373} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661616376 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616373} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616373} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661616377 +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: f05c6884b705ce14d82ae720f0ec209f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614555} + m_Children: [] + m_UIPosition: {x: 0, y: 149} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616378} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616379} +--- !u!114 &8926484042661616378 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616378} + m_MasterData: + m_Owner: {fileID: 8926484042661616377} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 100 + m_Space: 2147483647 + m_Property: + name: Rate + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661616384} +--- !u!114 &8926484042661616379 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616379} + m_MasterData: + m_Owner: {fileID: 8926484042661616377} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616383 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661616384} + m_ExposedName: Point Rate + m_Exposed: 1 + m_Order: 2 + m_Category: Point + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661616384} + inputSlot: {fileID: 8926484042661616378} + position: {x: -2241.8909, y: 730.7715} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661616384 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616384} + m_MasterData: + m_Owner: {fileID: 8926484042661616383} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1000 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661616378} +--- !u!114 &8926484042661616385 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614558} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616386} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616387} + attribute: lifetime + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661616386 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616386} + m_MasterData: + m_Owner: {fileID: 8926484042661616385} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: Lifetime + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661616389} +--- !u!114 &8926484042661616387 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616387} + m_MasterData: + m_Owner: {fileID: 8926484042661616385} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616388 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661616389} + m_ExposedName: Point Lifetime + m_Exposed: 1 + m_Order: 14 + m_Category: Point + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661616389} + inputSlot: {fileID: 8926484042661616386} + position: {x: -2302, y: 1155} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661616389 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616389} + m_MasterData: + m_Owner: {fileID: 8926484042661616388} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 3 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661616386} +--- !u!114 &8926484042661616390 +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: 01ec2c1930009b04ea08905b47262415, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614659} + m_Children: [] + m_UIPosition: {x: 0, y: 96} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616391} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616392} + attribute: size + Composition: 2 + AlphaComposition: 0 + SampleMode: 0 + Mode: 1 + ColorMode: 3 + channels: 6 +--- !u!114 &8926484042661616391 +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: c117b74c5c58db542bffe25c78fe92db, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616391} + m_MasterData: + m_Owner: {fileID: 8926484042661616390} + m_Value: + m_Type: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"frames":[{"time":0.0,"value":0.0,"inTangent":10.950708389282227,"outTangent":10.950708389282227,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":0.25,"value":1.0,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":1.0,"value":0.0,"inTangent":-4.416197776794434,"outTangent":-4.416197776794434,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false}],"preWrapMode":8,"postWrapMode":8,"version":1}' + m_Space: 2147483647 + m_Property: + name: Size + m_serializedType: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616392 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616392} + m_MasterData: + m_Owner: {fileID: 8926484042661616390} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616393 +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: d78581a96eae8bf4398c282eb0b098bd, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 8926484042661615973} + dataType: 1 + capacity: 128 + stripCapacity: 1 + particlePerStripCount: 128 + needsComputeBounds: 0 + boundsMode: 0 + m_Space: 0 +--- !u!114 &8926484042661616394 +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: 4bb7134219ee20d44b7ae94bc9dd4cb2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661616397} + m_UIPosition: {x: 5063.6475, y: 1905.7225} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615911} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661615919} + slotIndex: 0 + m_OutputFlowSlot: + - link: [] + blendMode: 1 + cullMode: 3 + zWriteMode: 0 + zTestMode: 0 + useAlphaClipping: 0 + generateMotionVector: 0 + excludeFromTAA: 0 + sortingPriority: 0 + m_SubOutputs: + - {fileID: 8926484042661616396} + colorMapping: 0 + uvMode: 0 + flipbookLayout: 0 + useSoftParticle: 0 + vfxSystemSortPriority: 0 + sort: 0 + sortMode: 0 + revertSorting: 0 + indirectDraw: 0 + computeCulling: 0 + frustumCulling: 0 + castShadows: 0 + useExposureWeight: 0 + needsOwnSort: 0 +--- !u!114 &8926484042661616396 +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: 081ffb0090424ba4cb05370a42ead6b9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + opaqueRenderQueue: 0 + transparentRenderQueue: 1 +--- !u!114 &8926484042661616397 +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: 01ec2c1930009b04ea08905b47262415, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616394} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616398} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616399} + attribute: alpha + Composition: 0 + AlphaComposition: 0 + SampleMode: 0 + Mode: 1 + ColorMode: 3 + channels: 6 +--- !u!114 &8926484042661616398 +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: c117b74c5c58db542bffe25c78fe92db, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616398} + m_MasterData: + m_Owner: {fileID: 8926484042661616397} + m_Value: + m_Type: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"frames":[{"time":0.0,"value":1.0,"inTangent":-0.04162052273750305,"outTangent":-0.04162052273750305,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":1.0,"value":0.0,"inTangent":-0.49700871109962466,"outTangent":-0.49700871109962466,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false}],"preWrapMode":8,"postWrapMode":8,"version":1}' + m_Space: 2147483647 + m_Property: + name: Alpha + m_serializedType: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616399 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616399} + m_MasterData: + m_Owner: {fileID: 8926484042661616397} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616403 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661616404} + m_ExposedName: Trail Lifetime + m_Exposed: 1 + m_Order: 10 + m_Category: Trail + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661616404} + inputSlot: {fileID: 8926484042661615917} + position: {x: 4050, y: 1055} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661616404 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616404} + m_MasterData: + m_Owner: {fileID: 8926484042661616403} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 6 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615917} +--- !u!114 &8926484042661616405 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661616406} + m_ExposedName: Line Lifetime + m_Exposed: 1 + m_Order: 21 + m_Category: Line + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661616406} + inputSlot: {fileID: 8926484042661616425} + - outputSlot: {fileID: 8926484042661616406} + inputSlot: {fileID: 8926484042661616422} + position: {x: 1499, y: 1404} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661616406 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616406} + m_MasterData: + m_Owner: {fileID: 8926484042661616405} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 3 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661616422} + - {fileID: 8926484042661616425} +--- !u!114 &8926484042661616407 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661616408} + m_ExposedName: Toggle Falling + m_Exposed: 1 + m_Order: 3 + m_Category: Falling + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661616408} + inputSlot: {fileID: 8926484042661616410} + position: {x: 5817, y: 784} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661616408 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616408} + m_MasterData: + m_Owner: {fileID: 8926484042661616407} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661616410} +--- !u!114 &8926484042661616409 +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: b8ee8a7543fa09e42a7c8616f60d2ad7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 5982.95, y: 785.50006} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616410} + - {fileID: 8926484042661616411} + m_OutputSlots: + - {fileID: 8926484042661616412} + m_Operands: + - name: a + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - name: b + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661616410 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616410} + m_MasterData: + m_Owner: {fileID: 8926484042661616409} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661616408} +--- !u!114 &8926484042661616411 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616411} + m_MasterData: + m_Owner: {fileID: 8926484042661616409} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 100 + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616412 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616412} + m_MasterData: + m_Owner: {fileID: 8926484042661616409} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661616057} +--- !u!114 &8926484042661616413 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661616414} + m_ExposedName: Toggle Antenna + m_Exposed: 1 + m_Order: 4 + m_Category: Antenna + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661616414} + inputSlot: {fileID: 8926484042661616416} + position: {x: 8305, y: 868} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661616414 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616414} + m_MasterData: + m_Owner: {fileID: 8926484042661616413} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661616416} +--- !u!114 &8926484042661616415 +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: b8ee8a7543fa09e42a7c8616f60d2ad7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 8499, y: 854} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616416} + - {fileID: 8926484042661616417} + m_OutputSlots: + - {fileID: 8926484042661616418} + m_Operands: + - name: a + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - name: b + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661616416 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616416} + m_MasterData: + m_Owner: {fileID: 8926484042661616415} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661616414} +--- !u!114 &8926484042661616417 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616417} + m_MasterData: + m_Owner: {fileID: 8926484042661616415} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 100 + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661616420} +--- !u!114 &8926484042661616418 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616418} + m_MasterData: + m_Owner: {fileID: 8926484042661616415} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661616126} +--- !u!114 &8926484042661616419 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661616420} + m_ExposedName: Antenna Rate + m_Exposed: 1 + m_Order: 7 + m_Category: Antenna + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661616420} + inputSlot: {fileID: 8926484042661616417} + position: {x: 8281.75, y: 962.6175} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661616420 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616420} + m_MasterData: + m_Owner: {fileID: 8926484042661616419} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 100 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661616417} +--- !u!114 &8926484042661616421 +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: b8ee8a7543fa09e42a7c8616f60d2ad7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 1550, y: 1484} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616422} + - {fileID: 8926484042661616423} + m_OutputSlots: + - {fileID: 8926484042661616424} + m_Operands: + - name: a + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - name: b + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661616422 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616422} + m_MasterData: + m_Owner: {fileID: 8926484042661616421} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661616406} +--- !u!114 &8926484042661616423 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616423} + m_MasterData: + m_Owner: {fileID: 8926484042661616421} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.5 + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616424 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616424} + m_MasterData: + m_Owner: {fileID: 8926484042661616421} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661616426} +--- !u!114 &8926484042661616425 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616425} + m_MasterData: + m_Owner: {fileID: 8926484042661615813} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 3 + m_Space: 2147483647 + m_Property: + name: A + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661616406} +--- !u!114 &8926484042661616426 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616426} + m_MasterData: + m_Owner: {fileID: 8926484042661615813} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: B + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661616424} +--- !u!114 &8926484042661616427 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614558} + m_Children: [] + m_UIPosition: {x: 0, y: 2} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616428} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616429} + attribute: size + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661616428 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616428} + m_MasterData: + m_Owner: {fileID: 8926484042661616427} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.01 + m_Space: 2147483647 + m_Property: + name: Size + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614680} +--- !u!114 &8926484042661616429 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616429} + m_MasterData: + m_Owner: {fileID: 8926484042661616427} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616430 +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: 60fff265f139e2a4194a44c2bac41757, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614558} + m_Children: [] + m_UIPosition: {x: 0, y: 76} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616431} + - {fileID: 8926484042661616432} + - {fileID: 8926484042661616433} + - {fileID: 8926484042661616437} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616441} + attribute: position + Composition: 0 + SampleMode: 6 + mode: 0 + channels: 6 + usePointCount: 0 +--- !u!114 &8926484042661616431 +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: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616431} + m_MasterData: + m_Owner: {fileID: 8926484042661616430} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":2800000,"guid":"1d8481de16af723418a688958c41224b","type":3}}' + m_Space: 2147483647 + m_Property: + name: attributeMap + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614607} +--- !u!114 &8926484042661616432 +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: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616432} + m_MasterData: + m_Owner: {fileID: 8926484042661616430} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: Seed + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616433 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661616434} + - {fileID: 8926484042661616435} + - {fileID: 8926484042661616436} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616433} + m_MasterData: + m_Owner: {fileID: 8926484042661616430} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: valueBias + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616434 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616433} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616433} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616435 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616433} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616433} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616436 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616433} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616433} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616437 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661616438} + - {fileID: 8926484042661616439} + - {fileID: 8926484042661616440} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616437} + m_MasterData: + m_Owner: {fileID: 8926484042661616430} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":1.0,"z":1.0}' + m_Space: 2147483647 + m_Property: + name: valueScale + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616438 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616437} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616437} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616439 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616437} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616437} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616440 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616437} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616437} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616441 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616441} + m_MasterData: + m_Owner: {fileID: 8926484042661616430} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616442 +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: 60fff265f139e2a4194a44c2bac41757, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614558} + m_Children: [] + m_UIPosition: {x: 0, y: 145} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616443} + - {fileID: 8926484042661616444} + - {fileID: 8926484042661616445} + - {fileID: 8926484042661616449} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616453} + attribute: direction + Composition: 0 + SampleMode: 6 + mode: 0 + channels: 6 + usePointCount: 0 +--- !u!114 &8926484042661616443 +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: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616443} + m_MasterData: + m_Owner: {fileID: 8926484042661616442} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":2800000,"guid":"1d8481de16af723418a688958c41224b","type":3}}' + m_Space: 2147483647 + m_Property: + name: attributeMap + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615075} +--- !u!114 &8926484042661616444 +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: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616444} + m_MasterData: + m_Owner: {fileID: 8926484042661616442} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: Seed + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616445 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661616446} + - {fileID: 8926484042661616447} + - {fileID: 8926484042661616448} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616445} + m_MasterData: + m_Owner: {fileID: 8926484042661616442} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: valueBias + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616446 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616445} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616445} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616447 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616445} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616445} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616448 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616445} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616445} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616449 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661616450} + - {fileID: 8926484042661616451} + - {fileID: 8926484042661616452} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616449} + m_MasterData: + m_Owner: {fileID: 8926484042661616442} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":1.0,"z":1.0}' + m_Space: 2147483647 + m_Property: + name: valueScale + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616450 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616449} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616449} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616451 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616449} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616449} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616452 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616449} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616449} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616453 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616453} + m_MasterData: + m_Owner: {fileID: 8926484042661616442} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616454 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614558} + m_Children: [] + m_UIPosition: {x: 0, y: 214} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616455} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616460} + attribute: position + Composition: 1 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661616455 +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: 5265657162cc1a241bba03a3b0476d99, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661616456} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616455} + m_MasterData: + m_Owner: {fileID: 8926484042661616454} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0}}' + m_Space: 1 + m_Property: + name: Position + m_serializedType: + m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615450} +--- !u!114 &8926484042661616456 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616455} + m_Children: + - {fileID: 8926484042661616457} + - {fileID: 8926484042661616458} + - {fileID: 8926484042661616459} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616455} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616457 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616456} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616455} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616458 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616456} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616455} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616459 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616456} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616455} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616460 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616460} + m_MasterData: + m_Owner: {fileID: 8926484042661616454} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616461 +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: 63716c0daf1806941a123003dc6d7398, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614583} + m_Children: [] + m_UIPosition: {x: 0, y: 2} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616462} + - {fileID: 8926484042661616475} + - {fileID: 8926484042661616476} + - {fileID: 8926484042661616477} + - {fileID: 8926484042661616478} + - {fileID: 8926484042661616479} + - {fileID: 8926484042661616480} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616481} + Mode: 1 + NoiseType: 0 +--- !u!114 &8926484042661616462 +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: 3e3f628d80ffceb489beac74258f9cf7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661616463} + - {fileID: 8926484042661616467} + - {fileID: 8926484042661616471} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616462} + m_MasterData: + m_Owner: {fileID: 8926484042661616461} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Transform, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0},"angles":{"x":0.0,"y":0.0,"z":0.0},"scale":{"x":1.0,"y":1.0,"z":1.0}}' + m_Space: 1 + m_Property: + name: FieldTransform + m_serializedType: + m_SerializableType: UnityEditor.VFX.Transform, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616463 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616462} + m_Children: + - {fileID: 8926484042661616464} + - {fileID: 8926484042661616465} + - {fileID: 8926484042661616466} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616462} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661616487} +--- !u!114 &8926484042661616464 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616463} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616462} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616465 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616463} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616462} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616466 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616463} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616462} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616467 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616462} + m_Children: + - {fileID: 8926484042661616468} + - {fileID: 8926484042661616469} + - {fileID: 8926484042661616470} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616462} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: angles + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616468 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616467} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616462} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616469 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616467} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616462} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616470 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616467} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616462} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616471 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616462} + m_Children: + - {fileID: 8926484042661616472} + - {fileID: 8926484042661616473} + - {fileID: 8926484042661616474} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616462} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: scale + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616472 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616471} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616462} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616473 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616471} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616462} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616474 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616471} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616462} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616475 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616475} + m_MasterData: + m_Owner: {fileID: 8926484042661616461} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: Intensity + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661616507} +--- !u!114 &8926484042661616476 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616476} + m_MasterData: + m_Owner: {fileID: 8926484042661616461} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: Drag + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616477 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616477} + m_MasterData: + m_Owner: {fileID: 8926484042661616461} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: frequency + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615511} +--- !u!114 &8926484042661616478 +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: 4d246e354feb93041a837a9ef59437cb, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616478} + m_MasterData: + m_Owner: {fileID: 8926484042661616461} + m_Value: + m_Type: + m_SerializableType: System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: octaves + m_serializedType: + m_SerializableType: System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616479 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616479} + m_MasterData: + m_Owner: {fileID: 8926484042661616461} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.5 + m_Space: 2147483647 + m_Property: + name: roughness + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616480 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616480} + m_MasterData: + m_Owner: {fileID: 8926484042661616461} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 2 + m_Space: 2147483647 + m_Property: + name: lacunarity + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616481 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616481} + m_MasterData: + m_Owner: {fileID: 8926484042661616461} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616482 +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: 955b0c175a6f3bb4582e92f3de8f0626, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -2470, y: 2437} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616483} + m_OutputSlots: + - {fileID: 8926484042661616487} + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &8926484042661616483 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661616484} + - {fileID: 8926484042661616485} + - {fileID: 8926484042661616486} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616483} + m_MasterData: + m_Owner: {fileID: 8926484042661616482} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616484 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616483} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616483} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616485 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616483} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616483} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615513} +--- !u!114 &8926484042661616486 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616483} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616483} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616487 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661616488} + - {fileID: 8926484042661616489} + - {fileID: 8926484042661616490} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616487} + m_MasterData: + m_Owner: {fileID: 8926484042661616482} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661616463} +--- !u!114 &8926484042661616488 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616487} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616487} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661616489 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616487} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616487} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661616490 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616487} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616487} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661616491 +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: c42128e17c583714a909b4997c80c916, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -2742, y: 2705} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616492} + - {fileID: 8926484042661616493} + - {fileID: 8926484042661616494} + m_OutputSlots: + - {fileID: 8926484042661616495} + seed: 0 + constant: 1 +--- !u!114 &8926484042661616492 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616492} + m_MasterData: + m_Owner: {fileID: 8926484042661616491} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: min + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616493 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616493} + m_MasterData: + m_Owner: {fileID: 8926484042661616491} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: max + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616494 +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: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616494} + m_MasterData: + m_Owner: {fileID: 8926484042661616491} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 72 + m_Space: 2147483647 + m_Property: + name: seed + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616495 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616495} + m_MasterData: + m_Owner: {fileID: 8926484042661616491} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: r + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661616499} +--- !u!114 &8926484042661616496 +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: b4bb186c1c47c9d4191c5f523b1744b8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -2520, y: 2628} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616497} + - {fileID: 8926484042661616498} + - {fileID: 8926484042661616499} + m_OutputSlots: + - {fileID: 8926484042661616500} + m_Type: + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661616497 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616497} + m_MasterData: + m_Owner: {fileID: 8926484042661616496} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661616503} +--- !u!114 &8926484042661616498 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616498} + m_MasterData: + m_Owner: {fileID: 8926484042661616496} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616499 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616499} + m_MasterData: + m_Owner: {fileID: 8926484042661616496} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.5 + m_Space: 2147483647 + m_Property: + name: s + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661616495} +--- !u!114 &8926484042661616500 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616500} + m_MasterData: + m_Owner: {fileID: 8926484042661616496} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661616505} +--- !u!114 &8926484042661616501 +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: c8ac0ebcb5fd27b408f3700034222acb, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -2764, y: 2608} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616502} + m_OutputSlots: + - {fileID: 8926484042661616503} + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661616502 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616502} + m_MasterData: + m_Owner: {fileID: 8926484042661616501} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615615} +--- !u!114 &8926484042661616503 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616503} + m_MasterData: + m_Owner: {fileID: 8926484042661616501} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661616497} +--- !u!114 &8926484042661616504 +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: b8ee8a7543fa09e42a7c8616f60d2ad7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -2304, y: 2708} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616505} + - {fileID: 8926484042661616506} + m_OutputSlots: + - {fileID: 8926484042661616507} + m_Operands: + - name: a + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - name: b + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661616505 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616505} + m_MasterData: + m_Owner: {fileID: 8926484042661616504} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661616500} +--- !u!114 &8926484042661616506 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616506} + m_MasterData: + m_Owner: {fileID: 8926484042661616504} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615492} +--- !u!114 &8926484042661616507 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616507} + m_MasterData: + m_Owner: {fileID: 8926484042661616504} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661616475} +--- !u!114 &8926484042661616508 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661616509} + m_ExposedName: Antenna Point Size + m_Exposed: 1 + m_Order: 11 + m_Category: Antenna + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661616509} + inputSlot: {fileID: 8926484042661616312} + position: {x: 8403.023, y: 1327.4952} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661616509 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616509} + m_MasterData: + m_Owner: {fileID: 8926484042661616508} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.05 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661616312} +--- !u!114 &8926484042661616510 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615628} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616511} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616512} + attribute: size + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661616511 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616511} + m_MasterData: + m_Owner: {fileID: 8926484042661616510} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.1 + m_Space: 2147483647 + m_Property: + name: Size + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615992} +--- !u!114 &8926484042661616512 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616512} + m_MasterData: + m_Owner: {fileID: 8926484042661616510} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616513 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615651} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616514} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616515} + attribute: alpha + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661616514 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616514} + m_MasterData: + m_Owner: {fileID: 8926484042661616513} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: Alpha + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661616517} +--- !u!114 &8926484042661616515 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616515} + m_MasterData: + m_Owner: {fileID: 8926484042661616513} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616516 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661616517} + m_ExposedName: Bubble Alpha + m_Exposed: 1 + m_Order: 42 + m_Category: Bubble + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661616517} + inputSlot: {fileID: 8926484042661616514} + position: {x: -942.6875, y: 2665.4688} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661616517 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616517} + m_MasterData: + m_Owner: {fileID: 8926484042661616516} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661616514} diff --git a/Assets/Dwelling/VFX/Avatar.vfx.meta b/Assets/Dwelling/VFX/Avatar.vfx.meta new file mode 100644 index 0000000..88d1322 --- /dev/null +++ b/Assets/Dwelling/VFX/Avatar.vfx.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e6b972d6f7a563a46bb7e214995e2997 +VisualEffectImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/VFX/Common.meta b/Assets/Dwelling/VFX/Common.meta new file mode 100644 index 0000000..d514fc2 --- /dev/null +++ b/Assets/Dwelling/VFX/Common.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e217c30f0ec26b741b35347dadc0a854 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/VFX/Common/Geo Test 1.dae b/Assets/Dwelling/VFX/Common/Geo Test 1.dae new file mode 100644 index 0000000..05ba03c --- /dev/null +++ b/Assets/Dwelling/VFX/Common/Geo Test 1.dae @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae0b4dad47894976f3c6efd8a8236c522f94536995d2bb07a10f8f7a753b5ea4 +size 196692 diff --git a/Assets/Dwelling/VFX/Common/Geo Test 1.dae.meta b/Assets/Dwelling/VFX/Common/Geo Test 1.dae.meta new file mode 100644 index 0000000..ba559e8 --- /dev/null +++ b/Assets/Dwelling/VFX/Common/Geo Test 1.dae.meta @@ -0,0 +1,109 @@ +fileFormatVersion: 2 +guid: 4b0422feb3554164fbf85cf200f00975 +ModelImporter: + serializedVersion: 22200 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importPhysicalCameras: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + strictVertexDataChecks: 0 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + importBlendShapeDeformPercent: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/VFX/Common/Gradient1.png b/Assets/Dwelling/VFX/Common/Gradient1.png new file mode 100644 index 0000000..9c47eba --- /dev/null +++ b/Assets/Dwelling/VFX/Common/Gradient1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a90b739f7de592e3995f3e6910d10cf180d43704e0e55936ab137c09b4846793 +size 3556 diff --git a/Assets/Dwelling/VFX/Common/Gradient1.png.meta b/Assets/Dwelling/VFX/Common/Gradient1.png.meta new file mode 100644 index 0000000..1d1d06d --- /dev/null +++ b/Assets/Dwelling/VFX/Common/Gradient1.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: 2e7b1286cbcd709418de218dcc55a657 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + 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: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 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 + ignorePlatformSupport: 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 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/VFX/Common/Gradient2.png b/Assets/Dwelling/VFX/Common/Gradient2.png new file mode 100644 index 0000000..104b039 --- /dev/null +++ b/Assets/Dwelling/VFX/Common/Gradient2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5713a4915dccdccca8243b401c6b7c77e8b3a41140658ea1339620f9a79c9797 +size 3568 diff --git a/Assets/Dwelling/VFX/Common/Gradient2.png.meta b/Assets/Dwelling/VFX/Common/Gradient2.png.meta new file mode 100644 index 0000000..1c8468c --- /dev/null +++ b/Assets/Dwelling/VFX/Common/Gradient2.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: 651282c8fd3ff0048b93dfef5354bc2d +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + 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: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 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 + ignorePlatformSupport: 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 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/VFX/Common/MeshVFXBinder.cs b/Assets/Dwelling/VFX/Common/MeshVFXBinder.cs new file mode 100644 index 0000000..c7642ef --- /dev/null +++ b/Assets/Dwelling/VFX/Common/MeshVFXBinder.cs @@ -0,0 +1,24 @@ +using UnityEngine; +using UnityEngine.VFX; + +[ExecuteInEditMode] +public class MeshVFXBinder : MonoBehaviour +{ + private VisualEffect vfx; + private MeshFilter meshFilter; + private Renderer render; + + private static class ID + { + public static int Mesh = Shader.PropertyToID("Mesh"); + } + + void Update() + { + if (vfx == null) vfx = GetComponent(); + if (meshFilter == null) meshFilter = GetComponent(); + if (meshFilter.sharedMesh.isReadable == false) Debug.LogError("Mesh needs to be Read/Write enabled in import options"); + + if (vfx.HasMesh(ID.Mesh)) vfx.SetMesh(ID.Mesh, meshFilter.sharedMesh); + } +} \ No newline at end of file diff --git a/Assets/Dwelling/VFX/Common/MeshVFXBinder.cs.meta b/Assets/Dwelling/VFX/Common/MeshVFXBinder.cs.meta new file mode 100644 index 0000000..e9c2434 --- /dev/null +++ b/Assets/Dwelling/VFX/Common/MeshVFXBinder.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: eb01999cddb91ad46b645229f5528b90 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/VFX/Common/Random Vector3.vfxoperator b/Assets/Dwelling/VFX/Common/Random Vector3.vfxoperator new file mode 100644 index 0000000..91ddd02 --- /dev/null +++ b/Assets/Dwelling/VFX/Common/Random Vector3.vfxoperator @@ -0,0 +1,1379 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!2058629511 &1 +VisualEffectResource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Random Vector3 + m_Graph: {fileID: 114350483966674976} + m_Infos: + m_RendererSettings: + motionVectorGenerationMode: 0 + shadowCastingMode: 0 + receiveShadows: 0 + reflectionProbeUsage: 0 + lightProbeUsage: 0 + m_CullingFlags: 3 + m_UpdateMode: 0 + m_PreWarmDeltaTime: 0.05 + m_PreWarmStepCount: 0 + m_InitialEventName: OnPlay + m_InstancingMode: 0 + m_InstancingCapacity: 64 +--- !u!114 &114350483966674976 +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: 7d4c867f6b72b714dbb5fd1780afe208, type: 3} + m_Name: Random Vector3 + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 114350483966674978} + - {fileID: 114350483966674982} + - {fileID: 114350483966674986} + - {fileID: 114350483966674996} + - {fileID: 114350483966675005} + - {fileID: 114350483966675009} + - {fileID: 114350483966675011} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_UIInfos: {fileID: 114350483966674977} + m_ParameterInfo: + - name: Scale + path: Scale + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + m_ImportDependencies: [] + m_GraphVersion: 12 + m_ResourceVersion: 1 + m_SubgraphDependencies: [] + m_CategoryPath: +--- !u!114 &114350483966674977 +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: d01270efd3285ea4a9d6c555cb0a8027, type: 3} + m_Name: + m_EditorClassIdentifier: + groupInfos: [] + stickyNoteInfos: [] + categories: [] + uiBounds: + serializedVersion: 2 + x: 686 + y: 1162 + width: 1072 + height: 499 +--- !u!114 &114350483966674978 +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: c42128e17c583714a909b4997c80c916, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 685.5, y: 1161.5} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 114350483966674979} + - {fileID: 114350483966674980} + m_OutputSlots: + - {fileID: 114350483966674981} + seed: 0 + constant: 0 +--- !u!114 &114350483966674979 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114350483966674979} + m_MasterData: + m_Owner: {fileID: 114350483966674978} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: -1 + m_Space: 2147483647 + m_Property: + name: min + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &114350483966674980 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114350483966674980} + m_MasterData: + m_Owner: {fileID: 114350483966674978} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: max + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &114350483966674981 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114350483966674981} + m_MasterData: + m_Owner: {fileID: 114350483966674978} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: r + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 114350483966674998} +--- !u!114 &114350483966674982 +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: c42128e17c583714a909b4997c80c916, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 696.5, y: 1330.5} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 114350483966674983} + - {fileID: 114350483966674984} + m_OutputSlots: + - {fileID: 114350483966674985} + seed: 0 + constant: 0 +--- !u!114 &114350483966674983 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114350483966674983} + m_MasterData: + m_Owner: {fileID: 114350483966674982} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: -1 + m_Space: 2147483647 + m_Property: + name: min + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &114350483966674984 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114350483966674984} + m_MasterData: + m_Owner: {fileID: 114350483966674982} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: max + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &114350483966674985 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114350483966674985} + m_MasterData: + m_Owner: {fileID: 114350483966674982} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: r + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 114350483966674999} +--- !u!114 &114350483966674986 +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: b8ee8a7543fa09e42a7c8616f60d2ad7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 1239.5, y: 1271.5} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 114350483966674987} + - {fileID: 114350483966674991} + m_OutputSlots: + - {fileID: 114350483966674992} + m_Operands: + - name: a + type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + - name: b + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &114350483966674987 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 114350483966674988} + - {fileID: 114350483966674989} + - {fileID: 114350483966674990} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114350483966674987} + m_MasterData: + m_Owner: {fileID: 114350483966674986} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":1.0,"z":1.0}' + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 114350483966675001} +--- !u!114 &114350483966674988 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674987} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114350483966674987} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &114350483966674989 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674987} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114350483966674987} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &114350483966674990 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674987} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114350483966674987} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &114350483966674991 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114350483966674991} + m_MasterData: + m_Owner: {fileID: 114350483966674986} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 114350483966675010} +--- !u!114 &114350483966674992 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 114350483966674993} + - {fileID: 114350483966674994} + - {fileID: 114350483966674995} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114350483966674992} + m_MasterData: + m_Owner: {fileID: 114350483966674986} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 114350483966675016} +--- !u!114 &114350483966674993 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674992} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114350483966674992} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &114350483966674994 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674992} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114350483966674992} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &114350483966674995 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674992} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114350483966674992} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &114350483966674996 +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: 955b0c175a6f3bb4582e92f3de8f0626, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 955.5, y: 1202.5} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 114350483966674997} + m_OutputSlots: + - {fileID: 114350483966675001} + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &114350483966674997 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 114350483966674998} + - {fileID: 114350483966674999} + - {fileID: 114350483966675000} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114350483966674997} + m_MasterData: + m_Owner: {fileID: 114350483966674996} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &114350483966674998 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674997} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114350483966674997} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 114350483966674981} +--- !u!114 &114350483966674999 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674997} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114350483966674997} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 114350483966674985} +--- !u!114 &114350483966675000 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674997} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114350483966674997} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 114350483966675008} +--- !u!114 &114350483966675001 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 114350483966675002} + - {fileID: 114350483966675003} + - {fileID: 114350483966675004} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114350483966675001} + m_MasterData: + m_Owner: {fileID: 114350483966674996} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 114350483966674987} +--- !u!114 &114350483966675002 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966675001} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114350483966675001} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &114350483966675003 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966675001} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114350483966675001} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &114350483966675004 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966675001} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114350483966675001} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &114350483966675005 +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: c42128e17c583714a909b4997c80c916, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 696.5, y: 1512.5} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 114350483966675006} + - {fileID: 114350483966675007} + m_OutputSlots: + - {fileID: 114350483966675008} + seed: 0 + constant: 0 +--- !u!114 &114350483966675006 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114350483966675006} + m_MasterData: + m_Owner: {fileID: 114350483966675005} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: -1 + m_Space: 2147483647 + m_Property: + name: min + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &114350483966675007 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114350483966675007} + m_MasterData: + m_Owner: {fileID: 114350483966675005} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: max + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &114350483966675008 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114350483966675008} + m_MasterData: + m_Owner: {fileID: 114350483966675005} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: r + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 114350483966675000} +--- !u!114 &114350483966675009 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 114350483966675010} + m_ExposedName: Scale + m_Exposed: 1 + m_Order: 0 + m_Category: + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 114350483966675010} + inputSlot: {fileID: 114350483966674991} + position: {x: 1018, y: 1365} + expandedSlots: [] + expanded: 0 +--- !u!114 &114350483966675010 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114350483966675010} + m_MasterData: + m_Owner: {fileID: 114350483966675009} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 114350483966674991} +--- !u!114 &114350483966675011 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 114350483966675016} + m_OutputSlots: [] + m_ExposedName: Vector + m_Exposed: 0 + m_Order: 1 + m_Category: + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 1 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 114350483966674992} + inputSlot: {fileID: 114350483966675016} + position: {x: 1639.5, y: 1271.5} + expandedSlots: [] + expanded: 0 +--- !u!114 &114350483966675016 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 114350483966675017} + - {fileID: 114350483966675018} + - {fileID: 114350483966675019} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114350483966675016} + m_MasterData: + m_Owner: {fileID: 114350483966675011} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: i + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 114350483966674992} +--- !u!114 &114350483966675017 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966675016} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114350483966675016} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &114350483966675018 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966675016} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114350483966675016} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &114350483966675019 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966675016} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114350483966675016} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] diff --git a/Assets/Dwelling/VFX/Common/Random Vector3.vfxoperator.meta b/Assets/Dwelling/VFX/Common/Random Vector3.vfxoperator.meta new file mode 100644 index 0000000..c6c0a5e --- /dev/null +++ b/Assets/Dwelling/VFX/Common/Random Vector3.vfxoperator.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 828884c4f4193be4898fa8a6e45ad917 +VisualEffectImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/VFX/Environment.vfx b/Assets/Dwelling/VFX/Environment.vfx new file mode 100644 index 0000000..b25ed9b --- /dev/null +++ b/Assets/Dwelling/VFX/Environment.vfx @@ -0,0 +1,21699 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &114340500867371532 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: d01270efd3285ea4a9d6c555cb0a8027, type: 3} + m_Name: VFXUI + m_EditorClassIdentifier: + groupInfos: + - title: Distance Threshold + position: + serializedVersion: 2 + x: 2011 + y: 591 + width: 657 + height: 352 + contents: + - model: {fileID: 8926484042661615611} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615575} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615580} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615601} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615666} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615606} + id: 0 + isStickyNote: 0 + - title: Size + position: + serializedVersion: 2 + x: 273 + y: 414 + width: 650 + height: 362 + contents: + - model: {fileID: 8926484042661615108} + id: 1 + isStickyNote: 0 + - model: {fileID: 8926484042661615110} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615114} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615119} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615124} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615112} + id: 0 + isStickyNote: 0 + - title: Proximity wave + position: + serializedVersion: 2 + x: -1101 + y: 1682 + width: 1674 + height: 479 + contents: + - model: {fileID: 8926484042661615820} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615068} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615053} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661614677} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661614695} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661614988} + id: 1 + isStickyNote: 0 + - model: {fileID: 8926484042661614685} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615845} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615811} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615815} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615807} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615817} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615849} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615853} + id: 0 + isStickyNote: 0 + stickyNoteInfos: + - title: Plexus + position: + serializedVersion: 2 + x: 2514 + y: -474 + width: 133 + height: 100 + contents: + theme: Classic + textSize: Small + - title: Quads + position: + serializedVersion: 2 + x: 765 + y: -288 + width: 133 + height: 100 + contents: + theme: Classic + textSize: Small + - title: Dots + position: + serializedVersion: 2 + x: -713 + y: -403 + width: 133 + height: 100 + contents: + theme: Classic + textSize: Small + categories: + - name: Quads + collapsed: 0 + - name: Interaction + collapsed: 0 + - name: Plexus + collapsed: 0 + - name: Dots + collapsed: 0 + uiBounds: + serializedVersion: 2 + x: -1102 + y: -523 + width: 10826 + height: 2685 +--- !u!114 &114350483966674976 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: 7d4c867f6b72b714dbb5fd1780afe208, type: 3} + m_Name: Environment + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614555} + - {fileID: 8926484042661614558} + - {fileID: 8926484042661614583} + - {fileID: 8926484042661614655} + - {fileID: 8926484042661614677} + - {fileID: 8926484042661614685} + - {fileID: 8926484042661614695} + - {fileID: 8926484042661614759} + - {fileID: 8926484042661614986} + - {fileID: 8926484042661614988} + - {fileID: 8926484042661615053} + - {fileID: 8926484042661615068} + - {fileID: 8926484042661615108} + - {fileID: 8926484042661615110} + - {fileID: 8926484042661615112} + - {fileID: 8926484042661615114} + - {fileID: 8926484042661615119} + - {fileID: 8926484042661615124} + - {fileID: 8926484042661615135} + - {fileID: 8926484042661615140} + - {fileID: 8926484042661615155} + - {fileID: 8926484042661615161} + - {fileID: 8926484042661615164} + - {fileID: 8926484042661615185} + - {fileID: 8926484042661615187} + - {fileID: 8926484042661615220} + - {fileID: 8926484042661615223} + - {fileID: 8926484042661615229} + - {fileID: 8926484042661615234} + - {fileID: 8926484042661615253} + - {fileID: 8926484042661615256} + - {fileID: 8926484042661615260} + - {fileID: 8926484042661615265} + - {fileID: 8926484042661615269} + - {fileID: 8926484042661615314} + - {fileID: 8926484042661615349} + - {fileID: 8926484042661615368} + - {fileID: 8926484042661615462} + - {fileID: 8926484042661615468} + - {fileID: 8926484042661615471} + - {fileID: 8926484042661615476} + - {fileID: 8926484042661615479} + - {fileID: 8926484042661615483} + - {fileID: 8926484042661615485} + - {fileID: 8926484042661615490} + - {fileID: 8926484042661615495} + - {fileID: 8926484042661615500} + - {fileID: 8926484042661615535} + - {fileID: 8926484042661615537} + - {fileID: 8926484042661615567} + - {fileID: 8926484042661615575} + - {fileID: 8926484042661615580} + - {fileID: 8926484042661615601} + - {fileID: 8926484042661615606} + - {fileID: 8926484042661615611} + - {fileID: 8926484042661615619} + - {fileID: 8926484042661615627} + - {fileID: 8926484042661615638} + - {fileID: 8926484042661615657} + - {fileID: 8926484042661615666} + - {fileID: 8926484042661615668} + - {fileID: 8926484042661615670} + - {fileID: 8926484042661615672} + - {fileID: 8926484042661615674} + - {fileID: 8926484042661615676} + - {fileID: 8926484042661615680} + - {fileID: 8926484042661615718} + - {fileID: 8926484042661615723} + - {fileID: 8926484042661615725} + - {fileID: 8926484042661615774} + - {fileID: 8926484042661615776} + - {fileID: 8926484042661615792} + - {fileID: 8926484042661615794} + - {fileID: 8926484042661615807} + - {fileID: 8926484042661615811} + - {fileID: 8926484042661615815} + - {fileID: 8926484042661615817} + - {fileID: 8926484042661615820} + - {fileID: 8926484042661615842} + - {fileID: 8926484042661615845} + - {fileID: 8926484042661615849} + - {fileID: 8926484042661615853} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_UIInfos: {fileID: 114340500867371532} + m_ParameterInfo: + - name: Mesh + path: Mesh + tooltip: + sheetType: m_NamedObject + realType: Mesh + defaultValue: + m_Type: + m_SerializableType: UnityEngine.Mesh, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":10208,"guid":"0000000000000000e000000000000000","type":0}}' + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Quads + path: + tooltip: + sheetType: + realType: + defaultValue: + m_Type: + m_SerializableType: + m_SerializableObject: + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Quad Rate + path: Quad Rate + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 100 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Quad Size Small + path: Quad Size Small + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.02 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Quad Size Big + path: Quad Size Big + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.04 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Quad Size Ratio + path: Quad Size Ratio + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.5 + min: 0 + max: 1 + enumValues: [] + descendantCount: 0 + - name: Quad Scatter + path: Quad Scatter + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.1 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Interaction + path: + tooltip: + sheetType: + realType: + defaultValue: + m_Type: + m_SerializableType: + m_SerializableObject: + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Target 1 + path: Target 1 + tooltip: + sheetType: m_Vector3f + realType: Vector3 + defaultValue: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Target 2 + path: Target 2 + tooltip: + sheetType: m_Vector3f + realType: Vector3 + defaultValue: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Range + path: Range + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.6 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Plexus + path: + tooltip: + sheetType: + realType: + defaultValue: + m_Type: + m_SerializableType: + m_SerializableObject: + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Plexus Rate + path: Plexus Rate + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 10000 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Plexus Range + path: Plexus Range + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.6 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Plexus Lifetime Min + path: Plexus Lifetime Min + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Plexus Lifetime Max + path: Plexus Lifetime Max + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 3 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Plexus Point Size + path: Plexus Point Size + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.02 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Dots + path: + tooltip: + sheetType: + realType: + defaultValue: + m_Type: + m_SerializableType: + m_SerializableObject: + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Dots Rate + path: Dots Rate + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 10000 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Dots Scatter + path: Dots Scatter + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + m_ImportDependencies: [] + m_GraphVersion: 12 + m_ResourceVersion: 1 + m_SubgraphDependencies: [] + m_CategoryPath: +--- !u!2058629511 &8926484042661614527 +VisualEffectResource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Environment + m_Graph: {fileID: 114350483966674976} + m_Infos: + m_RendererSettings: + motionVectorGenerationMode: 0 + shadowCastingMode: 1 + receiveShadows: 0 + reflectionProbeUsage: 0 + lightProbeUsage: 0 + m_CullingFlags: 3 + m_UpdateMode: 0 + m_PreWarmDeltaTime: 0.05 + m_PreWarmStepCount: 0 + m_InitialEventName: OnPlay + m_InstancingMode: 0 + m_InstancingCapacity: 64 +--- !u!114 &8926484042661614555 +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: 73a13919d81fb7444849bae8b5c812a2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661614556} + m_UIPosition: {x: 978, y: -297} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: Spawn system + m_Data: {fileID: 8926484042661614595} + m_InputFlowSlot: + - link: [] + - link: [] + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661614558} + slotIndex: 0 + loopDuration: 0 + loopCount: 0 + delayBeforeLoop: 0 + delayAfterLoop: 0 +--- !u!114 &8926484042661614556 +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: f05c6884b705ce14d82ae720f0ec209f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614555} + m_Children: [] + m_UIPosition: {x: 0, y: 2} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614557} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614600} +--- !u!114 &8926484042661614557 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614557} + m_MasterData: + m_Owner: {fileID: 8926484042661614556} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1000 + m_Space: 2147483647 + m_Property: + name: Rate + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615136} +--- !u!114 &8926484042661614558 +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: 9dfea48843f53fc438eabc12a3a30abc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661614580} + - {fileID: 8926484042661614657} + - {fileID: 8926484042661615132} + - {fileID: 8926484042661615730} + m_UIPosition: {x: 978, y: -3} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614559} + - {fileID: 8926484042661614596} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661614568} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661614555} + slotIndex: 0 + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661614583} + slotIndex: 0 +--- !u!114 &8926484042661614559 +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: 1b605c022ee79394a8a776c0869b3f9a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614560} + - {fileID: 8926484042661614564} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614559} + m_MasterData: + m_Owner: {fileID: 8926484042661614558} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"center":{"x":0.0,"y":0.0,"z":0.0},"size":{"x":1.0,"y":1.0,"z":1.0}}' + m_Space: 0 + m_Property: + name: bounds + m_serializedType: + m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614560 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614559} + m_Children: + - {fileID: 8926484042661614561} + - {fileID: 8926484042661614562} + - {fileID: 8926484042661614563} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614559} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: center + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614561 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614560} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614559} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614562 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614560} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614559} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614563 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614560} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614559} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614564 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614559} + m_Children: + - {fileID: 8926484042661614565} + - {fileID: 8926484042661614566} + - {fileID: 8926484042661614567} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614559} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: size + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614565 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614564} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614559} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614566 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614564} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614559} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614567 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614564} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614559} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614568 +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: d78581a96eae8bf4398c282eb0b098bd, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 8926484042661614558} + - {fileID: 8926484042661614583} + - {fileID: 8926484042661615269} + dataType: 0 + capacity: 10000 + stripCapacity: 16 + particlePerStripCount: 16 + needsComputeBounds: 0 + boundsMode: 0 + m_Space: 1 +--- !u!114 &8926484042661614580 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614558} + m_Children: [] + m_UIPosition: {x: 233.38269, y: 57.572144} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614581} + - {fileID: 8926484042661614582} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614602} + attribute: lifetime + Composition: 0 + Source: 0 + Random: 2 + channels: 6 +--- !u!114 &8926484042661614581 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614581} + m_MasterData: + m_Owner: {fileID: 8926484042661614580} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: A + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614582 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614582} + m_MasterData: + m_Owner: {fileID: 8926484042661614580} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 3 + m_Space: 2147483647 + m_Property: + name: B + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614583 +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: 2dc095764ededfa4bb32fa602511ea4b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 1042, y: 913} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661614568} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661614558} + slotIndex: 0 + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661615269} + slotIndex: 0 + integration: 0 + angularIntegration: 0 + ageParticles: 1 + reapParticles: 1 + skipZeroDeltaUpdate: 0 +--- !u!114 &8926484042661614595 +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: f68759077adc0b143b6e1c101e82065e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 8926484042661614555} +--- !u!114 &8926484042661614596 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614597} + - {fileID: 8926484042661614598} + - {fileID: 8926484042661614599} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614596} + m_MasterData: + m_Owner: {fileID: 8926484042661614558} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.5,"y":0.5,"z":0.5}' + m_Space: 2147483647 + m_Property: + name: boundsPadding + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614597 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614596} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614596} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614598 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614596} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614596} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614599 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614596} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614596} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614600 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614600} + m_MasterData: + m_Owner: {fileID: 8926484042661614556} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614602 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614602} + m_MasterData: + m_Owner: {fileID: 8926484042661614580} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614655 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661614656} + m_ExposedName: Mesh + m_Exposed: 1 + m_Order: 0 + m_Category: + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661614656} + inputSlot: {fileID: 8926484042661614658} + position: {x: 787, y: 322} + expandedSlots: [] + expanded: 0 + - m_Id: 2 + linkedSlots: + - outputSlot: {fileID: 8926484042661614656} + inputSlot: {fileID: 8926484042661615201} + - outputSlot: {fileID: 8926484042661614656} + inputSlot: {fileID: 8926484042661615221} + position: {x: 5185, y: 378} + expandedSlots: [] + expanded: 0 + - m_Id: 3 + linkedSlots: + - outputSlot: {fileID: 8926484042661614656} + inputSlot: {fileID: 8926484042661615400} + position: {x: 8576, y: 113} + expandedSlots: [] + expanded: 0 + - m_Id: 4 + linkedSlots: + - outputSlot: {fileID: 8926484042661614656} + inputSlot: {fileID: 8926484042661615469} + position: {x: 8442, y: 224} + expandedSlots: [] + expanded: 0 + - m_Id: 5 + linkedSlots: + - outputSlot: {fileID: 8926484042661614656} + inputSlot: {fileID: 8926484042661615520} + position: {x: 2616, y: 271} + expandedSlots: [] + expanded: 0 + - m_Id: 6 + linkedSlots: + - outputSlot: {fileID: 8926484042661614656} + inputSlot: {fileID: 8926484042661615545} + position: {x: 2633, y: 488} + expandedSlots: [] + expanded: 0 + - m_Id: 7 + linkedSlots: + - outputSlot: {fileID: 8926484042661614656} + inputSlot: {fileID: 8926484042661615700} + position: {x: -726, y: 302} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661614656 +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: b47b8679b468b7347a00cdd50589bc9f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614656} + m_MasterData: + m_Owner: {fileID: 8926484042661614655} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Mesh, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":10208,"guid":"0000000000000000e000000000000000","type":0}}' + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: UnityEngine.Mesh, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614658} + - {fileID: 8926484042661615201} + - {fileID: 8926484042661615221} + - {fileID: 8926484042661615400} + - {fileID: 8926484042661615469} + - {fileID: 8926484042661615520} + - {fileID: 8926484042661615545} + - {fileID: 8926484042661615700} +--- !u!114 &8926484042661614657 +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: ee5e80e50a3ba6147ad69984abfdf6b3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614558} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614658} + - {fileID: 8926484042661614659} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614672} + compositionPosition: 0 + compositionAxes: 0 + compositionDirection: 0 + positionMode: 0 + spawnMode: 0 + mode: 1 + placementMode: 2 + surfaceCoordinates: 1 + sourceMesh: 0 + skinnedTransform: 1 + applyOrientation: 1 +--- !u!114 &8926484042661614658 +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: b47b8679b468b7347a00cdd50589bc9f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614658} + m_MasterData: + m_Owner: {fileID: 8926484042661614657} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Mesh, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":10208,"guid":"0000000000000000e000000000000000","type":0}}' + m_Space: 2147483647 + m_Property: + name: mesh + m_serializedType: + m_SerializableType: UnityEngine.Mesh, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614656} +--- !u!114 &8926484042661614659 +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: 3e3f628d80ffceb489beac74258f9cf7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614660} + - {fileID: 8926484042661614664} + - {fileID: 8926484042661614668} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614659} + m_MasterData: + m_Owner: {fileID: 8926484042661614657} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Transform, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0},"angles":{"x":0.0,"y":0.0,"z":0.0},"scale":{"x":1.0,"y":1.0,"z":1.0}}' + m_Space: 0 + m_Property: + name: transform + m_serializedType: + m_SerializableType: UnityEditor.VFX.Transform, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614660 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614659} + m_Children: + - {fileID: 8926484042661614661} + - {fileID: 8926484042661614662} + - {fileID: 8926484042661614663} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614659} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614661 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614660} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614659} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614662 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614660} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614659} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614663 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614660} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614659} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614664 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614659} + m_Children: + - {fileID: 8926484042661614665} + - {fileID: 8926484042661614666} + - {fileID: 8926484042661614667} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614659} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: angles + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614665 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614664} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614659} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614666 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614664} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614659} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614667 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614664} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614659} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614668 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614659} + m_Children: + - {fileID: 8926484042661614669} + - {fileID: 8926484042661614670} + - {fileID: 8926484042661614671} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614659} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: scale + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614669 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614668} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614659} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614670 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614668} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614659} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614671 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614668} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614659} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614672 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614672} + m_MasterData: + m_Owner: {fileID: 8926484042661614657} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614677 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661614678} + m_ExposedName: Target 1 + m_Exposed: 1 + m_Order: 2 + m_Category: Interaction + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661614678} + inputSlot: {fileID: 8926484042661614686} + position: {x: -960, y: 1882} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661614678 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614679} + - {fileID: 8926484042661614680} + - {fileID: 8926484042661614681} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614678} + m_MasterData: + m_Owner: {fileID: 8926484042661614677} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614686} +--- !u!114 &8926484042661614679 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614678} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614678} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614680 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614678} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614678} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614681 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614678} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614678} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614685 +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: 016e81d0498fcc346ba22c57b5ca4556, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -755, y: 1914} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: + - {fileID: 8926484042661614686} + - {fileID: 8926484042661614690} + m_OutputSlots: + - {fileID: 8926484042661614694} + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &8926484042661614686 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614687} + - {fileID: 8926484042661614688} + - {fileID: 8926484042661614689} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614686} + m_MasterData: + m_Owner: {fileID: 8926484042661614685} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614678} +--- !u!114 &8926484042661614687 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614686} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614686} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614688 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614686} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614686} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614689 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614686} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614686} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614690 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614691} + - {fileID: 8926484042661614692} + - {fileID: 8926484042661614693} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614690} + m_MasterData: + m_Owner: {fileID: 8926484042661614685} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614696} +--- !u!114 &8926484042661614691 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614690} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614690} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614692 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614690} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614690} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614693 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614690} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614690} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614694 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614694} + m_MasterData: + m_Owner: {fileID: 8926484042661614685} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: d + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615069} +--- !u!114 &8926484042661614695 +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: 486e063e1ed58c843942ea4122829ab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -1076, y: 1933} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661614696} + attribute: position + location: 0 + mask: xyz +--- !u!114 &8926484042661614696 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614697} + - {fileID: 8926484042661614698} + - {fileID: 8926484042661614699} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614696} + m_MasterData: + m_Owner: {fileID: 8926484042661614695} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614690} + - {fileID: 8926484042661615058} +--- !u!114 &8926484042661614697 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614696} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614696} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614698 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614696} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614696} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614699 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614696} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614696} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614759 +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: 08b03824843e33840a03794c433c3cef, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661615137} + m_UIPosition: {x: 9300, y: 1077} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614760} + - {fileID: 8926484042661614761} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615382} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661615462} + slotIndex: 0 + m_OutputFlowSlot: + - link: [] + blendMode: 3 + cullMode: 0 + zWriteMode: 0 + zTestMode: 0 + useAlphaClipping: 0 + generateMotionVector: 0 + excludeFromTAA: 0 + sortingPriority: 0 + m_SubOutputs: + - {fileID: 8926484042661614763} + colorMapping: 0 + uvMode: 0 + flipbookLayout: 0 + useSoftParticle: 0 + vfxSystemSortPriority: 0 + sort: 0 + sortMode: 0 + revertSorting: 0 + indirectDraw: 0 + computeCulling: 0 + frustumCulling: 0 + castShadows: 1 + useExposureWeight: 0 + needsOwnSort: 0 + shaderGraph: {fileID: 0} + materialSettings: + m_PropertyNames: [] + m_PropertyValues: [] + useBaseColorMap: 3 + useMaskMap: 0 + useNormalMap: 0 + useEmissiveMap: 0 + colorMode: 1 + useEmissive: 0 + materialType: 0 + onlyAmbientLighting: 0 + diffusionProfileAsset: {fileID: 0} + multiplyThicknessWithAlpha: 0 + doubleSided: 0 + preserveSpecularLighting: 0 + enableSpecular: 1 + lightmapRemapMode: 0 + lightmapRemapRanges: 0 + useAlphaRemap: 0 + emissiveMode: 0 + useEmissiveChannelScale: 0 + useColorAbsorption: 1 + receiveShadows: 1 + enableCookie: 1 + enableEnvLight: 1 +--- !u!114 &8926484042661614760 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614760} + m_MasterData: + m_Owner: {fileID: 8926484042661614759} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: smoothness + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614761 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614761} + m_MasterData: + m_Owner: {fileID: 8926484042661614759} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: metallic + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614763 +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: 081ffb0090424ba4cb05370a42ead6b9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + opaqueRenderQueue: 0 + transparentRenderQueue: 1 +--- !u!114 &8926484042661614986 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661614987} + m_ExposedName: Range + m_Exposed: 1 + m_Order: 12 + m_Category: Interaction + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: [] +--- !u!114 &8926484042661614987 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614987} + m_MasterData: + m_Owner: {fileID: 8926484042661614986} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.6 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614988 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661614989} + m_ExposedName: Target 2 + m_Exposed: 1 + m_Order: 9 + m_Category: Interaction + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 1 + linkedSlots: + - outputSlot: {fileID: 8926484042661614989} + inputSlot: {fileID: 8926484042661615054} + position: {x: -966, y: 1963} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661614989 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614990} + - {fileID: 8926484042661614991} + - {fileID: 8926484042661614992} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614989} + m_MasterData: + m_Owner: {fileID: 8926484042661614988} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615054} +--- !u!114 &8926484042661614990 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614989} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614989} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614991 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614989} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614989} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614992 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614989} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614989} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615053 +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: 016e81d0498fcc346ba22c57b5ca4556, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -761, y: 1955} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: + - {fileID: 8926484042661615054} + - {fileID: 8926484042661615058} + m_OutputSlots: + - {fileID: 8926484042661615062} + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &8926484042661615054 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615055} + - {fileID: 8926484042661615056} + - {fileID: 8926484042661615057} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615054} + m_MasterData: + m_Owner: {fileID: 8926484042661615053} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614989} +--- !u!114 &8926484042661615055 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615054} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615054} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615056 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615054} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615054} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615057 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615054} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615054} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615058 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615059} + - {fileID: 8926484042661615060} + - {fileID: 8926484042661615061} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615058} + m_MasterData: + m_Owner: {fileID: 8926484042661615053} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614696} +--- !u!114 &8926484042661615059 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615058} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615058} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615060 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615058} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615058} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615061 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615058} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615058} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615062 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615062} + m_MasterData: + m_Owner: {fileID: 8926484042661615053} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: d + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615070} +--- !u!114 &8926484042661615068 +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: d69b8dac94209da438c71a5bb091c498, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -606, y: 1881} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615069} + - {fileID: 8926484042661615070} + m_OutputSlots: + - {fileID: 8926484042661615071} + m_Operands: + - name: a + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - name: b + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615069 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615069} + m_MasterData: + m_Owner: {fileID: 8926484042661615068} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614694} +--- !u!114 &8926484042661615070 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615070} + m_MasterData: + m_Owner: {fileID: 8926484042661615068} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615062} +--- !u!114 &8926484042661615071 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615071} + m_MasterData: + m_Owner: {fileID: 8926484042661615068} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615846} + - {fileID: 8926484042661615850} +--- !u!114 &8926484042661615108 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615109} + m_ExposedName: Quad Size Small + m_Exposed: 1 + m_Order: 3 + m_Category: Quads + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 1 + linkedSlots: + - outputSlot: {fileID: 8926484042661615109} + inputSlot: {fileID: 8926484042661615125} + position: {x: 539, y: 473} + expandedSlots: [] + expanded: 0 + - m_Id: 2 + linkedSlots: + - outputSlot: {fileID: 8926484042661615109} + inputSlot: {fileID: 8926484042661615496} + position: {x: 8754, y: 552} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615109 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615109} + m_MasterData: + m_Owner: {fileID: 8926484042661615108} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.02 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615125} + - {fileID: 8926484042661615496} +--- !u!114 &8926484042661615110 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615111} + m_ExposedName: Quad Size Big + m_Exposed: 1 + m_Order: 4 + m_Category: Quads + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615111} + inputSlot: {fileID: 8926484042661615126} + position: {x: 548, y: 511} + expandedSlots: [] + expanded: 0 + - m_Id: 1 + linkedSlots: + - outputSlot: {fileID: 8926484042661615111} + inputSlot: {fileID: 8926484042661615497} + position: {x: 8763, y: 590} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615111 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615111} + m_MasterData: + m_Owner: {fileID: 8926484042661615110} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.04 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615126} + - {fileID: 8926484042661615497} +--- !u!114 &8926484042661615112 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615113} + m_ExposedName: Quad Size Ratio + m_Exposed: 1 + m_Order: 5 + m_Category: Quads + m_Min: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Max: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 1 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615113} + inputSlot: {fileID: 8926484042661615120} + position: {x: 317, y: 524} + expandedSlots: [] + expanded: 0 + - m_Id: 1 + linkedSlots: + - outputSlot: {fileID: 8926484042661615113} + inputSlot: {fileID: 8926484042661615491} + position: {x: 8577, y: 577} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615113 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615113} + m_MasterData: + m_Owner: {fileID: 8926484042661615112} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.5 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615120} + - {fileID: 8926484042661615491} +--- !u!114 &8926484042661615114 +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: c42128e17c583714a909b4997c80c916, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 298, y: 583} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615115} + - {fileID: 8926484042661615116} + - {fileID: 8926484042661615117} + m_OutputSlots: + - {fileID: 8926484042661615118} + seed: 0 + constant: 1 +--- !u!114 &8926484042661615115 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615115} + m_MasterData: + m_Owner: {fileID: 8926484042661615114} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: min + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615116 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615116} + m_MasterData: + m_Owner: {fileID: 8926484042661615114} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: max + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615117 +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: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615117} + m_MasterData: + m_Owner: {fileID: 8926484042661615114} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 654 + m_Space: 2147483647 + m_Property: + name: seed + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615118 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615118} + m_MasterData: + m_Owner: {fileID: 8926484042661615114} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: r + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615122} +--- !u!114 &8926484042661615119 +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: b4bb186c1c47c9d4191c5f523b1744b8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 520, y: 575} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615120} + - {fileID: 8926484042661615121} + - {fileID: 8926484042661615122} + m_OutputSlots: + - {fileID: 8926484042661615123} + m_Type: + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615120 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615120} + m_MasterData: + m_Owner: {fileID: 8926484042661615119} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615113} +--- !u!114 &8926484042661615121 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615121} + m_MasterData: + m_Owner: {fileID: 8926484042661615119} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615122 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615122} + m_MasterData: + m_Owner: {fileID: 8926484042661615119} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.5 + m_Space: 2147483647 + m_Property: + name: s + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615118} +--- !u!114 &8926484042661615123 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615123} + m_MasterData: + m_Owner: {fileID: 8926484042661615119} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615127} +--- !u!114 &8926484042661615124 +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: fab5164109319454a9bccf2583401f6e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 745, y: 511} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615125} + - {fileID: 8926484042661615126} + - {fileID: 8926484042661615127} + m_OutputSlots: + - {fileID: 8926484042661615128} + m_Type: + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615125 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615125} + m_MasterData: + m_Owner: {fileID: 8926484042661615124} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615109} +--- !u!114 &8926484042661615126 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615126} + m_MasterData: + m_Owner: {fileID: 8926484042661615124} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615111} +--- !u!114 &8926484042661615127 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615127} + m_MasterData: + m_Owner: {fileID: 8926484042661615124} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.5 + m_Space: 2147483647 + m_Property: + name: s + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615123} +--- !u!114 &8926484042661615128 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615128} + m_MasterData: + m_Owner: {fileID: 8926484042661615124} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615133} +--- !u!114 &8926484042661615132 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614558} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615133} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615134} + attribute: size + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615133 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615133} + m_MasterData: + m_Owner: {fileID: 8926484042661615132} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.02 + m_Space: 2147483647 + m_Property: + name: Size + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615128} +--- !u!114 &8926484042661615134 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615134} + m_MasterData: + m_Owner: {fileID: 8926484042661615132} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615135 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615136} + m_ExposedName: Quad Rate + m_Exposed: 1 + m_Order: 1 + m_Category: Quads + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615136} + inputSlot: {fileID: 8926484042661614557} + position: {x: 758, y: -153} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615136 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615136} + m_MasterData: + m_Owner: {fileID: 8926484042661615135} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 100 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614557} +--- !u!114 &8926484042661615137 +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: 01ec2c1930009b04ea08905b47262415, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614759} + m_Children: [] + m_UIPosition: {x: 0, y: 2} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615138} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615139} + attribute: size + Composition: 2 + AlphaComposition: 0 + SampleMode: 0 + Mode: 1 + ColorMode: 3 + channels: 6 +--- !u!114 &8926484042661615138 +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: c117b74c5c58db542bffe25c78fe92db, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615138} + m_MasterData: + m_Owner: {fileID: 8926484042661615137} + m_Value: + m_Type: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"frames":[{"time":0.0,"value":0.0,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":0.25,"value":1.0,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":1.0,"value":0.0,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false}],"preWrapMode":8,"postWrapMode":8,"version":1}' + m_Space: 2147483647 + m_Property: + name: Size + m_serializedType: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615139 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615139} + m_MasterData: + m_Owner: {fileID: 8926484042661615137} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615140 +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: 9dfea48843f53fc438eabc12a3a30abc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 6055, y: -313} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615141} + - {fileID: 8926484042661615150} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615154} + m_InputFlowSlot: + - link: [] + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661615155} + slotIndex: 0 +--- !u!114 &8926484042661615141 +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: 1b605c022ee79394a8a776c0869b3f9a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615142} + - {fileID: 8926484042661615146} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615141} + m_MasterData: + m_Owner: {fileID: 8926484042661615140} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"center":{"x":0.0,"y":0.0,"z":0.0},"size":{"x":1.0,"y":1.0,"z":1.0}}' + m_Space: 0 + m_Property: + name: bounds + m_serializedType: + m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615142 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615141} + m_Children: + - {fileID: 8926484042661615143} + - {fileID: 8926484042661615144} + - {fileID: 8926484042661615145} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615141} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: center + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615143 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615142} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615141} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615144 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615142} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615141} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615145 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615142} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615141} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615146 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615141} + m_Children: + - {fileID: 8926484042661615147} + - {fileID: 8926484042661615148} + - {fileID: 8926484042661615149} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615141} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: size + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615147 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615146} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615141} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615148 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615146} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615141} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615149 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615146} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615141} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615150 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615151} + - {fileID: 8926484042661615152} + - {fileID: 8926484042661615153} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615150} + m_MasterData: + m_Owner: {fileID: 8926484042661615140} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: boundsPadding + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615151 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615150} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615150} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615152 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615150} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615150} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615153 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615150} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615150} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615154 +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: d78581a96eae8bf4398c282eb0b098bd, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 8926484042661615140} + - {fileID: 8926484042661615155} + - {fileID: 8926484042661615229} + dataType: 0 + capacity: 1 + stripCapacity: 1 + particlePerStripCount: 128 + needsComputeBounds: 0 + boundsMode: 0 + m_Space: 0 +--- !u!114 &8926484042661615155 +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: 2dc095764ededfa4bb32fa602511ea4b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661615193} + - {fileID: 8926484042661615200} + - {fileID: 8926484042661615157} + m_UIPosition: {x: 6115, y: 203} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615154} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661615140} + slotIndex: 0 + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661615229} + slotIndex: 0 + integration: 0 + angularIntegration: 0 + ageParticles: 1 + reapParticles: 1 + skipZeroDeltaUpdate: 0 +--- !u!114 &8926484042661615157 +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: 2af1b51cb5343364eb75bae8fceffd25, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615155} + m_Children: [] + m_UIPosition: {x: 0, y: 301} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615158} + m_OutputSlots: + - {fileID: 8926484042661615159} + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615160} + mode: 0 + clampToOne: 1 +--- !u!114 &8926484042661615158 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615158} + m_MasterData: + m_Owner: {fileID: 8926484042661615157} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 100 + m_Space: 2147483647 + m_Property: + name: Rate + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615159 +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: 1b605c022ee79394a8a776c0869b3f9a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615159} + m_MasterData: + m_Owner: {fileID: 8926484042661615157} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.GPUEvent, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{}' + m_Space: 2147483647 + m_Property: + name: evt + m_serializedType: + m_SerializableType: UnityEditor.VFX.GPUEvent, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615162} +--- !u!114 &8926484042661615160 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615160} + m_MasterData: + m_Owner: {fileID: 8926484042661615157} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615161 +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: f42a6449da2296343af0d8536de8588a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 6697, y: -259} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615162} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615163} + m_InputFlowSlot: + - link: [] + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661615164} + slotIndex: 0 +--- !u!114 &8926484042661615162 +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: 1b605c022ee79394a8a776c0869b3f9a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615162} + m_MasterData: + m_Owner: {fileID: 8926484042661615161} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.GPUEvent, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{}' + m_Space: 2147483647 + m_Property: + name: evt + m_serializedType: + m_SerializableType: UnityEditor.VFX.GPUEvent, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615159} +--- !u!114 &8926484042661615163 +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: f68759077adc0b143b6e1c101e82065e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 8926484042661615161} +--- !u!114 &8926484042661615164 +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: 9dfea48843f53fc438eabc12a3a30abc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661615180} + - {fileID: 8926484042661615182} + - {fileID: 8926484042661615262} + m_UIPosition: {x: 6697, y: 43} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615165} + - {fileID: 8926484042661615174} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615179} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661615161} + slotIndex: 0 + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661615185} + slotIndex: 0 +--- !u!114 &8926484042661615165 +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: 1b605c022ee79394a8a776c0869b3f9a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615166} + - {fileID: 8926484042661615170} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615165} + m_MasterData: + m_Owner: {fileID: 8926484042661615164} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"center":{"x":0.0,"y":0.0,"z":0.0},"size":{"x":1.0,"y":1.0,"z":1.0}}' + m_Space: 0 + m_Property: + name: bounds + m_serializedType: + m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615166 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615165} + m_Children: + - {fileID: 8926484042661615167} + - {fileID: 8926484042661615168} + - {fileID: 8926484042661615169} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615165} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: center + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615167 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615166} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615165} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615168 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615166} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615165} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615169 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615166} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615165} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615170 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615165} + m_Children: + - {fileID: 8926484042661615171} + - {fileID: 8926484042661615172} + - {fileID: 8926484042661615173} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615165} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: size + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615171 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615170} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615165} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615172 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615170} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615165} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615173 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615170} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615165} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615174 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615175} + - {fileID: 8926484042661615176} + - {fileID: 8926484042661615177} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615174} + m_MasterData: + m_Owner: {fileID: 8926484042661615164} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: boundsPadding + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615175 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615174} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615174} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615176 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615174} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615174} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615177 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615174} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615174} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615179 +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: d78581a96eae8bf4398c282eb0b098bd, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 8926484042661615164} + - {fileID: 8926484042661615185} + - {fileID: 8926484042661615265} + dataType: 1 + capacity: 100 + stripCapacity: 1 + particlePerStripCount: 100 + needsComputeBounds: 0 + boundsMode: 0 + m_Space: 0 +--- !u!114 &8926484042661615180 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615164} + m_Children: [] + m_UIPosition: {x: 0, y: 2} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615181} + attribute: position + Composition: 0 + Source: 1 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615181 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615181} + m_MasterData: + m_Owner: {fileID: 8926484042661615180} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615182 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615164} + m_Children: [] + m_UIPosition: {x: 0, y: 56} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615183} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615184} + attribute: size + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615183 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615183} + m_MasterData: + m_Owner: {fileID: 8926484042661615182} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.1 + m_Space: 2147483647 + m_Property: + name: Size + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615184 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615184} + m_MasterData: + m_Owner: {fileID: 8926484042661615182} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615185 +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: 2dc095764ededfa4bb32fa602511ea4b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 6658, y: 611} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615179} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661615164} + slotIndex: 0 + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661615265} + slotIndex: 0 + integration: 0 + angularIntegration: 0 + ageParticles: 1 + reapParticles: 1 + skipZeroDeltaUpdate: 0 +--- !u!114 &8926484042661615187 +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: daaadde2834125343af62067a70bbc5d, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 6377, y: 1237} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615188} + - {fileID: 8926484042661615189} + - {fileID: 8926484042661615190} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615238} + m_InputFlowSlot: + - link: [] + m_OutputFlowSlot: + - link: [] + blendMode: 3 + cullMode: 0 + zWriteMode: 0 + zTestMode: 0 + useAlphaClipping: 0 + generateMotionVector: 0 + excludeFromTAA: 0 + sortingPriority: 0 + m_SubOutputs: + - {fileID: 8926484042661615192} + colorMapping: 0 + uvMode: 0 + flipbookLayout: 0 + useSoftParticle: 0 + vfxSystemSortPriority: 0 + sort: 0 + sortMode: 0 + revertSorting: 0 + indirectDraw: 0 + computeCulling: 0 + frustumCulling: 0 + castShadows: 0 + useExposureWeight: 0 + needsOwnSort: 0 + shaderGraph: {fileID: 0} + materialSettings: + m_PropertyNames: [] + m_PropertyValues: [] + useBaseColorMap: 3 + useMaskMap: 0 + useNormalMap: 0 + useEmissiveMap: 0 + colorMode: 1 + useEmissive: 0 + materialType: 0 + onlyAmbientLighting: 0 + diffusionProfileAsset: {fileID: 0} + multiplyThicknessWithAlpha: 0 + doubleSided: 0 + preserveSpecularLighting: 0 + enableSpecular: 1 + lightmapRemapMode: 0 + lightmapRemapRanges: 0 + useAlphaRemap: 0 + emissiveMode: 0 + useEmissiveChannelScale: 0 + useColorAbsorption: 1 + receiveShadows: 1 + enableCookie: 1 + enableEnvLight: 1 + normalBending: 0 + tilingMode: 0 + swapUV: 0 + UseCustomZAxis: 0 +--- !u!114 &8926484042661615188 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615188} + m_MasterData: + m_Owner: {fileID: 8926484042661615187} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: smoothness + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615189 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615189} + m_MasterData: + m_Owner: {fileID: 8926484042661615187} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: metallic + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615190 +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: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615190} + m_MasterData: + m_Owner: {fileID: 8926484042661615187} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":2800000,"guid":"276d9e395ae18fe40a9b4988549f2349","type":3}}' + m_Space: 2147483647 + m_Property: + name: baseColorMap + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615192 +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: 081ffb0090424ba4cb05370a42ead6b9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + opaqueRenderQueue: 0 + transparentRenderQueue: 1 +--- !u!114 &8926484042661615193 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615155} + m_Children: [] + m_UIPosition: {x: 0, y: 2} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615194} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615199} + attribute: position + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615194 +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: 5265657162cc1a241bba03a3b0476d99, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615195} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615194} + m_MasterData: + m_Owner: {fileID: 8926484042661615193} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0}}' + m_Space: 0 + m_Property: + name: Position + m_serializedType: + m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615195 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615194} + m_Children: + - {fileID: 8926484042661615196} + - {fileID: 8926484042661615197} + - {fileID: 8926484042661615198} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615194} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615196 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615195} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615194} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615197 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615195} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615194} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615198 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615195} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615194} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615199 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615199} + m_MasterData: + m_Owner: {fileID: 8926484042661615193} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: False + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615200 +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: ee5e80e50a3ba6147ad69984abfdf6b3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615155} + m_Children: [] + m_UIPosition: {x: 0, y: 76} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615201} + - {fileID: 8926484042661615216} + - {fileID: 8926484042661615217} + - {fileID: 8926484042661615202} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615215} + compositionPosition: 0 + compositionAxes: 0 + compositionDirection: 0 + positionMode: 0 + spawnMode: 1 + mode: 0 + placementMode: 2 + surfaceCoordinates: 1 + sourceMesh: 0 + skinnedTransform: 1 + applyOrientation: 1 +--- !u!114 &8926484042661615201 +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: b47b8679b468b7347a00cdd50589bc9f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615201} + m_MasterData: + m_Owner: {fileID: 8926484042661615200} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Mesh, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":10208,"guid":"0000000000000000e000000000000000","type":0}}' + m_Space: 2147483647 + m_Property: + name: mesh + m_serializedType: + m_SerializableType: UnityEngine.Mesh, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614656} +--- !u!114 &8926484042661615202 +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: 3e3f628d80ffceb489beac74258f9cf7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615203} + - {fileID: 8926484042661615207} + - {fileID: 8926484042661615211} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615202} + m_MasterData: + m_Owner: {fileID: 8926484042661615200} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Transform, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0},"angles":{"x":0.0,"y":0.0,"z":0.0},"scale":{"x":1.0,"y":1.0,"z":1.0}}' + m_Space: 0 + m_Property: + name: transform + m_serializedType: + m_SerializableType: UnityEditor.VFX.Transform, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615203 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615202} + m_Children: + - {fileID: 8926484042661615204} + - {fileID: 8926484042661615205} + - {fileID: 8926484042661615206} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615202} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615204 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615203} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615202} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615205 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615203} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615202} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615206 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615203} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615202} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615207 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615202} + m_Children: + - {fileID: 8926484042661615208} + - {fileID: 8926484042661615209} + - {fileID: 8926484042661615210} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615202} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: angles + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615208 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615207} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615202} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615209 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615207} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615202} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615210 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615207} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615202} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615211 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615202} + m_Children: + - {fileID: 8926484042661615212} + - {fileID: 8926484042661615213} + - {fileID: 8926484042661615214} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615202} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: scale + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615212 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615211} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615202} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615213 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615211} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615202} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615214 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615211} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615202} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615215 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615215} + m_MasterData: + m_Owner: {fileID: 8926484042661615200} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615216 +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: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615216} + m_MasterData: + m_Owner: {fileID: 8926484042661615200} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: triangle + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615227} +--- !u!114 &8926484042661615217 +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: 1b2b751071c7fc14f9fa503163991826, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615218} + - {fileID: 8926484042661615219} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615217} + m_MasterData: + m_Owner: {fileID: 8926484042661615200} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0}' + m_Space: 2147483647 + m_Property: + name: square + m_serializedType: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615218 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615217} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615217} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615219 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615217} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615217} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615220 +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: 933d16b72796b6e4bb7d57f030258c92, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 5472, y: 505} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615221} + m_OutputSlots: + - {fileID: 8926484042661615222} + source: 0 +--- !u!114 &8926484042661615221 +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: b47b8679b468b7347a00cdd50589bc9f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615221} + m_MasterData: + m_Owner: {fileID: 8926484042661615220} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Mesh, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":10208,"guid":"0000000000000000e000000000000000","type":0}}' + m_Space: 2147483647 + m_Property: + name: mesh + m_serializedType: + m_SerializableType: UnityEngine.Mesh, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614656} +--- !u!114 &8926484042661615222 +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: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615222} + m_MasterData: + m_Owner: {fileID: 8926484042661615220} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: count + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615225} +--- !u!114 &8926484042661615223 +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: c42128e17c583714a909b4997c80c916, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 5764, y: 524} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615224} + - {fileID: 8926484042661615225} + - {fileID: 8926484042661615252} + m_OutputSlots: + - {fileID: 8926484042661615227} + seed: 0 + constant: 1 +--- !u!114 &8926484042661615224 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615224} + m_MasterData: + m_Owner: {fileID: 8926484042661615223} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: min + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615225 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615225} + m_MasterData: + m_Owner: {fileID: 8926484042661615223} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: max + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615222} +--- !u!114 &8926484042661615227 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615227} + m_MasterData: + m_Owner: {fileID: 8926484042661615223} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: r + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615216} +--- !u!114 &8926484042661615229 +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: 08b03824843e33840a03794c433c3cef, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 6078, y: 890} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615230} + - {fileID: 8926484042661615231} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615154} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661615155} + slotIndex: 0 + m_OutputFlowSlot: + - link: [] + blendMode: 3 + cullMode: 0 + zWriteMode: 0 + zTestMode: 0 + useAlphaClipping: 0 + generateMotionVector: 0 + excludeFromTAA: 0 + sortingPriority: 0 + m_SubOutputs: + - {fileID: 8926484042661615233} + colorMapping: 0 + uvMode: 0 + flipbookLayout: 0 + useSoftParticle: 0 + vfxSystemSortPriority: 0 + sort: 0 + sortMode: 0 + revertSorting: 0 + indirectDraw: 0 + computeCulling: 0 + frustumCulling: 0 + castShadows: 0 + useExposureWeight: 0 + needsOwnSort: 0 + shaderGraph: {fileID: 0} + materialSettings: + m_PropertyNames: [] + m_PropertyValues: [] + useBaseColorMap: 3 + useMaskMap: 0 + useNormalMap: 0 + useEmissiveMap: 0 + colorMode: 1 + useEmissive: 0 + materialType: 0 + onlyAmbientLighting: 0 + diffusionProfileAsset: {fileID: 0} + multiplyThicknessWithAlpha: 0 + doubleSided: 0 + preserveSpecularLighting: 0 + enableSpecular: 1 + lightmapRemapMode: 0 + lightmapRemapRanges: 0 + useAlphaRemap: 0 + emissiveMode: 0 + useEmissiveChannelScale: 0 + useColorAbsorption: 1 + receiveShadows: 1 + enableCookie: 1 + enableEnvLight: 1 +--- !u!114 &8926484042661615230 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615230} + m_MasterData: + m_Owner: {fileID: 8926484042661615229} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.5 + m_Space: 2147483647 + m_Property: + name: smoothness + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615231 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615231} + m_MasterData: + m_Owner: {fileID: 8926484042661615229} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: metallic + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615233 +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: 081ffb0090424ba4cb05370a42ead6b9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + opaqueRenderQueue: 0 + transparentRenderQueue: 1 +--- !u!114 &8926484042661615234 +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: 756b42789c29cb74085def1da319fa0b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661615239} + - {fileID: 8926484042661615241} + m_UIPosition: {x: 6896, y: 1237} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615235} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615268} + m_InputFlowSlot: + - link: [] + m_OutputFlowSlot: + - link: [] + blendMode: 3 + cullMode: 0 + zWriteMode: 0 + zTestMode: 0 + useAlphaClipping: 0 + generateMotionVector: 0 + excludeFromTAA: 0 + sortingPriority: 0 + m_SubOutputs: + - {fileID: 8926484042661615237} + colorMapping: 0 + uvMode: 0 + flipbookLayout: 0 + useSoftParticle: 0 + vfxSystemSortPriority: 0 + sort: 0 + sortMode: 0 + revertSorting: 0 + indirectDraw: 0 + computeCulling: 0 + frustumCulling: 0 + castShadows: 0 + useExposureWeight: 0 + needsOwnSort: 0 + shaderGraph: {fileID: 0} + materialSettings: + m_PropertyNames: [] + m_PropertyValues: [] + tilingMode: 0 + swapUV: 0 + UseCustomZAxis: 0 +--- !u!114 &8926484042661615235 +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: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615235} + m_MasterData: + m_Owner: {fileID: 8926484042661615234} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: mainTexture + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615237 +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: 081ffb0090424ba4cb05370a42ead6b9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + opaqueRenderQueue: 0 + transparentRenderQueue: 1 +--- !u!114 &8926484042661615238 +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: d78581a96eae8bf4398c282eb0b098bd, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 8926484042661615187} + dataType: 1 + capacity: 128 + stripCapacity: 1 + particlePerStripCount: 128 + needsComputeBounds: 0 + boundsMode: 0 + m_Space: 0 +--- !u!114 &8926484042661615239 +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: d16c6aeaef944094b9a1633041804207, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615234} + m_Children: [] + m_UIPosition: {x: 0, y: 2} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615240} + mode: 1 + axes: 4 +--- !u!114 &8926484042661615240 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615240} + m_MasterData: + m_Owner: {fileID: 8926484042661615239} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615241 +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: d16c6aeaef944094b9a1633041804207, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615234} + m_Children: [] + m_UIPosition: {x: 0, y: 91} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615242} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615251} + mode: 3 + axes: 4 +--- !u!114 &8926484042661615242 +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: 1b605c022ee79394a8a776c0869b3f9a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615243} + - {fileID: 8926484042661615247} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615242} + m_MasterData: + m_Owner: {fileID: 8926484042661615241} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Line, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"start":{"x":0.0,"y":0.0,"z":0.0},"end":{"x":-1.0,"y":0.0,"z":0.0}}' + m_Space: 0 + m_Property: + name: Line + m_serializedType: + m_SerializableType: UnityEditor.VFX.Line, Unity.VisualEffectGraph.Editor, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615243 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615242} + m_Children: + - {fileID: 8926484042661615244} + - {fileID: 8926484042661615245} + - {fileID: 8926484042661615246} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615242} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: start + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615244 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615243} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615242} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615245 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615243} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615242} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615246 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615243} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615242} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615247 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615242} + m_Children: + - {fileID: 8926484042661615248} + - {fileID: 8926484042661615249} + - {fileID: 8926484042661615250} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615242} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: end + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615248 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615247} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615242} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615249 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615247} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615242} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615250 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615247} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615242} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615251 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615251} + m_MasterData: + m_Owner: {fileID: 8926484042661615241} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: False + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615252 +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: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615252} + m_MasterData: + m_Owner: {fileID: 8926484042661615223} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: seed + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615255} +--- !u!114 &8926484042661615253 +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: 7e542050e3cd59f4b8f545e05287e56c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 5561, y: 635} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615254} + m_OutputSlots: + - {fileID: 8926484042661615255} + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615254 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615254} + m_MasterData: + m_Owner: {fileID: 8926484042661615253} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615259} +--- !u!114 &8926484042661615255 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615255} + m_MasterData: + m_Owner: {fileID: 8926484042661615253} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615252} +--- !u!114 &8926484042661615256 +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: b8ee8a7543fa09e42a7c8616f60d2ad7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 5372, y: 674} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615257} + - {fileID: 8926484042661615258} + m_OutputSlots: + - {fileID: 8926484042661615259} + m_Operands: + - name: a + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - name: b + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615257 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615257} + m_MasterData: + m_Owner: {fileID: 8926484042661615256} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615261} +--- !u!114 &8926484042661615258 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615258} + m_MasterData: + m_Owner: {fileID: 8926484042661615256} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 10 + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615259 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615259} + m_MasterData: + m_Owner: {fileID: 8926484042661615256} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615254} +--- !u!114 &8926484042661615260 +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: a72fbb93ebe17974e90a144ef2ec8ceb, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 5169, y: 739} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615261} + m_BuiltInParameters: 1024 +--- !u!114 &8926484042661615261 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615261} + m_MasterData: + m_Owner: {fileID: 8926484042661615260} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: Total Time + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615257} +--- !u!114 &8926484042661615262 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615164} + m_Children: [] + m_UIPosition: {x: 0, y: 132} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615263} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615264} + attribute: lifetime + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615263 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615263} + m_MasterData: + m_Owner: {fileID: 8926484042661615262} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: Lifetime + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615264 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615264} + m_MasterData: + m_Owner: {fileID: 8926484042661615262} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615265 +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: 4bb7134219ee20d44b7ae94bc9dd4cb2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 6797, y: 891} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615179} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661615185} + slotIndex: 0 + m_OutputFlowSlot: + - link: [] + blendMode: 1 + cullMode: 3 + zWriteMode: 0 + zTestMode: 0 + useAlphaClipping: 0 + generateMotionVector: 0 + excludeFromTAA: 0 + sortingPriority: 0 + m_SubOutputs: + - {fileID: 8926484042661615267} + colorMapping: 0 + uvMode: 0 + flipbookLayout: 0 + useSoftParticle: 0 + vfxSystemSortPriority: 0 + sort: 0 + sortMode: 0 + revertSorting: 0 + indirectDraw: 0 + computeCulling: 0 + frustumCulling: 0 + castShadows: 0 + useExposureWeight: 0 + needsOwnSort: 0 +--- !u!114 &8926484042661615267 +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: 081ffb0090424ba4cb05370a42ead6b9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + opaqueRenderQueue: 0 + transparentRenderQueue: 1 +--- !u!114 &8926484042661615268 +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: d78581a96eae8bf4398c282eb0b098bd, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 8926484042661615234} + dataType: 1 + capacity: 128 + stripCapacity: 1 + particlePerStripCount: 128 + needsComputeBounds: 0 + boundsMode: 0 + m_Space: 0 +--- !u!114 &8926484042661615269 +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: d1622f1b21236b9418846ede6cf6bd40, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661615276} + - {fileID: 8926484042661615279} + - {fileID: 8926484042661615361} + - {fileID: 8926484042661615830} + m_UIPosition: {x: 1055, y: 1065} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615270} + - {fileID: 8926484042661615271} + - {fileID: 8926484042661615272} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661614568} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661614583} + slotIndex: 0 + m_OutputFlowSlot: + - link: [] + blendMode: 3 + cullMode: 0 + zWriteMode: 0 + zTestMode: 0 + useAlphaClipping: 0 + generateMotionVector: 0 + excludeFromTAA: 0 + sortingPriority: 0 + m_SubOutputs: + - {fileID: 8926484042661615274} + colorMapping: 0 + uvMode: 0 + flipbookLayout: 0 + useSoftParticle: 0 + vfxSystemSortPriority: 0 + sort: 0 + sortMode: 0 + revertSorting: 0 + indirectDraw: 0 + computeCulling: 0 + frustumCulling: 0 + castShadows: 1 + useExposureWeight: 0 + needsOwnSort: 0 + shaderGraph: {fileID: 0} + materialSettings: + m_PropertyNames: [] + m_PropertyValues: [] + useBaseColorMap: 3 + useMaskMap: 0 + useNormalMap: 0 + useEmissiveMap: 0 + colorMode: 1 + useEmissive: 0 + materialType: 0 + onlyAmbientLighting: 0 + diffusionProfileAsset: {fileID: 0} + multiplyThicknessWithAlpha: 0 + doubleSided: 0 + preserveSpecularLighting: 0 + enableSpecular: 1 + lightmapRemapMode: 0 + lightmapRemapRanges: 0 + useAlphaRemap: 0 + emissiveMode: 0 + useEmissiveChannelScale: 0 + useColorAbsorption: 1 + receiveShadows: 1 + enableCookie: 1 + enableEnvLight: 1 + primitiveType: 1 + normalBending: 0 +--- !u!114 &8926484042661615270 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615270} + m_MasterData: + m_Owner: {fileID: 8926484042661615269} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: smoothness + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615271 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615271} + m_MasterData: + m_Owner: {fileID: 8926484042661615269} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: metallic + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615272 +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: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615272} + m_MasterData: + m_Owner: {fileID: 8926484042661615269} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: baseColorMap + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615274 +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: 081ffb0090424ba4cb05370a42ead6b9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + opaqueRenderQueue: 0 + transparentRenderQueue: 1 +--- !u!114 &8926484042661615276 +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: 01ec2c1930009b04ea08905b47262415, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615269} + m_Children: [] + m_UIPosition: {x: 0, y: 2} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615277} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615278} + attribute: size + Composition: 2 + AlphaComposition: 0 + SampleMode: 0 + Mode: 1 + ColorMode: 3 + channels: 6 +--- !u!114 &8926484042661615277 +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: c117b74c5c58db542bffe25c78fe92db, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615277} + m_MasterData: + m_Owner: {fileID: 8926484042661615276} + m_Value: + m_Type: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"frames":[{"time":0.0,"value":0.0,"inTangent":10.950708389282227,"outTangent":10.950708389282227,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":0.25,"value":1.0,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":1.0,"value":0.0,"inTangent":-4.416197776794434,"outTangent":-4.416197776794434,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false}],"preWrapMode":8,"postWrapMode":8,"version":1}' + m_Space: 2147483647 + m_Property: + name: Size + m_serializedType: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615278 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615278} + m_MasterData: + m_Owner: {fileID: 8926484042661615276} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615279 +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: d16c6aeaef944094b9a1633041804207, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615269} + m_Children: [] + m_UIPosition: {x: 0, y: 111} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615339} + - {fileID: 8926484042661615344} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615290} + mode: 4 + axes: 4 +--- !u!114 &8926484042661615290 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615290} + m_MasterData: + m_Owner: {fileID: 8926484042661615279} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615314 +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: 486e063e1ed58c843942ea4122829ab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 419, y: 1435} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615315} + attribute: direction + location: 0 + mask: xyz +--- !u!114 &8926484042661615315 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615316} + - {fileID: 8926484042661615317} + - {fileID: 8926484042661615318} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615315} + m_MasterData: + m_Owner: {fileID: 8926484042661615314} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: direction + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615353} +--- !u!114 &8926484042661615316 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615315} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615315} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615317 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615315} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615315} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615318 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615315} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615315} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615339 +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: e8f2b4a846fd4c14a893cde576ad172b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615340} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615339} + m_MasterData: + m_Owner: {fileID: 8926484042661615279} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.DirectionType, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"direction":{"x":0.0,"y":1.0,"z":0.0}}' + m_Space: 1 + m_Property: + name: AxisZ + m_serializedType: + m_SerializableType: UnityEditor.VFX.DirectionType, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615357} +--- !u!114 &8926484042661615340 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615339} + m_Children: + - {fileID: 8926484042661615341} + - {fileID: 8926484042661615342} + - {fileID: 8926484042661615343} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615339} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: direction + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615341 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615340} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615339} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615342 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615340} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615339} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615343 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615340} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615339} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615344 +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: e8f2b4a846fd4c14a893cde576ad172b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615345} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615344} + m_MasterData: + m_Owner: {fileID: 8926484042661615279} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.DirectionType, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"direction":{"x":0.0,"y":1.0,"z":0.0}}' + m_Space: 0 + m_Property: + name: AxisY + m_serializedType: + m_SerializableType: UnityEditor.VFX.DirectionType, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615345 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615344} + m_Children: + - {fileID: 8926484042661615346} + - {fileID: 8926484042661615347} + - {fileID: 8926484042661615348} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615344} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: direction + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615346 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615345} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615344} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615347 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615345} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615344} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615348 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615345} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615344} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615349 +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: b8ee8a7543fa09e42a7c8616f60d2ad7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 705, y: 1450} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615353} + - {fileID: 8926484042661615351} + m_OutputSlots: + - {fileID: 8926484042661615357} + m_Operands: + - name: a + type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + - name: b + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615351 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615351} + m_MasterData: + m_Owner: {fileID: 8926484042661615349} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: -1 + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615353 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615354} + - {fileID: 8926484042661615355} + - {fileID: 8926484042661615356} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615353} + m_MasterData: + m_Owner: {fileID: 8926484042661615349} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":1.0,"z":1.0}' + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615315} +--- !u!114 &8926484042661615354 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615353} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615353} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615355 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615353} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615353} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615356 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615353} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615353} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615357 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615358} + - {fileID: 8926484042661615359} + - {fileID: 8926484042661615360} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615357} + m_MasterData: + m_Owner: {fileID: 8926484042661615349} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615339} +--- !u!114 &8926484042661615358 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615357} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615357} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615359 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615357} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615357} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615360 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615357} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615357} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615361 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615269} + m_Children: [] + m_UIPosition: {x: 0, y: 260} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615362} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615366} + attribute: color + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615362 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615363} + - {fileID: 8926484042661615364} + - {fileID: 8926484042661615365} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615362} + m_MasterData: + m_Owner: {fileID: 8926484042661615361} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":16.0,"y":16.0,"z":16.0}' + m_Space: 2147483647 + m_Property: + name: Color + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615363 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615362} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615362} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615364 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615362} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615362} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615365 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615362} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615362} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615366 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615366} + m_MasterData: + m_Owner: {fileID: 8926484042661615361} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615368 +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: 9dfea48843f53fc438eabc12a3a30abc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661615395} + - {fileID: 8926484042661615399} + - {fileID: 8926484042661615454} + m_UIPosition: {x: 9163, y: -259} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615369} + - {fileID: 8926484042661615378} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615382} + m_InputFlowSlot: + - link: [] + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661615462} + slotIndex: 0 +--- !u!114 &8926484042661615369 +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: 1b605c022ee79394a8a776c0869b3f9a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615370} + - {fileID: 8926484042661615374} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615369} + m_MasterData: + m_Owner: {fileID: 8926484042661615368} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"center":{"x":0.0,"y":0.0,"z":0.0},"size":{"x":1.0,"y":1.0,"z":1.0}}' + m_Space: 0 + m_Property: + name: bounds + m_serializedType: + m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615370 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615369} + m_Children: + - {fileID: 8926484042661615371} + - {fileID: 8926484042661615372} + - {fileID: 8926484042661615373} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615369} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: center + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615371 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615370} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615369} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615372 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615370} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615369} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615373 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615370} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615369} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615374 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615369} + m_Children: + - {fileID: 8926484042661615375} + - {fileID: 8926484042661615376} + - {fileID: 8926484042661615377} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615369} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: size + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615375 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615374} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615369} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615376 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615374} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615369} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615377 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615374} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615369} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615378 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615379} + - {fileID: 8926484042661615380} + - {fileID: 8926484042661615381} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615378} + m_MasterData: + m_Owner: {fileID: 8926484042661615368} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.5,"y":0.5,"z":0.5}' + m_Space: 2147483647 + m_Property: + name: boundsPadding + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615379 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615378} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615378} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615380 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615378} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615378} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615381 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615378} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615378} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615382 +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: d78581a96eae8bf4398c282eb0b098bd, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 8926484042661615368} + - {fileID: 8926484042661615462} + - {fileID: 8926484042661614759} + dataType: 0 + capacity: 10000 + stripCapacity: 16 + particlePerStripCount: 16 + needsComputeBounds: 0 + boundsMode: 0 + m_Space: 1 +--- !u!114 &8926484042661615395 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615368} + m_Children: [] + m_UIPosition: {x: 0, y: 2} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615396} + - {fileID: 8926484042661615397} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615398} + attribute: lifetime + Composition: 0 + Source: 0 + Random: 2 + channels: 6 +--- !u!114 &8926484042661615396 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615396} + m_MasterData: + m_Owner: {fileID: 8926484042661615395} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: A + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615397 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615397} + m_MasterData: + m_Owner: {fileID: 8926484042661615395} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 3 + m_Space: 2147483647 + m_Property: + name: B + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615398 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615398} + m_MasterData: + m_Owner: {fileID: 8926484042661615395} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615399 +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: ee5e80e50a3ba6147ad69984abfdf6b3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615368} + m_Children: [] + m_UIPosition: {x: 0, y: 96} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615400} + - {fileID: 8926484042661615464} + - {fileID: 8926484042661615465} + - {fileID: 8926484042661615401} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615414} + compositionPosition: 0 + compositionAxes: 0 + compositionDirection: 0 + positionMode: 0 + spawnMode: 1 + mode: 1 + placementMode: 2 + surfaceCoordinates: 1 + sourceMesh: 0 + skinnedTransform: 1 + applyOrientation: 1 +--- !u!114 &8926484042661615400 +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: b47b8679b468b7347a00cdd50589bc9f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615400} + m_MasterData: + m_Owner: {fileID: 8926484042661615399} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Mesh, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":10208,"guid":"0000000000000000e000000000000000","type":0}}' + m_Space: 2147483647 + m_Property: + name: mesh + m_serializedType: + m_SerializableType: UnityEngine.Mesh, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614656} +--- !u!114 &8926484042661615401 +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: 3e3f628d80ffceb489beac74258f9cf7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615402} + - {fileID: 8926484042661615406} + - {fileID: 8926484042661615410} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615401} + m_MasterData: + m_Owner: {fileID: 8926484042661615399} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Transform, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0},"angles":{"x":0.0,"y":0.0,"z":0.0},"scale":{"x":1.0,"y":1.0,"z":1.0}}' + m_Space: 0 + m_Property: + name: transform + m_serializedType: + m_SerializableType: UnityEditor.VFX.Transform, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615402 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615401} + m_Children: + - {fileID: 8926484042661615403} + - {fileID: 8926484042661615404} + - {fileID: 8926484042661615405} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615401} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615403 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615402} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615401} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615404 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615402} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615401} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615405 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615402} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615401} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615406 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615401} + m_Children: + - {fileID: 8926484042661615407} + - {fileID: 8926484042661615408} + - {fileID: 8926484042661615409} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615401} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: angles + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615407 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615406} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615401} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615408 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615406} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615401} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615409 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615406} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615401} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615410 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615401} + m_Children: + - {fileID: 8926484042661615411} + - {fileID: 8926484042661615412} + - {fileID: 8926484042661615413} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615401} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: scale + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615411 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615410} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615401} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615412 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615410} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615401} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615413 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615410} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615401} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615414 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615414} + m_MasterData: + m_Owner: {fileID: 8926484042661615399} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615454 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615368} + m_Children: [] + m_UIPosition: {x: 0, y: 321} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615455} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615456} + attribute: size + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615455 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615455} + m_MasterData: + m_Owner: {fileID: 8926484042661615454} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.02 + m_Space: 2147483647 + m_Property: + name: Size + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615499} +--- !u!114 &8926484042661615456 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615456} + m_MasterData: + m_Owner: {fileID: 8926484042661615454} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615462 +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: 2dc095764ededfa4bb32fa602511ea4b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 9299, y: 686} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615382} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661615368} + slotIndex: 0 + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661614759} + slotIndex: 0 + integration: 0 + angularIntegration: 0 + ageParticles: 1 + reapParticles: 1 + skipZeroDeltaUpdate: 0 +--- !u!114 &8926484042661615464 +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: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615464} + m_MasterData: + m_Owner: {fileID: 8926484042661615399} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: triangle + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615475} +--- !u!114 &8926484042661615465 +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: 1b2b751071c7fc14f9fa503163991826, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615466} + - {fileID: 8926484042661615467} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615465} + m_MasterData: + m_Owner: {fileID: 8926484042661615399} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0}' + m_Space: 2147483647 + m_Property: + name: square + m_serializedType: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615466 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615465} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615465} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615467 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615465} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615465} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615468 +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: 933d16b72796b6e4bb7d57f030258c92, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 8660, y: 249} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615469} + m_OutputSlots: + - {fileID: 8926484042661615470} + source: 0 +--- !u!114 &8926484042661615469 +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: b47b8679b468b7347a00cdd50589bc9f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615469} + m_MasterData: + m_Owner: {fileID: 8926484042661615468} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Mesh, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":10208,"guid":"0000000000000000e000000000000000","type":0}}' + m_Space: 2147483647 + m_Property: + name: mesh + m_serializedType: + m_SerializableType: UnityEngine.Mesh, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614656} +--- !u!114 &8926484042661615470 +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: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615470} + m_MasterData: + m_Owner: {fileID: 8926484042661615468} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: count + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615473} +--- !u!114 &8926484042661615471 +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: c42128e17c583714a909b4997c80c916, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 8940, y: 259} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615472} + - {fileID: 8926484042661615473} + - {fileID: 8926484042661615474} + m_OutputSlots: + - {fileID: 8926484042661615475} + seed: 0 + constant: 1 +--- !u!114 &8926484042661615472 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615472} + m_MasterData: + m_Owner: {fileID: 8926484042661615471} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: min + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615473 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615473} + m_MasterData: + m_Owner: {fileID: 8926484042661615471} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: max + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615470} +--- !u!114 &8926484042661615474 +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: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615474} + m_MasterData: + m_Owner: {fileID: 8926484042661615471} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: seed + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615478} +--- !u!114 &8926484042661615475 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615475} + m_MasterData: + m_Owner: {fileID: 8926484042661615471} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: r + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615464} +--- !u!114 &8926484042661615476 +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: 7e542050e3cd59f4b8f545e05287e56c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 8749, y: 379} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615477} + m_OutputSlots: + - {fileID: 8926484042661615478} + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615477 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615477} + m_MasterData: + m_Owner: {fileID: 8926484042661615476} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615482} +--- !u!114 &8926484042661615478 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615478} + m_MasterData: + m_Owner: {fileID: 8926484042661615476} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615474} +--- !u!114 &8926484042661615479 +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: b8ee8a7543fa09e42a7c8616f60d2ad7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 8560, y: 418} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615480} + - {fileID: 8926484042661615481} + m_OutputSlots: + - {fileID: 8926484042661615482} + m_Operands: + - name: a + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - name: b + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615480 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615480} + m_MasterData: + m_Owner: {fileID: 8926484042661615479} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615484} +--- !u!114 &8926484042661615481 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615481} + m_MasterData: + m_Owner: {fileID: 8926484042661615479} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 10 + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615482 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615482} + m_MasterData: + m_Owner: {fileID: 8926484042661615479} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615477} +--- !u!114 &8926484042661615483 +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: a72fbb93ebe17974e90a144ef2ec8ceb, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 8357, y: 483} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615484} + m_BuiltInParameters: 1024 +--- !u!114 &8926484042661615484 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615484} + m_MasterData: + m_Owner: {fileID: 8926484042661615483} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: Total Time + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615480} +--- !u!114 &8926484042661615485 +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: c42128e17c583714a909b4997c80c916, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 8493, y: 682} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615486} + - {fileID: 8926484042661615487} + - {fileID: 8926484042661615488} + m_OutputSlots: + - {fileID: 8926484042661615489} + seed: 0 + constant: 1 +--- !u!114 &8926484042661615486 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615486} + m_MasterData: + m_Owner: {fileID: 8926484042661615485} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: min + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615487 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615487} + m_MasterData: + m_Owner: {fileID: 8926484042661615485} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: max + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615488 +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: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615488} + m_MasterData: + m_Owner: {fileID: 8926484042661615485} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 654 + m_Space: 2147483647 + m_Property: + name: seed + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615489 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615489} + m_MasterData: + m_Owner: {fileID: 8926484042661615485} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: r + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615493} +--- !u!114 &8926484042661615490 +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: b4bb186c1c47c9d4191c5f523b1744b8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 8735, y: 654} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615491} + - {fileID: 8926484042661615492} + - {fileID: 8926484042661615493} + m_OutputSlots: + - {fileID: 8926484042661615494} + m_Type: + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615491 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615491} + m_MasterData: + m_Owner: {fileID: 8926484042661615490} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615113} +--- !u!114 &8926484042661615492 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615492} + m_MasterData: + m_Owner: {fileID: 8926484042661615490} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615493 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615493} + m_MasterData: + m_Owner: {fileID: 8926484042661615490} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.5 + m_Space: 2147483647 + m_Property: + name: s + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615489} +--- !u!114 &8926484042661615494 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615494} + m_MasterData: + m_Owner: {fileID: 8926484042661615490} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615498} +--- !u!114 &8926484042661615495 +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: fab5164109319454a9bccf2583401f6e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 8940, y: 536} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615496} + - {fileID: 8926484042661615497} + - {fileID: 8926484042661615498} + m_OutputSlots: + - {fileID: 8926484042661615499} + m_Type: + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615496 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615496} + m_MasterData: + m_Owner: {fileID: 8926484042661615495} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615109} +--- !u!114 &8926484042661615497 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615497} + m_MasterData: + m_Owner: {fileID: 8926484042661615495} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615111} +--- !u!114 &8926484042661615498 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615498} + m_MasterData: + m_Owner: {fileID: 8926484042661615495} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.5 + m_Space: 2147483647 + m_Property: + name: s + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615494} +--- !u!114 &8926484042661615499 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615499} + m_MasterData: + m_Owner: {fileID: 8926484042661615495} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615455} +--- !u!114 &8926484042661615500 +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: 9dfea48843f53fc438eabc12a3a30abc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661615515} + - {fileID: 8926484042661615519} + - {fileID: 8926484042661615560} + - {fileID: 8926484042661615544} + - {fileID: 8926484042661615572} + m_UIPosition: {x: 2783, y: -71} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615501} + - {fileID: 8926484042661615510} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615514} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661615627} + slotIndex: 0 + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661615535} + slotIndex: 0 +--- !u!114 &8926484042661615501 +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: 1b605c022ee79394a8a776c0869b3f9a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615502} + - {fileID: 8926484042661615506} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615501} + m_MasterData: + m_Owner: {fileID: 8926484042661615500} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"center":{"x":0.0,"y":0.0,"z":0.0},"size":{"x":1.0,"y":1.0,"z":1.0}}' + m_Space: 0 + m_Property: + name: bounds + m_serializedType: + m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615502 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615501} + m_Children: + - {fileID: 8926484042661615503} + - {fileID: 8926484042661615504} + - {fileID: 8926484042661615505} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615501} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: center + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615503 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615502} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615501} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615504 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615502} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615501} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615505 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615502} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615501} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615506 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615501} + m_Children: + - {fileID: 8926484042661615507} + - {fileID: 8926484042661615508} + - {fileID: 8926484042661615509} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615501} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: size + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615507 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615506} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615501} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615508 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615506} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615501} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615509 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615506} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615501} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615510 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615511} + - {fileID: 8926484042661615512} + - {fileID: 8926484042661615513} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615510} + m_MasterData: + m_Owner: {fileID: 8926484042661615500} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: boundsPadding + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615511 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615510} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615510} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615512 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615510} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615510} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615513 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615510} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615510} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615514 +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: d78581a96eae8bf4398c282eb0b098bd, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 8926484042661615500} + - {fileID: 8926484042661615535} + - {fileID: 8926484042661615537} + - {fileID: 8926484042661615619} + - {fileID: 8926484042661615638} + dataType: 0 + capacity: 10000 + stripCapacity: 1 + particlePerStripCount: 128 + needsComputeBounds: 0 + boundsMode: 0 + m_Space: 1 +--- !u!114 &8926484042661615515 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615500} + m_Children: [] + m_UIPosition: {x: 0, y: 2} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615516} + - {fileID: 8926484042661615517} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615518} + attribute: lifetime + Composition: 0 + Source: 0 + Random: 2 + channels: 6 +--- !u!114 &8926484042661615516 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615516} + m_MasterData: + m_Owner: {fileID: 8926484042661615515} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: A + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615671} +--- !u!114 &8926484042661615517 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615517} + m_MasterData: + m_Owner: {fileID: 8926484042661615515} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 3 + m_Space: 2147483647 + m_Property: + name: B + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615669} +--- !u!114 &8926484042661615518 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615518} + m_MasterData: + m_Owner: {fileID: 8926484042661615515} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615519 +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: ee5e80e50a3ba6147ad69984abfdf6b3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615500} + m_Children: [] + m_UIPosition: {x: 0, y: 96} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615520} + - {fileID: 8926484042661615521} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615534} + compositionPosition: 0 + compositionAxes: 0 + compositionDirection: 0 + positionMode: 0 + spawnMode: 0 + mode: 1 + placementMode: 2 + surfaceCoordinates: 1 + sourceMesh: 0 + skinnedTransform: 1 + applyOrientation: 1 +--- !u!114 &8926484042661615520 +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: b47b8679b468b7347a00cdd50589bc9f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615520} + m_MasterData: + m_Owner: {fileID: 8926484042661615519} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Mesh, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":10208,"guid":"0000000000000000e000000000000000","type":0}}' + m_Space: 2147483647 + m_Property: + name: mesh + m_serializedType: + m_SerializableType: UnityEngine.Mesh, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614656} +--- !u!114 &8926484042661615521 +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: 3e3f628d80ffceb489beac74258f9cf7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615522} + - {fileID: 8926484042661615526} + - {fileID: 8926484042661615530} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615521} + m_MasterData: + m_Owner: {fileID: 8926484042661615519} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Transform, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0},"angles":{"x":0.0,"y":0.0,"z":0.0},"scale":{"x":1.0,"y":1.0,"z":1.0}}' + m_Space: 0 + m_Property: + name: transform + m_serializedType: + m_SerializableType: UnityEditor.VFX.Transform, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615522 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615521} + m_Children: + - {fileID: 8926484042661615523} + - {fileID: 8926484042661615524} + - {fileID: 8926484042661615525} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615521} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615523 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615522} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615521} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615524 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615522} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615521} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615525 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615522} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615521} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615526 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615521} + m_Children: + - {fileID: 8926484042661615527} + - {fileID: 8926484042661615528} + - {fileID: 8926484042661615529} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615521} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: angles + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615527 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615526} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615521} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615528 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615526} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615521} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615529 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615526} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615521} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615530 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615521} + m_Children: + - {fileID: 8926484042661615531} + - {fileID: 8926484042661615532} + - {fileID: 8926484042661615533} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615521} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: scale + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615531 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615530} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615521} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615532 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615530} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615521} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615533 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615530} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615521} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615534 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615534} + m_MasterData: + m_Owner: {fileID: 8926484042661615519} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615535 +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: 2dc095764ededfa4bb32fa602511ea4b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 2783, y: 761} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615514} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661615500} + slotIndex: 0 + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661615537} + slotIndex: 0 + - context: {fileID: 8926484042661615619} + slotIndex: 0 + - context: {fileID: 8926484042661615638} + slotIndex: 0 + integration: 0 + angularIntegration: 0 + ageParticles: 1 + reapParticles: 1 + skipZeroDeltaUpdate: 0 +--- !u!114 &8926484042661615537 +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: e11cc5d75a2f7ad44bf3be8842ccab7f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661615635} + - {fileID: 8926484042661615839} + m_UIPosition: {x: 2310, y: 1003} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615662} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615514} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661615535} + slotIndex: 0 + m_OutputFlowSlot: + - link: [] + blendMode: 1 + cullMode: 3 + zWriteMode: 0 + zTestMode: 0 + useAlphaClipping: 0 + generateMotionVector: 0 + excludeFromTAA: 0 + sortingPriority: 0 + m_SubOutputs: + - {fileID: 8926484042661615543} + colorMapping: 0 + uvMode: 0 + flipbookLayout: 0 + useSoftParticle: 0 + vfxSystemSortPriority: 0 + sort: 0 + sortMode: 0 + revertSorting: 0 + indirectDraw: 0 + computeCulling: 0 + frustumCulling: 0 + castShadows: 1 + useExposureWeight: 0 + needsOwnSort: 0 + useTargetOffset: 0 + useNativeLines: 0 +--- !u!114 &8926484042661615543 +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: 081ffb0090424ba4cb05370a42ead6b9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + opaqueRenderQueue: 0 + transparentRenderQueue: 1 +--- !u!114 &8926484042661615544 +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: ee5e80e50a3ba6147ad69984abfdf6b3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615500} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615545} + - {fileID: 8926484042661615546} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615559} + compositionPosition: 0 + compositionAxes: 0 + compositionDirection: 0 + positionMode: 0 + spawnMode: 0 + mode: 1 + placementMode: 2 + surfaceCoordinates: 1 + sourceMesh: 0 + skinnedTransform: 1 + applyOrientation: 1 +--- !u!114 &8926484042661615545 +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: b47b8679b468b7347a00cdd50589bc9f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615545} + m_MasterData: + m_Owner: {fileID: 8926484042661615544} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Mesh, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":10208,"guid":"0000000000000000e000000000000000","type":0}}' + m_Space: 2147483647 + m_Property: + name: mesh + m_serializedType: + m_SerializableType: UnityEngine.Mesh, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614656} +--- !u!114 &8926484042661615546 +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: 3e3f628d80ffceb489beac74258f9cf7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615547} + - {fileID: 8926484042661615551} + - {fileID: 8926484042661615555} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615546} + m_MasterData: + m_Owner: {fileID: 8926484042661615544} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Transform, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0},"angles":{"x":0.0,"y":0.0,"z":0.0},"scale":{"x":1.0,"y":1.0,"z":1.0}}' + m_Space: 0 + m_Property: + name: transform + m_serializedType: + m_SerializableType: UnityEditor.VFX.Transform, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615547 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615546} + m_Children: + - {fileID: 8926484042661615548} + - {fileID: 8926484042661615549} + - {fileID: 8926484042661615550} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615546} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615548 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615547} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615546} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615549 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615547} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615546} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615550 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615547} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615546} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615551 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615546} + m_Children: + - {fileID: 8926484042661615552} + - {fileID: 8926484042661615553} + - {fileID: 8926484042661615554} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615546} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: angles + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615552 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615551} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615546} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615553 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615551} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615546} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615554 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615551} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615546} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615555 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615546} + m_Children: + - {fileID: 8926484042661615556} + - {fileID: 8926484042661615557} + - {fileID: 8926484042661615558} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615546} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: scale + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615556 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615555} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615546} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615557 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615555} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615546} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615558 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615555} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615546} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615559 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615559} + m_MasterData: + m_Owner: {fileID: 8926484042661615544} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615560 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615500} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615561} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615566} + attribute: targetPosition + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615561 +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: 5265657162cc1a241bba03a3b0476d99, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615562} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615561} + m_MasterData: + m_Owner: {fileID: 8926484042661615560} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0}}' + m_Space: 1 + m_Property: + name: TargetPosition + m_serializedType: + m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615568} +--- !u!114 &8926484042661615562 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615561} + m_Children: + - {fileID: 8926484042661615563} + - {fileID: 8926484042661615564} + - {fileID: 8926484042661615565} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615561} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615563 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615562} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615561} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615564 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615562} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615561} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615565 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615562} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615561} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615566 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615566} + m_MasterData: + m_Owner: {fileID: 8926484042661615560} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615567 +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: 486e063e1ed58c843942ea4122829ab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 2523, y: 398} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615568} + attribute: position + location: 0 + mask: xyz +--- !u!114 &8926484042661615568 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615569} + - {fileID: 8926484042661615570} + - {fileID: 8926484042661615571} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615568} + m_MasterData: + m_Owner: {fileID: 8926484042661615567} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615561} +--- !u!114 &8926484042661615569 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615568} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615568} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615570 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615568} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615568} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615571 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615568} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615568} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615572 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615500} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615573} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615574} + attribute: lifetime + Composition: 2 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615573 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615573} + m_MasterData: + m_Owner: {fileID: 8926484042661615572} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: Lifetime + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615610} +--- !u!114 &8926484042661615574 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615574} + m_MasterData: + m_Owner: {fileID: 8926484042661615572} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615575 +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: 486e063e1ed58c843942ea4122829ab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 2188, y: 650} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615576} + attribute: targetPosition + location: 0 + mask: xyz +--- !u!114 &8926484042661615576 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615577} + - {fileID: 8926484042661615578} + - {fileID: 8926484042661615579} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615576} + m_MasterData: + m_Owner: {fileID: 8926484042661615575} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: targetPosition + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615581} +--- !u!114 &8926484042661615577 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615576} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615576} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615578 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615576} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615576} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615579 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615576} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615576} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615580 +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: 016e81d0498fcc346ba22c57b5ca4556, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 2503, y: 680} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: + - {fileID: 8926484042661615581} + - {fileID: 8926484042661615585} + m_OutputSlots: + - {fileID: 8926484042661615589} + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &8926484042661615581 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615582} + - {fileID: 8926484042661615583} + - {fileID: 8926484042661615584} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615581} + m_MasterData: + m_Owner: {fileID: 8926484042661615580} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615576} +--- !u!114 &8926484042661615582 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615581} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615581} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615583 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615581} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615581} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615584 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615581} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615581} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615585 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615586} + - {fileID: 8926484042661615587} + - {fileID: 8926484042661615588} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615585} + m_MasterData: + m_Owner: {fileID: 8926484042661615580} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615602} +--- !u!114 &8926484042661615586 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615585} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615585} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615587 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615585} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615585} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615588 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615585} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615585} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615589 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615589} + m_MasterData: + m_Owner: {fileID: 8926484042661615580} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: d + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615612} +--- !u!114 &8926484042661615601 +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: 486e063e1ed58c843942ea4122829ab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 2222, y: 687} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615602} + attribute: position + location: 0 + mask: xyz +--- !u!114 &8926484042661615602 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615603} + - {fileID: 8926484042661615604} + - {fileID: 8926484042661615605} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615602} + m_MasterData: + m_Owner: {fileID: 8926484042661615601} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615585} +--- !u!114 &8926484042661615603 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615602} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615602} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615604 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615602} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615602} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615605 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615602} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615602} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615606 +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: b4bb186c1c47c9d4191c5f523b1744b8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 2455, y: 800} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615607} + - {fileID: 8926484042661615608} + - {fileID: 8926484042661615609} + m_OutputSlots: + - {fileID: 8926484042661615610} + m_Type: + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615607 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615607} + m_MasterData: + m_Owner: {fileID: 8926484042661615606} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.01 + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615608 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615608} + m_MasterData: + m_Owner: {fileID: 8926484042661615606} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615609 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615609} + m_MasterData: + m_Owner: {fileID: 8926484042661615606} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.5 + m_Space: 2147483647 + m_Property: + name: s + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615614} +--- !u!114 &8926484042661615610 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615610} + m_MasterData: + m_Owner: {fileID: 8926484042661615606} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615573} +--- !u!114 &8926484042661615611 +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: 0155ae97d9a75e3449c6d0603b79c2f4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 2237, y: 800} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615612} + - {fileID: 8926484042661615613} + m_OutputSlots: + - {fileID: 8926484042661615614} + m_Operands: + - name: a + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - name: b + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615612 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615612} + m_MasterData: + m_Owner: {fileID: 8926484042661615611} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615589} +--- !u!114 &8926484042661615613 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615613} + m_MasterData: + m_Owner: {fileID: 8926484042661615611} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.6 + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615667} +--- !u!114 &8926484042661615614 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615614} + m_MasterData: + m_Owner: {fileID: 8926484042661615611} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615609} +--- !u!114 &8926484042661615619 +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: 08b03824843e33840a03794c433c3cef, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661615632} + - {fileID: 8926484042661615624} + - {fileID: 8926484042661615833} + m_UIPosition: {x: 2783, y: 1024} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615620} + - {fileID: 8926484042661615621} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615514} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661615535} + slotIndex: 0 + m_OutputFlowSlot: + - link: [] + blendMode: 3 + cullMode: 0 + zWriteMode: 0 + zTestMode: 0 + useAlphaClipping: 0 + generateMotionVector: 0 + excludeFromTAA: 0 + sortingPriority: 0 + m_SubOutputs: + - {fileID: 8926484042661615623} + colorMapping: 0 + uvMode: 0 + flipbookLayout: 0 + useSoftParticle: 0 + vfxSystemSortPriority: 0 + sort: 0 + sortMode: 0 + revertSorting: 0 + indirectDraw: 0 + computeCulling: 0 + frustumCulling: 0 + castShadows: 1 + useExposureWeight: 0 + needsOwnSort: 0 + shaderGraph: {fileID: 0} + materialSettings: + m_PropertyNames: [] + m_PropertyValues: [] + useBaseColorMap: 3 + useMaskMap: 0 + useNormalMap: 0 + useEmissiveMap: 0 + colorMode: 1 + useEmissive: 0 + materialType: 0 + onlyAmbientLighting: 0 + diffusionProfileAsset: {fileID: 0} + multiplyThicknessWithAlpha: 0 + doubleSided: 0 + preserveSpecularLighting: 0 + enableSpecular: 1 + lightmapRemapMode: 0 + lightmapRemapRanges: 0 + useAlphaRemap: 0 + emissiveMode: 0 + useEmissiveChannelScale: 0 + useColorAbsorption: 1 + receiveShadows: 1 + enableCookie: 1 + enableEnvLight: 1 +--- !u!114 &8926484042661615620 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615620} + m_MasterData: + m_Owner: {fileID: 8926484042661615619} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: smoothness + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615621 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615621} + m_MasterData: + m_Owner: {fileID: 8926484042661615619} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: metallic + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615623 +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: 081ffb0090424ba4cb05370a42ead6b9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + opaqueRenderQueue: 0 + transparentRenderQueue: 1 +--- !u!114 &8926484042661615624 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615619} + m_Children: [] + m_UIPosition: {x: 0, y: 111} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615625} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615626} + attribute: size + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615625 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615625} + m_MasterData: + m_Owner: {fileID: 8926484042661615624} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.02 + m_Space: 2147483647 + m_Property: + name: Size + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615673} +--- !u!114 &8926484042661615626 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615626} + m_MasterData: + m_Owner: {fileID: 8926484042661615624} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615627 +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: 73a13919d81fb7444849bae8b5c812a2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661615629} + m_UIPosition: {x: 2701, y: -523} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: Spawn system + m_Data: {fileID: 8926484042661615628} + m_InputFlowSlot: + - link: [] + - link: [] + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661615500} + slotIndex: 0 + loopDuration: 0 + loopCount: 0 + delayBeforeLoop: 0 + delayAfterLoop: 0 +--- !u!114 &8926484042661615628 +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: f68759077adc0b143b6e1c101e82065e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 8926484042661615627} +--- !u!114 &8926484042661615629 +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: f05c6884b705ce14d82ae720f0ec209f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615627} + m_Children: [] + m_UIPosition: {x: 0, y: 2} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615630} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615631} +--- !u!114 &8926484042661615630 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615630} + m_MasterData: + m_Owner: {fileID: 8926484042661615629} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 10000 + m_Space: 2147483647 + m_Property: + name: Rate + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615675} +--- !u!114 &8926484042661615631 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615631} + m_MasterData: + m_Owner: {fileID: 8926484042661615629} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615632 +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: 01ec2c1930009b04ea08905b47262415, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615619} + m_Children: [] + m_UIPosition: {x: 0, y: 2} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615633} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615634} + attribute: size + Composition: 2 + AlphaComposition: 0 + SampleMode: 0 + Mode: 1 + ColorMode: 3 + channels: 6 +--- !u!114 &8926484042661615633 +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: c117b74c5c58db542bffe25c78fe92db, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615633} + m_MasterData: + m_Owner: {fileID: 8926484042661615632} + m_Value: + m_Type: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"frames":[{"time":0.0,"value":0.0,"inTangent":10.950708389282227,"outTangent":10.950708389282227,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":0.25,"value":1.0,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":1.0,"value":0.0,"inTangent":-4.416197776794434,"outTangent":-4.416197776794434,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false}],"preWrapMode":8,"postWrapMode":8,"version":1}' + m_Space: 2147483647 + m_Property: + name: Size + m_serializedType: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615634 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615634} + m_MasterData: + m_Owner: {fileID: 8926484042661615632} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615635 +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: 01ec2c1930009b04ea08905b47262415, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615537} + m_Children: [] + m_UIPosition: {x: 0, y: 2} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615636} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615637} + attribute: alpha + Composition: 0 + AlphaComposition: 0 + SampleMode: 0 + Mode: 1 + ColorMode: 3 + channels: 6 +--- !u!114 &8926484042661615636 +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: c117b74c5c58db542bffe25c78fe92db, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615636} + m_MasterData: + m_Owner: {fileID: 8926484042661615635} + m_Value: + m_Type: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"frames":[{"time":0.0,"value":0.0,"inTangent":10.950708389282227,"outTangent":10.950708389282227,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":0.25,"value":1.0,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":1.0,"value":0.0,"inTangent":-4.416197776794434,"outTangent":-4.416197776794434,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false}],"preWrapMode":8,"postWrapMode":8,"version":1}' + m_Space: 2147483647 + m_Property: + name: Alpha + m_serializedType: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615637 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615637} + m_MasterData: + m_Owner: {fileID: 8926484042661615635} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615638 +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: 08b03824843e33840a03794c433c3cef, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661615647} + - {fileID: 8926484042661615650} + - {fileID: 8926484042661615643} + - {fileID: 8926484042661615836} + m_UIPosition: {x: 3290, y: 1095} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615639} + - {fileID: 8926484042661615640} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615514} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661615535} + slotIndex: 0 + m_OutputFlowSlot: + - link: [] + blendMode: 3 + cullMode: 0 + zWriteMode: 0 + zTestMode: 0 + useAlphaClipping: 0 + generateMotionVector: 0 + excludeFromTAA: 0 + sortingPriority: 0 + m_SubOutputs: + - {fileID: 8926484042661615646} + colorMapping: 0 + uvMode: 0 + flipbookLayout: 0 + useSoftParticle: 0 + vfxSystemSortPriority: 0 + sort: 0 + sortMode: 0 + revertSorting: 0 + indirectDraw: 0 + computeCulling: 0 + frustumCulling: 0 + castShadows: 1 + useExposureWeight: 0 + needsOwnSort: 0 + shaderGraph: {fileID: 0} + materialSettings: + m_PropertyNames: [] + m_PropertyValues: [] + useBaseColorMap: 3 + useMaskMap: 0 + useNormalMap: 0 + useEmissiveMap: 0 + colorMode: 1 + useEmissive: 0 + materialType: 0 + onlyAmbientLighting: 0 + diffusionProfileAsset: {fileID: 0} + multiplyThicknessWithAlpha: 0 + doubleSided: 0 + preserveSpecularLighting: 0 + enableSpecular: 1 + lightmapRemapMode: 0 + lightmapRemapRanges: 0 + useAlphaRemap: 0 + emissiveMode: 0 + useEmissiveChannelScale: 0 + useColorAbsorption: 1 + receiveShadows: 1 + enableCookie: 1 + enableEnvLight: 1 +--- !u!114 &8926484042661615639 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615639} + m_MasterData: + m_Owner: {fileID: 8926484042661615638} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: smoothness + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615640 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615640} + m_MasterData: + m_Owner: {fileID: 8926484042661615638} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: metallic + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615643 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615638} + m_Children: [] + m_UIPosition: {x: 0, y: 187} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615644} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615645} + attribute: size + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615644 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615644} + m_MasterData: + m_Owner: {fileID: 8926484042661615643} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.02 + m_Space: 2147483647 + m_Property: + name: Size + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615673} +--- !u!114 &8926484042661615645 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615645} + m_MasterData: + m_Owner: {fileID: 8926484042661615643} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615646 +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: 081ffb0090424ba4cb05370a42ead6b9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + opaqueRenderQueue: 0 + transparentRenderQueue: 1 +--- !u!114 &8926484042661615647 +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: 01ec2c1930009b04ea08905b47262415, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615638} + m_Children: [] + m_UIPosition: {x: 0, y: 2} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615648} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615649} + attribute: size + Composition: 2 + AlphaComposition: 0 + SampleMode: 0 + Mode: 1 + ColorMode: 3 + channels: 6 +--- !u!114 &8926484042661615648 +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: c117b74c5c58db542bffe25c78fe92db, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615648} + m_MasterData: + m_Owner: {fileID: 8926484042661615647} + m_Value: + m_Type: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"frames":[{"time":0.0,"value":0.0,"inTangent":10.950708389282227,"outTangent":10.950708389282227,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":0.25,"value":1.0,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":1.0,"value":0.0,"inTangent":-4.416197776794434,"outTangent":-4.416197776794434,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false}],"preWrapMode":8,"postWrapMode":8,"version":1}' + m_Space: 2147483647 + m_Property: + name: Size + m_serializedType: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615649 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615649} + m_MasterData: + m_Owner: {fileID: 8926484042661615647} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615650 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615638} + m_Children: [] + m_UIPosition: {x: 0, y: 111} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615651} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615656} + attribute: position + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615651 +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: 5265657162cc1a241bba03a3b0476d99, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615652} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615651} + m_MasterData: + m_Owner: {fileID: 8926484042661615650} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0}}' + m_Space: 1 + m_Property: + name: Position + m_serializedType: + m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615658} +--- !u!114 &8926484042661615652 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615651} + m_Children: + - {fileID: 8926484042661615653} + - {fileID: 8926484042661615654} + - {fileID: 8926484042661615655} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615651} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615653 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615652} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615651} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615654 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615652} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615651} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615655 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615652} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615651} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615656 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615656} + m_MasterData: + m_Owner: {fileID: 8926484042661615650} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615657 +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: 486e063e1ed58c843942ea4122829ab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 2940, y: 1453} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615658} + attribute: targetPosition + location: 0 + mask: xyz +--- !u!114 &8926484042661615658 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615659} + - {fileID: 8926484042661615660} + - {fileID: 8926484042661615661} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615658} + m_MasterData: + m_Owner: {fileID: 8926484042661615657} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: targetPosition + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615651} +--- !u!114 &8926484042661615659 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615658} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615658} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615660 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615658} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615658} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615661 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615658} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615658} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615662 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615662} + m_MasterData: + m_Owner: {fileID: 8926484042661615537} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.5 + m_Space: 2147483647 + m_Property: + name: alphaThreshold + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615666 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615667} + m_ExposedName: Plexus Range + m_Exposed: 1 + m_Order: 10 + m_Category: Plexus + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615667} + inputSlot: {fileID: 8926484042661615613} + position: {x: 2036, y: 852} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615667 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615667} + m_MasterData: + m_Owner: {fileID: 8926484042661615666} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.6 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615613} +--- !u!114 &8926484042661615668 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615669} + m_ExposedName: Plexus Lifetime Max + m_Exposed: 1 + m_Order: 14 + m_Category: Plexus + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615669} + inputSlot: {fileID: 8926484042661615517} + position: {x: 2561, y: 187} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615669 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615669} + m_MasterData: + m_Owner: {fileID: 8926484042661615668} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 3 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615517} +--- !u!114 &8926484042661615670 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615671} + m_ExposedName: Plexus Lifetime Min + m_Exposed: 1 + m_Order: 13 + m_Category: Plexus + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615671} + inputSlot: {fileID: 8926484042661615516} + position: {x: 2564, y: 136} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615671 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615671} + m_MasterData: + m_Owner: {fileID: 8926484042661615670} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615516} +--- !u!114 &8926484042661615672 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615673} + m_ExposedName: Plexus Point Size + m_Exposed: 1 + m_Order: 15 + m_Category: Plexus + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615673} + inputSlot: {fileID: 8926484042661615625} + position: {x: 2551, y: 1402} + expandedSlots: [] + expanded: 0 + - m_Id: 1 + linkedSlots: + - outputSlot: {fileID: 8926484042661615673} + inputSlot: {fileID: 8926484042661615644} + position: {x: 3044, y: 1492} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615673 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615673} + m_MasterData: + m_Owner: {fileID: 8926484042661615672} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.02 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615625} + - {fileID: 8926484042661615644} +--- !u!114 &8926484042661615674 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615675} + m_ExposedName: Plexus Rate + m_Exposed: 1 + m_Order: 6 + m_Category: Plexus + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615675} + inputSlot: {fileID: 8926484042661615630} + position: {x: 2491, y: -352} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615675 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615675} + m_MasterData: + m_Owner: {fileID: 8926484042661615674} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 10000 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615630} +--- !u!114 &8926484042661615676 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615677} + m_ExposedName: Dots Rate + m_Exposed: 1 + m_Order: 7 + m_Category: Dots + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615677} + inputSlot: {fileID: 8926484042661615721} + position: {x: -726, y: -272} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615677 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615677} + m_MasterData: + m_Owner: {fileID: 8926484042661615676} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 10000 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615721} +--- !u!114 &8926484042661615680 +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: 9dfea48843f53fc438eabc12a3a30abc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661615695} + - {fileID: 8926484042661615699} + - {fileID: 8926484042661615715} + - {fileID: 8926484042661615800} + m_UIPosition: {x: -535, y: -114} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615681} + - {fileID: 8926484042661615690} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615694} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661615718} + slotIndex: 0 + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661615723} + slotIndex: 0 +--- !u!114 &8926484042661615681 +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: 1b605c022ee79394a8a776c0869b3f9a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615682} + - {fileID: 8926484042661615686} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615681} + m_MasterData: + m_Owner: {fileID: 8926484042661615680} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"center":{"x":0.0,"y":0.0,"z":0.0},"size":{"x":1.0,"y":1.0,"z":1.0}}' + m_Space: 0 + m_Property: + name: bounds + m_serializedType: + m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615682 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615681} + m_Children: + - {fileID: 8926484042661615683} + - {fileID: 8926484042661615684} + - {fileID: 8926484042661615685} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615681} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: center + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615683 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615682} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615681} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615684 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615682} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615681} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615685 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615682} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615681} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615686 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615681} + m_Children: + - {fileID: 8926484042661615687} + - {fileID: 8926484042661615688} + - {fileID: 8926484042661615689} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615681} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: size + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615687 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615686} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615681} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615688 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615686} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615681} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615689 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615686} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615681} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615690 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615691} + - {fileID: 8926484042661615692} + - {fileID: 8926484042661615693} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615690} + m_MasterData: + m_Owner: {fileID: 8926484042661615680} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.5,"y":0.5,"z":0.5}' + m_Space: 2147483647 + m_Property: + name: boundsPadding + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615691 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615690} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615690} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615692 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615690} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615690} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615693 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615690} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615690} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615694 +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: d78581a96eae8bf4398c282eb0b098bd, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 8926484042661615680} + - {fileID: 8926484042661615723} + - {fileID: 8926484042661615725} + dataType: 0 + capacity: 20000 + stripCapacity: 16 + particlePerStripCount: 16 + needsComputeBounds: 0 + boundsMode: 0 + m_Space: 1 +--- !u!114 &8926484042661615695 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615680} + m_Children: [] + m_UIPosition: {x: -1246.2924, y: -57.15268} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615696} + - {fileID: 8926484042661615697} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615698} + attribute: lifetime + Composition: 0 + Source: 0 + Random: 2 + channels: 6 +--- !u!114 &8926484042661615696 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615696} + m_MasterData: + m_Owner: {fileID: 8926484042661615695} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: A + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615697 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615697} + m_MasterData: + m_Owner: {fileID: 8926484042661615695} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 3 + m_Space: 2147483647 + m_Property: + name: B + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615698 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615698} + m_MasterData: + m_Owner: {fileID: 8926484042661615695} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615699 +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: ee5e80e50a3ba6147ad69984abfdf6b3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615680} + m_Children: [] + m_UIPosition: {x: -1479.675, y: -114.72482} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615700} + - {fileID: 8926484042661615701} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615714} + compositionPosition: 0 + compositionAxes: 0 + compositionDirection: 0 + positionMode: 0 + spawnMode: 0 + mode: 1 + placementMode: 2 + surfaceCoordinates: 1 + sourceMesh: 0 + skinnedTransform: 1 + applyOrientation: 1 +--- !u!114 &8926484042661615700 +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: b47b8679b468b7347a00cdd50589bc9f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615700} + m_MasterData: + m_Owner: {fileID: 8926484042661615699} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Mesh, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":10208,"guid":"0000000000000000e000000000000000","type":0}}' + m_Space: 2147483647 + m_Property: + name: mesh + m_serializedType: + m_SerializableType: UnityEngine.Mesh, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614656} +--- !u!114 &8926484042661615701 +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: 3e3f628d80ffceb489beac74258f9cf7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615702} + - {fileID: 8926484042661615706} + - {fileID: 8926484042661615710} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615701} + m_MasterData: + m_Owner: {fileID: 8926484042661615699} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Transform, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0},"angles":{"x":0.0,"y":0.0,"z":0.0},"scale":{"x":1.0,"y":1.0,"z":1.0}}' + m_Space: 0 + m_Property: + name: transform + m_serializedType: + m_SerializableType: UnityEditor.VFX.Transform, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615702 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615701} + m_Children: + - {fileID: 8926484042661615703} + - {fileID: 8926484042661615704} + - {fileID: 8926484042661615705} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615701} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615703 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615702} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615701} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615704 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615702} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615701} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615705 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615702} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615701} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615706 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615701} + m_Children: + - {fileID: 8926484042661615707} + - {fileID: 8926484042661615708} + - {fileID: 8926484042661615709} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615701} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: angles + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615707 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615706} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615701} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615708 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615706} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615701} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615709 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615706} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615701} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615710 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615701} + m_Children: + - {fileID: 8926484042661615711} + - {fileID: 8926484042661615712} + - {fileID: 8926484042661615713} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615701} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: scale + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615711 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615710} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615701} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615712 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615710} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615701} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615713 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615710} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615701} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615714 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615714} + m_MasterData: + m_Owner: {fileID: 8926484042661615699} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615715 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615680} + m_Children: [] + m_UIPosition: {x: -1479.675, y: -114.72482} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615716} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615717} + attribute: size + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615716 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615716} + m_MasterData: + m_Owner: {fileID: 8926484042661615715} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.02 + m_Space: 2147483647 + m_Property: + name: Size + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615717 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615717} + m_MasterData: + m_Owner: {fileID: 8926484042661615715} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615718 +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: 73a13919d81fb7444849bae8b5c812a2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661615720} + m_UIPosition: {x: -535, y: -410} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: Spawn system + m_Data: {fileID: 8926484042661615719} + m_InputFlowSlot: + - link: [] + - link: [] + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661615680} + slotIndex: 0 + loopDuration: 0 + loopCount: 0 + delayBeforeLoop: 0 + delayAfterLoop: 0 +--- !u!114 &8926484042661615719 +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: f68759077adc0b143b6e1c101e82065e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 8926484042661615718} +--- !u!114 &8926484042661615720 +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: f05c6884b705ce14d82ae720f0ec209f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615718} + m_Children: [] + m_UIPosition: {x: -1479.675, y: -112.72482} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615721} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615722} +--- !u!114 &8926484042661615721 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615721} + m_MasterData: + m_Owner: {fileID: 8926484042661615720} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1000 + m_Space: 2147483647 + m_Property: + name: Rate + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615677} +--- !u!114 &8926484042661615722 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615722} + m_MasterData: + m_Owner: {fileID: 8926484042661615720} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615723 +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: 2dc095764ededfa4bb32fa602511ea4b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -535, y: 564} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615694} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661615680} + slotIndex: 0 + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661615725} + slotIndex: 0 + integration: 0 + angularIntegration: 0 + ageParticles: 1 + reapParticles: 1 + skipZeroDeltaUpdate: 0 +--- !u!114 &8926484042661615725 +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: f574644f84c35a64e94e2cfae807c1a3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661615728} + m_UIPosition: {x: -535, y: 716} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615694} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661615723} + slotIndex: 0 + m_OutputFlowSlot: + - link: [] + blendMode: 3 + cullMode: 3 + zWriteMode: 0 + zTestMode: 0 + useAlphaClipping: 0 + generateMotionVector: 0 + excludeFromTAA: 0 + sortingPriority: 0 + m_SubOutputs: + - {fileID: 8926484042661615727} + colorMapping: 0 + uvMode: 0 + flipbookLayout: 0 + useSoftParticle: 0 + vfxSystemSortPriority: 0 + sort: 0 + sortMode: 0 + revertSorting: 0 + indirectDraw: 0 + computeCulling: 0 + frustumCulling: 0 + castShadows: 1 + useExposureWeight: 0 + needsOwnSort: 0 +--- !u!114 &8926484042661615727 +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: 081ffb0090424ba4cb05370a42ead6b9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + opaqueRenderQueue: 0 + transparentRenderQueue: 1 +--- !u!114 &8926484042661615728 +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: d03231f387e7ed54d888c74e4e13228e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615725} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615729} +--- !u!114 &8926484042661615729 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615729} + m_MasterData: + m_Owner: {fileID: 8926484042661615728} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615730 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614558} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615731} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615736} + attribute: position + Composition: 1 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615731 +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: 5265657162cc1a241bba03a3b0476d99, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615732} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615731} + m_MasterData: + m_Owner: {fileID: 8926484042661615730} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0}}' + m_Space: 1 + m_Property: + name: Position + m_serializedType: + m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615732 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615731} + m_Children: + - {fileID: 8926484042661615733} + - {fileID: 8926484042661615734} + - {fileID: 8926484042661615735} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615731} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615733 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615732} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615731} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615734 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615732} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615731} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615735 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615732} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615731} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615736 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615736} + m_MasterData: + m_Owner: {fileID: 8926484042661615730} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615774 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615775} + m_ExposedName: Dots Scatter + m_Exposed: 1 + m_Order: 11 + m_Category: Dots + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 1 + linkedSlots: + - outputSlot: {fileID: 8926484042661615775} + inputSlot: {fileID: 0} + position: {x: -980, y: 455} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615775 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615775} + m_MasterData: + m_Owner: {fileID: 8926484042661615774} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615776 +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: fa71feae8df37b6479bb8bc6ab99f797, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 745, y: 790} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Subgraph: {fileID: 5371698745253816930, guid: 9319c540a5a01664caf734fdf732205a, + type: 3} +--- !u!114 &8926484042661615792 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615793} + m_ExposedName: Quad Scatter + m_Exposed: 1 + m_Order: 8 + m_Category: Quads + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615793} + inputSlot: {fileID: 0} + position: {x: 543, y: 913} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615793 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615793} + m_MasterData: + m_Owner: {fileID: 8926484042661615792} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.1 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615794 +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: fa71feae8df37b6479bb8bc6ab99f797, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -771, y: 402} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Subgraph: {fileID: 5371698745253816930, guid: 9319c540a5a01664caf734fdf732205a, + type: 3} +--- !u!114 &8926484042661615800 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615680} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615801} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615806} + attribute: position + Composition: 1 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615801 +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: 5265657162cc1a241bba03a3b0476d99, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615802} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615801} + m_MasterData: + m_Owner: {fileID: 8926484042661615800} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0}}' + m_Space: 1 + m_Property: + name: Position + m_serializedType: + m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615802 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615801} + m_Children: + - {fileID: 8926484042661615803} + - {fileID: 8926484042661615804} + - {fileID: 8926484042661615805} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615801} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615803 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615802} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615801} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615804 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615802} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615801} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615805 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615802} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615801} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615806 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615806} + m_MasterData: + m_Owner: {fileID: 8926484042661615800} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615807 +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: c7acf5424f3655744af4b8f63298fa0f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -157, y: 1920} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615808} + - {fileID: 8926484042661615809} + m_OutputSlots: + - {fileID: 8926484042661615810} + m_Operands: + - name: a + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - name: b + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615808 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615808} + m_MasterData: + m_Owner: {fileID: 8926484042661615807} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615848} +--- !u!114 &8926484042661615809 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615809} + m_MasterData: + m_Owner: {fileID: 8926484042661615807} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615814} +--- !u!114 &8926484042661615810 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615810} + m_MasterData: + m_Owner: {fileID: 8926484042661615807} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615818} +--- !u!114 &8926484042661615811 +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: b8ee8a7543fa09e42a7c8616f60d2ad7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -381, y: 2018} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615812} + - {fileID: 8926484042661615813} + m_OutputSlots: + - {fileID: 8926484042661615814} + m_Operands: + - name: a + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - name: b + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615812 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615812} + m_MasterData: + m_Owner: {fileID: 8926484042661615811} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615816} +--- !u!114 &8926484042661615813 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615813} + m_MasterData: + m_Owner: {fileID: 8926484042661615811} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 4 + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615814 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615814} + m_MasterData: + m_Owner: {fileID: 8926484042661615811} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615809} +--- !u!114 &8926484042661615815 +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: a72fbb93ebe17974e90a144ef2ec8ceb, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -585, y: 2038} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615816} + m_BuiltInParameters: 4 +--- !u!114 &8926484042661615816 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615816} + m_MasterData: + m_Owner: {fileID: 8926484042661615815} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: Total Time + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615812} +--- !u!114 &8926484042661615817 +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: d1847decbcc406c41b56205a65871167, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 69, y: 1946} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615818} + m_OutputSlots: + - {fileID: 8926484042661615819} + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615818 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615818} + m_MasterData: + m_Owner: {fileID: 8926484042661615817} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615810} +--- !u!114 &8926484042661615819 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615819} + m_MasterData: + m_Owner: {fileID: 8926484042661615817} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615820 +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: 0a02ebe9815b1084495277ae39c6c270, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 339, y: 1834} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615821} + - {fileID: 8926484042661615822} + - {fileID: 8926484042661615823} + - {fileID: 8926484042661615824} + - {fileID: 8926484042661615825} + m_OutputSlots: + - {fileID: 8926484042661615826} + m_Type: + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Clamp: 1 +--- !u!114 &8926484042661615821 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615821} + m_MasterData: + m_Owner: {fileID: 8926484042661615820} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.5 + m_Space: 2147483647 + m_Property: + name: input + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615857} +--- !u!114 &8926484042661615822 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615822} + m_MasterData: + m_Owner: {fileID: 8926484042661615820} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.5 + m_Space: 2147483647 + m_Property: + name: oldRangeMin + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615823 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615823} + m_MasterData: + m_Owner: {fileID: 8926484042661615820} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: oldRangeMax + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615824 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615824} + m_MasterData: + m_Owner: {fileID: 8926484042661615820} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: newRangeMin + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615825 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615825} + m_MasterData: + m_Owner: {fileID: 8926484042661615820} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: newRangeMax + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615826 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615826} + m_MasterData: + m_Owner: {fileID: 8926484042661615820} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615831} + - {fileID: 8926484042661615843} +--- !u!114 &8926484042661615830 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615269} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615831} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615832} + attribute: size + Composition: 2 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615831 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615831} + m_MasterData: + m_Owner: {fileID: 8926484042661615830} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.1 + m_Space: 2147483647 + m_Property: + name: Size + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615826} +--- !u!114 &8926484042661615832 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615832} + m_MasterData: + m_Owner: {fileID: 8926484042661615830} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615833 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615619} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615834} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615835} + attribute: size + Composition: 2 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615834 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615834} + m_MasterData: + m_Owner: {fileID: 8926484042661615833} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.1 + m_Space: 2147483647 + m_Property: + name: Size + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615844} +--- !u!114 &8926484042661615835 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615835} + m_MasterData: + m_Owner: {fileID: 8926484042661615833} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615836 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615638} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615837} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615838} + attribute: size + Composition: 2 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615837 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615837} + m_MasterData: + m_Owner: {fileID: 8926484042661615836} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.1 + m_Space: 2147483647 + m_Property: + name: Size + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615844} +--- !u!114 &8926484042661615838 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615838} + m_MasterData: + m_Owner: {fileID: 8926484042661615836} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615839 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615537} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615840} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615841} + attribute: alpha + Composition: 2 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615840 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615840} + m_MasterData: + m_Owner: {fileID: 8926484042661615839} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: Alpha + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615844} +--- !u!114 &8926484042661615841 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615841} + m_MasterData: + m_Owner: {fileID: 8926484042661615839} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615842 +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: 955b0c175a6f3bb4582e92f3de8f0626, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 2046, y: 1883} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615843} + m_OutputSlots: + - {fileID: 8926484042661615844} + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615843 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615843} + m_MasterData: + m_Owner: {fileID: 8926484042661615842} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615826} +--- !u!114 &8926484042661615844 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615844} + m_MasterData: + m_Owner: {fileID: 8926484042661615842} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615840} + - {fileID: 8926484042661615834} + - {fileID: 8926484042661615837} +--- !u!114 &8926484042661615845 +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: b8ee8a7543fa09e42a7c8616f60d2ad7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -381, y: 1882} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615846} + - {fileID: 8926484042661615847} + m_OutputSlots: + - {fileID: 8926484042661615848} + m_Operands: + - name: a + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - name: b + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615846 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615846} + m_MasterData: + m_Owner: {fileID: 8926484042661615845} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615071} +--- !u!114 &8926484042661615847 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615847} + m_MasterData: + m_Owner: {fileID: 8926484042661615845} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: -4 + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615848 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615848} + m_MasterData: + m_Owner: {fileID: 8926484042661615845} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615808} +--- !u!114 &8926484042661615849 +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: 0155ae97d9a75e3449c6d0603b79c2f4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -104, y: 1763} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615850} + - {fileID: 8926484042661615851} + m_OutputSlots: + - {fileID: 8926484042661615852} + m_Operands: + - name: a + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - name: b + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615850 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615850} + m_MasterData: + m_Owner: {fileID: 8926484042661615849} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615071} +--- !u!114 &8926484042661615851 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615851} + m_MasterData: + m_Owner: {fileID: 8926484042661615849} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.72 + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615852 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615852} + m_MasterData: + m_Owner: {fileID: 8926484042661615849} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615856} +--- !u!114 &8926484042661615853 +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: b4bb186c1c47c9d4191c5f523b1744b8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 69, y: 1741} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615854} + - {fileID: 8926484042661615855} + - {fileID: 8926484042661615856} + m_OutputSlots: + - {fileID: 8926484042661615857} + m_Type: + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615854 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615854} + m_MasterData: + m_Owner: {fileID: 8926484042661615853} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.1 + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615855 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615855} + m_MasterData: + m_Owner: {fileID: 8926484042661615853} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615856 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615856} + m_MasterData: + m_Owner: {fileID: 8926484042661615853} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.5 + m_Space: 2147483647 + m_Property: + name: s + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615852} +--- !u!114 &8926484042661615857 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615857} + m_MasterData: + m_Owner: {fileID: 8926484042661615853} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615821} diff --git a/Assets/Dwelling/VFX/Environment.vfx.meta b/Assets/Dwelling/VFX/Environment.vfx.meta new file mode 100644 index 0000000..b856ea6 --- /dev/null +++ b/Assets/Dwelling/VFX/Environment.vfx.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a4eb50405ad6a314caa9498687a91f07 +VisualEffectImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/VFX/Lines.vfx b/Assets/Dwelling/VFX/Lines.vfx new file mode 100644 index 0000000..6205fcc --- /dev/null +++ b/Assets/Dwelling/VFX/Lines.vfx @@ -0,0 +1,6613 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &114023846229194376 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: 73a13919d81fb7444849bae8b5c812a2, type: 3} + m_Name: VFXBasicSpawner + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661615286} + m_UIPosition: {x: 1907, y: -667} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615406} + m_InputFlowSlot: + - link: [] + - link: [] + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661615289} + slotIndex: 0 + loopDuration: 0 + loopCount: 0 + delayBeforeLoop: 0 + delayAfterLoop: 0 +--- !u!114 &114340500867371532 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: d01270efd3285ea4a9d6c555cb0a8027, type: 3} + m_Name: VFXUI + m_EditorClassIdentifier: + groupInfos: [] + stickyNoteInfos: [] + categories: [] + uiBounds: + serializedVersion: 2 + x: 1014 + y: -667 + width: 2042 + height: 2913 +--- !u!114 &114350483966674976 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: 7d4c867f6b72b714dbb5fd1780afe208, type: 3} + m_Name: Lines + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 114023846229194376} + - {fileID: 8926484042661615021} + - {fileID: 8926484042661615031} + - {fileID: 8926484042661615408} + - {fileID: 8926484042661615131} + - {fileID: 8926484042661615144} + - {fileID: 8926484042661615191} + - {fileID: 8926484042661615222} + - {fileID: 8926484042661615289} + - {fileID: 8926484042661615300} + - {fileID: 8926484042661615313} + - {fileID: 8926484042661615319} + - {fileID: 8926484042661615321} + - {fileID: 8926484042661615333} + - {fileID: 8926484042661615335} + - {fileID: 8926484042661615360} + - {fileID: 8926484042661615368} + - {fileID: 8926484042661615385} + - {fileID: 8926484042661615402} + - {fileID: 8926484042661615404} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_UIInfos: {fileID: 114340500867371532} + m_ParameterInfo: + - name: PositionMap + path: PositionMap + tooltip: + sheetType: m_NamedObject + realType: Texture2D + defaultValue: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: VelocityMap + path: VelocityMap + tooltip: + sheetType: m_NamedObject + realType: Texture2D + defaultValue: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + m_ImportDependencies: [] + m_GraphVersion: 12 + m_ResourceVersion: 1 + m_SubgraphDependencies: [] + m_CategoryPath: +--- !u!2058629511 &8926484042661614527 +VisualEffectResource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Lines + m_Graph: {fileID: 114350483966674976} + m_Infos: + m_RendererSettings: + motionVectorGenerationMode: 0 + shadowCastingMode: 0 + receiveShadows: 0 + reflectionProbeUsage: 0 + lightProbeUsage: 0 + m_CullingFlags: 3 + m_UpdateMode: 0 + m_PreWarmDeltaTime: 0.05 + m_PreWarmStepCount: 0 + m_InitialEventName: OnPlay + m_InstancingMode: -1 + m_InstancingCapacity: 64 +--- !u!114 &8926484042661615021 +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: 486e063e1ed58c843942ea4122829ab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 1664, y: 1585} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615022} + attribute: position + location: 0 + mask: xyz +--- !u!114 &8926484042661615022 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615023} + - {fileID: 8926484042661615024} + - {fileID: 8926484042661615025} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615022} + m_MasterData: + m_Owner: {fileID: 8926484042661615021} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615148} +--- !u!114 &8926484042661615023 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615022} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615022} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615024 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615022} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615022} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615025 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615022} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615022} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615031 +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: 1fb2f8fde2589884fae38ab8bc886b6f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 2176, y: 1508} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615032} + - {fileID: 8926484042661615036} + - {fileID: 8926484042661615037} + - {fileID: 8926484042661615038} + - {fileID: 8926484042661615039} + - {fileID: 8926484042661615040} + m_OutputSlots: + - {fileID: 8926484042661615041} + type: 1 + dimensions: 1 +--- !u!114 &8926484042661615032 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615033} + - {fileID: 8926484042661615034} + - {fileID: 8926484042661615035} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615032} + m_MasterData: + m_Owner: {fileID: 8926484042661615031} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: coordinate + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615152} +--- !u!114 &8926484042661615033 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615032} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615032} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615034 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615032} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615032} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615035 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615032} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615032} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615036 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615036} + m_MasterData: + m_Owner: {fileID: 8926484042661615031} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 2 + m_Space: 2147483647 + m_Property: + name: frequency + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615037 +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: 4d246e354feb93041a837a9ef59437cb, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615037} + m_MasterData: + m_Owner: {fileID: 8926484042661615031} + m_Value: + m_Type: + m_SerializableType: System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: octaves + m_serializedType: + m_SerializableType: System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615038 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615038} + m_MasterData: + m_Owner: {fileID: 8926484042661615031} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.5 + m_Space: 2147483647 + m_Property: + name: roughness + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615039 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615039} + m_MasterData: + m_Owner: {fileID: 8926484042661615031} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 2 + m_Space: 2147483647 + m_Property: + name: lacunarity + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615040 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615040} + m_MasterData: + m_Owner: {fileID: 8926484042661615031} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.2 + m_Space: 2147483647 + m_Property: + name: amplitude + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615041 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615042} + - {fileID: 8926484042661615043} + - {fileID: 8926484042661615044} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615041} + m_MasterData: + m_Owner: {fileID: 8926484042661615031} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: Noise + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615380} +--- !u!114 &8926484042661615042 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615041} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615041} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615043 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615041} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615041} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615044 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615041} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615041} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615131 +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: b8ee8a7543fa09e42a7c8616f60d2ad7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 1737, y: 1679} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: + - {fileID: 8926484042661615132} + - {fileID: 8926484042661615394} + m_OutputSlots: + - {fileID: 8926484042661615398} + m_Operands: + - name: a + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - name: b + type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &8926484042661615132 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615132} + m_MasterData: + m_Owner: {fileID: 8926484042661615131} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615409} +--- !u!114 &8926484042661615144 +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: c7acf5424f3655744af4b8f63298fa0f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 1980, y: 1631} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: + - {fileID: 8926484042661615148} + - {fileID: 8926484042661615156} + m_OutputSlots: + - {fileID: 8926484042661615152} + m_Operands: + - name: a + type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + - name: b + type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &8926484042661615148 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615149} + - {fileID: 8926484042661615150} + - {fileID: 8926484042661615151} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615148} + m_MasterData: + m_Owner: {fileID: 8926484042661615144} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615022} +--- !u!114 &8926484042661615149 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615148} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615148} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615150 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615148} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615148} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615151 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615148} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615148} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615152 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615153} + - {fileID: 8926484042661615154} + - {fileID: 8926484042661615155} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615152} + m_MasterData: + m_Owner: {fileID: 8926484042661615144} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615032} +--- !u!114 &8926484042661615153 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615152} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615152} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615154 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615152} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615152} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615155 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615152} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615152} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615156 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615157} + - {fileID: 8926484042661615158} + - {fileID: 8926484042661615159} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615156} + m_MasterData: + m_Owner: {fileID: 8926484042661615144} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615398} +--- !u!114 &8926484042661615157 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615156} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615156} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615158 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615156} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615156} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615159 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615156} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615156} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615191 +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: 997b3d8a71b0cd441b68e9a8d00dc6c4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 1722, y: 546} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: + - {fileID: 8926484042661615277} + m_OutputSlots: + - {fileID: 8926484042661615281} +--- !u!114 &8926484042661615222 +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: a30aeb734589f22468d3ed89a2ecc09c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 1332, y: 443} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615223} + - {fileID: 8926484042661615227} + - {fileID: 8926484042661615228} + - {fileID: 8926484042661615229} + - {fileID: 8926484042661615230} + - {fileID: 8926484042661615231} + m_OutputSlots: + - {fileID: 8926484042661615234} + - {fileID: 8926484042661615235} + type: 1 + dimensions: 2 +--- !u!114 &8926484042661615223 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615224} + - {fileID: 8926484042661615225} + - {fileID: 8926484042661615226} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615223} + m_MasterData: + m_Owner: {fileID: 8926484042661615222} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: coordinate + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615369} +--- !u!114 &8926484042661615224 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615223} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615223} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615225 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615223} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615223} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615226 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615223} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615223} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615227 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615227} + m_MasterData: + m_Owner: {fileID: 8926484042661615222} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1.5 + m_Space: 2147483647 + m_Property: + name: frequency + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615228 +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: 4d246e354feb93041a837a9ef59437cb, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615228} + m_MasterData: + m_Owner: {fileID: 8926484042661615222} + m_Value: + m_Type: + m_SerializableType: System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: octaves + m_serializedType: + m_SerializableType: System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615229 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615229} + m_MasterData: + m_Owner: {fileID: 8926484042661615222} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.5 + m_Space: 2147483647 + m_Property: + name: roughness + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615230 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615230} + m_MasterData: + m_Owner: {fileID: 8926484042661615222} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 2 + m_Space: 2147483647 + m_Property: + name: lacunarity + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615231 +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: 1b2b751071c7fc14f9fa503163991826, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615232} + - {fileID: 8926484042661615233} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615231} + m_MasterData: + m_Owner: {fileID: 8926484042661615222} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.30000001192092898,"y":1.2000000476837159}' + m_Space: 2147483647 + m_Property: + name: range + m_serializedType: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615232 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615231} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615231} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615233 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615231} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615231} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615234 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615234} + m_MasterData: + m_Owner: {fileID: 8926484042661615222} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: Noise + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615278} +--- !u!114 &8926484042661615235 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615236} + - {fileID: 8926484042661615237} + - {fileID: 8926484042661615238} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615235} + m_MasterData: + m_Owner: {fileID: 8926484042661615222} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: Derivatives + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615236 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615235} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615235} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615237 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615235} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615235} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615238 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615235} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615235} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615277 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615278} + - {fileID: 8926484042661615279} + - {fileID: 8926484042661615280} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615277} + m_MasterData: + m_Owner: {fileID: 8926484042661615191} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":0.9700000286102295,"z":1.0}' + m_Space: 2147483647 + m_Property: + name: HSV + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615278 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615277} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615277} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615234} +--- !u!114 &8926484042661615279 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615277} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615277} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615280 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615277} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615277} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615281 +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: c499060cea9bbb24b8d723eafa343303, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615282} + - {fileID: 8926484042661615283} + - {fileID: 8926484042661615284} + - {fileID: 8926484042661615285} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615281} + m_MasterData: + m_Owner: {fileID: 8926484042661615191} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector4, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0,"w":0.0}' + m_Space: 2147483647 + m_Property: + name: RGB + m_serializedType: + m_SerializableType: UnityEngine.Vector4, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615364} +--- !u!114 &8926484042661615282 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615281} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615281} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615283 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615281} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615281} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615284 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615281} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615281} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615285 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615281} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615281} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: w + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615286 +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: 5e382412bb691334bb79457a6c127924, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114023846229194376} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615287} + - {fileID: 8926484042661615288} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615410} + repeat: 0 + spawnMode: 0 + delayMode: 0 +--- !u!114 &8926484042661615287 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615287} + m_MasterData: + m_Owner: {fileID: 8926484042661615286} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 150 + m_Space: 2147483647 + m_Property: + name: Count + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615288 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615288} + m_MasterData: + m_Owner: {fileID: 8926484042661615286} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: Delay + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615289 +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: 9dfea48843f53fc438eabc12a3a30abc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 1907, y: -238} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615290} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615299} + m_InputFlowSlot: + - link: + - context: {fileID: 114023846229194376} + slotIndex: 0 + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661615300} + slotIndex: 0 +--- !u!114 &8926484042661615290 +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: 1b605c022ee79394a8a776c0869b3f9a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615291} + - {fileID: 8926484042661615295} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615290} + m_MasterData: + m_Owner: {fileID: 8926484042661615289} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"center":{"x":0.0,"y":0.0,"z":0.0},"size":{"x":10.0,"y":10.0,"z":10.0}}' + m_Space: 0 + m_Property: + name: bounds + m_serializedType: + m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615291 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615290} + m_Children: + - {fileID: 8926484042661615292} + - {fileID: 8926484042661615293} + - {fileID: 8926484042661615294} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615290} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: center + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615292 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615291} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615290} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615293 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615291} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615290} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615294 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615291} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615290} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615295 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615290} + m_Children: + - {fileID: 8926484042661615296} + - {fileID: 8926484042661615297} + - {fileID: 8926484042661615298} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615290} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: size + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615296 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615295} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615290} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615297 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615295} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615290} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615298 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615295} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615290} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615299 +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: d78581a96eae8bf4398c282eb0b098bd, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 8926484042661615289} + - {fileID: 8926484042661615300} + - {fileID: 8926484042661615313} + dataType: 0 + capacity: 200 + stripCapacity: 16 + particlePerStripCount: 16 + needsComputeBounds: 0 + boundsMode: 1 + m_Space: 0 +--- !u!114 &8926484042661615300 +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: 2dc095764ededfa4bb32fa602511ea4b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661615302} + - {fileID: 8926484042661615340} + - {fileID: 8926484042661615363} + - {fileID: 8926484042661615316} + m_UIPosition: {x: 1902, y: 110} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615299} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661615289} + slotIndex: 0 + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661615313} + slotIndex: 0 + integration: 0 + angularIntegration: 0 + ageParticles: 1 + reapParticles: 1 + skipZeroDeltaUpdate: 0 +--- !u!114 &8926484042661615302 +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: 60fff265f139e2a4194a44c2bac41757, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615300} + m_Children: [] + m_UIPosition: {x: 0, y: 2} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615303} + - {fileID: 8926484042661615304} + - {fileID: 8926484042661615305} + - {fileID: 8926484042661615309} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615411} + attribute: position + Composition: 0 + SampleMode: 6 + mode: 0 + channels: 6 + usePointCount: 0 +--- !u!114 &8926484042661615303 +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: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615303} + m_MasterData: + m_Owner: {fileID: 8926484042661615302} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":8400000,"guid":"65f21fe1f464bf0f1a1fc991675ee2dc","type":2}}' + m_Space: 2147483647 + m_Property: + name: attributeMap + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615403} +--- !u!114 &8926484042661615304 +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: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615304} + m_MasterData: + m_Owner: {fileID: 8926484042661615302} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: Seed + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615305 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615306} + - {fileID: 8926484042661615307} + - {fileID: 8926484042661615308} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615305} + m_MasterData: + m_Owner: {fileID: 8926484042661615302} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: valueBias + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615306 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615305} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615305} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615307 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615305} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615305} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615308 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615305} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615305} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615309 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615310} + - {fileID: 8926484042661615311} + - {fileID: 8926484042661615312} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615309} + m_MasterData: + m_Owner: {fileID: 8926484042661615302} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":1.0,"z":1.0}' + m_Space: 2147483647 + m_Property: + name: valueScale + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615310 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615309} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615309} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615311 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615309} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615309} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615312 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615309} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615309} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615313 +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: f574644f84c35a64e94e2cfae807c1a3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 1908, y: 808} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615299} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661615300} + slotIndex: 0 + m_OutputFlowSlot: + - link: [] + blendMode: 0 + cullMode: 3 + zWriteMode: 0 + zTestMode: 0 + useAlphaClipping: 0 + generateMotionVector: 0 + excludeFromTAA: 0 + sortingPriority: 0 + m_SubOutputs: + - {fileID: 8926484042661615315} + colorMapping: 0 + uvMode: 0 + flipbookLayout: 0 + useSoftParticle: 0 + vfxSystemSortPriority: 0 + sort: 0 + sortMode: 0 + revertSorting: 0 + indirectDraw: 0 + computeCulling: 0 + frustumCulling: 0 + castShadows: 0 + useExposureWeight: 0 + needsOwnSort: 0 +--- !u!114 &8926484042661615315 +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: 081ffb0090424ba4cb05370a42ead6b9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + opaqueRenderQueue: 0 + transparentRenderQueue: 1 +--- !u!114 &8926484042661615316 +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: 2af1b51cb5343364eb75bae8fceffd25, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615300} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615317} + m_OutputSlots: + - {fileID: 8926484042661615318} + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615414} + mode: 0 + clampToOne: 1 +--- !u!114 &8926484042661615317 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615317} + m_MasterData: + m_Owner: {fileID: 8926484042661615316} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 60 + m_Space: 2147483647 + m_Property: + name: Rate + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615318 +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: 1b605c022ee79394a8a776c0869b3f9a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615318} + m_MasterData: + m_Owner: {fileID: 8926484042661615316} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.GPUEvent, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{}' + m_Space: 2147483647 + m_Property: + name: evt + m_serializedType: + m_SerializableType: UnityEditor.VFX.GPUEvent, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615320} +--- !u!114 &8926484042661615319 +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: f42a6449da2296343af0d8536de8588a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 2614, y: 648} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615320} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615407} + m_InputFlowSlot: + - link: [] + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661615321} + slotIndex: 0 +--- !u!114 &8926484042661615320 +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: 1b605c022ee79394a8a776c0869b3f9a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615320} + m_MasterData: + m_Owner: {fileID: 8926484042661615319} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.GPUEvent, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{}' + m_Space: 2147483647 + m_Property: + name: evt + m_serializedType: + m_SerializableType: UnityEditor.VFX.GPUEvent, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615318} +--- !u!114 &8926484042661615321 +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: 9dfea48843f53fc438eabc12a3a30abc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661615332} + - {fileID: 8926484042661615351} + - {fileID: 8926484042661615354} + - {fileID: 8926484042661615338} + - {fileID: 8926484042661615373} + m_UIPosition: {x: 2625, y: 939} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615322} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615331} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661615319} + slotIndex: 0 + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661615333} + slotIndex: 0 +--- !u!114 &8926484042661615322 +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: 1b605c022ee79394a8a776c0869b3f9a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615323} + - {fileID: 8926484042661615327} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615322} + m_MasterData: + m_Owner: {fileID: 8926484042661615321} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"center":{"x":0.0,"y":0.0,"z":0.0},"size":{"x":10.0,"y":10.0,"z":10.0}}' + m_Space: 0 + m_Property: + name: bounds + m_serializedType: + m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615323 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615322} + m_Children: + - {fileID: 8926484042661615324} + - {fileID: 8926484042661615325} + - {fileID: 8926484042661615326} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615322} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: center + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615324 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615323} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615322} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615325 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615323} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615322} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615326 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615323} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615322} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615327 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615322} + m_Children: + - {fileID: 8926484042661615328} + - {fileID: 8926484042661615329} + - {fileID: 8926484042661615330} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615322} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: size + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615328 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615327} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615322} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615329 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615327} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615322} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615330 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615327} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615322} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615331 +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: d78581a96eae8bf4398c282eb0b098bd, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 8926484042661615321} + - {fileID: 8926484042661615333} + - {fileID: 8926484042661615335} + dataType: 1 + capacity: 20000 + stripCapacity: 200 + particlePerStripCount: 100 + needsComputeBounds: 0 + boundsMode: 1 + m_Space: 0 +--- !u!114 &8926484042661615332 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615321} + m_Children: [] + m_UIPosition: {x: 0, y: 2} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615415} + attribute: position + Composition: 0 + Source: 1 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615333 +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: 2dc095764ededfa4bb32fa602511ea4b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661615379} + - {fileID: 8926484042661615352} + m_UIPosition: {x: 2632, y: 1452} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615331} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661615321} + slotIndex: 0 + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661615335} + slotIndex: 0 + integration: 0 + angularIntegration: 0 + ageParticles: 1 + reapParticles: 1 + skipZeroDeltaUpdate: 0 +--- !u!114 &8926484042661615335 +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: 4bb7134219ee20d44b7ae94bc9dd4cb2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661615375} + - {fileID: 8926484042661615377} + m_UIPosition: {x: 2627, y: 1812} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661615331} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661615333} + slotIndex: 0 + m_OutputFlowSlot: + - link: [] + blendMode: 0 + cullMode: 3 + zWriteMode: 0 + zTestMode: 0 + useAlphaClipping: 0 + generateMotionVector: 0 + excludeFromTAA: 0 + sortingPriority: 0 + m_SubOutputs: + - {fileID: 8926484042661615337} + colorMapping: 0 + uvMode: 0 + flipbookLayout: 0 + useSoftParticle: 0 + vfxSystemSortPriority: 0 + sort: 0 + sortMode: 0 + revertSorting: 0 + indirectDraw: 0 + computeCulling: 0 + frustumCulling: 0 + castShadows: 0 + useExposureWeight: 0 + needsOwnSort: 0 +--- !u!114 &8926484042661615337 +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: 081ffb0090424ba4cb05370a42ead6b9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + opaqueRenderQueue: 0 + transparentRenderQueue: 1 +--- !u!114 &8926484042661615338 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615321} + m_Children: [] + m_UIPosition: {x: 0, y: 161} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615339} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615418} + attribute: lifetime + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615339 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615339} + m_MasterData: + m_Owner: {fileID: 8926484042661615338} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: Lifetime + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615340 +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: 60fff265f139e2a4194a44c2bac41757, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615300} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615341} + - {fileID: 8926484042661615342} + - {fileID: 8926484042661615343} + - {fileID: 8926484042661615347} + m_OutputSlots: [] + m_Disabled: 1 + m_ActivationSlot: {fileID: 8926484042661615412} + attribute: velocity + Composition: 0 + SampleMode: 6 + mode: 0 + channels: 6 + usePointCount: 0 +--- !u!114 &8926484042661615341 +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: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615341} + m_MasterData: + m_Owner: {fileID: 8926484042661615340} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":8400000,"guid":"87843e6597188870d8ca42f3136d4930","type":2}}' + m_Space: 2147483647 + m_Property: + name: attributeMap + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615405} +--- !u!114 &8926484042661615342 +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: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615342} + m_MasterData: + m_Owner: {fileID: 8926484042661615340} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: Seed + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615343 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615344} + - {fileID: 8926484042661615345} + - {fileID: 8926484042661615346} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615343} + m_MasterData: + m_Owner: {fileID: 8926484042661615340} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: valueBias + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615344 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615343} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615343} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615345 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615343} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615343} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615346 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615343} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615343} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615347 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615348} + - {fileID: 8926484042661615349} + - {fileID: 8926484042661615350} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615347} + m_MasterData: + m_Owner: {fileID: 8926484042661615340} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":1.0,"z":1.0}' + m_Space: 2147483647 + m_Property: + name: valueScale + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615348 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615347} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615347} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615349 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615347} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615347} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615350 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615347} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615347} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615351 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615321} + m_Children: [] + m_UIPosition: {x: 0, y: 42} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615416} + attribute: velocity + Composition: 0 + Source: 1 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615352 +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: b294673e879f9cf449cc9de536818ea9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615333} + m_Children: [] + m_UIPosition: {x: 0, y: 2} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615353} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615421} + UseParticleSize: 0 +--- !u!114 &8926484042661615353 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615353} + m_MasterData: + m_Owner: {fileID: 8926484042661615352} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: dragCoefficient + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615354 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615321} + m_Children: [] + m_UIPosition: {x: 0, y: 84} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615355} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615417} + attribute: velocity + Composition: 2 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615355 +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: a9f9544b71b7dab44a4644b6807e8bf6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615356} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615355} + m_MasterData: + m_Owner: {fileID: 8926484042661615354} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Vector, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"vector":{"x":0.0,"y":0.0,"z":0.0}}' + m_Space: 0 + m_Property: + name: Velocity + m_serializedType: + m_SerializableType: UnityEditor.VFX.Vector, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615362} +--- !u!114 &8926484042661615356 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615355} + m_Children: + - {fileID: 8926484042661615357} + - {fileID: 8926484042661615358} + - {fileID: 8926484042661615359} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615355} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: vector + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615357 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615356} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615355} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615358 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615356} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615355} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615359 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615356} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615355} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615360 +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: 955b0c175a6f3bb4582e92f3de8f0626, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 2367, y: 1163} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615361} + m_OutputSlots: + - {fileID: 8926484042661615362} + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615361 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615361} + m_MasterData: + m_Owner: {fileID: 8926484042661615360} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.1 + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615362 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615362} + m_MasterData: + m_Owner: {fileID: 8926484042661615360} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615355} +--- !u!114 &8926484042661615363 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615300} + m_Children: [] + m_UIPosition: {x: 0, y: 93} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615364} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615413} + attribute: color + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615364 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615365} + - {fileID: 8926484042661615366} + - {fileID: 8926484042661615367} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615364} + m_MasterData: + m_Owner: {fileID: 8926484042661615363} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":1.0,"z":1.0}' + m_Space: 2147483647 + m_Property: + name: Color + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615281} +--- !u!114 &8926484042661615365 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615364} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615364} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615366 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615364} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615364} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615367 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615364} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615364} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615368 +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: 486e063e1ed58c843942ea4122829ab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 1014, y: 565} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615369} + attribute: position + location: 0 + mask: xyz +--- !u!114 &8926484042661615369 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615370} + - {fileID: 8926484042661615371} + - {fileID: 8926484042661615372} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615369} + m_MasterData: + m_Owner: {fileID: 8926484042661615368} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615223} +--- !u!114 &8926484042661615370 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615369} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615369} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615371 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615369} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615369} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615372 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615369} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615369} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615373 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615321} + m_Children: [] + m_UIPosition: {x: 0, y: 238} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615419} + attribute: color + Composition: 0 + Source: 1 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615375 +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: 01ec2c1930009b04ea08905b47262415, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615335} + m_Children: [] + m_UIPosition: {x: 0, y: 2} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615376} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615422} + attribute: color + Composition: 2 + AlphaComposition: 0 + SampleMode: 0 + Mode: 1 + ColorMode: 1 + channels: 6 +--- !u!114 &8926484042661615376 +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: 76f778ff57c4e8145b9681fe3268d8e9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615376} + m_MasterData: + m_Owner: {fileID: 8926484042661615375} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Gradient, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"colorKeys":[{"color":{"r":3.8444199562072756,"g":3.8444199562072756,"b":3.8444199562072756,"a":1.0},"time":0.2382391095161438},{"color":{"r":0.25469595193862917,"g":0.25469595193862917,"b":0.25469595193862917,"a":1.0},"time":0.658823549747467},{"color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"time":1.0}],"alphaKeys":[{"alpha":1.0,"time":0.0},{"alpha":1.0,"time":1.0}],"gradientMode":0}' + m_Space: 2147483647 + m_Property: + name: Color + m_serializedType: + m_SerializableType: UnityEngine.Gradient, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615377 +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: 01ec2c1930009b04ea08905b47262415, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615335} + m_Children: [] + m_UIPosition: {x: 0, y: 129} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615378} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615423} + attribute: color + Composition: 1 + AlphaComposition: 0 + SampleMode: 0 + Mode: 1 + ColorMode: 1 + channels: 6 +--- !u!114 &8926484042661615378 +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: 76f778ff57c4e8145b9681fe3268d8e9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615378} + m_MasterData: + m_Owner: {fileID: 8926484042661615377} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Gradient, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"colorKeys":[{"color":{"r":45.25483703613281,"g":6.97613525390625,"b":1.3692536354064942,"a":1.0},"time":0.0},{"color":{"r":0.7215184569358826,"g":1.0,"b":0.027320891618728639,"a":1.0},"time":0.2235294133424759},{"color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"time":0.3470664620399475}],"alphaKeys":[{"alpha":1.0,"time":0.0},{"alpha":1.0,"time":1.0}],"gradientMode":0}' + m_Space: 2147483647 + m_Property: + name: Color + m_serializedType: + m_SerializableType: UnityEngine.Gradient, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615379 +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: c079bc84df7c7e94f88c8ae0d1b0691d, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615333} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615380} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615420} + Mode: 0 +--- !u!114 &8926484042661615380 +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: a9f9544b71b7dab44a4644b6807e8bf6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615381} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615380} + m_MasterData: + m_Owner: {fileID: 8926484042661615379} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Vector, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"vector":{"x":0.0,"y":0.0,"z":0.0}}' + m_Space: 0 + m_Property: + name: Force + m_serializedType: + m_SerializableType: UnityEditor.VFX.Vector, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615041} +--- !u!114 &8926484042661615381 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615380} + m_Children: + - {fileID: 8926484042661615382} + - {fileID: 8926484042661615383} + - {fileID: 8926484042661615384} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615380} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: vector + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615382 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615381} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615380} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615383 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615381} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615380} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615384 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615381} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615380} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615385 +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: 955b0c175a6f3bb4582e92f3de8f0626, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 1431, y: 1680} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615386} + m_OutputSlots: + - {fileID: 8926484042661615390} + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &8926484042661615386 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615387} + - {fileID: 8926484042661615388} + - {fileID: 8926484042661615389} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615386} + m_MasterData: + m_Owner: {fileID: 8926484042661615385} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.03999999910593033,"y":0.30000001192092898,"z":0.07000000029802323}' + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615387 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615386} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615386} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615388 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615386} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615386} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615389 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615386} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615386} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615390 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615391} + - {fileID: 8926484042661615392} + - {fileID: 8926484042661615393} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615390} + m_MasterData: + m_Owner: {fileID: 8926484042661615385} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615394} +--- !u!114 &8926484042661615391 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615390} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615390} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615392 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615390} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615390} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615393 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615390} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615390} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615394 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615395} + - {fileID: 8926484042661615396} + - {fileID: 8926484042661615397} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615394} + m_MasterData: + m_Owner: {fileID: 8926484042661615131} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":1.0,"z":1.0}' + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615390} +--- !u!114 &8926484042661615395 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615394} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615394} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615396 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615394} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615394} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615397 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615394} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615394} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615398 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615399} + - {fileID: 8926484042661615400} + - {fileID: 8926484042661615401} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615398} + m_MasterData: + m_Owner: {fileID: 8926484042661615131} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615156} +--- !u!114 &8926484042661615399 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615398} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615398} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615400 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615398} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615398} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615401 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615398} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615398} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615402 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615403} + m_ExposedName: PositionMap + m_Exposed: 1 + m_Order: 0 + m_Category: + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615403} + inputSlot: {fileID: 8926484042661615303} + position: {x: 1686, y: 216} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615403 +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: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615403} + m_MasterData: + m_Owner: {fileID: 8926484042661615402} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615303} +--- !u!114 &8926484042661615404 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615405} + m_ExposedName: VelocityMap + m_Exposed: 1 + m_Order: 1 + m_Category: + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615405} + inputSlot: {fileID: 8926484042661615341} + position: {x: 1694, y: 371} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615405 +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: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615405} + m_MasterData: + m_Owner: {fileID: 8926484042661615404} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615341} +--- !u!114 &8926484042661615406 +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: f68759077adc0b143b6e1c101e82065e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 114023846229194376} +--- !u!114 &8926484042661615407 +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: f68759077adc0b143b6e1c101e82065e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 8926484042661615319} +--- !u!114 &8926484042661615408 +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: a72fbb93ebe17974e90a144ef2ec8ceb, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 1546, y: 1642} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615409} + m_BuiltInParameters: 4 +--- !u!114 &8926484042661615409 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615409} + m_MasterData: + m_Owner: {fileID: 8926484042661615408} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: Total Time + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615132} +--- !u!114 &8926484042661615410 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615410} + m_MasterData: + m_Owner: {fileID: 8926484042661615286} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615411 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615411} + m_MasterData: + m_Owner: {fileID: 8926484042661615302} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615412 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615412} + m_MasterData: + m_Owner: {fileID: 8926484042661615340} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: False + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615413 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615413} + m_MasterData: + m_Owner: {fileID: 8926484042661615363} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615414 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615414} + m_MasterData: + m_Owner: {fileID: 8926484042661615316} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615415 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615415} + m_MasterData: + m_Owner: {fileID: 8926484042661615332} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615416 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615416} + m_MasterData: + m_Owner: {fileID: 8926484042661615351} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615417 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615417} + m_MasterData: + m_Owner: {fileID: 8926484042661615354} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615418 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615418} + m_MasterData: + m_Owner: {fileID: 8926484042661615338} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615419 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615419} + m_MasterData: + m_Owner: {fileID: 8926484042661615373} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615420 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615420} + m_MasterData: + m_Owner: {fileID: 8926484042661615379} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615421 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615421} + m_MasterData: + m_Owner: {fileID: 8926484042661615352} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615422 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615422} + m_MasterData: + m_Owner: {fileID: 8926484042661615375} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615423 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615423} + m_MasterData: + m_Owner: {fileID: 8926484042661615377} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] diff --git a/Assets/Dwelling/VFX/Lines.vfx.meta b/Assets/Dwelling/VFX/Lines.vfx.meta new file mode 100644 index 0000000..c86d41a --- /dev/null +++ b/Assets/Dwelling/VFX/Lines.vfx.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 352fbfba879a4e94fad93ea7ef3e5a42 +VisualEffectImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/VFX/Particles.vfx b/Assets/Dwelling/VFX/Particles.vfx new file mode 100644 index 0000000..45c2b44 --- /dev/null +++ b/Assets/Dwelling/VFX/Particles.vfx @@ -0,0 +1,5572 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &114023846229194376 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: 73a13919d81fb7444849bae8b5c812a2, type: 3} + m_Name: VFXBasicSpawner + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 114873264888500148} + m_UIPosition: {x: 796, y: -375} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661614779} + m_InputFlowSlot: + - link: [] + - link: [] + m_OutputFlowSlot: + - link: + - context: {fileID: 114946465509916290} + slotIndex: 0 + loopDuration: 0 + loopCount: 0 + delayBeforeLoop: 0 + delayAfterLoop: 0 +--- !u!114 &114307113894698210 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: 1b605c022ee79394a8a776c0869b3f9a, type: 3} + m_Name: VFXSlot + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 114986932069951040} + - {fileID: 114963171269329408} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114307113894698210} + m_MasterData: + m_Owner: {fileID: 114946465509916290} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"center":{"x":0.0,"y":1.0,"z":0.0},"size":{"x":2.0,"y":3.0,"z":2.0}}' + m_Space: 0 + m_Property: + name: bounds + m_serializedType: + m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &114340500867371532 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: d01270efd3285ea4a9d6c555cb0a8027, type: 3} + m_Name: VFXUI + m_EditorClassIdentifier: + groupInfos: [] + stickyNoteInfos: [] + categories: [] + uiBounds: + serializedVersion: 2 + x: -375 + y: -375 + width: 1595 + height: 2451 +--- !u!114 &114350483966674976 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: 7d4c867f6b72b714dbb5fd1780afe208, type: 3} + m_Name: Particles + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 114023846229194376} + - {fileID: 114946465509916290} + - {fileID: 114780028408030698} + - {fileID: 8926484042661614780} + - {fileID: 8926484042661614615} + - {fileID: 8926484042661614626} + - {fileID: 8926484042661614634} + - {fileID: 8926484042661614654} + - {fileID: 8926484042661614687} + - {fileID: 8926484042661614692} + - {fileID: 8926484042661614704} + - {fileID: 8926484042661614712} + - {fileID: 8926484042661614721} + - {fileID: 8926484042661614738} + - {fileID: 8926484042661614759} + - {fileID: 8926484042661614775} + - {fileID: 8926484042661614777} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_UIInfos: {fileID: 114340500867371532} + m_ParameterInfo: + - name: PositionMap + path: PositionMap + tooltip: + sheetType: m_NamedObject + realType: Texture2D + defaultValue: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: VelocityMap + path: VelocityMap + tooltip: + sheetType: m_NamedObject + realType: Texture2D + defaultValue: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + m_ImportDependencies: [] + m_GraphVersion: 12 + m_ResourceVersion: 1 + m_SubgraphDependencies: [] + m_CategoryPath: +--- !u!114 &114380859405582094 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: VFXSlotFloat + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114963171269329408} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114307113894698210} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &114428730288789306 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: d78581a96eae8bf4398c282eb0b098bd, type: 3} + m_Name: VFXDataParticle + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 114946465509916290} + - {fileID: 114780028408030698} + - {fileID: 8926484042661614654} + dataType: 0 + capacity: 20000 + stripCapacity: 16 + particlePerStripCount: 16 + needsComputeBounds: 0 + boundsMode: 1 + m_Space: 0 +--- !u!114 &114512514798047786 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: VFXSlotFloat + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114963171269329408} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114307113894698210} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &114538391275492396 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: VFXSlotFloat + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114986932069951040} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114307113894698210} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &114571176826476282 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: VFXSlotFloat + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114571176826476282} + m_MasterData: + m_Owner: {fileID: 114873264888500148} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 15000 + m_Space: 2147483647 + m_Property: + name: Rate + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &114739294351936256 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: VFXSlotFloat + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114986932069951040} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114307113894698210} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &114780028408030698 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: 2dc095764ededfa4bb32fa602511ea4b, type: 3} + m_Name: VFXBasicUpdate + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661614585} + - {fileID: 8926484042661614652} + m_UIPosition: {x: 708, y: 587} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 114428730288789306} + m_InputFlowSlot: + - link: + - context: {fileID: 114946465509916290} + slotIndex: 0 + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661614654} + slotIndex: 0 + integration: 0 + angularIntegration: 0 + ageParticles: 1 + reapParticles: 1 + skipZeroDeltaUpdate: 0 +--- !u!114 &114873264888500148 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: f05c6884b705ce14d82ae720f0ec209f, type: 3} + m_Name: VFXSpawnerConstantRate + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114023846229194376} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 114571176826476282} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614782} +--- !u!114 &114920711487922656 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: VFXSlotFloat + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114963171269329408} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114307113894698210} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &114935892456706286 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: VFXSlotFloat + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114986932069951040} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114307113894698210} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &114946465509916290 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: 9dfea48843f53fc438eabc12a3a30abc, type: 3} + m_Name: VFXBasicInitialize + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661614572} + - {fileID: 8926484042661614636} + - {fileID: 8926484042661614603} + m_UIPosition: {x: 756, y: -104} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 114307113894698210} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 114428730288789306} + m_InputFlowSlot: + - link: + - context: {fileID: 114023846229194376} + slotIndex: 0 + m_OutputFlowSlot: + - link: + - context: {fileID: 114780028408030698} + slotIndex: 0 +--- !u!114 &114963171269329408 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: VFXSlotFloat3 + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114307113894698210} + m_Children: + - {fileID: 114512514798047786} + - {fileID: 114920711487922656} + - {fileID: 114380859405582094} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114307113894698210} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: size + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &114986932069951040 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: VFXSlotFloat3 + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114307113894698210} + m_Children: + - {fileID: 114739294351936256} + - {fileID: 114935892456706286} + - {fileID: 114538391275492396} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114307113894698210} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: center + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!2058629511 &8926484042661614527 +VisualEffectResource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Particles + m_Graph: {fileID: 114350483966674976} + m_Infos: + m_RendererSettings: + motionVectorGenerationMode: 0 + shadowCastingMode: 0 + receiveShadows: 0 + reflectionProbeUsage: 0 + lightProbeUsage: 0 + m_CullingFlags: 3 + m_UpdateMode: 0 + m_PreWarmDeltaTime: 0.05 + m_PreWarmStepCount: 0 + m_InitialEventName: OnPlay + m_InstancingMode: -1 + m_InstancingCapacity: 64 +--- !u!114 &8926484042661614572 +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: 60fff265f139e2a4194a44c2bac41757, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114946465509916290} + m_Children: [] + m_UIPosition: {x: 0, y: 2} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614573} + - {fileID: 8926484042661614574} + - {fileID: 8926484042661614575} + - {fileID: 8926484042661614579} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614783} + attribute: position + Composition: 0 + SampleMode: 6 + mode: 0 + channels: 6 + usePointCount: 0 +--- !u!114 &8926484042661614573 +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: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614573} + m_MasterData: + m_Owner: {fileID: 8926484042661614572} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":8400000,"guid":"65f21fe1f464bf0f1a1fc991675ee2dc","type":2}}' + m_Space: 2147483647 + m_Property: + name: attributeMap + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614776} +--- !u!114 &8926484042661614574 +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: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614574} + m_MasterData: + m_Owner: {fileID: 8926484042661614572} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: Seed + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614575 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614576} + - {fileID: 8926484042661614577} + - {fileID: 8926484042661614578} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614575} + m_MasterData: + m_Owner: {fileID: 8926484042661614572} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: valueBias + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614576 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614575} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614575} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614577 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614575} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614575} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614578 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614575} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614575} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614579 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614580} + - {fileID: 8926484042661614581} + - {fileID: 8926484042661614582} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614579} + m_MasterData: + m_Owner: {fileID: 8926484042661614572} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":1.0,"z":1.0}' + m_Space: 2147483647 + m_Property: + name: valueScale + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614580 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614579} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614579} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614581 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614579} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614579} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614582 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614579} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614579} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614585 +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: 63716c0daf1806941a123003dc6d7398, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114780028408030698} + m_Children: [] + m_UIPosition: {x: 0, y: 2} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614586} + - {fileID: 8926484042661614601} + - {fileID: 8926484042661614602} + - {fileID: 8926484042661614771} + - {fileID: 8926484042661614772} + - {fileID: 8926484042661614773} + - {fileID: 8926484042661614774} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614786} + Mode: 1 + NoiseType: 0 +--- !u!114 &8926484042661614586 +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: 3e3f628d80ffceb489beac74258f9cf7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614587} + - {fileID: 8926484042661614591} + - {fileID: 8926484042661614595} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614586} + m_MasterData: + m_Owner: {fileID: 8926484042661614585} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Transform, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0},"angles":{"x":0.0,"y":0.0,"z":0.0},"scale":{"x":0.5,"y":0.5,"z":0.5}}' + m_Space: 0 + m_Property: + name: FieldTransform + m_serializedType: + m_SerializableType: UnityEditor.VFX.Transform, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614587 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614586} + m_Children: + - {fileID: 8926484042661614588} + - {fileID: 8926484042661614589} + - {fileID: 8926484042661614590} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614586} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614588 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614587} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614586} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614589 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614587} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614586} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614618} +--- !u!114 &8926484042661614590 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614587} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614586} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614591 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614586} + m_Children: + - {fileID: 8926484042661614592} + - {fileID: 8926484042661614593} + - {fileID: 8926484042661614594} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614586} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: angles + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614592 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614591} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614586} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614593 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614591} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614586} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614594 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614591} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614586} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614595 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614586} + m_Children: + - {fileID: 8926484042661614596} + - {fileID: 8926484042661614597} + - {fileID: 8926484042661614598} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614586} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: scale + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614596 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614595} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614586} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614597 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614595} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614586} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614598 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614595} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614586} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614601 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614601} + m_MasterData: + m_Owner: {fileID: 8926484042661614585} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 2 + m_Space: 2147483647 + m_Property: + name: Intensity + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614602 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614602} + m_MasterData: + m_Owner: {fileID: 8926484042661614585} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: Drag + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614603 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114946465509916290} + m_Children: [] + m_UIPosition: {x: 0, y: 163} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614766} + - {fileID: 8926484042661614767} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614785} + attribute: lifetime + Composition: 0 + Source: 0 + Random: 2 + channels: 6 +--- !u!114 &8926484042661614615 +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: b8ee8a7543fa09e42a7c8616f60d2ad7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 480, y: 738} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614616} + - {fileID: 8926484042661614617} + m_OutputSlots: + - {fileID: 8926484042661614618} + m_Operands: + - name: a + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - name: b + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661614616 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614616} + m_MasterData: + m_Owner: {fileID: 8926484042661614615} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614781} +--- !u!114 &8926484042661614617 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614617} + m_MasterData: + m_Owner: {fileID: 8926484042661614615} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.24 + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614618 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614618} + m_MasterData: + m_Owner: {fileID: 8926484042661614615} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614589} +--- !u!114 &8926484042661614626 +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: a07d13b909432284193a1aeec3c9f533, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 397, y: 1420} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614627} + - {fileID: 8926484042661614628} + m_OutputSlots: + - {fileID: 8926484042661614629} +--- !u!114 &8926484042661614627 +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: 76f778ff57c4e8145b9681fe3268d8e9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614627} + m_MasterData: + m_Owner: {fileID: 8926484042661614626} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Gradient, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"colorKeys":[{"color":{"r":13.020977973937989,"g":19.409225463867189,"b":19.409225463867189,"a":1.0},"time":0.0},{"color":{"r":0.649617075920105,"g":0.9773671627044678,"b":0.9773671627044678,"a":1.0},"time":0.1764705926179886},{"color":{"r":0.5198220610618591,"g":0.7799657583236694,"b":0.7799657583236694,"a":1.0},"time":0.9264667630195618},{"color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"time":1.0}],"alphaKeys":[{"alpha":1.0,"time":0.0},{"alpha":1.0,"time":1.0}],"gradientMode":0}' + m_Space: 2147483647 + m_Property: + name: gradient + m_serializedType: + m_SerializableType: UnityEngine.Gradient, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614628 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614628} + m_MasterData: + m_Owner: {fileID: 8926484042661614626} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: time + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614635} +--- !u!114 &8926484042661614629 +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: c499060cea9bbb24b8d723eafa343303, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614630} + - {fileID: 8926484042661614631} + - {fileID: 8926484042661614632} + - {fileID: 8926484042661614633} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614629} + m_MasterData: + m_Owner: {fileID: 8926484042661614626} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector4, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0,"w":0.0}' + m_Space: 2147483647 + m_Property: + name: s + m_serializedType: + m_SerializableType: UnityEngine.Vector4, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614664} +--- !u!114 &8926484042661614630 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614629} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614629} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614631 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614629} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614629} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614632 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614629} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614629} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614633 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614629} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614629} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: w + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614634 +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: ba941214d319b454f90d5480e85886f2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 175, y: 1465} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661614635} +--- !u!114 &8926484042661614635 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614635} + m_MasterData: + m_Owner: {fileID: 8926484042661614634} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: t + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614628} +--- !u!114 &8926484042661614636 +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: 60fff265f139e2a4194a44c2bac41757, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114946465509916290} + m_Children: [] + m_UIPosition: {x: 0, y: 257} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614637} + - {fileID: 8926484042661614638} + - {fileID: 8926484042661614639} + - {fileID: 8926484042661614643} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614784} + attribute: velocity + Composition: 0 + SampleMode: 6 + mode: 0 + channels: 6 + usePointCount: 0 +--- !u!114 &8926484042661614637 +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: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614637} + m_MasterData: + m_Owner: {fileID: 8926484042661614636} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":8400000,"guid":"87843e6597188870d8ca42f3136d4930","type":2}}' + m_Space: 2147483647 + m_Property: + name: attributeMap + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614778} +--- !u!114 &8926484042661614638 +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: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614638} + m_MasterData: + m_Owner: {fileID: 8926484042661614636} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: Seed + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614639 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614640} + - {fileID: 8926484042661614641} + - {fileID: 8926484042661614642} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614639} + m_MasterData: + m_Owner: {fileID: 8926484042661614636} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: valueBias + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614640 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614639} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614639} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614641 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614639} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614639} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614642 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614639} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614639} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614643 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614644} + - {fileID: 8926484042661614645} + - {fileID: 8926484042661614646} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614643} + m_MasterData: + m_Owner: {fileID: 8926484042661614636} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.5,"y":0.5,"z":0.5}' + m_Space: 2147483647 + m_Property: + name: valueScale + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614644 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614643} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614643} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614645 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614643} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614643} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614646 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614643} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614643} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614652 +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: b294673e879f9cf449cc9de536818ea9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114780028408030698} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614653} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614787} + UseParticleSize: 0 +--- !u!114 &8926484042661614653 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614653} + m_MasterData: + m_Owner: {fileID: 8926484042661614652} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.2 + m_Space: 2147483647 + m_Property: + name: dragCoefficient + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614654 +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: a0b9e6b9139e58d4c957ec54595da7d3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661614663} + - {fileID: 8926484042661614733} + - {fileID: 8926484042661614686} + - {fileID: 8926484042661614681} + - {fileID: 8926484042661614657} + m_UIPosition: {x: 758, y: 1283} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614655} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 114428730288789306} + m_InputFlowSlot: + - link: + - context: {fileID: 114780028408030698} + slotIndex: 0 + m_OutputFlowSlot: + - link: [] + blendMode: 0 + cullMode: 0 + zWriteMode: 0 + zTestMode: 0 + useAlphaClipping: 0 + generateMotionVector: 0 + excludeFromTAA: 0 + sortingPriority: 0 + m_SubOutputs: + - {fileID: 8926484042661614768} + colorMapping: 0 + uvMode: 0 + flipbookLayout: 0 + useSoftParticle: 0 + vfxSystemSortPriority: 0 + sort: 0 + sortMode: 0 + revertSorting: 0 + indirectDraw: 0 + computeCulling: 0 + frustumCulling: 0 + castShadows: 0 + useExposureWeight: 0 + needsOwnSort: 0 + shaderGraph: {fileID: 0} + materialSettings: + m_PropertyNames: [] + m_PropertyValues: [] + primitiveType: 1 + useGeometryShader: 0 +--- !u!114 &8926484042661614655 +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: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614655} + m_MasterData: + m_Owner: {fileID: 8926484042661614654} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":2800000,"guid":"49cb5aa34272b034d8b754c65d9cdbfa","type":3}}' + m_Space: 2147483647 + m_Property: + name: mainTexture + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614657 +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: d03231f387e7ed54d888c74e4e13228e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614654} + m_Children: [] + m_UIPosition: {x: 0, y: 534} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614792} +--- !u!114 &8926484042661614663 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614654} + m_Children: [] + m_UIPosition: {x: 0, y: 2} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614664} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614788} + attribute: color + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661614664 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614665} + - {fileID: 8926484042661614666} + - {fileID: 8926484042661614667} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614664} + m_MasterData: + m_Owner: {fileID: 8926484042661614663} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":1.0,"z":1.0}' + m_Space: 2147483647 + m_Property: + name: Color + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614629} +--- !u!114 &8926484042661614665 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614664} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614664} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614666 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614664} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614664} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614667 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614664} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614664} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614681 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614654} + m_Children: [] + m_UIPosition: {x: 0, y: 363} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614682} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614791} + attribute: scale + Composition: 2 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661614682 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614683} + - {fileID: 8926484042661614684} + - {fileID: 8926484042661614685} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614682} + m_MasterData: + m_Owner: {fileID: 8926484042661614681} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.05000000074505806,"y":8.0,"z":0.05000000074505806}' + m_Space: 2147483647 + m_Property: + name: Scale + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614683 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614682} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614682} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614715} +--- !u!114 &8926484042661614684 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614682} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614682} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614711} +--- !u!114 &8926484042661614685 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614682} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614682} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614715} +--- !u!114 &8926484042661614686 +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: d16c6aeaef944094b9a1633041804207, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614654} + m_Children: [] + m_UIPosition: {x: 0, y: 287} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614790} + mode: 6 + axes: 4 +--- !u!114 &8926484042661614687 +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: 486e063e1ed58c843942ea4122829ab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -375, y: 1895} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661614688} + attribute: velocity + location: 0 + mask: xyz +--- !u!114 &8926484042661614688 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614689} + - {fileID: 8926484042661614690} + - {fileID: 8926484042661614691} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614688} + m_MasterData: + m_Owner: {fileID: 8926484042661614687} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: velocity + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614705} +--- !u!114 &8926484042661614689 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614688} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614688} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614690 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614688} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614688} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614691 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614688} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614688} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614692 +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: b8ee8a7543fa09e42a7c8616f60d2ad7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 409, y: 1958} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614710} + - {fileID: 8926484042661614694} + m_OutputSlots: + - {fileID: 8926484042661614711} + m_Operands: + - name: a + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - name: b + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661614694 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614694} + m_MasterData: + m_Owner: {fileID: 8926484042661614692} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614704 +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: b89d44d34b0b0ca4bb334636b7b2060a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -89, y: 1917} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: + - {fileID: 8926484042661614705} + m_OutputSlots: + - {fileID: 8926484042661614709} + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &8926484042661614705 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614706} + - {fileID: 8926484042661614707} + - {fileID: 8926484042661614708} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614705} + m_MasterData: + m_Owner: {fileID: 8926484042661614704} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614688} +--- !u!114 &8926484042661614706 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614705} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614705} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614707 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614705} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614705} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614708 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614705} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614705} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614709 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614709} + m_MasterData: + m_Owner: {fileID: 8926484042661614704} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: l + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614710} + - {fileID: 8926484042661614713} + - {fileID: 8926484042661614760} +--- !u!114 &8926484042661614710 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614710} + m_MasterData: + m_Owner: {fileID: 8926484042661614692} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614709} +--- !u!114 &8926484042661614711 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614711} + m_MasterData: + m_Owner: {fileID: 8926484042661614692} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614684} +--- !u!114 &8926484042661614712 +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: b8ee8a7543fa09e42a7c8616f60d2ad7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 414, y: 1829} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614713} + - {fileID: 8926484042661614714} + m_OutputSlots: + - {fileID: 8926484042661614715} + m_Operands: + - name: a + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - name: b + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661614713 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614713} + m_MasterData: + m_Owner: {fileID: 8926484042661614712} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614709} +--- !u!114 &8926484042661614714 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614714} + m_MasterData: + m_Owner: {fileID: 8926484042661614712} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.05 + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614715 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614715} + m_MasterData: + m_Owner: {fileID: 8926484042661614712} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614683} + - {fileID: 8926484042661614685} +--- !u!114 &8926484042661614721 +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: b8ee8a7543fa09e42a7c8616f60d2ad7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 413, y: 1652} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: + - {fileID: 8926484042661614749} + - {fileID: 8926484042661614723} + m_OutputSlots: + - {fileID: 8926484042661614754} + m_Operands: + - name: a + type: + m_SerializableType: UnityEngine.Vector4, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + - name: b + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661614723 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614723} + m_MasterData: + m_Owner: {fileID: 8926484042661614721} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614765} +--- !u!114 &8926484042661614733 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614654} + m_Children: [] + m_UIPosition: {x: 0, y: 95} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614734} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614789} + attribute: color + Composition: 1 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661614734 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614735} + - {fileID: 8926484042661614736} + - {fileID: 8926484042661614737} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614734} + m_MasterData: + m_Owner: {fileID: 8926484042661614733} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":1.0,"z":1.0}' + m_Space: 2147483647 + m_Property: + name: Color + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614754} +--- !u!114 &8926484042661614735 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614734} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614734} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614736 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614734} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614734} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614737 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614734} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614734} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614738 +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: 955b0c175a6f3bb4582e92f3de8f0626, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 21, y: 1555} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614739} + m_OutputSlots: + - {fileID: 8926484042661614744} + m_Type: + m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &8926484042661614739 +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: c82227d5759e296488798b1554a72a15, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614740} + - {fileID: 8926484042661614741} + - {fileID: 8926484042661614742} + - {fileID: 8926484042661614743} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614739} + m_MasterData: + m_Owner: {fileID: 8926484042661614738} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"r":8.474186897277832,"g":1.6415964365005494,"b":0.4436747133731842,"a":0.0}' + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614740 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614739} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614739} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: r + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614741 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614739} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614739} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: g + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614742 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614739} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614739} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614743 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614739} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614739} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614744 +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: c82227d5759e296488798b1554a72a15, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614745} + - {fileID: 8926484042661614746} + - {fileID: 8926484042661614747} + - {fileID: 8926484042661614748} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614744} + m_MasterData: + m_Owner: {fileID: 8926484042661614738} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614749} +--- !u!114 &8926484042661614745 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614744} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614744} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: r + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614746 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614744} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614744} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: g + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614747 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614744} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614744} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614748 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614744} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614744} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614749 +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: c499060cea9bbb24b8d723eafa343303, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614750} + - {fileID: 8926484042661614751} + - {fileID: 8926484042661614752} + - {fileID: 8926484042661614753} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614749} + m_MasterData: + m_Owner: {fileID: 8926484042661614721} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector4, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":1.0,"z":1.0,"w":0.0}' + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: UnityEngine.Vector4, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614744} +--- !u!114 &8926484042661614750 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614749} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614749} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614751 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614749} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614749} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614752 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614749} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614749} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614753 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614749} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614749} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: w + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614754 +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: c499060cea9bbb24b8d723eafa343303, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614755} + - {fileID: 8926484042661614756} + - {fileID: 8926484042661614757} + - {fileID: 8926484042661614758} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614754} + m_MasterData: + m_Owner: {fileID: 8926484042661614721} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector4, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0,"w":0.0}' + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector4, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614734} +--- !u!114 &8926484042661614755 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614754} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614754} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614756 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614754} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614754} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614757 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614754} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614754} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614758 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614754} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614754} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: w + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661614759 +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: 0a02ebe9815b1084495277ae39c6c270, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 106, y: 1661} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614760} + - {fileID: 8926484042661614761} + - {fileID: 8926484042661614762} + - {fileID: 8926484042661614763} + - {fileID: 8926484042661614764} + m_OutputSlots: + - {fileID: 8926484042661614765} + m_Type: + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Clamp: 1 +--- !u!114 &8926484042661614760 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614760} + m_MasterData: + m_Owner: {fileID: 8926484042661614759} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.5 + m_Space: 2147483647 + m_Property: + name: input + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614709} +--- !u!114 &8926484042661614761 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614761} + m_MasterData: + m_Owner: {fileID: 8926484042661614759} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.6 + m_Space: 2147483647 + m_Property: + name: oldRangeMin + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614762 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614762} + m_MasterData: + m_Owner: {fileID: 8926484042661614759} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 2 + m_Space: 2147483647 + m_Property: + name: oldRangeMax + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614763 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614763} + m_MasterData: + m_Owner: {fileID: 8926484042661614759} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: newRangeMin + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614764 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614764} + m_MasterData: + m_Owner: {fileID: 8926484042661614759} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: newRangeMax + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614765 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614765} + m_MasterData: + m_Owner: {fileID: 8926484042661614759} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614723} +--- !u!114 &8926484042661614766 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614766} + m_MasterData: + m_Owner: {fileID: 8926484042661614603} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: A + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614767 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614767} + m_MasterData: + m_Owner: {fileID: 8926484042661614603} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 3 + m_Space: 2147483647 + m_Property: + name: B + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614768 +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: 081ffb0090424ba4cb05370a42ead6b9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + opaqueRenderQueue: 0 + transparentRenderQueue: 1 +--- !u!114 &8926484042661614771 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614771} + m_MasterData: + m_Owner: {fileID: 8926484042661614585} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1.5 + m_Space: 2147483647 + m_Property: + name: frequency + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614772 +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: 4d246e354feb93041a837a9ef59437cb, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614772} + m_MasterData: + m_Owner: {fileID: 8926484042661614585} + m_Value: + m_Type: + m_SerializableType: System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 3 + m_Space: 2147483647 + m_Property: + name: octaves + m_serializedType: + m_SerializableType: System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614773 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614773} + m_MasterData: + m_Owner: {fileID: 8926484042661614585} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.5 + m_Space: 2147483647 + m_Property: + name: roughness + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614774 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614774} + m_MasterData: + m_Owner: {fileID: 8926484042661614585} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 2 + m_Space: 2147483647 + m_Property: + name: lacunarity + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614775 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661614776} + m_ExposedName: PositionMap + m_Exposed: 1 + m_Order: 0 + m_Category: + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661614776} + inputSlot: {fileID: 8926484042661614573} + position: {x: 461, y: 136} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661614776 +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: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614776} + m_MasterData: + m_Owner: {fileID: 8926484042661614775} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614573} +--- !u!114 &8926484042661614777 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661614778} + m_ExposedName: VelocityMap + m_Exposed: 1 + m_Order: 1 + m_Category: + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661614778} + inputSlot: {fileID: 8926484042661614637} + position: {x: 464, y: 284} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661614778 +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: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614778} + m_MasterData: + m_Owner: {fileID: 8926484042661614777} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614637} +--- !u!114 &8926484042661614779 +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: f68759077adc0b143b6e1c101e82065e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 114023846229194376} +--- !u!114 &8926484042661614780 +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: a72fbb93ebe17974e90a144ef2ec8ceb, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 323, y: 791} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661614781} + m_BuiltInParameters: 4 +--- !u!114 &8926484042661614781 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614781} + m_MasterData: + m_Owner: {fileID: 8926484042661614780} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: Total Time + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614616} +--- !u!114 &8926484042661614782 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614782} + m_MasterData: + m_Owner: {fileID: 114873264888500148} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614783 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614783} + m_MasterData: + m_Owner: {fileID: 8926484042661614572} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614784 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614784} + m_MasterData: + m_Owner: {fileID: 8926484042661614636} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614785 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614785} + m_MasterData: + m_Owner: {fileID: 8926484042661614603} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614786 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614786} + m_MasterData: + m_Owner: {fileID: 8926484042661614585} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614787 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614787} + m_MasterData: + m_Owner: {fileID: 8926484042661614652} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614788 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614788} + m_MasterData: + m_Owner: {fileID: 8926484042661614663} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614789 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614789} + m_MasterData: + m_Owner: {fileID: 8926484042661614733} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614790 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614790} + m_MasterData: + m_Owner: {fileID: 8926484042661614686} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614791 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614791} + m_MasterData: + m_Owner: {fileID: 8926484042661614681} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614792 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614792} + m_MasterData: + m_Owner: {fileID: 8926484042661614657} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] diff --git a/Assets/Dwelling/VFX/Particles.vfx.meta b/Assets/Dwelling/VFX/Particles.vfx.meta new file mode 100644 index 0000000..6a6a47f --- /dev/null +++ b/Assets/Dwelling/VFX/Particles.vfx.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8ef80aec53fff3744a17b8c7f4ccf559 +VisualEffectImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/VFX/PointCloudExample.vfx b/Assets/Dwelling/VFX/PointCloudExample.vfx new file mode 100644 index 0000000..1f7bf5a --- /dev/null +++ b/Assets/Dwelling/VFX/PointCloudExample.vfx @@ -0,0 +1,15021 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &114340500867371532 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: d01270efd3285ea4a9d6c555cb0a8027, type: 3} + m_Name: VFXUI + m_EditorClassIdentifier: + groupInfos: + - title: Force Direction + position: + serializedVersion: 2 + x: -754 + y: 2096 + width: 988 + height: 502 + contents: + - model: {fileID: 8926484042661615142} + id: 1 + isStickyNote: 0 + - model: {fileID: 8926484042661615218} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615243} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615245} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615250} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615227} + id: 0 + isStickyNote: 0 + - title: Position & Color from PLY + position: + serializedVersion: 2 + x: -140 + y: 2686 + width: 465 + height: 363 + contents: + - model: {fileID: 8926484042661615942} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615972} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615665} + id: 4 + isStickyNote: 0 + - model: {fileID: 8926484042661615956} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661616051} + id: 0 + isStickyNote: 0 + - title: Vector & Sin Noise Field + position: + serializedVersion: 2 + x: -894 + y: 3210 + width: 1463 + height: 1023 + contents: + - model: {fileID: 8926484042661615431} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615545} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615424} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615395} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615531} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615541} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615519} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615578} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615607} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615602} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615614} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615582} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615584} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615592} + id: 0 + isStickyNote: 0 + - model: {fileID: 8926484042661615563} + id: 0 + isStickyNote: 0 + stickyNoteInfos: [] + categories: [] + uiBounds: + serializedVersion: 2 + x: -894 + y: -201 + width: 2918 + height: 4434 +--- !u!114 &114350483966674976 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: 7d4c867f6b72b714dbb5fd1780afe208, type: 3} + m_Name: PointCloudExample + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614555} + - {fileID: 8926484042661614558} + - {fileID: 8926484042661614583} + - {fileID: 8926484042661615057} + - {fileID: 8926484042661615132} + - {fileID: 8926484042661615134} + - {fileID: 8926484042661615136} + - {fileID: 8926484042661615138} + - {fileID: 8926484042661615140} + - {fileID: 8926484042661615142} + - {fileID: 8926484042661615218} + - {fileID: 8926484042661615227} + - {fileID: 8926484042661615243} + - {fileID: 8926484042661615245} + - {fileID: 8926484042661615250} + - {fileID: 8926484042661615352} + - {fileID: 8926484042661615395} + - {fileID: 8926484042661615424} + - {fileID: 8926484042661615431} + - {fileID: 8926484042661615519} + - {fileID: 8926484042661615531} + - {fileID: 8926484042661615541} + - {fileID: 8926484042661615545} + - {fileID: 8926484042661615563} + - {fileID: 8926484042661615578} + - {fileID: 8926484042661615582} + - {fileID: 8926484042661615584} + - {fileID: 8926484042661615592} + - {fileID: 8926484042661615602} + - {fileID: 8926484042661615607} + - {fileID: 8926484042661615614} + - {fileID: 8926484042661615665} + - {fileID: 8926484042661615942} + - {fileID: 8926484042661615952} + - {fileID: 8926484042661615956} + - {fileID: 8926484042661616051} + - {fileID: 8926484042661615972} + - {fileID: 8926484042661615978} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_UIInfos: {fileID: 114340500867371532} + m_ParameterInfo: + - name: Avatar_Position + path: + tooltip: + sheetType: + realType: Transform + defaultValue: + m_Type: + m_SerializableType: + m_SerializableObject: + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 3 + - name: position + path: Avatar_Position_position + tooltip: Sets the transform position. + sheetType: m_Vector3f + realType: Vector3 + defaultValue: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: angles + path: Avatar_Position_angles + tooltip: Sets the euler angles of the transform. + sheetType: m_Vector3f + realType: Vector3 + defaultValue: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: scale + path: Avatar_Position_scale + tooltip: Sets the scale of the transform along each axis. + sheetType: m_Vector3f + realType: Vector3 + defaultValue: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":4.070000171661377,"y":3.450000047683716,"z":4.309999942779541}' + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Radius + path: Radius + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Bounce + path: Bounce + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Friction + path: Friction + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Lifetime Loss + path: Lifetime Loss + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + min: 0 + max: 1 + enumValues: [] + descendantCount: 0 + - name: Roughness + path: Roughness + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + min: 0 + max: 1 + enumValues: [] + descendantCount: 0 + - name: HandL + path: + tooltip: + sheetType: + realType: Transform + defaultValue: + m_Type: + m_SerializableType: + m_SerializableObject: + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 3 + - name: position + path: HandL_position + tooltip: Sets the transform position. + sheetType: m_Vector3f + realType: Vector3 + defaultValue: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: angles + path: HandL_angles + tooltip: Sets the euler angles of the transform. + sheetType: m_Vector3f + realType: Vector3 + defaultValue: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: scale + path: HandL_scale + tooltip: Sets the scale of the transform along each axis. + sheetType: m_Vector3f + realType: Vector3 + defaultValue: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":1.0,"z":1.0}' + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: Force + path: Force + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.01 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: PositionMap + path: PositionMap + tooltip: + sheetType: m_NamedObject + realType: Texture2D + defaultValue: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":2800000,"guid":"276d9e395ae18fe40a9b4988549f2349","type":3}}' + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: ColorMap + path: ColorMap + tooltip: + sheetType: m_NamedObject + realType: Texture2D + defaultValue: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":2800000,"guid":"276d9e395ae18fe40a9b4988549f2349","type":3}}' + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + m_ImportDependencies: [] + m_GraphVersion: 12 + m_ResourceVersion: 1 + m_SubgraphDependencies: [] + m_CategoryPath: +--- !u!2058629511 &8926484042661614527 +VisualEffectResource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: PointCloudExample + m_Graph: {fileID: 114350483966674976} + m_Infos: + m_RendererSettings: + motionVectorGenerationMode: 0 + shadowCastingMode: 0 + receiveShadows: 0 + reflectionProbeUsage: 0 + lightProbeUsage: 0 + m_CullingFlags: 0 + m_UpdateMode: 0 + m_PreWarmDeltaTime: 0.05 + m_PreWarmStepCount: 0 + m_InitialEventName: OnPlay + m_InstancingMode: 0 + m_InstancingCapacity: 64 +--- !u!114 &8926484042661614555 +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: 73a13919d81fb7444849bae8b5c812a2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661614556} + m_UIPosition: {x: 982, y: -201} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: Spawn system + m_Data: {fileID: 8926484042661614595} + m_InputFlowSlot: + - link: [] + - link: [] + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661614558} + slotIndex: 0 + loopDuration: 0 + loopCount: 0 + delayBeforeLoop: 0 + delayAfterLoop: 0 +--- !u!114 &8926484042661614556 +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: f05c6884b705ce14d82ae720f0ec209f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614555} + m_Children: [] + m_UIPosition: {x: 233.38269, y: 57.572144} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614557} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614600} +--- !u!114 &8926484042661614557 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614557} + m_MasterData: + m_Owner: {fileID: 8926484042661614556} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 500000 + m_Space: 2147483647 + m_Property: + name: Rate + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614558 +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: 9dfea48843f53fc438eabc12a3a30abc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661614663} + - {fileID: 8926484042661614627} + - {fileID: 8926484042661614623} + - {fileID: 8926484042661614639} + - {fileID: 8926484042661614726} + - {fileID: 8926484042661616059} + - {fileID: 8926484042661615996} + - {fileID: 8926484042661616003} + - {fileID: 8926484042661616016} + m_UIPosition: {x: 982, y: 79} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614719} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661614568} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661614555} + slotIndex: 0 + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661614583} + slotIndex: 0 +--- !u!114 &8926484042661614568 +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: d78581a96eae8bf4398c282eb0b098bd, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 8926484042661614558} + - {fileID: 8926484042661614583} + - {fileID: 8926484042661615352} + dataType: 0 + capacity: 1000000 + stripCapacity: 16 + particlePerStripCount: 16 + needsComputeBounds: 1 + boundsMode: 2 + m_Space: 0 +--- !u!114 &8926484042661614583 +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: 2dc095764ededfa4bb32fa602511ea4b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661614683} + - {fileID: 8926484042661614749} + - {fileID: 8926484042661615156} + - {fileID: 8926484042661615211} + - {fileID: 8926484042661615267} + - {fileID: 8926484042661615494} + - {fileID: 8926484042661615718} + - {fileID: 8926484042661615966} + m_UIPosition: {x: 982, y: 1535} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661614568} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661614558} + slotIndex: 0 + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661615352} + slotIndex: 0 + integration: 0 + angularIntegration: 0 + ageParticles: 1 + reapParticles: 1 + skipZeroDeltaUpdate: 0 +--- !u!114 &8926484042661614595 +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: f68759077adc0b143b6e1c101e82065e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 8926484042661614555} +--- !u!114 &8926484042661614600 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614600} + m_MasterData: + m_Owner: {fileID: 8926484042661614556} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614623 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614558} + m_Children: [] + m_UIPosition: {x: 233.38269, y: 57.572144} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614624} + - {fileID: 8926484042661614625} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614626} + attribute: lifetime + Composition: 0 + Source: 0 + Random: 2 + channels: 6 +--- !u!114 &8926484042661614624 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614624} + m_MasterData: + m_Owner: {fileID: 8926484042661614623} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: A + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614625 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614625} + m_MasterData: + m_Owner: {fileID: 8926484042661614623} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 10 + m_Space: 2147483647 + m_Property: + name: B + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614626 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614626} + m_MasterData: + m_Owner: {fileID: 8926484042661614623} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614627 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614558} + m_Children: [] + m_UIPosition: {x: 233.38269, y: 57.572144} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614628} + - {fileID: 8926484042661614633} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614638} + attribute: velocity + Composition: 0 + Source: 0 + Random: 1 + channels: 6 +--- !u!114 &8926484042661614628 +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: a9f9544b71b7dab44a4644b6807e8bf6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614629} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614628} + m_MasterData: + m_Owner: {fileID: 8926484042661614627} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Vector, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"vector":{"x":-0.3330000042915344,"y":0.20000000298023225,"z":-0.3330000042915344}}' + m_Space: 0 + m_Property: + name: A + m_serializedType: + m_SerializableType: UnityEditor.VFX.Vector, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614629 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614628} + m_Children: + - {fileID: 8926484042661614630} + - {fileID: 8926484042661614631} + - {fileID: 8926484042661614632} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614628} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: vector + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614630 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614629} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614628} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614631 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614629} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614628} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614632 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614629} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614628} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614633 +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: a9f9544b71b7dab44a4644b6807e8bf6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614634} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614633} + m_MasterData: + m_Owner: {fileID: 8926484042661614627} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Vector, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"vector":{"x":2.3499999046325685,"y":1.0,"z":0.3330000042915344}}' + m_Space: 0 + m_Property: + name: B + m_serializedType: + m_SerializableType: UnityEditor.VFX.Vector, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614634 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614633} + m_Children: + - {fileID: 8926484042661614635} + - {fileID: 8926484042661614636} + - {fileID: 8926484042661614637} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614633} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: vector + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614635 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614634} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614633} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614636 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614634} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614633} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614637 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614634} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614633} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614638 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614638} + m_MasterData: + m_Owner: {fileID: 8926484042661614627} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: False + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614639 +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: 60fff265f139e2a4194a44c2bac41757, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614558} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614640} + - {fileID: 8926484042661614725} + - {fileID: 8926484042661614641} + - {fileID: 8926484042661614645} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614649} + attribute: color + Composition: 0 + SampleMode: 6 + mode: 0 + channels: 6 + usePointCount: 0 +--- !u!114 &8926484042661614640 +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: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614640} + m_MasterData: + m_Owner: {fileID: 8926484042661614639} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":-2231058418007342408,"guid":"7ede3f9c2c8b06a478d83ee82cf3f663","type":3}}' + m_Space: 2147483647 + m_Property: + name: attributeMap + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614641 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614642} + - {fileID: 8926484042661614643} + - {fileID: 8926484042661614644} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614641} + m_MasterData: + m_Owner: {fileID: 8926484042661614639} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: valueBias + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614642 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614641} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614641} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614643 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614641} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614641} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614644 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614641} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614641} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614645 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614646} + - {fileID: 8926484042661614647} + - {fileID: 8926484042661614648} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614645} + m_MasterData: + m_Owner: {fileID: 8926484042661614639} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":1.0,"z":1.0}' + m_Space: 2147483647 + m_Property: + name: valueScale + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614646 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614645} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614645} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614647 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614645} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614645} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614648 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614645} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614645} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614649 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614649} + m_MasterData: + m_Owner: {fileID: 8926484042661614639} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614663 +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: a7280c30c72d50147ad334d9c445b6ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614558} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614664} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614681} + compositionPosition: 0 + compositionAxes: 0 + compositionDirection: 0 + positionMode: 0 + spawnMode: 0 +--- !u!114 &8926484042661614664 +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: 1b605c022ee79394a8a776c0869b3f9a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614665} + - {fileID: 8926484042661614680} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614664} + m_MasterData: + m_Owner: {fileID: 8926484042661614663} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.TArcSphere, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"sphere":{"transform":{"position":{"x":0.0,"y":0.0,"z":0.0},"angles":{"x":0.0,"y":0.0,"z":0.0},"scale":{"x":1.0,"y":1.0,"z":1.0}},"radius":1.0299999713897706},"arc":5.130000114440918}' + m_Space: 0 + m_Property: + name: arcSphere + m_serializedType: + m_SerializableType: UnityEditor.VFX.TArcSphere, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614665 +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: 1b605c022ee79394a8a776c0869b3f9a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614664} + m_Children: + - {fileID: 8926484042661614666} + - {fileID: 8926484042661614679} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614664} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: sphere + m_serializedType: + m_SerializableType: UnityEditor.VFX.TSphere, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614666 +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: 3e3f628d80ffceb489beac74258f9cf7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614665} + m_Children: + - {fileID: 8926484042661614667} + - {fileID: 8926484042661614671} + - {fileID: 8926484042661614675} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614664} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: transform + m_serializedType: + m_SerializableType: UnityEditor.VFX.Transform, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614667 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614666} + m_Children: + - {fileID: 8926484042661614668} + - {fileID: 8926484042661614669} + - {fileID: 8926484042661614670} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614664} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614668 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614667} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614664} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614669 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614667} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614664} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614670 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614667} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614664} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614671 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614666} + m_Children: + - {fileID: 8926484042661614672} + - {fileID: 8926484042661614673} + - {fileID: 8926484042661614674} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614664} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: angles + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614672 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614671} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614664} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614673 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614671} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614664} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614674 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614671} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614664} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614675 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614666} + m_Children: + - {fileID: 8926484042661614676} + - {fileID: 8926484042661614677} + - {fileID: 8926484042661614678} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614664} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: scale + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614676 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614675} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614664} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614677 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614675} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614664} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614678 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614675} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614664} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614679 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614665} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614664} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: radius + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614680 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614664} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614664} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: arc + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614681 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614681} + m_MasterData: + m_Owner: {fileID: 8926484042661614663} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614683 +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: 63716c0daf1806941a123003dc6d7398, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614583} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614684} + - {fileID: 8926484042661614697} + - {fileID: 8926484042661614698} + - {fileID: 8926484042661614699} + - {fileID: 8926484042661614700} + - {fileID: 8926484042661614701} + - {fileID: 8926484042661614702} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614703} + Mode: 1 + NoiseType: 1 +--- !u!114 &8926484042661614684 +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: 3e3f628d80ffceb489beac74258f9cf7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614685} + - {fileID: 8926484042661614689} + - {fileID: 8926484042661614693} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614684} + m_MasterData: + m_Owner: {fileID: 8926484042661614683} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Transform, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0},"angles":{"x":0.0,"y":0.0,"z":0.0},"scale":{"x":1.0,"y":1.0,"z":1.0}}' + m_Space: 0 + m_Property: + name: FieldTransform + m_serializedType: + m_SerializableType: UnityEditor.VFX.Transform, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614685 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614684} + m_Children: + - {fileID: 8926484042661614686} + - {fileID: 8926484042661614687} + - {fileID: 8926484042661614688} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614684} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614686 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614685} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614684} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614687 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614685} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614684} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614688 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614685} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614684} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614689 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614684} + m_Children: + - {fileID: 8926484042661614690} + - {fileID: 8926484042661614691} + - {fileID: 8926484042661614692} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614684} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: angles + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614690 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614689} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614684} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614691 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614689} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614684} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614692 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614689} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614684} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614693 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614684} + m_Children: + - {fileID: 8926484042661614694} + - {fileID: 8926484042661614695} + - {fileID: 8926484042661614696} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614684} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: scale + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614694 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614693} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614684} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614695 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614693} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614684} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614696 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614693} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614684} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614697 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614697} + m_MasterData: + m_Owner: {fileID: 8926484042661614683} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.1 + m_Space: 2147483647 + m_Property: + name: Intensity + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614698 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614698} + m_MasterData: + m_Owner: {fileID: 8926484042661614683} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 7.2 + m_Space: 2147483647 + m_Property: + name: Drag + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614699 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614699} + m_MasterData: + m_Owner: {fileID: 8926484042661614683} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.28 + m_Space: 2147483647 + m_Property: + name: frequency + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614700 +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: 4d246e354feb93041a837a9ef59437cb, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614700} + m_MasterData: + m_Owner: {fileID: 8926484042661614683} + m_Value: + m_Type: + m_SerializableType: System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: octaves + m_serializedType: + m_SerializableType: System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614701 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614701} + m_MasterData: + m_Owner: {fileID: 8926484042661614683} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.5 + m_Space: 2147483647 + m_Property: + name: roughness + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614702 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614702} + m_MasterData: + m_Owner: {fileID: 8926484042661614683} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 2 + m_Space: 2147483647 + m_Property: + name: lacunarity + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614703 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614703} + m_MasterData: + m_Owner: {fileID: 8926484042661614683} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614719 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614720} + - {fileID: 8926484042661614721} + - {fileID: 8926484042661614722} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614719} + m_MasterData: + m_Owner: {fileID: 8926484042661614558} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: boundsPadding + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614720 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614719} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614719} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614721 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614719} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614719} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614722 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614719} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614719} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614725 +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: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614725} + m_MasterData: + m_Owner: {fileID: 8926484042661614639} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: Seed + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614726 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614558} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614727} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614728} + attribute: size + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661614727 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614727} + m_MasterData: + m_Owner: {fileID: 8926484042661614726} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: Size + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614728 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614728} + m_MasterData: + m_Owner: {fileID: 8926484042661614726} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614749 +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: 8b7c4e4399fb5754180e714f52537286, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614583} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614750} + - {fileID: 8926484042661614765} + - {fileID: 8926484042661614766} + - {fileID: 8926484042661614767} + - {fileID: 8926484042661615131} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614768} + mode: 0 + radiusMode: 0 + roughSurface: 1 +--- !u!114 &8926484042661614750 +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: 1b605c022ee79394a8a776c0869b3f9a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614751} + - {fileID: 8926484042661614764} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614750} + m_MasterData: + m_Owner: {fileID: 8926484042661614749} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.TSphere, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"transform":{"position":{"x":1.6883032321929932,"y":-3.7328124046325685,"z":-14.323442459106446},"angles":{"x":4.400000095367432,"y":0.0,"z":0.0},"scale":{"x":6.28562593460083,"y":6.285626411437988,"z":6.285626411437988}},"radius":0.800000011920929}' + m_Space: 1 + m_Property: + name: sphere + m_serializedType: + m_SerializableType: UnityEditor.VFX.TSphere, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614751 +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: 3e3f628d80ffceb489beac74258f9cf7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614750} + m_Children: + - {fileID: 8926484042661614752} + - {fileID: 8926484042661614756} + - {fileID: 8926484042661614760} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614750} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: transform + m_serializedType: + m_SerializableType: UnityEditor.VFX.Transform, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614752 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614751} + m_Children: + - {fileID: 8926484042661614753} + - {fileID: 8926484042661614754} + - {fileID: 8926484042661614755} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614750} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615059} +--- !u!114 &8926484042661614753 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614752} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614750} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614754 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614752} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614750} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614755 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614752} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614750} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614756 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614751} + m_Children: + - {fileID: 8926484042661614757} + - {fileID: 8926484042661614758} + - {fileID: 8926484042661614759} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614750} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: angles + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614757 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614756} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614750} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614758 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614756} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614750} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614759 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614756} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614750} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614760 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614751} + m_Children: + - {fileID: 8926484042661614761} + - {fileID: 8926484042661614762} + - {fileID: 8926484042661614763} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614750} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: scale + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614761 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614760} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614750} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614762 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614760} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614750} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614763 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614760} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614750} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614764 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614750} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614750} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: radius + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615133} +--- !u!114 &8926484042661614765 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614765} + m_MasterData: + m_Owner: {fileID: 8926484042661614749} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 100 + m_Space: 2147483647 + m_Property: + name: Bounce + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615135} +--- !u!114 &8926484042661614766 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614766} + m_MasterData: + m_Owner: {fileID: 8926484042661614749} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 43.79 + m_Space: 2147483647 + m_Property: + name: Friction + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615137} +--- !u!114 &8926484042661614767 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614767} + m_MasterData: + m_Owner: {fileID: 8926484042661614749} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: LifetimeLoss + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615139} +--- !u!114 &8926484042661614768 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614768} + m_MasterData: + m_Owner: {fileID: 8926484042661614749} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: False + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615057 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615058} + m_ExposedName: Avatar_Position + m_Exposed: 1 + m_Order: 0 + m_Category: + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615059} + inputSlot: {fileID: 8926484042661614752} + position: {x: 747.2, y: 1905.6001} + expandedSlots: + - {fileID: 8926484042661615058} + expanded: 1 +--- !u!114 &8926484042661615058 +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: 3e3f628d80ffceb489beac74258f9cf7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615059} + - {fileID: 8926484042661615063} + - {fileID: 8926484042661615067} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615058} + m_MasterData: + m_Owner: {fileID: 8926484042661615057} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Transform, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0},"angles":{"x":0.0,"y":0.0,"z":0.0},"scale":{"x":4.070000171661377,"y":3.450000047683716,"z":4.309999942779541}}' + m_Space: 0 + m_Property: + name: o + m_serializedType: + m_SerializableType: UnityEditor.VFX.Transform, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615059 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615058} + m_Children: + - {fileID: 8926484042661615060} + - {fileID: 8926484042661615061} + - {fileID: 8926484042661615062} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615058} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614752} +--- !u!114 &8926484042661615060 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615059} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615058} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615061 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615059} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615058} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615062 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615059} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615058} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615063 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615058} + m_Children: + - {fileID: 8926484042661615064} + - {fileID: 8926484042661615065} + - {fileID: 8926484042661615066} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615058} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: angles + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615064 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615063} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615058} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615065 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615063} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615058} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615066 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615063} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615058} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615067 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615058} + m_Children: + - {fileID: 8926484042661615068} + - {fileID: 8926484042661615069} + - {fileID: 8926484042661615070} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615058} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: scale + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615068 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615067} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615058} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615069 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615067} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615058} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615070 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615067} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615058} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615131 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615131} + m_MasterData: + m_Owner: {fileID: 8926484042661614749} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: Roughness + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615141} +--- !u!114 &8926484042661615132 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615133} + m_ExposedName: Radius + m_Exposed: 1 + m_Order: 1 + m_Category: + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615133} + inputSlot: {fileID: 8926484042661614764} + - outputSlot: {fileID: 8926484042661615133} + inputSlot: {fileID: 8926484042661615171} + position: {x: 747.2, y: 1992.8} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615133 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615133} + m_MasterData: + m_Owner: {fileID: 8926484042661615132} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614764} + - {fileID: 8926484042661615171} +--- !u!114 &8926484042661615134 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615135} + m_ExposedName: Bounce + m_Exposed: 1 + m_Order: 2 + m_Category: + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615135} + inputSlot: {fileID: 8926484042661614765} + - outputSlot: {fileID: 8926484042661615135} + inputSlot: {fileID: 8926484042661615172} + position: {x: 747.2, y: 2028.8} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615135 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615135} + m_MasterData: + m_Owner: {fileID: 8926484042661615134} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614765} + - {fileID: 8926484042661615172} +--- !u!114 &8926484042661615136 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615137} + m_ExposedName: Friction + m_Exposed: 1 + m_Order: 3 + m_Category: + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615137} + inputSlot: {fileID: 8926484042661614766} + - outputSlot: {fileID: 8926484042661615137} + inputSlot: {fileID: 8926484042661615173} + position: {x: 747.2, y: 2066.4001} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615137 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615137} + m_MasterData: + m_Owner: {fileID: 8926484042661615136} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614766} + - {fileID: 8926484042661615173} +--- !u!114 &8926484042661615138 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615139} + m_ExposedName: Lifetime Loss + m_Exposed: 1 + m_Order: 4 + m_Category: + m_Min: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Max: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 1 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615139} + inputSlot: {fileID: 8926484042661614767} + - outputSlot: {fileID: 8926484042661615139} + inputSlot: {fileID: 8926484042661615174} + position: {x: 747.2, y: 2104} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615139 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615139} + m_MasterData: + m_Owner: {fileID: 8926484042661615138} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614767} + - {fileID: 8926484042661615174} +--- !u!114 &8926484042661615140 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615141} + m_ExposedName: Roughness + m_Exposed: 1 + m_Order: 5 + m_Category: + m_Min: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Max: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 1 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615141} + inputSlot: {fileID: 8926484042661615131} + - outputSlot: {fileID: 8926484042661615141} + inputSlot: {fileID: 8926484042661615175} + position: {x: 747.2, y: 2144} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615141 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615141} + m_MasterData: + m_Owner: {fileID: 8926484042661615140} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615131} + - {fileID: 8926484042661615175} +--- !u!114 &8926484042661615142 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615143} + m_ExposedName: HandL + m_Exposed: 1 + m_Order: 6 + m_Category: + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615144} + inputSlot: {fileID: 8926484042661615159} + position: {x: 747.2, y: 1948.8} + expandedSlots: + - {fileID: 8926484042661615143} + expanded: 0 + - m_Id: 1 + linkedSlots: + - outputSlot: {fileID: 8926484042661615144} + inputSlot: {fileID: 8926484042661615231} + position: {x: -728.8, y: 2156} + expandedSlots: + - {fileID: 8926484042661615143} + expanded: 1 +--- !u!114 &8926484042661615143 +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: 3e3f628d80ffceb489beac74258f9cf7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615144} + - {fileID: 8926484042661615148} + - {fileID: 8926484042661615152} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615143} + m_MasterData: + m_Owner: {fileID: 8926484042661615142} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Transform, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0},"angles":{"x":0.0,"y":0.0,"z":0.0},"scale":{"x":1.0,"y":1.0,"z":1.0}}' + m_Space: 0 + m_Property: + name: o + m_serializedType: + m_SerializableType: UnityEditor.VFX.Transform, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615144 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615143} + m_Children: + - {fileID: 8926484042661615145} + - {fileID: 8926484042661615146} + - {fileID: 8926484042661615147} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615143} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615159} + - {fileID: 8926484042661615231} +--- !u!114 &8926484042661615145 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615144} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615143} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615146 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615144} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615143} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615147 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615144} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615143} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615148 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615143} + m_Children: + - {fileID: 8926484042661615149} + - {fileID: 8926484042661615150} + - {fileID: 8926484042661615151} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615143} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: angles + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615149 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615148} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615143} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615150 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615148} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615143} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615151 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615148} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615143} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615152 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615143} + m_Children: + - {fileID: 8926484042661615153} + - {fileID: 8926484042661615154} + - {fileID: 8926484042661615155} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615143} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: scale + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615153 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615152} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615143} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615154 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615152} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615143} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615155 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615152} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615143} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615156 +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: 8b7c4e4399fb5754180e714f52537286, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614583} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615157} + - {fileID: 8926484042661615172} + - {fileID: 8926484042661615173} + - {fileID: 8926484042661615174} + - {fileID: 8926484042661615175} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615176} + mode: 0 + radiusMode: 0 + roughSurface: 1 +--- !u!114 &8926484042661615157 +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: 1b605c022ee79394a8a776c0869b3f9a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615158} + - {fileID: 8926484042661615171} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615157} + m_MasterData: + m_Owner: {fileID: 8926484042661615156} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.TSphere, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"transform":{"position":{"x":1.6883032321929932,"y":-3.7328124046325685,"z":-14.323442459106446},"angles":{"x":4.400000095367432,"y":0.0,"z":0.0},"scale":{"x":6.285626411437988,"y":6.285626411437988,"z":6.285626411437988}},"radius":0.800000011920929}' + m_Space: 0 + m_Property: + name: sphere + m_serializedType: + m_SerializableType: UnityEditor.VFX.TSphere, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615158 +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: 3e3f628d80ffceb489beac74258f9cf7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615157} + m_Children: + - {fileID: 8926484042661615159} + - {fileID: 8926484042661615163} + - {fileID: 8926484042661615167} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615157} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: transform + m_serializedType: + m_SerializableType: UnityEditor.VFX.Transform, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615159 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615158} + m_Children: + - {fileID: 8926484042661615160} + - {fileID: 8926484042661615161} + - {fileID: 8926484042661615162} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615157} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615144} +--- !u!114 &8926484042661615160 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615159} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615157} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615161 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615159} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615157} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615162 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615159} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615157} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615163 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615158} + m_Children: + - {fileID: 8926484042661615164} + - {fileID: 8926484042661615165} + - {fileID: 8926484042661615166} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615157} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: angles + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615164 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615163} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615157} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615165 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615163} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615157} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615166 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615163} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615157} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615167 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615158} + m_Children: + - {fileID: 8926484042661615168} + - {fileID: 8926484042661615169} + - {fileID: 8926484042661615170} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615157} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: scale + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615168 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615167} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615157} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615169 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615167} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615157} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615170 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615167} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615157} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615171 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615157} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615157} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: radius + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615133} +--- !u!114 &8926484042661615172 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615172} + m_MasterData: + m_Owner: {fileID: 8926484042661615156} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 100 + m_Space: 2147483647 + m_Property: + name: Bounce + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615135} +--- !u!114 &8926484042661615173 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615173} + m_MasterData: + m_Owner: {fileID: 8926484042661615156} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 43.79 + m_Space: 2147483647 + m_Property: + name: Friction + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615137} +--- !u!114 &8926484042661615174 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615174} + m_MasterData: + m_Owner: {fileID: 8926484042661615156} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: LifetimeLoss + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615139} +--- !u!114 &8926484042661615175 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615175} + m_MasterData: + m_Owner: {fileID: 8926484042661615156} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: Roughness + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615141} +--- !u!114 &8926484042661615176 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615176} + m_MasterData: + m_Owner: {fileID: 8926484042661615156} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: False + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615211 +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: c079bc84df7c7e94f88c8ae0d1b0691d, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614583} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615319} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615217} + Mode: 0 +--- !u!114 &8926484042661615217 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615217} + m_MasterData: + m_Owner: {fileID: 8926484042661615211} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: False + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615218 +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: 486e063e1ed58c843942ea4122829ab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -728, y: 2314} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615219} + attribute: position + location: 0 + mask: xyz +--- !u!114 &8926484042661615219 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615220} + - {fileID: 8926484042661615221} + - {fileID: 8926484042661615222} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615219} + m_MasterData: + m_Owner: {fileID: 8926484042661615218} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615239} +--- !u!114 &8926484042661615220 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615219} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615219} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615221 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615219} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615219} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615222 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615219} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615219} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615227 +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: 0155ae97d9a75e3449c6d0603b79c2f4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -475, y: 2178} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615231} + - {fileID: 8926484042661615239} + m_OutputSlots: + - {fileID: 8926484042661615235} + m_Operands: + - name: a + type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + - name: b + type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &8926484042661615231 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615232} + - {fileID: 8926484042661615233} + - {fileID: 8926484042661615234} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615231} + m_MasterData: + m_Owner: {fileID: 8926484042661615227} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615144} +--- !u!114 &8926484042661615232 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615231} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615231} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615233 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615231} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615231} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615234 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615231} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615231} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615235 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615236} + - {fileID: 8926484042661615237} + - {fileID: 8926484042661615238} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615235} + m_MasterData: + m_Owner: {fileID: 8926484042661615227} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615254} +--- !u!114 &8926484042661615236 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615235} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615235} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615237 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615235} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615235} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615238 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615235} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615235} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615239 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615240} + - {fileID: 8926484042661615241} + - {fileID: 8926484042661615242} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615239} + m_MasterData: + m_Owner: {fileID: 8926484042661615227} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615219} +--- !u!114 &8926484042661615240 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615239} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615239} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615241 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615239} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615239} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615242 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615239} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615239} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615243 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615244} + m_ExposedName: Force + m_Exposed: 1 + m_Order: 7 + m_Category: + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615244} + inputSlot: {fileID: 8926484042661615248} + position: {x: -728.8, y: 2453.6} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615244 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615244} + m_MasterData: + m_Owner: {fileID: 8926484042661615243} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.01 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615248} +--- !u!114 &8926484042661615245 +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: fab5164109319454a9bccf2583401f6e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -563, y: 2454} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615246} + - {fileID: 8926484042661615247} + - {fileID: 8926484042661615248} + m_OutputSlots: + - {fileID: 8926484042661615249} + m_Type: + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615246 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615246} + m_MasterData: + m_Owner: {fileID: 8926484042661615245} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615247 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615247} + m_MasterData: + m_Owner: {fileID: 8926484042661615245} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615248 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615248} + m_MasterData: + m_Owner: {fileID: 8926484042661615245} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.5 + m_Space: 2147483647 + m_Property: + name: s + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615244} +--- !u!114 &8926484042661615249 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615249} + m_MasterData: + m_Owner: {fileID: 8926484042661615245} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615266} +--- !u!114 &8926484042661615250 +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: b8ee8a7543fa09e42a7c8616f60d2ad7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -67, y: 2315} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615254} + - {fileID: 8926484042661615266} + m_OutputSlots: + - {fileID: 8926484042661615258} + m_Operands: + - name: a + type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + - name: b + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615254 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615255} + - {fileID: 8926484042661615256} + - {fileID: 8926484042661615257} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615254} + m_MasterData: + m_Owner: {fileID: 8926484042661615250} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":1.0,"z":1.0}' + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615235} +--- !u!114 &8926484042661615255 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615254} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615254} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615256 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615254} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615254} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615257 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615254} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615254} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615258 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615259} + - {fileID: 8926484042661615260} + - {fileID: 8926484042661615261} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615258} + m_MasterData: + m_Owner: {fileID: 8926484042661615250} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615259 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615258} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615258} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615260 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615258} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615258} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615261 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615258} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615258} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615266 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615266} + m_MasterData: + m_Owner: {fileID: 8926484042661615250} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615249} +--- !u!114 &8926484042661615267 +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: b294673e879f9cf449cc9de536818ea9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614583} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615268} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615269} + UseParticleSize: 1 +--- !u!114 &8926484042661615268 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615268} + m_MasterData: + m_Owner: {fileID: 8926484042661615267} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 3.78 + m_Space: 2147483647 + m_Property: + name: dragCoefficient + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615269 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615269} + m_MasterData: + m_Owner: {fileID: 8926484042661615267} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: False + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615319 +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: a9f9544b71b7dab44a4644b6807e8bf6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615320} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615319} + m_MasterData: + m_Owner: {fileID: 8926484042661615211} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Vector, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"vector":{"x":1.409999966621399,"y":0.0,"z":0.0}}' + m_Space: 0 + m_Property: + name: Force + m_serializedType: + m_SerializableType: UnityEditor.VFX.Vector, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615320 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615319} + m_Children: + - {fileID: 8926484042661615321} + - {fileID: 8926484042661615322} + - {fileID: 8926484042661615323} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615319} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: vector + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615321 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615320} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615319} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615322 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615320} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615319} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615323 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615320} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615319} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615352 +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: d1622f1b21236b9418846ede6cf6bd40, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661615940} + - {fileID: 8926484042661616022} + - {fileID: 8926484042661616027} + - {fileID: 8926484042661616030} + m_UIPosition: {x: 982, y: 3327} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616041} + - {fileID: 8926484042661616042} + - {fileID: 8926484042661616043} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661614568} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661614583} + slotIndex: 0 + m_OutputFlowSlot: + - link: [] + blendMode: 0 + cullMode: 0 + zWriteMode: 0 + zTestMode: 0 + useAlphaClipping: 0 + generateMotionVector: 0 + excludeFromTAA: 0 + sortingPriority: 0 + m_SubOutputs: + - {fileID: 8926484042661615357} + colorMapping: 0 + uvMode: 0 + flipbookLayout: 0 + useSoftParticle: 0 + vfxSystemSortPriority: 0 + sort: 0 + sortMode: 0 + revertSorting: 0 + indirectDraw: 0 + computeCulling: 0 + frustumCulling: 0 + castShadows: 0 + useExposureWeight: 0 + needsOwnSort: 0 + shaderGraph: {fileID: 0} + materialSettings: + m_PropertyNames: [] + m_PropertyValues: [] + useBaseColorMap: 3 + useMaskMap: 0 + useNormalMap: 0 + useEmissiveMap: 0 + colorMode: 1 + useEmissive: 0 + materialType: 0 + onlyAmbientLighting: 0 + diffusionProfileAsset: {fileID: 0} + multiplyThicknessWithAlpha: 0 + doubleSided: 0 + preserveSpecularLighting: 0 + enableSpecular: 1 + lightmapRemapMode: 0 + lightmapRemapRanges: 0 + useAlphaRemap: 0 + emissiveMode: 0 + useEmissiveChannelScale: 0 + useColorAbsorption: 1 + receiveShadows: 1 + enableCookie: 1 + enableEnvLight: 1 + primitiveType: 1 + normalBending: 0 +--- !u!114 &8926484042661615357 +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: 081ffb0090424ba4cb05370a42ead6b9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + opaqueRenderQueue: 0 + transparentRenderQueue: 1 +--- !u!114 &8926484042661615395 +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: a72fbb93ebe17974e90a144ef2ec8ceb, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -869, y: 3568} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615396} + m_BuiltInParameters: 4 +--- !u!114 &8926484042661615396 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615396} + m_MasterData: + m_Owner: {fileID: 8926484042661615395} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: Total Time + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615533} +--- !u!114 &8926484042661615424 +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: 955b0c175a6f3bb4582e92f3de8f0626, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -869, y: 3460} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615425} + m_OutputSlots: + - {fileID: 8926484042661615428} + m_Type: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &8926484042661615425 +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: 1b2b751071c7fc14f9fa503163991826, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615426} + - {fileID: 8926484042661615427} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615425} + m_MasterData: + m_Owner: {fileID: 8926484042661615424} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":11.0,"y":1.0}' + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615426 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615425} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615425} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615427 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615425} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615425} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615428 +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: 1b2b751071c7fc14f9fa503163991826, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615429} + - {fileID: 8926484042661615430} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615428} + m_MasterData: + m_Owner: {fileID: 8926484042661615424} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615535} +--- !u!114 &8926484042661615429 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615428} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615428} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615430 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615428} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615428} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615431 +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: 486e063e1ed58c843942ea4122829ab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -869, y: 3270} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615432} + attribute: position + location: 0 + mask: xyz +--- !u!114 &8926484042661615432 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615433} + - {fileID: 8926484042661615434} + - {fileID: 8926484042661615435} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615432} + m_MasterData: + m_Owner: {fileID: 8926484042661615431} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615433 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615432} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615432} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615547} +--- !u!114 &8926484042661615434 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615432} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615432} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615435 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615432} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615432} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615548} +--- !u!114 &8926484042661615494 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614583} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615495} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615500} + attribute: position + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615495 +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: 5265657162cc1a241bba03a3b0476d99, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615496} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615495} + m_MasterData: + m_Owner: {fileID: 8926484042661615494} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0}}' + m_Space: 0 + m_Property: + name: Position + m_serializedType: + m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615496 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615495} + m_Children: + - {fileID: 8926484042661615497} + - {fileID: 8926484042661615498} + - {fileID: 8926484042661615499} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615495} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615497 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615496} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615495} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615947} +--- !u!114 &8926484042661615498 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615496} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615495} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615955} +--- !u!114 &8926484042661615499 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615496} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615495} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615949} +--- !u!114 &8926484042661615500 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615500} + m_MasterData: + m_Owner: {fileID: 8926484042661615494} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: False + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615519 +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: c7b83980ec45a4f48a68c59a28491e40, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -20, y: 3430} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615525} + - {fileID: 8926484042661615521} + - {fileID: 8926484042661615522} + - {fileID: 8926484042661615523} + m_OutputSlots: + - {fileID: 8926484042661615528} + m_Type: + - m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615521 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615521} + m_MasterData: + m_Owner: {fileID: 8926484042661615519} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.1 + m_Space: 2147483647 + m_Property: + name: frequency + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615522 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615522} + m_MasterData: + m_Owner: {fileID: 8926484042661615519} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: -1 + m_Space: 2147483647 + m_Property: + name: min + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615523 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615523} + m_MasterData: + m_Owner: {fileID: 8926484042661615519} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: max + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615525 +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: 1b2b751071c7fc14f9fa503163991826, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615526} + - {fileID: 8926484042661615527} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615525} + m_MasterData: + m_Owner: {fileID: 8926484042661615519} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0}' + m_Space: 2147483647 + m_Property: + name: input + m_serializedType: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615555} +--- !u!114 &8926484042661615526 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615525} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615525} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615527 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615525} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615525} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615528 +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: 1b2b751071c7fc14f9fa503163991826, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615529} + - {fileID: 8926484042661615530} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615528} + m_MasterData: + m_Owner: {fileID: 8926484042661615519} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615529 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615528} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615528} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615530 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615528} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615528} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615580} +--- !u!114 &8926484042661615531 +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: b8ee8a7543fa09e42a7c8616f60d2ad7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -581, y: 3509} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615535} + - {fileID: 8926484042661615533} + m_OutputSlots: + - {fileID: 8926484042661615538} + m_Operands: + - name: a + type: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + - name: b + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615533 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615533} + m_MasterData: + m_Owner: {fileID: 8926484042661615531} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615396} +--- !u!114 &8926484042661615535 +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: 1b2b751071c7fc14f9fa503163991826, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615536} + - {fileID: 8926484042661615537} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615535} + m_MasterData: + m_Owner: {fileID: 8926484042661615531} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":1.0}' + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615428} +--- !u!114 &8926484042661615536 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615535} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615535} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615537 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615535} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615535} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615538 +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: 1b2b751071c7fc14f9fa503163991826, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615539} + - {fileID: 8926484042661615540} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615538} + m_MasterData: + m_Owner: {fileID: 8926484042661615531} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615558} +--- !u!114 &8926484042661615539 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615538} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615538} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615540 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615538} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615538} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615541 +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: c7acf5424f3655744af4b8f63298fa0f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -288, y: 3430} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615552} + - {fileID: 8926484042661615558} + m_OutputSlots: + - {fileID: 8926484042661615555} + m_Operands: + - name: a + type: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + - name: b + type: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &8926484042661615545 +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: 955b0c175a6f3bb4582e92f3de8f0626, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -602, y: 3324} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615546} + m_OutputSlots: + - {fileID: 8926484042661615549} + m_Type: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &8926484042661615546 +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: 1b2b751071c7fc14f9fa503163991826, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615547} + - {fileID: 8926484042661615548} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615546} + m_MasterData: + m_Owner: {fileID: 8926484042661615545} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615547 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615546} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615546} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615433} +--- !u!114 &8926484042661615548 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615546} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615546} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615435} +--- !u!114 &8926484042661615549 +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: 1b2b751071c7fc14f9fa503163991826, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615550} + - {fileID: 8926484042661615551} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615549} + m_MasterData: + m_Owner: {fileID: 8926484042661615545} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615552} +--- !u!114 &8926484042661615550 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615549} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615549} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615551 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615549} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615549} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615552 +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: 1b2b751071c7fc14f9fa503163991826, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615553} + - {fileID: 8926484042661615554} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615552} + m_MasterData: + m_Owner: {fileID: 8926484042661615541} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0}' + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615549} +--- !u!114 &8926484042661615553 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615552} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615552} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615554 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615552} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615552} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615555 +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: 1b2b751071c7fc14f9fa503163991826, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615556} + - {fileID: 8926484042661615557} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615555} + m_MasterData: + m_Owner: {fileID: 8926484042661615541} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615525} +--- !u!114 &8926484042661615556 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615555} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615555} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615557 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615555} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615555} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615558 +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: 1b2b751071c7fc14f9fa503163991826, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615559} + - {fileID: 8926484042661615560} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615558} + m_MasterData: + m_Owner: {fileID: 8926484042661615541} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0}' + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615538} +--- !u!114 &8926484042661615559 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615558} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615558} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615560 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615558} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615558} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615563 +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: a30aeb734589f22468d3ed89a2ecc09c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -51, y: 3850} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615564} + - {fileID: 8926484042661615567} + - {fileID: 8926484042661615568} + - {fileID: 8926484042661615569} + - {fileID: 8926484042661615570} + - {fileID: 8926484042661615571} + m_OutputSlots: + - {fileID: 8926484042661615574} + - {fileID: 8926484042661615575} + type: 1 + dimensions: 1 +--- !u!114 &8926484042661615564 +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: 1b2b751071c7fc14f9fa503163991826, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615565} + - {fileID: 8926484042661615566} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615564} + m_MasterData: + m_Owner: {fileID: 8926484042661615563} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0}' + m_Space: 2147483647 + m_Property: + name: coordinate + m_serializedType: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615599} +--- !u!114 &8926484042661615565 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615564} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615564} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615566 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615564} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615564} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615567 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615567} + m_MasterData: + m_Owner: {fileID: 8926484042661615563} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.1 + m_Space: 2147483647 + m_Property: + name: frequency + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615568 +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: 4d246e354feb93041a837a9ef59437cb, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615568} + m_MasterData: + m_Owner: {fileID: 8926484042661615563} + m_Value: + m_Type: + m_SerializableType: System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 8 + m_Space: 2147483647 + m_Property: + name: octaves + m_serializedType: + m_SerializableType: System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615569 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615569} + m_MasterData: + m_Owner: {fileID: 8926484042661615563} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: roughness + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615570 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615570} + m_MasterData: + m_Owner: {fileID: 8926484042661615563} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 2 + m_Space: 2147483647 + m_Property: + name: lacunarity + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615571 +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: 1b2b751071c7fc14f9fa503163991826, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615572} + - {fileID: 8926484042661615573} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615571} + m_MasterData: + m_Owner: {fileID: 8926484042661615563} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":-2.0,"y":2.0}' + m_Space: 2147483647 + m_Property: + name: range + m_serializedType: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615572 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615571} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615571} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615573 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615571} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615571} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615574 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615574} + m_MasterData: + m_Owner: {fileID: 8926484042661615563} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: Noise + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615579} +--- !u!114 &8926484042661615575 +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: 1b2b751071c7fc14f9fa503163991826, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615576} + - {fileID: 8926484042661615577} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615575} + m_MasterData: + m_Owner: {fileID: 8926484042661615563} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0}' + m_Space: 2147483647 + m_Property: + name: Derivatives + m_serializedType: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615576 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615575} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615575} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615577 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615575} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615575} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615578 +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: c7acf5424f3655744af4b8f63298fa0f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 390, y: 3676} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615579} + - {fileID: 8926484042661615580} + m_OutputSlots: + - {fileID: 8926484042661615581} + m_Operands: + - name: a + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - name: b + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615579 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615579} + m_MasterData: + m_Owner: {fileID: 8926484042661615578} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615574} +--- !u!114 &8926484042661615580 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615580} + m_MasterData: + m_Owner: {fileID: 8926484042661615578} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615530} +--- !u!114 &8926484042661615581 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615581} + m_MasterData: + m_Owner: {fileID: 8926484042661615578} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615954} +--- !u!114 &8926484042661615582 +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: a72fbb93ebe17974e90a144ef2ec8ceb, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -843, y: 4129} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615583} + m_BuiltInParameters: 4 +--- !u!114 &8926484042661615583 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615583} + m_MasterData: + m_Owner: {fileID: 8926484042661615582} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: Total Time + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615588} +--- !u!114 &8926484042661615584 +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: b8ee8a7543fa09e42a7c8616f60d2ad7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -581, y: 4010} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615585} + - {fileID: 8926484042661615588} + m_OutputSlots: + - {fileID: 8926484042661615589} + m_Operands: + - name: a + type: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + - name: b + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615585 +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: 1b2b751071c7fc14f9fa503163991826, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615586} + - {fileID: 8926484042661615587} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615585} + m_MasterData: + m_Owner: {fileID: 8926484042661615584} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":1.0}' + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615618} +--- !u!114 &8926484042661615586 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615585} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615585} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615587 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615585} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615585} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615588 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615588} + m_MasterData: + m_Owner: {fileID: 8926484042661615584} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615583} +--- !u!114 &8926484042661615589 +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: 1b2b751071c7fc14f9fa503163991826, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615590} + - {fileID: 8926484042661615591} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615589} + m_MasterData: + m_Owner: {fileID: 8926484042661615584} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615596} +--- !u!114 &8926484042661615590 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615589} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615589} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615591 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615589} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615589} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615592 +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: c7acf5424f3655744af4b8f63298fa0f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -315, y: 3909} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615593} + - {fileID: 8926484042661615596} + m_OutputSlots: + - {fileID: 8926484042661615599} + m_Operands: + - name: a + type: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + - name: b + type: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &8926484042661615593 +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: 1b2b751071c7fc14f9fa503163991826, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615594} + - {fileID: 8926484042661615595} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615593} + m_MasterData: + m_Owner: {fileID: 8926484042661615592} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0}' + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615611} +--- !u!114 &8926484042661615594 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615593} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615593} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615595 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615593} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615593} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615596 +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: 1b2b751071c7fc14f9fa503163991826, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615597} + - {fileID: 8926484042661615598} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615596} + m_MasterData: + m_Owner: {fileID: 8926484042661615592} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0}' + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615589} +--- !u!114 &8926484042661615597 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615596} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615596} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615598 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615596} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615596} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615599 +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: 1b2b751071c7fc14f9fa503163991826, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615600} + - {fileID: 8926484042661615601} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615599} + m_MasterData: + m_Owner: {fileID: 8926484042661615592} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615564} +--- !u!114 &8926484042661615600 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615599} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615599} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615601 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615599} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615599} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615602 +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: 486e063e1ed58c843942ea4122829ab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -846, y: 3794} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615603} + attribute: position + location: 0 + mask: xyz +--- !u!114 &8926484042661615603 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615604} + - {fileID: 8926484042661615605} + - {fileID: 8926484042661615606} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615603} + m_MasterData: + m_Owner: {fileID: 8926484042661615602} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615604 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615603} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615603} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615609} +--- !u!114 &8926484042661615605 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615603} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615603} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615606 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615603} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615603} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615610} +--- !u!114 &8926484042661615607 +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: 955b0c175a6f3bb4582e92f3de8f0626, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -581, y: 3850} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615608} + m_OutputSlots: + - {fileID: 8926484042661615611} + m_Type: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &8926484042661615608 +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: 1b2b751071c7fc14f9fa503163991826, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615609} + - {fileID: 8926484042661615610} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615608} + m_MasterData: + m_Owner: {fileID: 8926484042661615607} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0}' + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615609 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615608} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615608} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615604} +--- !u!114 &8926484042661615610 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615608} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615608} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615606} +--- !u!114 &8926484042661615611 +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: 1b2b751071c7fc14f9fa503163991826, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615612} + - {fileID: 8926484042661615613} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615611} + m_MasterData: + m_Owner: {fileID: 8926484042661615607} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615593} +--- !u!114 &8926484042661615612 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615611} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615611} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615613 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615611} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615611} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615614 +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: 955b0c175a6f3bb4582e92f3de8f0626, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -843, y: 3990} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615615} + m_OutputSlots: + - {fileID: 8926484042661615618} + m_Type: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &8926484042661615615 +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: 1b2b751071c7fc14f9fa503163991826, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615616} + - {fileID: 8926484042661615617} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615615} + m_MasterData: + m_Owner: {fileID: 8926484042661615614} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":1.0}' + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615616 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615615} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615615} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615617 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615615} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615615} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615618 +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: 1b2b751071c7fc14f9fa503163991826, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615619} + - {fileID: 8926484042661615620} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615618} + m_MasterData: + m_Owner: {fileID: 8926484042661615614} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615585} +--- !u!114 &8926484042661615619 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615618} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615618} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615620 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615618} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615618} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615665 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615666} + m_ExposedName: PositionMap + m_Exposed: 1 + m_Order: 8 + m_Category: + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 4 + linkedSlots: + - outputSlot: {fileID: 8926484042661615666} + inputSlot: {fileID: 8926484042661615944} + position: {x: -114.4, y: 2914.4001} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615666 +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: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615666} + m_MasterData: + m_Owner: {fileID: 8926484042661615665} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":2800000,"guid":"276d9e395ae18fe40a9b4988549f2349","type":3}}' + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615944} +--- !u!114 &8926484042661615718 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614583} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615719} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615724} + attribute: position + Composition: 1 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615719 +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: 5265657162cc1a241bba03a3b0476d99, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615720} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615719} + m_MasterData: + m_Owner: {fileID: 8926484042661615718} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0}}' + m_Space: 0 + m_Property: + name: Position + m_serializedType: + m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615720 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615719} + m_Children: + - {fileID: 8926484042661615721} + - {fileID: 8926484042661615722} + - {fileID: 8926484042661615723} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615719} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615721 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615720} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615719} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615722 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615720} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615719} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615723 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615720} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615719} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615724 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615724} + m_MasterData: + m_Owner: {fileID: 8926484042661615718} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: False + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615940 +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: d03231f387e7ed54d888c74e4e13228e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615352} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615941} +--- !u!114 &8926484042661615941 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615941} + m_MasterData: + m_Owner: {fileID: 8926484042661615940} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615942 +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: 79b540e84db11cc48a6a72fb73f5c5be, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 122, y: 2820} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: + - {fileID: 8926484042661615943} + - {fileID: 8926484042661615944} + - {fileID: 8926484042661615945} + m_OutputSlots: + - {fileID: 8926484042661615946} + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + mode: 0 +--- !u!114 &8926484042661615943 +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: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615943} + m_MasterData: + m_Owner: {fileID: 8926484042661615942} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1900000 + m_Space: 2147483647 + m_Property: + name: pointCount + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615944 +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: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615944} + m_MasterData: + m_Owner: {fileID: 8926484042661615942} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: map + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615666} +--- !u!114 &8926484042661615945 +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: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615945} + m_MasterData: + m_Owner: {fileID: 8926484042661615942} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: index + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615976} +--- !u!114 &8926484042661615946 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615947} + - {fileID: 8926484042661615948} + - {fileID: 8926484042661615949} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615946} + m_MasterData: + m_Owner: {fileID: 8926484042661615942} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: sample + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615997} +--- !u!114 &8926484042661615947 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615946} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615946} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615497} +--- !u!114 &8926484042661615948 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615946} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615946} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615953} +--- !u!114 &8926484042661615949 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615946} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615946} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615499} +--- !u!114 &8926484042661615952 +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: c7acf5424f3655744af4b8f63298fa0f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 682, y: 2853} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615953} + - {fileID: 8926484042661615954} + m_OutputSlots: + - {fileID: 8926484042661615955} + m_Operands: + - name: a + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + - name: b + type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 +--- !u!114 &8926484042661615953 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615953} + m_MasterData: + m_Owner: {fileID: 8926484042661615952} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615948} +--- !u!114 &8926484042661615954 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615954} + m_MasterData: + m_Owner: {fileID: 8926484042661615952} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615581} +--- !u!114 &8926484042661615955 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615955} + m_MasterData: + m_Owner: {fileID: 8926484042661615952} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615498} + - {fileID: 8926484042661616007} +--- !u!114 &8926484042661615956 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615957} + m_ExposedName: ColorMap + m_Exposed: 1 + m_Order: 9 + m_Category: + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615957} + inputSlot: {fileID: 8926484042661616053} + position: {x: -114.4, y: 2971.2} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615957 +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: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615957} + m_MasterData: + m_Owner: {fileID: 8926484042661615956} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":2800000,"guid":"276d9e395ae18fe40a9b4988549f2349","type":3}}' + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661616053} +--- !u!114 &8926484042661615966 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614583} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615967} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615971} + attribute: color + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615967 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615968} + - {fileID: 8926484042661615969} + - {fileID: 8926484042661615970} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615967} + m_MasterData: + m_Owner: {fileID: 8926484042661615966} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":1.0,"z":1.0}' + m_Space: 2147483647 + m_Property: + name: Color + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615968 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615967} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615967} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661616056} +--- !u!114 &8926484042661615969 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615967} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615967} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661616057} +--- !u!114 &8926484042661615970 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615967} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615967} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661616058} +--- !u!114 &8926484042661615971 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615971} + m_MasterData: + m_Owner: {fileID: 8926484042661615966} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: False + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615972 +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: c42128e17c583714a909b4997c80c916, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -102, y: 2746} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615973} + - {fileID: 8926484042661615974} + - {fileID: 8926484042661615975} + m_OutputSlots: + - {fileID: 8926484042661615976} + seed: 0 + constant: 1 +--- !u!114 &8926484042661615973 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615973} + m_MasterData: + m_Owner: {fileID: 8926484042661615972} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: min + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615974 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615974} + m_MasterData: + m_Owner: {fileID: 8926484042661615972} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1900000 + m_Space: 2147483647 + m_Property: + name: max + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615975 +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: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615975} + m_MasterData: + m_Owner: {fileID: 8926484042661615972} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: seed + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615976 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615976} + m_MasterData: + m_Owner: {fileID: 8926484042661615972} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: r + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661616054} + - {fileID: 8926484042661615945} +--- !u!114 &8926484042661615978 +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: c6841bdef989b6d408d7298703cfde75, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661615992} + - {fileID: 8926484042661616024} + - {fileID: 8926484042661615989} + - {fileID: 8926484042661615994} + m_UIPosition: {x: 1600, y: 3329} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615979} + - {fileID: 8926484042661615980} + - {fileID: 8926484042661615981} + - {fileID: 8926484042661615982} + - {fileID: 8926484042661615983} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661616033} + m_InputFlowSlot: + - link: [] + m_OutputFlowSlot: + - link: [] + blendMode: 0 + cullMode: 0 + zWriteMode: 0 + zTestMode: 0 + useAlphaClipping: 0 + generateMotionVector: 0 + excludeFromTAA: 0 + sortingPriority: 0 + m_SubOutputs: + - {fileID: 8926484042661615985} + colorMapping: 0 + uvMode: 0 + flipbookLayout: 0 + useSoftParticle: 0 + vfxSystemSortPriority: 0 + sort: 0 + sortMode: 0 + revertSorting: 0 + indirectDraw: 0 + computeCulling: 0 + frustumCulling: 0 + castShadows: 0 + useExposureWeight: 0 + needsOwnSort: 0 + shaderGraph: {fileID: 0} + materialSettings: + m_PropertyNames: [] + m_PropertyValues: [] + useBaseColorMap: 3 + useMaskMap: 0 + useNormalMap: 0 + useEmissiveMap: 0 + colorMode: 1 + useEmissive: 0 + materialType: 0 + onlyAmbientLighting: 0 + diffusionProfileAsset: {fileID: 0} + multiplyThicknessWithAlpha: 0 + doubleSided: 0 + preserveSpecularLighting: 0 + enableSpecular: 1 + lightmapRemapMode: 0 + lightmapRemapRanges: 0 + useAlphaRemap: 0 + emissiveMode: 0 + useEmissiveChannelScale: 0 + useColorAbsorption: 1 + receiveShadows: 1 + enableCookie: 1 + enableEnvLight: 1 + MeshCount: 1 + lod: 0 +--- !u!114 &8926484042661615979 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615979} + m_MasterData: + m_Owner: {fileID: 8926484042661615978} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: smoothness + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615980 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615980} + m_MasterData: + m_Owner: {fileID: 8926484042661615978} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: metallic + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615981 +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: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615981} + m_MasterData: + m_Owner: {fileID: 8926484042661615978} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":10305,"guid":"0000000000000000f000000000000000","type":0}}' + m_Space: 2147483647 + m_Property: + name: baseColorMap + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615982 +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: b47b8679b468b7347a00cdd50589bc9f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615982} + m_MasterData: + m_Owner: {fileID: 8926484042661615978} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Mesh, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":10211,"guid":"0000000000000000e000000000000000","type":0}}' + m_Space: 2147483647 + m_Property: + name: mesh + m_serializedType: + m_SerializableType: UnityEngine.Mesh, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615983 +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: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615983} + m_MasterData: + m_Owner: {fileID: 8926484042661615978} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 4294967295 + m_Space: 2147483647 + m_Property: + name: subMeshMask + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615985 +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: 081ffb0090424ba4cb05370a42ead6b9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + opaqueRenderQueue: 0 + transparentRenderQueue: 1 +--- !u!114 &8926484042661615989 +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: 01ec2c1930009b04ea08905b47262415, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615978} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615990} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615991} + attribute: alpha + Composition: 0 + AlphaComposition: 0 + SampleMode: 0 + Mode: 1 + ColorMode: 3 + channels: 6 +--- !u!114 &8926484042661615990 +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: c117b74c5c58db542bffe25c78fe92db, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615990} + m_MasterData: + m_Owner: {fileID: 8926484042661615989} + m_Value: + m_Type: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"frames":[{"time":0.0,"value":0.0,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":0.1041666641831398,"value":0.5586803555488586,"inTangent":1.4468618631362916,"outTangent":1.4468618631362916,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":0.23907428979873658,"value":0.6695569157600403,"inTangent":-0.6318999528884888,"outTangent":-0.6318999528884888,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":1.0,"value":0.0,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false}],"preWrapMode":8,"postWrapMode":8,"version":1}' + m_Space: 2147483647 + m_Property: + name: Alpha + m_serializedType: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615991 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615991} + m_MasterData: + m_Owner: {fileID: 8926484042661615989} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615992 +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: d16c6aeaef944094b9a1633041804207, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615978} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615993} + mode: 0 + axes: 4 +--- !u!114 &8926484042661615993 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615993} + m_MasterData: + m_Owner: {fileID: 8926484042661615992} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615994 +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: d03231f387e7ed54d888c74e4e13228e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615978} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661615995} +--- !u!114 &8926484042661615995 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615995} + m_MasterData: + m_Owner: {fileID: 8926484042661615994} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615996 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614558} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615997} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616002} + attribute: position + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661615997 +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: 5265657162cc1a241bba03a3b0476d99, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615998} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615997} + m_MasterData: + m_Owner: {fileID: 8926484042661615996} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0}}' + m_Space: 0 + m_Property: + name: Position + m_serializedType: + m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615946} +--- !u!114 &8926484042661615998 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615997} + m_Children: + - {fileID: 8926484042661615999} + - {fileID: 8926484042661616000} + - {fileID: 8926484042661616001} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615997} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615999 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615998} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615997} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616000 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615998} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615997} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616001 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615998} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615997} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616002 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616002} + m_MasterData: + m_Owner: {fileID: 8926484042661615996} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: False + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616003 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614558} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616004} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616009} + attribute: position + Composition: 1 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661616004 +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: 5265657162cc1a241bba03a3b0476d99, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661616005} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616004} + m_MasterData: + m_Owner: {fileID: 8926484042661616003} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0}}' + m_Space: 0 + m_Property: + name: Position + m_serializedType: + m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616005 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616004} + m_Children: + - {fileID: 8926484042661616006} + - {fileID: 8926484042661616007} + - {fileID: 8926484042661616008} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616004} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616006 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616005} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616004} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616007 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616005} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616004} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615955} +--- !u!114 &8926484042661616008 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616005} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616004} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616009 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616009} + m_MasterData: + m_Owner: {fileID: 8926484042661616003} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: False + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616016 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614558} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616017} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616021} + attribute: color + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661616017 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661616018} + - {fileID: 8926484042661616019} + - {fileID: 8926484042661616020} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616017} + m_MasterData: + m_Owner: {fileID: 8926484042661616016} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":1.0,"z":1.0}' + m_Space: 2147483647 + m_Property: + name: Color + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661616055} +--- !u!114 &8926484042661616018 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616017} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616017} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616019 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616017} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616017} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616020 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616017} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616017} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616021 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616021} + m_MasterData: + m_Owner: {fileID: 8926484042661616016} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: False + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616022 +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: d16c6aeaef944094b9a1633041804207, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615352} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616023} + mode: 0 + axes: 4 +--- !u!114 &8926484042661616023 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616023} + m_MasterData: + m_Owner: {fileID: 8926484042661616022} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616024 +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: 01ec2c1930009b04ea08905b47262415, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615978} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616025} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616026} + attribute: size + Composition: 0 + AlphaComposition: 0 + SampleMode: 0 + Mode: 1 + ColorMode: 3 + channels: 6 +--- !u!114 &8926484042661616025 +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: c117b74c5c58db542bffe25c78fe92db, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616025} + m_MasterData: + m_Owner: {fileID: 8926484042661616024} + m_Value: + m_Type: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"frames":[{"time":0.0,"value":0.0,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":0.17520050704479218,"value":0.05633765086531639,"inTangent":-0.1539585441350937,"outTangent":-0.1539585441350937,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":1.0,"value":0.0,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false}],"preWrapMode":8,"postWrapMode":8,"version":1}' + m_Space: 2147483647 + m_Property: + name: Size + m_serializedType: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616026 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616026} + m_MasterData: + m_Owner: {fileID: 8926484042661616024} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616027 +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: 01ec2c1930009b04ea08905b47262415, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615352} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616028} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616029} + attribute: size + Composition: 0 + AlphaComposition: 0 + SampleMode: 0 + Mode: 1 + ColorMode: 3 + channels: 6 +--- !u!114 &8926484042661616028 +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: c117b74c5c58db542bffe25c78fe92db, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616028} + m_MasterData: + m_Owner: {fileID: 8926484042661616027} + m_Value: + m_Type: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"frames":[{"time":0.0,"value":0.0,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":0.12519745528697968,"value":0.2095053791999817,"inTangent":-0.1539585441350937,"outTangent":-0.1539585441350937,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":1.0,"value":0.0,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false}],"preWrapMode":8,"postWrapMode":8,"version":1}' + m_Space: 2147483647 + m_Property: + name: Size + m_serializedType: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616029 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616029} + m_MasterData: + m_Owner: {fileID: 8926484042661616027} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616030 +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: 01ec2c1930009b04ea08905b47262415, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615352} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616031} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616032} + attribute: alpha + Composition: 0 + AlphaComposition: 0 + SampleMode: 0 + Mode: 1 + ColorMode: 3 + channels: 6 +--- !u!114 &8926484042661616031 +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: c117b74c5c58db542bffe25c78fe92db, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616031} + m_MasterData: + m_Owner: {fileID: 8926484042661616030} + m_Value: + m_Type: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"frames":[{"time":0.0,"value":0.0,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":0.21250024437904359,"value":0.5139110684394836,"inTangent":1.4468618631362916,"outTangent":1.4468618631362916,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":0.5724025368690491,"value":1.0159313678741456,"inTangent":-0.6318999528884888,"outTangent":-0.6318999528884888,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":1.0,"value":0.0,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false}],"preWrapMode":8,"postWrapMode":8,"version":1}' + m_Space: 2147483647 + m_Property: + name: Alpha + m_serializedType: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616032 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616032} + m_MasterData: + m_Owner: {fileID: 8926484042661616030} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616033 +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: d78581a96eae8bf4398c282eb0b098bd, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 8926484042661615978} + dataType: 0 + capacity: 128 + stripCapacity: 1 + particlePerStripCount: 128 + needsComputeBounds: 0 + boundsMode: 0 + m_Space: 0 +--- !u!114 &8926484042661616041 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616041} + m_MasterData: + m_Owner: {fileID: 8926484042661615352} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1 + m_Space: 2147483647 + m_Property: + name: smoothness + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616042 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616042} + m_MasterData: + m_Owner: {fileID: 8926484042661615352} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: metallic + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616043 +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: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616043} + m_MasterData: + m_Owner: {fileID: 8926484042661615352} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":2800000,"guid":"aa1245d7376cab442b9e9d397598decb","type":3}}' + m_Space: 2147483647 + m_Property: + name: baseColorMap + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616051 +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: 79b540e84db11cc48a6a72fb73f5c5be, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 122, y: 2935} + m_UICollapsed: 0 + m_UISuperCollapsed: 1 + m_InputSlots: + - {fileID: 8926484042661616052} + - {fileID: 8926484042661616053} + - {fileID: 8926484042661616054} + m_OutputSlots: + - {fileID: 8926484042661616055} + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + mode: 0 +--- !u!114 &8926484042661616052 +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: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616052} + m_MasterData: + m_Owner: {fileID: 8926484042661616051} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 1900000 + m_Space: 2147483647 + m_Property: + name: pointCount + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616053 +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: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616053} + m_MasterData: + m_Owner: {fileID: 8926484042661616051} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: map + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615957} +--- !u!114 &8926484042661616054 +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: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616054} + m_MasterData: + m_Owner: {fileID: 8926484042661616051} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: index + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615976} +--- !u!114 &8926484042661616055 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661616056} + - {fileID: 8926484042661616057} + - {fileID: 8926484042661616058} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616055} + m_MasterData: + m_Owner: {fileID: 8926484042661616051} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: sample + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661616017} +--- !u!114 &8926484042661616056 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616055} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616055} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615968} +--- !u!114 &8926484042661616057 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616055} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616055} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615969} +--- !u!114 &8926484042661616058 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616055} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616055} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615970} +--- !u!114 &8926484042661616059 +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: 60fff265f139e2a4194a44c2bac41757, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614558} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661616060} + - {fileID: 8926484042661616070} + - {fileID: 8926484042661616061} + - {fileID: 8926484042661616065} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661616069} + attribute: position + Composition: 0 + SampleMode: 6 + mode: 0 + channels: 6 + usePointCount: 0 +--- !u!114 &8926484042661616060 +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: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616060} + m_MasterData: + m_Owner: {fileID: 8926484042661616059} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":6918954641851045129,"guid":"7ede3f9c2c8b06a478d83ee82cf3f663","type":3}}' + m_Space: 2147483647 + m_Property: + name: attributeMap + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616061 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661616062} + - {fileID: 8926484042661616063} + - {fileID: 8926484042661616064} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616061} + m_MasterData: + m_Owner: {fileID: 8926484042661616059} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: valueBias + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616062 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616061} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616061} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616063 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616061} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616061} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616064 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616061} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616061} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616065 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661616066} + - {fileID: 8926484042661616067} + - {fileID: 8926484042661616068} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616065} + m_MasterData: + m_Owner: {fileID: 8926484042661616059} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":1.0,"z":1.0}' + m_Space: 2147483647 + m_Property: + name: valueScale + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616066 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616065} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616065} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616067 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616065} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616065} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616068 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661616065} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616065} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616069 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616069} + m_MasterData: + m_Owner: {fileID: 8926484042661616059} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661616070 +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: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661616070} + m_MasterData: + m_Owner: {fileID: 8926484042661616059} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: Seed + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] diff --git a/Assets/Dwelling/VFX/PointCloudExample.vfx.meta b/Assets/Dwelling/VFX/PointCloudExample.vfx.meta new file mode 100644 index 0000000..a95c5a7 --- /dev/null +++ b/Assets/Dwelling/VFX/PointCloudExample.vfx.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: fc3843e46d5acb8469034a5110173279 +VisualEffectImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/VFX/Quads.vfx b/Assets/Dwelling/VFX/Quads.vfx new file mode 100644 index 0000000..702d687 --- /dev/null +++ b/Assets/Dwelling/VFX/Quads.vfx @@ -0,0 +1,1834 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &114023846229194376 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: 73a13919d81fb7444849bae8b5c812a2, type: 3} + m_Name: VFXBasicSpawner + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 114873264888500148} + m_UIPosition: {x: 839, y: -358} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661614803} + m_InputFlowSlot: + - link: [] + - link: [] + m_OutputFlowSlot: + - link: + - context: {fileID: 114946465509916290} + slotIndex: 0 + loopDuration: 0 + loopCount: 0 + delayBeforeLoop: 0 + delayAfterLoop: 0 +--- !u!114 &114307113894698210 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: 1b605c022ee79394a8a776c0869b3f9a, type: 3} + m_Name: VFXSlot + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 114986932069951040} + - {fileID: 114963171269329408} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114307113894698210} + m_MasterData: + m_Owner: {fileID: 114946465509916290} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"center":{"x":0.0,"y":1.0,"z":0.0},"size":{"x":2.0,"y":3.0,"z":2.0}}' + m_Space: 0 + m_Property: + name: bounds + m_serializedType: + m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &114340500867371532 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: d01270efd3285ea4a9d6c555cb0a8027, type: 3} + m_Name: VFXUI + m_EditorClassIdentifier: + groupInfos: [] + stickyNoteInfos: [] + categories: [] + uiBounds: + serializedVersion: 2 + x: 462 + y: -358 + width: 911 + height: 1926 +--- !u!114 &114350483966674976 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: 7d4c867f6b72b714dbb5fd1780afe208, type: 3} + m_Name: Quads + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 114023846229194376} + - {fileID: 114946465509916290} + - {fileID: 8926484042661614770} + - {fileID: 8926484042661614654} + - {fileID: 8926484042661614801} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_UIInfos: {fileID: 114340500867371532} + m_ParameterInfo: + - name: PositionMap + path: PositionMap + tooltip: + sheetType: m_NamedObject + realType: Texture2D + defaultValue: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + m_ImportDependencies: [] + m_GraphVersion: 12 + m_ResourceVersion: 1 + m_SubgraphDependencies: [] + m_CategoryPath: +--- !u!114 &114380859405582094 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: VFXSlotFloat + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114963171269329408} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114307113894698210} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &114428730288789306 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: d78581a96eae8bf4398c282eb0b098bd, type: 3} + m_Name: VFXDataParticle + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 114946465509916290} + - {fileID: 8926484042661614770} + - {fileID: 8926484042661614654} + dataType: 0 + capacity: 100000 + stripCapacity: 16 + particlePerStripCount: 16 + needsComputeBounds: 0 + boundsMode: 1 + m_Space: 0 +--- !u!114 &114512514798047786 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: VFXSlotFloat + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114963171269329408} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114307113894698210} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &114538391275492396 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: VFXSlotFloat + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114986932069951040} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114307113894698210} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &114571176826476282 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: VFXSlotFloat + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114571176826476282} + m_MasterData: + m_Owner: {fileID: 114873264888500148} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 5000 + m_Space: 2147483647 + m_Property: + name: Rate + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &114739294351936256 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: VFXSlotFloat + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114986932069951040} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114307113894698210} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &114873264888500148 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: f05c6884b705ce14d82ae720f0ec209f, type: 3} + m_Name: VFXSpawnerConstantRate + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114023846229194376} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 114571176826476282} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614804} +--- !u!114 &114920711487922656 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: VFXSlotFloat + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114963171269329408} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114307113894698210} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &114935892456706286 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: VFXSlotFloat + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114986932069951040} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114307113894698210} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &114946465509916290 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: 9dfea48843f53fc438eabc12a3a30abc, type: 3} + m_Name: VFXBasicInitialize + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661614572} + - {fileID: 8926484042661614603} + - {fileID: 8926484042661614773} + - {fileID: 8926484042661614793} + m_UIPosition: {x: 761, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 114307113894698210} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 114428730288789306} + m_InputFlowSlot: + - link: + - context: {fileID: 114023846229194376} + slotIndex: 0 + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661614770} + slotIndex: 0 +--- !u!114 &114963171269329408 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: VFXSlotFloat3 + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114307113894698210} + m_Children: + - {fileID: 114512514798047786} + - {fileID: 114920711487922656} + - {fileID: 114380859405582094} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114307113894698210} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: size + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &114986932069951040 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: VFXSlotFloat3 + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114307113894698210} + m_Children: + - {fileID: 114739294351936256} + - {fileID: 114935892456706286} + - {fileID: 114538391275492396} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 114307113894698210} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: center + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!2058629511 &8926484042661614527 +VisualEffectResource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Quads + m_Graph: {fileID: 114350483966674976} + m_Infos: + m_RendererSettings: + motionVectorGenerationMode: 0 + shadowCastingMode: 0 + receiveShadows: 0 + reflectionProbeUsage: 0 + lightProbeUsage: 0 + m_CullingFlags: 3 + m_UpdateMode: 0 + m_PreWarmDeltaTime: 0.05 + m_PreWarmStepCount: 0 + m_InitialEventName: OnPlay + m_InstancingMode: -1 + m_InstancingCapacity: 64 +--- !u!114 &8926484042661614572 +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: 60fff265f139e2a4194a44c2bac41757, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114946465509916290} + m_Children: [] + m_UIPosition: {x: 0, y: 2} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614573} + - {fileID: 8926484042661614574} + - {fileID: 8926484042661614575} + - {fileID: 8926484042661614579} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614805} + attribute: position + Composition: 0 + SampleMode: 6 + mode: 0 + channels: 6 + usePointCount: 0 +--- !u!114 &8926484042661614573 +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: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614573} + m_MasterData: + m_Owner: {fileID: 8926484042661614572} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":8400000,"guid":"65f21fe1f464bf0f1a1fc991675ee2dc","type":2}}' + m_Space: 2147483647 + m_Property: + name: attributeMap + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614802} +--- !u!114 &8926484042661614574 +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: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614574} + m_MasterData: + m_Owner: {fileID: 8926484042661614572} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: Seed + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614575 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614576} + - {fileID: 8926484042661614577} + - {fileID: 8926484042661614578} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614575} + m_MasterData: + m_Owner: {fileID: 8926484042661614572} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: valueBias + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614576 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614575} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614575} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614577 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614575} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614575} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614578 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614575} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614575} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614579 +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: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614580} + - {fileID: 8926484042661614581} + - {fileID: 8926484042661614582} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614579} + m_MasterData: + m_Owner: {fileID: 8926484042661614572} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":1.0,"y":1.0,"z":1.0}' + m_Space: 2147483647 + m_Property: + name: valueScale + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614580 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614579} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614579} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614581 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614579} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614579} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614582 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614579} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614579} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614603 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114946465509916290} + m_Children: [] + m_UIPosition: {x: 0, y: 163} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614795} + - {fileID: 8926484042661614796} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614806} + attribute: lifetime + Composition: 0 + Source: 0 + Random: 2 + channels: 6 +--- !u!114 &8926484042661614654 +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: a0b9e6b9139e58d4c957ec54595da7d3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661614791} + m_UIPosition: {x: 691, y: 1203} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614655} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 114428730288789306} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661614770} + slotIndex: 0 + m_OutputFlowSlot: + - link: [] + blendMode: 0 + cullMode: 0 + zWriteMode: 0 + zTestMode: 0 + useAlphaClipping: 0 + generateMotionVector: 0 + excludeFromTAA: 0 + sortingPriority: 0 + m_SubOutputs: + - {fileID: 8926484042661614797} + colorMapping: 0 + uvMode: 0 + flipbookLayout: 0 + useSoftParticle: 0 + vfxSystemSortPriority: 0 + sort: 0 + sortMode: 0 + revertSorting: 0 + indirectDraw: 0 + computeCulling: 0 + frustumCulling: 0 + castShadows: 0 + useExposureWeight: 0 + needsOwnSort: 0 + shaderGraph: {fileID: 0} + materialSettings: + m_PropertyNames: [] + m_PropertyValues: [] + primitiveType: 1 + useGeometryShader: 0 +--- !u!114 &8926484042661614655 +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: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614655} + m_MasterData: + m_Owner: {fileID: 8926484042661614654} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":2800000,"guid":"127279d577f25ac4ea17dae3782e5074","type":3}}' + m_Space: 2147483647 + m_Property: + name: mainTexture + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614770 +MonoBehaviour: + m_ObjectHideFlags: 1 + 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: 2dc095764ededfa4bb32fa602511ea4b, type: 3} + m_Name: VFXBasicUpdate + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661614775} + m_UIPosition: {x: 691, y: 809} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 114428730288789306} + m_InputFlowSlot: + - link: + - context: {fileID: 114946465509916290} + slotIndex: 0 + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661614654} + slotIndex: 0 + integration: 0 + angularIntegration: 0 + ageParticles: 1 + reapParticles: 1 + skipZeroDeltaUpdate: 0 +--- !u!114 &8926484042661614773 +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: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114946465509916290} + m_Children: [] + m_UIPosition: {x: 0, y: 419} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614799} + - {fileID: 8926484042661614800} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614807} + attribute: size + Composition: 0 + Source: 0 + Random: 2 + channels: 6 +--- !u!114 &8926484042661614775 +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: 01ec2c1930009b04ea08905b47262415, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614770} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614776} + - {fileID: 8926484042661614777} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614809} + attribute: scale + Composition: 0 + AlphaComposition: 0 + SampleMode: 0 + Mode: 1 + ColorMode: 3 + channels: 3 +--- !u!114 &8926484042661614776 +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: c117b74c5c58db542bffe25c78fe92db, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614776} + m_MasterData: + m_Owner: {fileID: 8926484042661614775} + m_Value: + m_Type: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"frames":[{"time":0.0,"value":0.0,"inTangent":18.714519500732423,"outTangent":18.714519500732423,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":0.10000000149011612,"value":1.0,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":1.0,"value":0.0,"inTangent":-3.471303701400757,"outTangent":-3.471303701400757,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false}],"preWrapMode":8,"postWrapMode":8,"version":1}' + m_Space: 2147483647 + m_Property: + name: Scale_x + m_serializedType: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614777 +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: c117b74c5c58db542bffe25c78fe92db, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614777} + m_MasterData: + m_Owner: {fileID: 8926484042661614775} + m_Value: + m_Type: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"frames":[{"time":0.0,"value":0.0,"inTangent":23.17035675048828,"outTangent":23.17035675048828,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":0.10000000149011612,"value":1.0,"inTangent":0.0,"outTangent":0.0,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false},{"time":1.0,"value":6.0,"inTangent":14.755669593811036,"outTangent":14.755669593811036,"tangentMode":0,"leftTangentMode":0,"rightTangentMode":0,"broken":false}],"preWrapMode":8,"postWrapMode":8,"version":1}' + m_Space: 2147483647 + m_Property: + name: Scale_y + m_serializedType: + m_SerializableType: UnityEngine.AnimationCurve, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614791 +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: 01ec2c1930009b04ea08905b47262415, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614654} + m_Children: [] + m_UIPosition: {x: 0, y: 2} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614792} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614810} + attribute: color + Composition: 0 + AlphaComposition: 0 + SampleMode: 0 + Mode: 1 + ColorMode: 1 + channels: 6 +--- !u!114 &8926484042661614792 +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: 76f778ff57c4e8145b9681fe3268d8e9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614792} + m_MasterData: + m_Owner: {fileID: 8926484042661614791} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Gradient, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"colorKeys":[{"color":{"r":30.845975875854493,"g":6.54071569442749,"b":0.20002144575119019,"a":1.0},"time":0.08235294371843338},{"color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"time":0.3941252827644348}],"alphaKeys":[{"alpha":1.0,"time":0.0},{"alpha":1.0,"time":1.0}],"gradientMode":0}' + m_Space: 2147483647 + m_Property: + name: Color + m_serializedType: + m_SerializableType: UnityEngine.Gradient, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614793 +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: 01ec2c1930009b04ea08905b47262415, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114946465509916290} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614794} + m_OutputSlots: [] + m_Disabled: 0 + m_ActivationSlot: {fileID: 8926484042661614808} + attribute: color + Composition: 0 + AlphaComposition: 0 + SampleMode: 2 + Mode: 1 + ColorMode: 1 + channels: 6 +--- !u!114 &8926484042661614794 +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: 76f778ff57c4e8145b9681fe3268d8e9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614794} + m_MasterData: + m_Owner: {fileID: 8926484042661614793} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Gradient, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"colorKeys":[{"color":{"r":1.0,"g":1.0,"b":1.0,"a":1.0},"time":0.0},{"color":{"r":0.22287723422050477,"g":0.0,"b":0.0,"a":1.0},"time":1.0}],"alphaKeys":[{"alpha":1.0,"time":0.0},{"alpha":1.0,"time":1.0}],"gradientMode":0}' + m_Space: 2147483647 + m_Property: + name: Color + m_serializedType: + m_SerializableType: UnityEngine.Gradient, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614795 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614795} + m_MasterData: + m_Owner: {fileID: 8926484042661614603} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.35 + m_Space: 2147483647 + m_Property: + name: A + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614796 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614796} + m_MasterData: + m_Owner: {fileID: 8926484042661614603} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.75 + m_Space: 2147483647 + m_Property: + name: B + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614797 +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: 081ffb0090424ba4cb05370a42ead6b9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + opaqueRenderQueue: 0 + transparentRenderQueue: 1 +--- !u!114 &8926484042661614799 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614799} + m_MasterData: + m_Owner: {fileID: 8926484042661614773} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.02 + m_Space: 2147483647 + m_Property: + name: A + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614800 +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: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614800} + m_MasterData: + m_Owner: {fileID: 8926484042661614773} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.07 + m_Space: 2147483647 + m_Property: + name: B + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614801 +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: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661614802} + m_ExposedName: PositionMap + m_Exposed: 1 + m_Order: 0 + m_Category: + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661614802} + inputSlot: {fileID: 8926484042661614573} + position: {x: 558, y: 242} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661614802 +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: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614802} + m_MasterData: + m_Owner: {fileID: 8926484042661614801} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614573} +--- !u!114 &8926484042661614803 +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: f68759077adc0b143b6e1c101e82065e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 114023846229194376} +--- !u!114 &8926484042661614804 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614804} + m_MasterData: + m_Owner: {fileID: 114873264888500148} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614805 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614805} + m_MasterData: + m_Owner: {fileID: 8926484042661614572} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614806 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614806} + m_MasterData: + m_Owner: {fileID: 8926484042661614603} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614807 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614807} + m_MasterData: + m_Owner: {fileID: 8926484042661614773} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614808 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614808} + m_MasterData: + m_Owner: {fileID: 8926484042661614793} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614809 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614809} + m_MasterData: + m_Owner: {fileID: 8926484042661614775} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614810 +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: b4c11ff25089a324daf359f4b0629b33, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614810} + m_MasterData: + m_Owner: {fileID: 8926484042661614791} + m_Value: + m_Type: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: True + m_Space: 2147483647 + m_Property: + name: _vfx_enabled + m_serializedType: + m_SerializableType: System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] diff --git a/Assets/Dwelling/VFX/Quads.vfx.meta b/Assets/Dwelling/VFX/Quads.vfx.meta new file mode 100644 index 0000000..31202b4 --- /dev/null +++ b/Assets/Dwelling/VFX/Quads.vfx.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b92cf014c553c8047a5f7bc259842ec4 +VisualEffectImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/Videos.meta b/Assets/Dwelling/Videos.meta new file mode 100644 index 0000000..d8e8048 --- /dev/null +++ b/Assets/Dwelling/Videos.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5f3ab47a74789e048be8d94b6d441f52 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/Videos/Action_with_wiper.mp4 b/Assets/Dwelling/Videos/Action_with_wiper.mp4 new file mode 100644 index 0000000..7f4980c --- /dev/null +++ b/Assets/Dwelling/Videos/Action_with_wiper.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0369e148463e0e391c6c15a27d3e916cb027f7ade49fb8931911b92ad78895d8 +size 76440209 diff --git a/Assets/Dwelling/Videos/Action_with_wiper.mp4.meta b/Assets/Dwelling/Videos/Action_with_wiper.mp4.meta new file mode 100644 index 0000000..9bbbaa3 --- /dev/null +++ b/Assets/Dwelling/Videos/Action_with_wiper.mp4.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: bd6a7a100248a9348920b81aaed91be4 +VideoClipImporter: + externalObjects: {} + serializedVersion: 2 + frameRange: 0 + startFrame: -1 + endFrame: -1 + colorSpace: 0 + deinterlace: 0 + encodeAlpha: 0 + flipVertical: 0 + flipHorizontal: 0 + importAudio: 1 + targetSettings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Dwelling/Videos/onegai_darling.mp4 b/Assets/Dwelling/Videos/onegai_darling.mp4 new file mode 100644 index 0000000..fb41aec --- /dev/null +++ b/Assets/Dwelling/Videos/onegai_darling.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:12d5daec93bc5d81049dab21b4a93a7cd37c984f7266ee1359fb1cb391c22b0e +size 80909018 diff --git a/Assets/Dwelling/Videos/onegai_darling.mp4.meta b/Assets/Dwelling/Videos/onegai_darling.mp4.meta new file mode 100644 index 0000000..aa48f2a --- /dev/null +++ b/Assets/Dwelling/Videos/onegai_darling.mp4.meta @@ -0,0 +1,27 @@ +fileFormatVersion: 2 +guid: 15588459e6605c2489744026931a299e +VideoClipImporter: + externalObjects: {} + serializedVersion: 2 + frameRange: 0 + startFrame: -1 + endFrame: -1 + colorSpace: 0 + deinterlace: 0 + encodeAlpha: 0 + flipVertical: 0 + flipHorizontal: 0 + importAudio: 1 + targetSettings: + 0: + enableTranscoding: 1 + codec: 2 + resizeFormat: 0 + aspectRatio: 0 + customWidth: 1280 + customHeight: 720 + bitrateMode: 2 + spatialQuality: 2 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HDRP.meta b/Assets/HDRP.meta new file mode 100644 index 0000000..8c2bc51 --- /dev/null +++ b/Assets/HDRP.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f1b6dcc07ec8e744c83d3f379f5b5c2b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HDRP/Act-4.meta b/Assets/HDRP/Act-4.meta new file mode 100644 index 0000000..ab2c9c5 --- /dev/null +++ b/Assets/HDRP/Act-4.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d1963c8b55f078445b74fe85655fb8d9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HDRP/Act-4/Act4.asset b/Assets/HDRP/Act-4/Act4.asset new file mode 100644 index 0000000..33fa5e4 --- /dev/null +++ b/Assets/HDRP/Act-4/Act4.asset @@ -0,0 +1,246 @@ +%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: d7fd9488000d3734a9e00ee676215985, type: 3} + m_Name: Act4 + m_EditorClassIdentifier: + components: + - {fileID: 6545361891442796627} + - {fileID: 3465677143265634144} + - {fileID: 1949992208005298304} +--- !u!114 &1949992208005298304 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: 0d7593b3a9277ac4696b20006c21dde2, type: 3} + m_Name: VisualEnvironment + m_EditorClassIdentifier: + active: 1 + skyType: + m_OverrideState: 1 + m_Value: 0 + cloudType: + m_OverrideState: 1 + m_Value: 0 + skyAmbientMode: + m_OverrideState: 1 + m_Value: 1 + windOrientation: + m_OverrideState: 1 + m_Value: 0 + windSpeed: + m_OverrideState: 1 + m_Value: 0 + fogType: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &3465677143265634144 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: 24f077503be6ae942a1e1245dbd53ea9, type: 3} + m_Name: Bloom + m_EditorClassIdentifier: + active: 1 + quality: + m_OverrideState: 1 + m_Value: 1 + threshold: + m_OverrideState: 1 + m_Value: 0 + intensity: + m_OverrideState: 1 + m_Value: 0 + scatter: + m_OverrideState: 1 + m_Value: 0.7 + tint: + m_OverrideState: 1 + m_Value: {r: 1, g: 1, b: 1, a: 1} + dirtTexture: + m_OverrideState: 1 + m_Value: {fileID: 0} + dirtIntensity: + m_OverrideState: 1 + m_Value: 0 + anamorphic: + m_OverrideState: 0 + m_Value: 1 + m_Resolution: + m_OverrideState: 1 + m_Value: 2 + m_HighQualityPrefiltering: + m_OverrideState: 1 + m_Value: 0 + m_HighQualityFiltering: + m_OverrideState: 1 + m_Value: 1 +--- !u!114 &6545361891442796627 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: 2d08ce26990eb1a4a9177b860541e702, type: 3} + m_Name: Exposure + m_EditorClassIdentifier: + active: 1 + mode: + m_OverrideState: 1 + m_Value: 0 + meteringMode: + m_OverrideState: 1 + m_Value: 2 + luminanceSource: + m_OverrideState: 1 + m_Value: 1 + fixedExposure: + m_OverrideState: 1 + m_Value: 15 + compensation: + m_OverrideState: 1 + m_Value: 0 + limitMin: + m_OverrideState: 1 + m_Value: -1 + limitMax: + m_OverrideState: 1 + m_Value: 14 + curveMap: + m_OverrideState: 1 + m_Value: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: -10 + value: -10 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 20 + value: 20 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + limitMinCurveMap: + m_OverrideState: 1 + m_Value: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: -10 + value: -12 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 20 + value: 18 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + limitMaxCurveMap: + m_OverrideState: 1 + m_Value: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: -10 + value: -8 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 20 + value: 22 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + adaptationMode: + m_OverrideState: 1 + m_Value: 1 + adaptationSpeedDarkToLight: + m_OverrideState: 1 + m_Value: 3 + adaptationSpeedLightToDark: + m_OverrideState: 1 + m_Value: 1 + weightTextureMask: + m_OverrideState: 1 + m_Value: {fileID: 0} + histogramPercentages: + m_OverrideState: 1 + m_Value: {x: 40, y: 90} + histogramUseCurveRemapping: + m_OverrideState: 1 + m_Value: 0 + targetMidGray: + m_OverrideState: 0 + m_Value: 0 + centerAroundExposureTarget: + m_OverrideState: 1 + m_Value: 0 + proceduralCenter: + m_OverrideState: 1 + m_Value: {x: 0.5, y: 0.5} + proceduralRadii: + m_OverrideState: 1 + m_Value: {x: 0.3, y: 0.3} + maskMinIntensity: + m_OverrideState: 0 + m_Value: -30 + maskMaxIntensity: + m_OverrideState: 0 + m_Value: 30 + proceduralSoftness: + m_OverrideState: 1 + m_Value: 0.5 diff --git a/Assets/HDRP/Act-4/Act4.asset.meta b/Assets/HDRP/Act-4/Act4.asset.meta new file mode 100644 index 0000000..e7d1ba7 --- /dev/null +++ b/Assets/HDRP/Act-4/Act4.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: df0b9422a2c24004084014a9bc51bea0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HDRP/Settings.meta b/Assets/HDRP/Settings.meta new file mode 100644 index 0000000..5704eb7 --- /dev/null +++ b/Assets/HDRP/Settings.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b912c280ff3334ce98f15a14956a3e5c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HDRP/Settings/HDRP Balanced.asset b/Assets/HDRP/Settings/HDRP Balanced.asset new file mode 100644 index 0000000..a63a3b9 --- /dev/null +++ b/Assets/HDRP/Settings/HDRP Balanced.asset @@ -0,0 +1,497 @@ +%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: 0cf1dab834d4ec34195b920ea7bbf9ec, type: 3} + m_Name: HDRP Balanced + m_EditorClassIdentifier: + m_RenderPipelineSettings: + supportShadowMask: 0 + supportSSR: 0 + supportSSRTransparent: 0 + supportSSAO: 1 + supportSSGI: 0 + supportSubsurfaceScattering: 1 + sssSampleBudget: + m_Values: 140000002800000050000000 + m_SchemaId: + m_Id: With3Levels + supportVolumetrics: 1 + supportVolumetricClouds: 0 + supportLightLayers: 1 + supportWater: 0 + waterSimulationResolution: 128 + waterCPUSimulation: 0 + supportDistortion: 1 + supportTransparentBackface: 1 + supportTransparentDepthPrepass: 1 + supportTransparentDepthPostpass: 1 + colorBufferFormat: 74 + supportCustomPass: 1 + customBufferFormat: 12 + supportedLitShaderMode: 2 + planarReflectionResolution: + m_Values: 000100000004000000040000 + m_SchemaId: + m_Id: With3Levels + cubeReflectionResolution: + m_Values: 000100000002000000040000 + m_SchemaId: + m_Id: With3Levels + supportDecals: 1 + supportDecalLayers: 0 + supportSurfaceGradient: 0 + decalNormalBufferHP: 0 + msaaSampleCount: 1 + supportMotionVectors: 1 + supportRuntimeAOVAPI: 0 + supportDitheringCrossFade: 1 + supportTerrainHole: 0 + lightProbeSystem: 0 + probeVolumeMemoryBudget: 1024 + probeVolumeBlendingMemoryBudget: 128 + supportProbeVolumeStreaming: 0 + probeVolumeSHBands: 1 + supportRayTracing: 0 + supportedRayTracingMode: 3 + lightLoopSettings: + cookieAtlasSize: 512 + cookieFormat: 74 + cookieAtlasLastValidMip: 0 + cookieTexArraySize: 16 + planarReflectionAtlasSize: 1024 + reflectionProbeCacheSize: 32 + reflectionCubemapSize: 256 + maxEnvLightsOnScreen: 32 + reflectionCacheCompressed: 1 + reflectionProbeFormat: 74 + reflectionProbeTexCacheSize: 4096 + reflectionProbeTexLastValidCubeMip: 3 + reflectionProbeTexLastValidPlanarMip: 0 + reflectionProbeDecreaseResToFit: 1 + skyReflectionSize: 512 + skyLightingOverrideLayerMask: + serializedVersion: 2 + m_Bits: 0 + supportFabricConvolution: 0 + maxDirectionalLightsOnScreen: 16 + maxPunctualLightsOnScreen: 512 + maxAreaLightsOnScreen: 64 + maxCubeReflectionOnScreen: 32 + maxPlanarReflectionOnScreen: 16 + maxDecalsOnScreen: 512 + maxLightsPerClusterCell: 16 + maxLocalVolumetricFogSize: 32 + maxLocalVolumetricFogOnScreen: 64 + hdShadowInitParams: + maxShadowRequests: 128 + directionalShadowsDepthBits: 16 + shadowFilteringQuality: 1 + areaShadowFilteringQuality: 0 + punctualLightShadowAtlas: + shadowAtlasResolution: 4096 + shadowAtlasDepthBits: 16 + useDynamicViewportRescale: 1 + areaLightShadowAtlas: + shadowAtlasResolution: 2048 + shadowAtlasDepthBits: 16 + useDynamicViewportRescale: 0 + cachedPunctualLightShadowAtlas: 2048 + cachedAreaLightShadowAtlas: 2048 + allowDirectionalMixedCachedShadows: 0 + shadowResolutionDirectional: + m_Values: 00010000000200000004000000080000 + m_SchemaId: + m_Id: With4Levels + shadowResolutionPunctual: + m_Values: 00010000000200000004000000080000 + m_SchemaId: + m_Id: With4Levels + shadowResolutionArea: + m_Values: 00010000000200000004000000080000 + m_SchemaId: + m_Id: With4Levels + maxDirectionalShadowMapResolution: 2048 + maxPunctualShadowMapResolution: 2048 + maxAreaShadowMapResolution: 2048 + supportScreenSpaceShadows: 0 + maxScreenSpaceShadowSlots: 4 + screenSpaceShadowBufferFormat: 48 + decalSettings: + drawDistance: 1000 + atlasWidth: 2048 + atlasHeight: 2048 + perChannelMask: 1 + postProcessSettings: + m_LutSize: 32 + lutFormat: 48 + bufferFormat: 74 + dynamicResolutionSettings: + enabled: 0 + useMipBias: 0 + enableDLSS: 0 + DLSSPerfQualitySetting: 0 + DLSSInjectionPoint: 0 + DLSSUseOptimalSettings: 0 + DLSSSharpness: 0 + fsrOverrideSharpness: 0 + fsrSharpness: 0.92 + maxPercentage: 100 + minPercentage: 100 + dynResType: 1 + upsampleFilter: 1 + forceResolution: 0 + forcedPercentage: 100 + lowResTransparencyMinimumThreshold: 0 + rayTracingHalfResThreshold: 50 + lowresTransparentSettings: + enabled: 1 + checkerboardDepthBuffer: 1 + upsampleType: 1 + xrSettings: + singlePass: 1 + occlusionMesh: 1 + cameraJitter: 0 + allowMotionBlur: 0 + postProcessQualitySettings: + NearBlurSampleCount: 030000000400000005000000 + NearBlurMaxRadius: + - 2 + - 3 + - 4 + FarBlurSampleCount: 040000000500000007000000 + FarBlurMaxRadius: + - 5 + - 6 + - 8 + DoFResolution: 040000000200000002000000 + DoFHighQualityFiltering: 000001 + DoFPhysicallyBased: 000000 + LimitManualRangeNearBlur: 000000 + MotionBlurSampleCount: 04000000080000000c000000 + BloomRes: 040000000200000002000000 + BloomHighQualityFiltering: 000101 + BloomHighQualityPrefiltering: 000001 + ChromaticAberrationMaxSamples: 03000000060000000c000000 + lightSettings: + useContactShadow: + m_Values: 000101 + m_SchemaId: + m_Id: + maximumLODLevel: + m_Values: 000000000000000000000000 + m_SchemaId: + m_Id: With3Levels + lodBias: + m_Values: + - 1 + - 1 + - 1 + m_SchemaId: + m_Id: With3Levels + lightingQualitySettings: + AOStepCount: 040000000600000006000000 + AOFullRes: 000000 + AOMaximumRadiusPixels: 200000002000000028000000 + AOBilateralUpsample: 000001 + AODirectionCount: 010000000200000002000000 + ContactShadowSampleCount: 04000000080000000c000000 + SSRMaxRaySteps: 0c0000001800000030000000 + SSGIRaySteps: 200000004000000080000000 + SSGIDenoise: 010101 + SSGIHalfResDenoise: 010000 + SSGIDenoiserRadius: + - 0.75 + - 0.5 + - 0.5 + SSGISecondDenoise: 010101 + RTAORayLength: + - 0.5 + - 3 + - 20 + RTAOSampleCount: 010000000200000008000000 + RTAODenoise: 010101 + RTAODenoiserRadius: + - 0.25 + - 0.5 + - 0.65 + RTGIRayLength: + - 50 + - 50 + - 50 + RTGIFullResolution: 000001 + RTGIClampValue: + - 0.5 + - 0.8 + - 1.5 + RTGIRaySteps: 200000003000000040000000 + RTGIDenoise: 010101 + RTGIHalfResDenoise: 010000 + RTGIDenoiserRadius: + - 0.66 + - 0.66 + - 1 + RTGISecondDenoise: 010101 + RTRMinSmoothness: + - 0.6 + - 0.4 + - 0 + RTRSmoothnessFadeStart: + - 0.7 + - 0.5 + - 0 + RTRRayLength: + - 50 + - 50 + - 50 + RTRClampValue: + - 0.8 + - 1 + - 1.2 + RTRFullResolution: 000001 + RTRRayMaxIterations: 200000003000000040000000 + RTRDenoise: 010101 + RTRDenoiserRadius: 080000000c00000010000000 + RTRSmoothDenoising: 010000 + Fog_ControlMode: 000000000000000000000000 + Fog_Budget: + - 0.166 + - 0.333 + - 0.666 + Fog_DepthRatio: + - 0.5 + - 0.5 + - 0.5 + m_ObsoleteLightLayerName0: Light LayerDefault + m_ObsoleteLightLayerName1: InteriorOnly + m_ObsoleteLightLayerName2: ExteriorOnly + m_ObsoleteLightLayerName3: LampsOnly + m_ObsoleteLightLayerName4: ReflectionsOnly + m_ObsoleteLightLayerName5: Light Layer 5 + m_ObsoleteLightLayerName6: Light Layer 6 + m_ObsoleteLightLayerName7: Light Layer 7 + m_ObsoleteDecalLayerName0: Decal Layer default + m_ObsoleteDecalLayerName1: Decal Layer 1 + m_ObsoleteDecalLayerName2: Decal Layer 2 + m_ObsoleteDecalLayerName3: Decal Layer 3 + m_ObsoleteDecalLayerName4: Decal Layer 4 + m_ObsoleteDecalLayerName5: Decal Layer 5 + m_ObsoleteDecalLayerName6: Decal Layer 6 + m_ObsoleteDecalLayerName7: Decal Layer 7 + m_ObsoleteSupportRuntimeDebugDisplay: 0 + allowShaderVariantStripping: 1 + enableSRPBatcher: 1 + availableMaterialQualityLevels: -1 + m_DefaultMaterialQualityLevel: 4 + diffusionProfileSettings: {fileID: 0} + virtualTexturingSettings: + streamingCpuCacheSizeInMegaBytes: 256 + streamingGpuCacheSettings: + - format: 0 + sizeInMegaBytes: 128 + m_UseRenderGraph: 1 + m_Version: 22 + m_ObsoleteFrameSettings: + overrides: 0 + enableShadow: 0 + enableContactShadows: 0 + enableShadowMask: 0 + enableSSR: 0 + enableSSAO: 0 + enableSubsurfaceScattering: 0 + enableTransmission: 0 + enableAtmosphericScattering: 0 + enableVolumetrics: 0 + enableReprojectionForVolumetrics: 0 + enableLightLayers: 0 + enableExposureControl: 1 + diffuseGlobalDimmer: 0 + specularGlobalDimmer: 0 + shaderLitMode: 0 + enableDepthPrepassWithDeferredRendering: 0 + enableTransparentPrepass: 0 + enableMotionVectors: 0 + enableObjectMotionVectors: 0 + enableDecals: 0 + enableRoughRefraction: 0 + enableTransparentPostpass: 0 + enableDistortion: 0 + enablePostprocess: 0 + enableOpaqueObjects: 0 + enableTransparentObjects: 0 + enableRealtimePlanarReflection: 0 + enableMSAA: 0 + enableAsyncCompute: 0 + runLightListAsync: 0 + runSSRAsync: 0 + runSSAOAsync: 0 + runContactShadowsAsync: 0 + runVolumeVoxelizationAsync: 0 + lightLoopSettings: + overrides: 0 + enableDeferredTileAndCluster: 0 + enableComputeLightEvaluation: 0 + enableComputeLightVariants: 0 + enableComputeMaterialVariants: 0 + enableFptlForForwardOpaque: 0 + enableBigTilePrepass: 0 + isFptlEnabled: 0 + m_ObsoleteBakedOrCustomReflectionFrameSettings: + overrides: 0 + enableShadow: 0 + enableContactShadows: 0 + enableShadowMask: 0 + enableSSR: 0 + enableSSAO: 0 + enableSubsurfaceScattering: 0 + enableTransmission: 0 + enableAtmosphericScattering: 0 + enableVolumetrics: 0 + enableReprojectionForVolumetrics: 0 + enableLightLayers: 0 + enableExposureControl: 1 + diffuseGlobalDimmer: 0 + specularGlobalDimmer: 0 + shaderLitMode: 0 + enableDepthPrepassWithDeferredRendering: 0 + enableTransparentPrepass: 0 + enableMotionVectors: 0 + enableObjectMotionVectors: 0 + enableDecals: 0 + enableRoughRefraction: 0 + enableTransparentPostpass: 0 + enableDistortion: 0 + enablePostprocess: 0 + enableOpaqueObjects: 0 + enableTransparentObjects: 0 + enableRealtimePlanarReflection: 0 + enableMSAA: 0 + enableAsyncCompute: 0 + runLightListAsync: 0 + runSSRAsync: 0 + runSSAOAsync: 0 + runContactShadowsAsync: 0 + runVolumeVoxelizationAsync: 0 + lightLoopSettings: + overrides: 0 + enableDeferredTileAndCluster: 0 + enableComputeLightEvaluation: 0 + enableComputeLightVariants: 0 + enableComputeMaterialVariants: 0 + enableFptlForForwardOpaque: 0 + enableBigTilePrepass: 0 + isFptlEnabled: 0 + m_ObsoleteRealtimeReflectionFrameSettings: + overrides: 0 + enableShadow: 0 + enableContactShadows: 0 + enableShadowMask: 0 + enableSSR: 0 + enableSSAO: 0 + enableSubsurfaceScattering: 0 + enableTransmission: 0 + enableAtmosphericScattering: 0 + enableVolumetrics: 0 + enableReprojectionForVolumetrics: 0 + enableLightLayers: 0 + enableExposureControl: 1 + diffuseGlobalDimmer: 0 + specularGlobalDimmer: 0 + shaderLitMode: 0 + enableDepthPrepassWithDeferredRendering: 0 + enableTransparentPrepass: 0 + enableMotionVectors: 0 + enableObjectMotionVectors: 0 + enableDecals: 0 + enableRoughRefraction: 0 + enableTransparentPostpass: 0 + enableDistortion: 0 + enablePostprocess: 0 + enableOpaqueObjects: 0 + enableTransparentObjects: 0 + enableRealtimePlanarReflection: 0 + enableMSAA: 0 + enableAsyncCompute: 0 + runLightListAsync: 0 + runSSRAsync: 0 + runSSAOAsync: 0 + runContactShadowsAsync: 0 + runVolumeVoxelizationAsync: 0 + lightLoopSettings: + overrides: 0 + enableDeferredTileAndCluster: 0 + enableComputeLightEvaluation: 0 + enableComputeLightVariants: 0 + enableComputeMaterialVariants: 0 + enableFptlForForwardOpaque: 0 + enableBigTilePrepass: 0 + isFptlEnabled: 0 + m_ObsoleteDefaultVolumeProfile: {fileID: 0} + m_ObsoleteDefaultLookDevProfile: {fileID: 11400000, guid: 254c4fe87beb7be4fa72e1681edbed02, + type: 2} + m_ObsoleteFrameSettingsMovedToDefaultSettings: + bitDatas: + data1: 140666621263709 + data2: 4539628427610619928 + lodBias: 1 + lodBiasMode: 0 + lodBiasQualityLevel: 0 + maximumLODLevel: 0 + maximumLODLevelMode: 0 + maximumLODLevelQualityLevel: 0 + sssQualityMode: 0 + sssQualityLevel: 0 + sssCustomSampleBudget: 20 + msaaMode: 0 + materialQuality: 0 + m_ObsoleteBakedOrCustomReflectionFrameSettingsMovedToDefaultSettings: + bitDatas: + data1: 139742655312669 + data2: 4539628424389459992 + lodBias: 1 + lodBiasMode: 0 + lodBiasQualityLevel: 0 + maximumLODLevel: 0 + maximumLODLevelMode: 0 + maximumLODLevelQualityLevel: 0 + sssQualityMode: 0 + sssQualityLevel: 0 + sssCustomSampleBudget: 20 + msaaMode: 0 + materialQuality: 0 + m_ObsoleteRealtimeReflectionFrameSettingsMovedToDefaultSettings: + bitDatas: + data1: 139716617048837 + data2: 4539628424389459992 + lodBias: 1 + lodBiasMode: 0 + lodBiasQualityLevel: 0 + maximumLODLevel: 0 + maximumLODLevelMode: 0 + maximumLODLevelQualityLevel: 0 + sssQualityMode: 0 + sssQualityLevel: 0 + sssCustomSampleBudget: 20 + msaaMode: 0 + materialQuality: 0 + m_ObsoleteRenderPipelineResources: {fileID: 11400000, guid: 3ce144cff5783da45aa5d4fdc2da14b7, + type: 2} + m_ObsoleteRenderPipelineRayTracingResources: {fileID: 0} + m_ObsoleteBeforeTransparentCustomPostProcesses: [] + m_ObsoleteBeforePostProcessCustomPostProcesses: [] + m_ObsoleteAfterPostProcessCustomPostProcesses: [] + m_ObsoleteBeforeTAACustomPostProcesses: [] + m_ObsoleteShaderVariantLogLevel: 0 + m_ObsoleteLensAttenuation: 0 + m_ObsoleteDiffusionProfileSettingsList: + - {fileID: 0} + - {fileID: 0} + - {fileID: 11400000, guid: 2b7005ba3a4d8474b8cdc34141ad766e, type: 2} + - {fileID: 0} diff --git a/Assets/HDRP/Settings/HDRP Balanced.asset.meta b/Assets/HDRP/Settings/HDRP Balanced.asset.meta new file mode 100644 index 0000000..0df13d1 --- /dev/null +++ b/Assets/HDRP/Settings/HDRP Balanced.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3e2e6bfc59709614ab90c0cd7d755e48 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HDRP/Settings/HDRP High Fidelity.asset b/Assets/HDRP/Settings/HDRP High Fidelity.asset new file mode 100644 index 0000000..6c2d7e4 --- /dev/null +++ b/Assets/HDRP/Settings/HDRP High Fidelity.asset @@ -0,0 +1,495 @@ +%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: 0cf1dab834d4ec34195b920ea7bbf9ec, type: 3} + m_Name: HDRP High Fidelity + m_EditorClassIdentifier: + m_RenderPipelineSettings: + supportShadowMask: 0 + supportSSR: 0 + supportSSRTransparent: 0 + supportSSAO: 1 + supportSSGI: 1 + supportSubsurfaceScattering: 1 + sssSampleBudget: + m_Values: 140000002800000050000000 + m_SchemaId: + m_Id: With3Levels + supportVolumetrics: 1 + supportVolumetricClouds: 0 + supportLightLayers: 1 + supportWater: 0 + waterSimulationResolution: 128 + waterCPUSimulation: 0 + supportDistortion: 1 + supportTransparentBackface: 1 + supportTransparentDepthPrepass: 1 + supportTransparentDepthPostpass: 1 + colorBufferFormat: 48 + supportCustomPass: 1 + customBufferFormat: 12 + supportedLitShaderMode: 2 + planarReflectionResolution: + m_Values: 000100000004000000080000 + m_SchemaId: + m_Id: With3Levels + cubeReflectionResolution: + m_Values: 000100000002000000040000 + m_SchemaId: + m_Id: With3Levels + supportDecals: 1 + supportDecalLayers: 0 + supportSurfaceGradient: 0 + decalNormalBufferHP: 0 + msaaSampleCount: 1 + supportMotionVectors: 1 + supportRuntimeAOVAPI: 0 + supportDitheringCrossFade: 1 + supportTerrainHole: 0 + lightProbeSystem: 1 + probeVolumeMemoryBudget: 1024 + probeVolumeBlendingMemoryBudget: 128 + supportProbeVolumeStreaming: 0 + probeVolumeSHBands: 1 + supportRayTracing: 0 + supportedRayTracingMode: 3 + lightLoopSettings: + cookieAtlasSize: 512 + cookieFormat: 74 + cookieAtlasLastValidMip: 0 + cookieTexArraySize: 16 + planarReflectionAtlasSize: 2048 + reflectionProbeCacheSize: 32 + reflectionCubemapSize: 256 + maxEnvLightsOnScreen: 32 + reflectionCacheCompressed: 1 + reflectionProbeFormat: 74 + reflectionProbeTexCacheSize: 4096 + reflectionProbeTexLastValidCubeMip: 3 + reflectionProbeTexLastValidPlanarMip: 0 + reflectionProbeDecreaseResToFit: 1 + skyReflectionSize: 1024 + skyLightingOverrideLayerMask: + serializedVersion: 2 + m_Bits: 0 + supportFabricConvolution: 0 + maxDirectionalLightsOnScreen: 16 + maxPunctualLightsOnScreen: 512 + maxAreaLightsOnScreen: 64 + maxCubeReflectionOnScreen: 32 + maxPlanarReflectionOnScreen: 16 + maxDecalsOnScreen: 512 + maxLightsPerClusterCell: 16 + maxLocalVolumetricFogSize: 32 + maxLocalVolumetricFogOnScreen: 64 + hdShadowInitParams: + maxShadowRequests: 128 + directionalShadowsDepthBits: 16 + shadowFilteringQuality: 2 + areaShadowFilteringQuality: 0 + punctualLightShadowAtlas: + shadowAtlasResolution: 4096 + shadowAtlasDepthBits: 16 + useDynamicViewportRescale: 1 + areaLightShadowAtlas: + shadowAtlasResolution: 4096 + shadowAtlasDepthBits: 16 + useDynamicViewportRescale: 0 + cachedPunctualLightShadowAtlas: 4096 + cachedAreaLightShadowAtlas: 4096 + allowDirectionalMixedCachedShadows: 0 + shadowResolutionDirectional: + m_Values: 00020000000400000008000000100000 + m_SchemaId: + m_Id: With4Levels + shadowResolutionPunctual: + m_Values: 00020000000400000008000000100000 + m_SchemaId: + m_Id: With4Levels + shadowResolutionArea: + m_Values: 00020000000400000008000000100000 + m_SchemaId: + m_Id: With4Levels + maxDirectionalShadowMapResolution: 4096 + maxPunctualShadowMapResolution: 4096 + maxAreaShadowMapResolution: 4096 + supportScreenSpaceShadows: 0 + maxScreenSpaceShadowSlots: 4 + screenSpaceShadowBufferFormat: 48 + decalSettings: + drawDistance: 1000 + atlasWidth: 2048 + atlasHeight: 2048 + perChannelMask: 1 + postProcessSettings: + m_LutSize: 32 + lutFormat: 48 + bufferFormat: 74 + dynamicResolutionSettings: + enabled: 0 + useMipBias: 0 + enableDLSS: 0 + DLSSPerfQualitySetting: 0 + DLSSInjectionPoint: 0 + DLSSUseOptimalSettings: 0 + DLSSSharpness: 0 + fsrOverrideSharpness: 0 + fsrSharpness: 0.92 + maxPercentage: 100 + minPercentage: 100 + dynResType: 1 + upsampleFilter: 1 + forceResolution: 0 + forcedPercentage: 100 + lowResTransparencyMinimumThreshold: 0 + rayTracingHalfResThreshold: 50 + lowresTransparentSettings: + enabled: 1 + checkerboardDepthBuffer: 1 + upsampleType: 1 + xrSettings: + singlePass: 1 + occlusionMesh: 1 + cameraJitter: 0 + allowMotionBlur: 0 + postProcessQualitySettings: + NearBlurSampleCount: 030000000500000008000000 + NearBlurMaxRadius: + - 2 + - 4 + - 7 + FarBlurSampleCount: 04000000070000000e000000 + FarBlurMaxRadius: + - 5 + - 8 + - 13 + DoFResolution: 040000000200000001000000 + DoFHighQualityFiltering: 000101 + DoFPhysicallyBased: 000000 + LimitManualRangeNearBlur: 000000 + MotionBlurSampleCount: 04000000080000000c000000 + BloomRes: 040000000200000002000000 + BloomHighQualityFiltering: 000101 + BloomHighQualityPrefiltering: 000001 + ChromaticAberrationMaxSamples: 03000000060000000c000000 + lightSettings: + useContactShadow: + m_Values: 000101 + m_SchemaId: + m_Id: + maximumLODLevel: + m_Values: 000000000000000000000000 + m_SchemaId: + m_Id: With3Levels + lodBias: + m_Values: + - 1 + - 1 + - 1 + m_SchemaId: + m_Id: With3Levels + lightingQualitySettings: + AOStepCount: 040000000600000010000000 + AOFullRes: 000001 + AOMaximumRadiusPixels: 200000002800000050000000 + AOBilateralUpsample: 000101 + AODirectionCount: 010000000200000004000000 + ContactShadowSampleCount: 060000000a00000010000000 + SSRMaxRaySteps: 100000002000000040000000 + SSGIRaySteps: 200000004000000080000000 + SSGIDenoise: 010101 + SSGIHalfResDenoise: 010000 + SSGIDenoiserRadius: + - 0.75 + - 0.5 + - 0.5 + SSGISecondDenoise: 010101 + RTAORayLength: + - 0.5 + - 3 + - 20 + RTAOSampleCount: 010000000200000008000000 + RTAODenoise: 010101 + RTAODenoiserRadius: + - 0.25 + - 0.5 + - 0.65 + RTGIRayLength: + - 50 + - 50 + - 50 + RTGIFullResolution: 000001 + RTGIClampValue: + - 0.5 + - 0.8 + - 1.5 + RTGIRaySteps: 200000003000000040000000 + RTGIDenoise: 010101 + RTGIHalfResDenoise: 010000 + RTGIDenoiserRadius: + - 0.66 + - 0.66 + - 1 + RTGISecondDenoise: 010101 + RTRMinSmoothness: + - 0.6 + - 0.4 + - 0 + RTRSmoothnessFadeStart: + - 0.7 + - 0.5 + - 0 + RTRRayLength: + - 50 + - 50 + - 50 + RTRClampValue: + - 0.8 + - 1 + - 1.2 + RTRFullResolution: 000001 + RTRRayMaxIterations: 200000003000000040000000 + RTRDenoise: 010101 + RTRDenoiserRadius: 080000000c00000010000000 + RTRSmoothDenoising: 010000 + Fog_ControlMode: 000000000000000000000000 + Fog_Budget: + - 0.25 + - 0.5 + - 0.75 + Fog_DepthRatio: + - 0.5 + - 0.5 + - 0.5 + m_ObsoleteLightLayerName0: Light LayerDefault + m_ObsoleteLightLayerName1: InteriorOnly + m_ObsoleteLightLayerName2: ExteriorOnly + m_ObsoleteLightLayerName3: LampsOnly + m_ObsoleteLightLayerName4: Light Layer 4 + m_ObsoleteLightLayerName5: Light Layer 5 + m_ObsoleteLightLayerName6: Light Layer 6 + m_ObsoleteLightLayerName7: Light Layer 7 + m_ObsoleteDecalLayerName0: Decal Layer default + m_ObsoleteDecalLayerName1: Decal Layer 1 + m_ObsoleteDecalLayerName2: Decal Layer 2 + m_ObsoleteDecalLayerName3: Decal Layer 3 + m_ObsoleteDecalLayerName4: Decal Layer 4 + m_ObsoleteDecalLayerName5: Decal Layer 5 + m_ObsoleteDecalLayerName6: Decal Layer 6 + m_ObsoleteDecalLayerName7: Decal Layer 7 + m_ObsoleteSupportRuntimeDebugDisplay: 0 + allowShaderVariantStripping: 1 + enableSRPBatcher: 1 + availableMaterialQualityLevels: -1 + m_DefaultMaterialQualityLevel: 4 + diffusionProfileSettings: {fileID: 0} + virtualTexturingSettings: + streamingCpuCacheSizeInMegaBytes: 256 + streamingGpuCacheSettings: + - format: 0 + sizeInMegaBytes: 128 + m_UseRenderGraph: 1 + m_Version: 22 + m_ObsoleteFrameSettings: + overrides: 0 + enableShadow: 0 + enableContactShadows: 0 + enableShadowMask: 0 + enableSSR: 0 + enableSSAO: 0 + enableSubsurfaceScattering: 0 + enableTransmission: 0 + enableAtmosphericScattering: 0 + enableVolumetrics: 0 + enableReprojectionForVolumetrics: 0 + enableLightLayers: 0 + enableExposureControl: 1 + diffuseGlobalDimmer: 0 + specularGlobalDimmer: 0 + shaderLitMode: 0 + enableDepthPrepassWithDeferredRendering: 0 + enableTransparentPrepass: 0 + enableMotionVectors: 0 + enableObjectMotionVectors: 0 + enableDecals: 0 + enableRoughRefraction: 0 + enableTransparentPostpass: 0 + enableDistortion: 0 + enablePostprocess: 0 + enableOpaqueObjects: 0 + enableTransparentObjects: 0 + enableRealtimePlanarReflection: 0 + enableMSAA: 0 + enableAsyncCompute: 0 + runLightListAsync: 0 + runSSRAsync: 0 + runSSAOAsync: 0 + runContactShadowsAsync: 0 + runVolumeVoxelizationAsync: 0 + lightLoopSettings: + overrides: 0 + enableDeferredTileAndCluster: 0 + enableComputeLightEvaluation: 0 + enableComputeLightVariants: 0 + enableComputeMaterialVariants: 0 + enableFptlForForwardOpaque: 0 + enableBigTilePrepass: 0 + isFptlEnabled: 0 + m_ObsoleteBakedOrCustomReflectionFrameSettings: + overrides: 0 + enableShadow: 0 + enableContactShadows: 0 + enableShadowMask: 0 + enableSSR: 0 + enableSSAO: 0 + enableSubsurfaceScattering: 0 + enableTransmission: 0 + enableAtmosphericScattering: 0 + enableVolumetrics: 0 + enableReprojectionForVolumetrics: 0 + enableLightLayers: 0 + enableExposureControl: 1 + diffuseGlobalDimmer: 0 + specularGlobalDimmer: 0 + shaderLitMode: 0 + enableDepthPrepassWithDeferredRendering: 0 + enableTransparentPrepass: 0 + enableMotionVectors: 0 + enableObjectMotionVectors: 0 + enableDecals: 0 + enableRoughRefraction: 0 + enableTransparentPostpass: 0 + enableDistortion: 0 + enablePostprocess: 0 + enableOpaqueObjects: 0 + enableTransparentObjects: 0 + enableRealtimePlanarReflection: 0 + enableMSAA: 0 + enableAsyncCompute: 0 + runLightListAsync: 0 + runSSRAsync: 0 + runSSAOAsync: 0 + runContactShadowsAsync: 0 + runVolumeVoxelizationAsync: 0 + lightLoopSettings: + overrides: 0 + enableDeferredTileAndCluster: 0 + enableComputeLightEvaluation: 0 + enableComputeLightVariants: 0 + enableComputeMaterialVariants: 0 + enableFptlForForwardOpaque: 0 + enableBigTilePrepass: 0 + isFptlEnabled: 0 + m_ObsoleteRealtimeReflectionFrameSettings: + overrides: 0 + enableShadow: 0 + enableContactShadows: 0 + enableShadowMask: 0 + enableSSR: 0 + enableSSAO: 0 + enableSubsurfaceScattering: 0 + enableTransmission: 0 + enableAtmosphericScattering: 0 + enableVolumetrics: 0 + enableReprojectionForVolumetrics: 0 + enableLightLayers: 0 + enableExposureControl: 1 + diffuseGlobalDimmer: 0 + specularGlobalDimmer: 0 + shaderLitMode: 0 + enableDepthPrepassWithDeferredRendering: 0 + enableTransparentPrepass: 0 + enableMotionVectors: 0 + enableObjectMotionVectors: 0 + enableDecals: 0 + enableRoughRefraction: 0 + enableTransparentPostpass: 0 + enableDistortion: 0 + enablePostprocess: 0 + enableOpaqueObjects: 0 + enableTransparentObjects: 0 + enableRealtimePlanarReflection: 0 + enableMSAA: 0 + enableAsyncCompute: 0 + runLightListAsync: 0 + runSSRAsync: 0 + runSSAOAsync: 0 + runContactShadowsAsync: 0 + runVolumeVoxelizationAsync: 0 + lightLoopSettings: + overrides: 0 + enableDeferredTileAndCluster: 0 + enableComputeLightEvaluation: 0 + enableComputeLightVariants: 0 + enableComputeMaterialVariants: 0 + enableFptlForForwardOpaque: 0 + enableBigTilePrepass: 0 + isFptlEnabled: 0 + m_ObsoleteDefaultVolumeProfile: {fileID: 0} + m_ObsoleteDefaultLookDevProfile: {fileID: 11400000, guid: 254c4fe87beb7be4fa72e1681edbed02, + type: 2} + m_ObsoleteFrameSettingsMovedToDefaultSettings: + bitDatas: + data1: 140666621394781 + data2: 4539628425463136280 + lodBias: 1 + lodBiasMode: 0 + lodBiasQualityLevel: 0 + maximumLODLevel: 0 + maximumLODLevelMode: 0 + maximumLODLevelQualityLevel: 0 + sssQualityMode: 0 + sssQualityLevel: 0 + sssCustomSampleBudget: 20 + msaaMode: 0 + materialQuality: 0 + m_ObsoleteBakedOrCustomReflectionFrameSettingsMovedToDefaultSettings: + bitDatas: + data1: 139742655312669 + data2: 4539628424389459992 + lodBias: 1 + lodBiasMode: 0 + lodBiasQualityLevel: 0 + maximumLODLevel: 0 + maximumLODLevelMode: 0 + maximumLODLevelQualityLevel: 0 + sssQualityMode: 0 + sssQualityLevel: 0 + sssCustomSampleBudget: 20 + msaaMode: 0 + materialQuality: 0 + m_ObsoleteRealtimeReflectionFrameSettingsMovedToDefaultSettings: + bitDatas: + data1: 139991494955789 + data2: 4539628424389459992 + lodBias: 1 + lodBiasMode: 0 + lodBiasQualityLevel: 0 + maximumLODLevel: 0 + maximumLODLevelMode: 0 + maximumLODLevelQualityLevel: 0 + sssQualityMode: 0 + sssQualityLevel: 0 + sssCustomSampleBudget: 20 + msaaMode: 0 + materialQuality: 0 + m_ObsoleteRenderPipelineResources: {fileID: 11400000, guid: 3ce144cff5783da45aa5d4fdc2da14b7, + type: 2} + m_ObsoleteRenderPipelineRayTracingResources: {fileID: 0} + m_ObsoleteBeforeTransparentCustomPostProcesses: [] + m_ObsoleteBeforePostProcessCustomPostProcesses: [] + m_ObsoleteAfterPostProcessCustomPostProcesses: [] + m_ObsoleteBeforeTAACustomPostProcesses: [] + m_ObsoleteShaderVariantLogLevel: 0 + m_ObsoleteLensAttenuation: 0 + m_ObsoleteDiffusionProfileSettingsList: + - {fileID: 0} + - {fileID: 0} diff --git a/Assets/HDRP/Settings/HDRP High Fidelity.asset.meta b/Assets/HDRP/Settings/HDRP High Fidelity.asset.meta new file mode 100644 index 0000000..556a763 --- /dev/null +++ b/Assets/HDRP/Settings/HDRP High Fidelity.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 36dd385e759c96147b6463dcd1149c11 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HDRP/Settings/HDRP Performant.asset b/Assets/HDRP/Settings/HDRP Performant.asset new file mode 100644 index 0000000..03396fe --- /dev/null +++ b/Assets/HDRP/Settings/HDRP Performant.asset @@ -0,0 +1,496 @@ +%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: 0cf1dab834d4ec34195b920ea7bbf9ec, type: 3} + m_Name: HDRP Performant + m_EditorClassIdentifier: + m_RenderPipelineSettings: + supportShadowMask: 0 + supportSSR: 0 + supportSSRTransparent: 0 + supportSSAO: 1 + supportSSGI: 0 + supportSubsurfaceScattering: 1 + sssSampleBudget: + m_Values: 140000002800000050000000 + m_SchemaId: + m_Id: With3Levels + supportVolumetrics: 0 + supportVolumetricClouds: 0 + supportLightLayers: 1 + supportWater: 0 + waterSimulationResolution: 128 + waterCPUSimulation: 0 + supportDistortion: 1 + supportTransparentBackface: 1 + supportTransparentDepthPrepass: 1 + supportTransparentDepthPostpass: 1 + colorBufferFormat: 74 + supportCustomPass: 1 + customBufferFormat: 12 + supportedLitShaderMode: 2 + planarReflectionResolution: + m_Values: 000100000002000000020000 + m_SchemaId: + m_Id: With3Levels + cubeReflectionResolution: + m_Values: 000100000002000000040000 + m_SchemaId: + m_Id: With3Levels + supportDecals: 1 + supportDecalLayers: 0 + supportSurfaceGradient: 0 + decalNormalBufferHP: 0 + msaaSampleCount: 1 + supportMotionVectors: 1 + supportRuntimeAOVAPI: 0 + supportDitheringCrossFade: 1 + supportTerrainHole: 0 + lightProbeSystem: 0 + probeVolumeMemoryBudget: 1024 + probeVolumeBlendingMemoryBudget: 128 + supportProbeVolumeStreaming: 0 + probeVolumeSHBands: 1 + supportRayTracing: 0 + supportedRayTracingMode: 3 + lightLoopSettings: + cookieAtlasSize: 512 + cookieFormat: 74 + cookieAtlasLastValidMip: 0 + cookieTexArraySize: 16 + planarReflectionAtlasSize: 512 + reflectionProbeCacheSize: 32 + reflectionCubemapSize: 256 + maxEnvLightsOnScreen: 32 + reflectionCacheCompressed: 1 + reflectionProbeFormat: 74 + reflectionProbeTexCacheSize: 4096 + reflectionProbeTexLastValidCubeMip: 3 + reflectionProbeTexLastValidPlanarMip: 0 + reflectionProbeDecreaseResToFit: 1 + skyReflectionSize: 256 + skyLightingOverrideLayerMask: + serializedVersion: 2 + m_Bits: 0 + supportFabricConvolution: 0 + maxDirectionalLightsOnScreen: 16 + maxPunctualLightsOnScreen: 512 + maxAreaLightsOnScreen: 64 + maxCubeReflectionOnScreen: 32 + maxPlanarReflectionOnScreen: 16 + maxDecalsOnScreen: 512 + maxLightsPerClusterCell: 16 + maxLocalVolumetricFogSize: 32 + maxLocalVolumetricFogOnScreen: 64 + hdShadowInitParams: + maxShadowRequests: 128 + directionalShadowsDepthBits: 16 + shadowFilteringQuality: 1 + areaShadowFilteringQuality: 0 + punctualLightShadowAtlas: + shadowAtlasResolution: 4096 + shadowAtlasDepthBits: 16 + useDynamicViewportRescale: 1 + areaLightShadowAtlas: + shadowAtlasResolution: 2048 + shadowAtlasDepthBits: 16 + useDynamicViewportRescale: 0 + cachedPunctualLightShadowAtlas: 2048 + cachedAreaLightShadowAtlas: 2048 + allowDirectionalMixedCachedShadows: 0 + shadowResolutionDirectional: + m_Values: 80000000000100000002000000040000 + m_SchemaId: + m_Id: With4Levels + shadowResolutionPunctual: + m_Values: 00010000000200000004000000080000 + m_SchemaId: + m_Id: With4Levels + shadowResolutionArea: + m_Values: 00010000000200000004000000080000 + m_SchemaId: + m_Id: With4Levels + maxDirectionalShadowMapResolution: 1024 + maxPunctualShadowMapResolution: 2048 + maxAreaShadowMapResolution: 2048 + supportScreenSpaceShadows: 0 + maxScreenSpaceShadowSlots: 4 + screenSpaceShadowBufferFormat: 48 + decalSettings: + drawDistance: 1000 + atlasWidth: 2048 + atlasHeight: 2048 + perChannelMask: 1 + postProcessSettings: + m_LutSize: 32 + lutFormat: 48 + bufferFormat: 74 + dynamicResolutionSettings: + enabled: 0 + useMipBias: 0 + enableDLSS: 0 + DLSSPerfQualitySetting: 0 + DLSSInjectionPoint: 0 + DLSSUseOptimalSettings: 0 + DLSSSharpness: 0 + fsrOverrideSharpness: 0 + fsrSharpness: 0.92 + maxPercentage: 100 + minPercentage: 100 + dynResType: 1 + upsampleFilter: 1 + forceResolution: 0 + forcedPercentage: 100 + lowResTransparencyMinimumThreshold: 0 + rayTracingHalfResThreshold: 50 + lowresTransparentSettings: + enabled: 1 + checkerboardDepthBuffer: 1 + upsampleType: 1 + xrSettings: + singlePass: 1 + occlusionMesh: 1 + cameraJitter: 0 + allowMotionBlur: 0 + postProcessQualitySettings: + NearBlurSampleCount: 030000000400000004000000 + NearBlurMaxRadius: + - 2 + - 3 + - 3 + FarBlurSampleCount: 040000000500000005000000 + FarBlurMaxRadius: + - 5 + - 6 + - 6 + DoFResolution: 040000000400000002000000 + DoFHighQualityFiltering: 000100 + DoFPhysicallyBased: 000000 + LimitManualRangeNearBlur: 000000 + MotionBlurSampleCount: 04000000080000000c000000 + BloomRes: 040000000200000002000000 + BloomHighQualityFiltering: 000101 + BloomHighQualityPrefiltering: 000001 + ChromaticAberrationMaxSamples: 03000000060000000c000000 + lightSettings: + useContactShadow: + m_Values: 000101 + m_SchemaId: + m_Id: + maximumLODLevel: + m_Values: 000000000000000000000000 + m_SchemaId: + m_Id: With3Levels + lodBias: + m_Values: + - 1 + - 1 + - 1 + m_SchemaId: + m_Id: With3Levels + lightingQualitySettings: + AOStepCount: 030000000400000006000000 + AOFullRes: 000000 + AOMaximumRadiusPixels: 180000002000000020000000 + AOBilateralUpsample: 000000 + AODirectionCount: 010000000100000002000000 + ContactShadowSampleCount: 04000000060000000a000000 + SSRMaxRaySteps: 080000001000000020000000 + SSGIRaySteps: 200000004000000080000000 + SSGIDenoise: 010101 + SSGIHalfResDenoise: 010000 + SSGIDenoiserRadius: + - 0.75 + - 0.5 + - 0.5 + SSGISecondDenoise: 010101 + RTAORayLength: + - 0.5 + - 3 + - 20 + RTAOSampleCount: 010000000200000008000000 + RTAODenoise: 010101 + RTAODenoiserRadius: + - 0.25 + - 0.5 + - 0.65 + RTGIRayLength: + - 50 + - 50 + - 50 + RTGIFullResolution: 000001 + RTGIClampValue: + - 0.5 + - 0.8 + - 1.5 + RTGIRaySteps: 200000003000000040000000 + RTGIDenoise: 010101 + RTGIHalfResDenoise: 010000 + RTGIDenoiserRadius: + - 0.66 + - 0.66 + - 1 + RTGISecondDenoise: 010101 + RTRMinSmoothness: + - 0.6 + - 0.4 + - 0 + RTRSmoothnessFadeStart: + - 0.7 + - 0.5 + - 0 + RTRRayLength: + - 50 + - 50 + - 50 + RTRClampValue: + - 0.8 + - 1 + - 1.2 + RTRFullResolution: 000001 + RTRRayMaxIterations: 200000003000000040000000 + RTRDenoise: 010101 + RTRDenoiserRadius: 080000000c00000010000000 + RTRSmoothDenoising: 010000 + Fog_ControlMode: 000000000000000000000000 + Fog_Budget: + - 0.125 + - 0.25 + - 0.5 + Fog_DepthRatio: + - 0.5 + - 0.5 + - 0.5 + m_ObsoleteLightLayerName0: Light LayerDefault + m_ObsoleteLightLayerName1: InteriorOnly + m_ObsoleteLightLayerName2: ExteriorOnly + m_ObsoleteLightLayerName3: LampsOnly + m_ObsoleteLightLayerName4: ReflectionsOnly + m_ObsoleteLightLayerName5: Light Layer 5 + m_ObsoleteLightLayerName6: Light Layer 6 + m_ObsoleteLightLayerName7: Light Layer 7 + m_ObsoleteDecalLayerName0: Decal Layer default + m_ObsoleteDecalLayerName1: Decal Layer 1 + m_ObsoleteDecalLayerName2: Decal Layer 2 + m_ObsoleteDecalLayerName3: Decal Layer 3 + m_ObsoleteDecalLayerName4: Decal Layer 4 + m_ObsoleteDecalLayerName5: Decal Layer 5 + m_ObsoleteDecalLayerName6: Decal Layer 6 + m_ObsoleteDecalLayerName7: Decal Layer 7 + m_ObsoleteSupportRuntimeDebugDisplay: 0 + allowShaderVariantStripping: 1 + enableSRPBatcher: 1 + availableMaterialQualityLevels: -1 + m_DefaultMaterialQualityLevel: 4 + diffusionProfileSettings: {fileID: 0} + virtualTexturingSettings: + streamingCpuCacheSizeInMegaBytes: 256 + streamingGpuCacheSettings: + - format: 0 + sizeInMegaBytes: 128 + m_UseRenderGraph: 1 + m_Version: 22 + m_ObsoleteFrameSettings: + overrides: 0 + enableShadow: 0 + enableContactShadows: 0 + enableShadowMask: 0 + enableSSR: 0 + enableSSAO: 0 + enableSubsurfaceScattering: 0 + enableTransmission: 0 + enableAtmosphericScattering: 0 + enableVolumetrics: 0 + enableReprojectionForVolumetrics: 0 + enableLightLayers: 0 + enableExposureControl: 1 + diffuseGlobalDimmer: 0 + specularGlobalDimmer: 0 + shaderLitMode: 0 + enableDepthPrepassWithDeferredRendering: 0 + enableTransparentPrepass: 0 + enableMotionVectors: 0 + enableObjectMotionVectors: 0 + enableDecals: 0 + enableRoughRefraction: 0 + enableTransparentPostpass: 0 + enableDistortion: 0 + enablePostprocess: 0 + enableOpaqueObjects: 0 + enableTransparentObjects: 0 + enableRealtimePlanarReflection: 0 + enableMSAA: 0 + enableAsyncCompute: 0 + runLightListAsync: 0 + runSSRAsync: 0 + runSSAOAsync: 0 + runContactShadowsAsync: 0 + runVolumeVoxelizationAsync: 0 + lightLoopSettings: + overrides: 0 + enableDeferredTileAndCluster: 0 + enableComputeLightEvaluation: 0 + enableComputeLightVariants: 0 + enableComputeMaterialVariants: 0 + enableFptlForForwardOpaque: 0 + enableBigTilePrepass: 0 + isFptlEnabled: 0 + m_ObsoleteBakedOrCustomReflectionFrameSettings: + overrides: 0 + enableShadow: 0 + enableContactShadows: 0 + enableShadowMask: 0 + enableSSR: 0 + enableSSAO: 0 + enableSubsurfaceScattering: 0 + enableTransmission: 0 + enableAtmosphericScattering: 0 + enableVolumetrics: 0 + enableReprojectionForVolumetrics: 0 + enableLightLayers: 0 + enableExposureControl: 1 + diffuseGlobalDimmer: 0 + specularGlobalDimmer: 0 + shaderLitMode: 0 + enableDepthPrepassWithDeferredRendering: 0 + enableTransparentPrepass: 0 + enableMotionVectors: 0 + enableObjectMotionVectors: 0 + enableDecals: 0 + enableRoughRefraction: 0 + enableTransparentPostpass: 0 + enableDistortion: 0 + enablePostprocess: 0 + enableOpaqueObjects: 0 + enableTransparentObjects: 0 + enableRealtimePlanarReflection: 0 + enableMSAA: 0 + enableAsyncCompute: 0 + runLightListAsync: 0 + runSSRAsync: 0 + runSSAOAsync: 0 + runContactShadowsAsync: 0 + runVolumeVoxelizationAsync: 0 + lightLoopSettings: + overrides: 0 + enableDeferredTileAndCluster: 0 + enableComputeLightEvaluation: 0 + enableComputeLightVariants: 0 + enableComputeMaterialVariants: 0 + enableFptlForForwardOpaque: 0 + enableBigTilePrepass: 0 + isFptlEnabled: 0 + m_ObsoleteRealtimeReflectionFrameSettings: + overrides: 0 + enableShadow: 0 + enableContactShadows: 0 + enableShadowMask: 0 + enableSSR: 0 + enableSSAO: 0 + enableSubsurfaceScattering: 0 + enableTransmission: 0 + enableAtmosphericScattering: 0 + enableVolumetrics: 0 + enableReprojectionForVolumetrics: 0 + enableLightLayers: 0 + enableExposureControl: 1 + diffuseGlobalDimmer: 0 + specularGlobalDimmer: 0 + shaderLitMode: 0 + enableDepthPrepassWithDeferredRendering: 0 + enableTransparentPrepass: 0 + enableMotionVectors: 0 + enableObjectMotionVectors: 0 + enableDecals: 0 + enableRoughRefraction: 0 + enableTransparentPostpass: 0 + enableDistortion: 0 + enablePostprocess: 0 + enableOpaqueObjects: 0 + enableTransparentObjects: 0 + enableRealtimePlanarReflection: 0 + enableMSAA: 0 + enableAsyncCompute: 0 + runLightListAsync: 0 + runSSRAsync: 0 + runSSAOAsync: 0 + runContactShadowsAsync: 0 + runVolumeVoxelizationAsync: 0 + lightLoopSettings: + overrides: 0 + enableDeferredTileAndCluster: 0 + enableComputeLightEvaluation: 0 + enableComputeLightVariants: 0 + enableComputeMaterialVariants: 0 + enableFptlForForwardOpaque: 0 + enableBigTilePrepass: 0 + isFptlEnabled: 0 + m_ObsoleteDefaultVolumeProfile: {fileID: 0} + m_ObsoleteDefaultLookDevProfile: {fileID: 11400000, guid: 254c4fe87beb7be4fa72e1681edbed02, + type: 2} + m_ObsoleteFrameSettingsMovedToDefaultSettings: + bitDatas: + data1: 140666621394781 + data2: 4539628425463136280 + lodBias: 1 + lodBiasMode: 0 + lodBiasQualityLevel: 0 + maximumLODLevel: 0 + maximumLODLevelMode: 0 + maximumLODLevelQualityLevel: 0 + sssQualityMode: 0 + sssQualityLevel: 0 + sssCustomSampleBudget: 20 + msaaMode: 0 + materialQuality: 0 + m_ObsoleteBakedOrCustomReflectionFrameSettingsMovedToDefaultSettings: + bitDatas: + data1: 139742655312669 + data2: 4539628424389459992 + lodBias: 1 + lodBiasMode: 0 + lodBiasQualityLevel: 0 + maximumLODLevel: 0 + maximumLODLevelMode: 0 + maximumLODLevelQualityLevel: 0 + sssQualityMode: 0 + sssQualityLevel: 0 + sssCustomSampleBudget: 20 + msaaMode: 0 + materialQuality: 0 + m_ObsoleteRealtimeReflectionFrameSettingsMovedToDefaultSettings: + bitDatas: + data1: 139716617048837 + data2: 4539628424389459992 + lodBias: 1 + lodBiasMode: 0 + lodBiasQualityLevel: 0 + maximumLODLevel: 0 + maximumLODLevelMode: 0 + maximumLODLevelQualityLevel: 0 + sssQualityMode: 0 + sssQualityLevel: 0 + sssCustomSampleBudget: 20 + msaaMode: 0 + materialQuality: 0 + m_ObsoleteRenderPipelineResources: {fileID: 11400000, guid: 3ce144cff5783da45aa5d4fdc2da14b7, + type: 2} + m_ObsoleteRenderPipelineRayTracingResources: {fileID: 0} + m_ObsoleteBeforeTransparentCustomPostProcesses: [] + m_ObsoleteBeforePostProcessCustomPostProcesses: [] + m_ObsoleteAfterPostProcessCustomPostProcesses: [] + m_ObsoleteBeforeTAACustomPostProcesses: [] + m_ObsoleteShaderVariantLogLevel: 0 + m_ObsoleteLensAttenuation: 0 + m_ObsoleteDiffusionProfileSettingsList: + - {fileID: 0} + - {fileID: 0} + - {fileID: 11400000, guid: 2b7005ba3a4d8474b8cdc34141ad766e, type: 2} diff --git a/Assets/HDRP/Settings/HDRP Performant.asset.meta b/Assets/HDRP/Settings/HDRP Performant.asset.meta new file mode 100644 index 0000000..e6f7b1c --- /dev/null +++ b/Assets/HDRP/Settings/HDRP Performant.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 168a2336534e4e043b2a210b6f8d379a +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HDRP/Settings/HDRPDefaultResources.meta b/Assets/HDRP/Settings/HDRPDefaultResources.meta new file mode 100644 index 0000000..bc14cdc --- /dev/null +++ b/Assets/HDRP/Settings/HDRPDefaultResources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 181cd982040374fac84aed5329ef5583 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HDRP/Settings/HDRPDefaultResources/DefaultLookDevProfile.asset b/Assets/HDRP/Settings/HDRPDefaultResources/DefaultLookDevProfile.asset new file mode 100644 index 0000000..67114ab --- /dev/null +++ b/Assets/HDRP/Settings/HDRPDefaultResources/DefaultLookDevProfile.asset @@ -0,0 +1,220 @@ +%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: d7fd9488000d3734a9e00ee676215985, type: 3} + m_Name: DefaultLookDevProfile + m_EditorClassIdentifier: + components: + - {fileID: 8761387877531654226} + - {fileID: 1902828633788537306} + - {fileID: 1880163708194025631} + - {fileID: 2340290907100754200} +--- !u!114 &1880163708194025631 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: 9008a067f4d626c4d8bc4bc48f04bb89, type: 3} + m_Name: AmbientOcclusion + m_EditorClassIdentifier: + active: 1 + quality: + m_OverrideState: 0 + m_Value: 1 + rayTracing: + m_OverrideState: 0 + m_Value: 0 + intensity: + m_OverrideState: 1 + m_Value: 0.5 + directLightingStrength: + m_OverrideState: 0 + m_Value: 0 + radius: + m_OverrideState: 1 + m_Value: 1 + spatialBilateralAggressiveness: + m_OverrideState: 0 + m_Value: 0.15 + temporalAccumulation: + m_OverrideState: 0 + m_Value: 1 + ghostingReduction: + m_OverrideState: 0 + m_Value: 0.5 + blurSharpness: + m_OverrideState: 0 + m_Value: 0.1 + layerMask: + m_OverrideState: 0 + m_Value: + serializedVersion: 2 + m_Bits: 4294967295 + m_StepCount: + m_OverrideState: 0 + m_Value: 6 + m_FullResolution: + m_OverrideState: 0 + m_Value: 0 + m_MaximumRadiusInPixels: + m_OverrideState: 0 + m_Value: 40 + m_BilateralUpsample: + m_OverrideState: 0 + m_Value: 1 + m_DirectionCount: + m_OverrideState: 0 + m_Value: 2 + m_RayLength: + m_OverrideState: 0 + m_Value: 3 + m_SampleCount: + m_OverrideState: 0 + m_Value: 2 + m_Denoise: + m_OverrideState: 0 + m_Value: 1 + m_DenoiserRadius: + m_OverrideState: 0 + m_Value: 0.5 +--- !u!114 &1902828633788537306 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: 7ddcec8a8eb2d684d833ac8f5d26aebd, type: 3} + m_Name: HDShadowSettings + m_EditorClassIdentifier: + active: 1 + maxShadowDistance: + m_OverrideState: 1 + m_Value: 25 + directionalTransmissionMultiplier: + m_OverrideState: 0 + m_Value: 1 + cascadeShadowSplitCount: + m_OverrideState: 1 + m_Value: 2 + cascadeShadowSplit0: + m_OverrideState: 0 + m_Value: 0.05 + cascadeShadowSplit1: + m_OverrideState: 0 + m_Value: 0.15 + cascadeShadowSplit2: + m_OverrideState: 0 + m_Value: 0.3 + cascadeShadowBorder0: + m_OverrideState: 0 + m_Value: 0 + cascadeShadowBorder1: + m_OverrideState: 0 + m_Value: 0 + cascadeShadowBorder2: + m_OverrideState: 0 + m_Value: 0 + cascadeShadowBorder3: + m_OverrideState: 0 + m_Value: 0 +--- !u!114 &2340290907100754200 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: 24f077503be6ae942a1e1245dbd53ea9, type: 3} + m_Name: Bloom + m_EditorClassIdentifier: + active: 1 + quality: + m_OverrideState: 0 + m_Value: 3 + threshold: + m_OverrideState: 0 + m_Value: 0 + intensity: + m_OverrideState: 1 + m_Value: 0.1 + scatter: + m_OverrideState: 0 + m_Value: 0.7 + tint: + m_OverrideState: 0 + m_Value: {r: 1, g: 1, b: 1, a: 1} + dirtTexture: + m_OverrideState: 0 + m_Value: {fileID: 0} + dirtIntensity: + m_OverrideState: 0 + m_Value: 0 + anamorphic: + m_OverrideState: 0 + m_Value: 1 + m_Resolution: + m_OverrideState: 0 + m_Value: 2 + m_HighQualityPrefiltering: + m_OverrideState: 0 + m_Value: 0 + m_HighQualityFiltering: + m_OverrideState: 0 + m_Value: 1 +--- !u!114 &8761387877531654226 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: f086a068d4c5889438831b3ae9afc11c, type: 3} + m_Name: Tonemapping + m_EditorClassIdentifier: + active: 1 + mode: + m_OverrideState: 1 + m_Value: 1 + toeStrength: + m_OverrideState: 0 + m_Value: 0 + toeLength: + m_OverrideState: 0 + m_Value: 0.5 + shoulderStrength: + m_OverrideState: 0 + m_Value: 0 + shoulderLength: + m_OverrideState: 0 + m_Value: 0.5 + shoulderAngle: + m_OverrideState: 0 + m_Value: 0 + gamma: + m_OverrideState: 0 + m_Value: 1 + lutTexture: + m_OverrideState: 0 + m_Value: {fileID: 0} + lutContribution: + m_OverrideState: 0 + m_Value: 1 diff --git a/Assets/HDRP/Settings/HDRPDefaultResources/DefaultLookDevProfile.asset.meta b/Assets/HDRP/Settings/HDRPDefaultResources/DefaultLookDevProfile.asset.meta new file mode 100644 index 0000000..d2ffa56 --- /dev/null +++ b/Assets/HDRP/Settings/HDRPDefaultResources/DefaultLookDevProfile.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4594f4a3fb14247e192bcca6dc23c8ed +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HDRP/Settings/HDRPDefaultResources/DefaultSettingsVolumeProfile.asset b/Assets/HDRP/Settings/HDRPDefaultResources/DefaultSettingsVolumeProfile.asset new file mode 100644 index 0000000..27388f6 --- /dev/null +++ b/Assets/HDRP/Settings/HDRPDefaultResources/DefaultSettingsVolumeProfile.asset @@ -0,0 +1,682 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-8500501345142028434 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: 7a7ff42a8c5be6646ad3975f3a54c1eb, type: 3} + m_Name: DiffusionProfileList + m_EditorClassIdentifier: + active: 1 + diffusionProfiles: + m_OverrideState: 1 + m_Value: + - {fileID: 11400000, guid: 404820c4cf36ad944862fa59c56064f0, type: 2} + - {fileID: 11400000, guid: 2384dbf2c1c420f45a792fbc315fbfb1, type: 2} + - {fileID: 11400000, guid: 879ffae44eefa4412bb327928f1a96dd, type: 2} +--- !u!114 &-7089757308646879465 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: bcf384b154398e341b6b29969c078198, type: 3} + m_Name: MotionBlur + m_EditorClassIdentifier: + active: 1 + quality: + m_OverrideState: 1 + m_Value: 1 + intensity: + m_OverrideState: 1 + m_Value: 0.5 + maximumVelocity: + m_OverrideState: 0 + m_Value: 200 + minimumVelocity: + m_OverrideState: 0 + m_Value: 2 + cameraMotionBlur: + m_OverrideState: 0 + m_Value: 1 + specialCameraClampMode: + m_OverrideState: 0 + m_Value: 0 + cameraVelocityClamp: + m_OverrideState: 0 + m_Value: 0.05 + cameraTranslationVelocityClamp: + m_OverrideState: 0 + m_Value: 0.05 + cameraRotationVelocityClamp: + m_OverrideState: 0 + m_Value: 0.03 + depthComparisonExtent: + m_OverrideState: 0 + m_Value: 1 + m_SampleCount: + m_OverrideState: 1 + m_Value: 8 +--- !u!114 &-1016694868962581565 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: 56b145d2b9ee1ac4f846968484e7485a, type: 3} + m_Name: ContactShadows + m_EditorClassIdentifier: + active: 1 + quality: + m_OverrideState: 0 + m_Value: 1 + enable: + m_OverrideState: 1 + m_Value: 1 + length: + m_OverrideState: 0 + m_Value: 0.15 + opacity: + m_OverrideState: 0 + m_Value: 1 + distanceScaleFactor: + m_OverrideState: 0 + m_Value: 0.5 + maxDistance: + m_OverrideState: 0 + m_Value: 50 + minDistance: + m_OverrideState: 0 + m_Value: 0 + fadeDistance: + m_OverrideState: 0 + m_Value: 5 + fadeInDistance: + m_OverrideState: 0 + m_Value: 0 + rayBias: + m_OverrideState: 0 + m_Value: 0.2 + thicknessScale: + m_OverrideState: 0 + m_Value: 0.15 + m_SampleCount: + m_OverrideState: 0 + m_Value: 10 +--- !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: d7fd9488000d3734a9e00ee676215985, type: 3} + m_Name: DefaultSettingsVolumeProfile + m_EditorClassIdentifier: + components: + - {fileID: 7686318427622180703} + - {fileID: -1016694868962581565} + - {fileID: 7502528774814404555} + - {fileID: 7542669330009093999} + - {fileID: 1501199423866068322} + - {fileID: 5315503232242033309} + - {fileID: 1932259527246508038} + - {fileID: 448115243408767295} + - {fileID: -7089757308646879465} + - {fileID: -8500501345142028434} +--- !u!114 &448115243408767295 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: 59b6606ef2548734bb6d11b9d160bc7e, type: 3} + m_Name: HDRISky + m_EditorClassIdentifier: + active: 1 + rotation: + m_OverrideState: 0 + m_Value: 0 + skyIntensityMode: + m_OverrideState: 0 + m_Value: 0 + exposure: + m_OverrideState: 1 + m_Value: 11 + multiplier: + m_OverrideState: 0 + m_Value: 1 + upperHemisphereLuxValue: + m_OverrideState: 1 + m_Value: 0.4660715 + upperHemisphereLuxColor: + m_OverrideState: 1 + m_Value: {x: 0.18750614, y: 0.29181972, z: 0.5} + desiredLuxValue: + m_OverrideState: 0 + m_Value: 20000 + updateMode: + m_OverrideState: 0 + m_Value: 0 + updatePeriod: + m_OverrideState: 0 + m_Value: 0 + includeSunInBaking: + m_OverrideState: 0 + m_Value: 0 + hdriSky: + m_OverrideState: 1 + m_Value: {fileID: 8900000, guid: 8253d41e6e8b11a4cbe77a4f8f82934d, type: 3} + distortionMode: + m_OverrideState: 0 + m_Value: 0 + flowmap: + m_OverrideState: 0 + m_Value: {fileID: 0} + upperHemisphereOnly: + m_OverrideState: 0 + m_Value: 1 + scrollOrientation: + m_OverrideState: 0 + m_Value: + mode: 1 + customValue: 0 + additiveValue: 0 + multiplyValue: 1 + scrollSpeed: + m_OverrideState: 0 + m_Value: + mode: 1 + customValue: 100 + additiveValue: 0 + multiplyValue: 1 + enableBackplate: + m_OverrideState: 0 + m_Value: 0 + backplateType: + m_OverrideState: 0 + m_Value: 0 + groundLevel: + m_OverrideState: 0 + m_Value: 0 + scale: + m_OverrideState: 0 + m_Value: {x: 32, y: 32} + projectionDistance: + m_OverrideState: 0 + m_Value: 16 + plateRotation: + m_OverrideState: 0 + m_Value: 0 + plateTexRotation: + m_OverrideState: 0 + m_Value: 0 + plateTexOffset: + m_OverrideState: 0 + m_Value: {x: 0, y: 0} + blendAmount: + m_OverrideState: 0 + m_Value: 0 + shadowTint: + m_OverrideState: 0 + m_Value: {r: 0.5, g: 0.5, b: 0.5, a: 1} + pointLightShadow: + m_OverrideState: 0 + m_Value: 0 + dirLightShadow: + m_OverrideState: 0 + m_Value: 0 + rectLightShadow: + m_OverrideState: 0 + m_Value: 0 + m_SkyVersion: 1 + enableDistortion: + m_OverrideState: 0 + m_Value: 0 + procedural: + m_OverrideState: 0 + m_Value: 1 + scrollDirection: + m_OverrideState: 0 + m_Value: 0 + m_ObsoleteScrollSpeed: + m_OverrideState: 0 + m_Value: 1 +--- !u!114 &1501199423866068322 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: 24f077503be6ae942a1e1245dbd53ea9, type: 3} + m_Name: Bloom + m_EditorClassIdentifier: + active: 1 + quality: + m_OverrideState: 1 + m_Value: 1 + threshold: + m_OverrideState: 0 + m_Value: 0 + intensity: + m_OverrideState: 1 + m_Value: 0.2 + scatter: + m_OverrideState: 0 + m_Value: 0.7 + tint: + m_OverrideState: 0 + m_Value: {r: 1, g: 1, b: 1, a: 1} + dirtTexture: + m_OverrideState: 0 + m_Value: {fileID: 0} + dirtIntensity: + m_OverrideState: 0 + m_Value: 0 + anamorphic: + m_OverrideState: 0 + m_Value: 1 + m_Resolution: + m_OverrideState: 1 + m_Value: 2 + m_HighQualityPrefiltering: + m_OverrideState: 1 + m_Value: 0 + m_HighQualityFiltering: + m_OverrideState: 1 + m_Value: 1 +--- !u!114 &1932259527246508038 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: 0d7593b3a9277ac4696b20006c21dde2, type: 3} + m_Name: VisualEnvironment + m_EditorClassIdentifier: + active: 1 + skyType: + m_OverrideState: 1 + m_Value: 1 + cloudType: + m_OverrideState: 0 + m_Value: 0 + skyAmbientMode: + m_OverrideState: 0 + m_Value: 0 + windOrientation: + m_OverrideState: 0 + m_Value: 0 + windSpeed: + m_OverrideState: 0 + m_Value: 100 + fogType: + m_OverrideState: 0 + m_Value: 0 +--- !u!114 &5315503232242033309 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: 2d08ce26990eb1a4a9177b860541e702, type: 3} + m_Name: Exposure + m_EditorClassIdentifier: + active: 1 + mode: + m_OverrideState: 1 + m_Value: 1 + meteringMode: + m_OverrideState: 0 + m_Value: 2 + luminanceSource: + m_OverrideState: 0 + m_Value: 1 + fixedExposure: + m_OverrideState: 0 + m_Value: 0 + compensation: + m_OverrideState: 0 + m_Value: 0 + limitMin: + m_OverrideState: 0 + m_Value: -10 + limitMax: + m_OverrideState: 0 + m_Value: 10 + curveMap: + m_OverrideState: 0 + m_Value: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: -10 + value: -10 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 20 + value: 20 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + limitMinCurveMap: + m_OverrideState: 0 + m_Value: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: -10 + value: -12 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 20 + value: 18 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + limitMaxCurveMap: + m_OverrideState: 0 + m_Value: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: -10 + value: -8 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 20 + value: 22 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + adaptationMode: + m_OverrideState: 0 + m_Value: 1 + adaptationSpeedDarkToLight: + m_OverrideState: 0 + m_Value: 3 + adaptationSpeedLightToDark: + m_OverrideState: 0 + m_Value: 1 + weightTextureMask: + m_OverrideState: 0 + m_Value: {fileID: 0} + histogramPercentages: + m_OverrideState: 0 + m_Value: {x: 40, y: 90} + histogramUseCurveRemapping: + m_OverrideState: 0 + m_Value: 0 + targetMidGray: + m_OverrideState: 0 + m_Value: 0 + centerAroundExposureTarget: + m_OverrideState: 0 + m_Value: 0 + proceduralCenter: + m_OverrideState: 0 + m_Value: {x: 0.5, y: 0.5} + proceduralRadii: + m_OverrideState: 0 + m_Value: {x: 0.3, y: 0.3} + maskMinIntensity: + m_OverrideState: 0 + m_Value: -30 + maskMaxIntensity: + m_OverrideState: 0 + m_Value: 30 + proceduralSoftness: + m_OverrideState: 0 + m_Value: 0.5 +--- !u!114 &7502528774814404555 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: 9008a067f4d626c4d8bc4bc48f04bb89, type: 3} + m_Name: AmbientOcclusion + m_EditorClassIdentifier: + active: 1 + quality: + m_OverrideState: 0 + m_Value: 1 + rayTracing: + m_OverrideState: 0 + m_Value: 0 + intensity: + m_OverrideState: 1 + m_Value: 0.5 + directLightingStrength: + m_OverrideState: 0 + m_Value: 0 + radius: + m_OverrideState: 1 + m_Value: 1.5 + spatialBilateralAggressiveness: + m_OverrideState: 0 + m_Value: 0.15 + temporalAccumulation: + m_OverrideState: 0 + m_Value: 1 + ghostingReduction: + m_OverrideState: 0 + m_Value: 0.5 + blurSharpness: + m_OverrideState: 0 + m_Value: 0.1 + layerMask: + m_OverrideState: 0 + m_Value: + serializedVersion: 2 + m_Bits: 4294967295 + specularOcclusion: + m_OverrideState: 0 + m_Value: 0.5 + occluderMotionRejection: + m_OverrideState: 0 + m_Value: 1 + receiverMotionRejection: + m_OverrideState: 0 + m_Value: 1 + m_StepCount: + m_OverrideState: 0 + m_Value: 6 + m_FullResolution: + m_OverrideState: 0 + m_Value: 0 + m_MaximumRadiusInPixels: + m_OverrideState: 0 + m_Value: 40 + m_BilateralUpsample: + m_OverrideState: 0 + m_Value: 1 + m_DirectionCount: + m_OverrideState: 0 + m_Value: 2 + m_RayLength: + m_OverrideState: 0 + m_Value: 3 + m_SampleCount: + m_OverrideState: 0 + m_Value: 2 + m_Denoise: + m_OverrideState: 0 + m_Value: 1 + m_DenoiserRadius: + m_OverrideState: 0 + m_Value: 0.5 +--- !u!114 &7542669330009093999 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: f086a068d4c5889438831b3ae9afc11c, type: 3} + m_Name: Tonemapping + m_EditorClassIdentifier: + active: 1 + mode: + m_OverrideState: 1 + m_Value: 2 + useFullACES: + m_OverrideState: 0 + m_Value: 0 + toeStrength: + m_OverrideState: 0 + m_Value: 0 + toeLength: + m_OverrideState: 0 + m_Value: 0.5 + shoulderStrength: + m_OverrideState: 0 + m_Value: 0 + shoulderLength: + m_OverrideState: 0 + m_Value: 0.5 + shoulderAngle: + m_OverrideState: 0 + m_Value: 0 + gamma: + m_OverrideState: 0 + m_Value: 1 + lutTexture: + m_OverrideState: 0 + m_Value: {fileID: 0} + lutContribution: + m_OverrideState: 0 + m_Value: 1 + neutralHDRRangeReductionMode: + m_OverrideState: 0 + m_Value: 2 + acesPreset: + m_OverrideState: 0 + m_Value: 3 + fallbackMode: + m_OverrideState: 0 + m_Value: 1 + hueShiftAmount: + m_OverrideState: 0 + m_Value: 0 + detectPaperWhite: + m_OverrideState: 0 + m_Value: 0 + paperWhite: + m_OverrideState: 0 + m_Value: 300 + detectBrightnessLimits: + m_OverrideState: 0 + m_Value: 1 + minNits: + m_OverrideState: 0 + m_Value: 0.005 + maxNits: + m_OverrideState: 0 + m_Value: 1000 +--- !u!114 &7686318427622180703 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: 7ddcec8a8eb2d684d833ac8f5d26aebd, type: 3} + m_Name: HDShadowSettings + m_EditorClassIdentifier: + active: 1 + maxShadowDistance: + m_OverrideState: 1 + m_Value: 150 + directionalTransmissionMultiplier: + m_OverrideState: 0 + m_Value: 1 + cascadeShadowSplitCount: + m_OverrideState: 0 + m_Value: 4 + cascadeShadowSplit0: + m_OverrideState: 0 + m_Value: 0.05 + cascadeShadowSplit1: + m_OverrideState: 0 + m_Value: 0.15 + cascadeShadowSplit2: + m_OverrideState: 0 + m_Value: 0.3 + cascadeShadowBorder0: + m_OverrideState: 1 + m_Value: 0.13333334 + cascadeShadowBorder1: + m_OverrideState: 1 + m_Value: 0.06666666 + cascadeShadowBorder2: + m_OverrideState: 0 + m_Value: 0 + cascadeShadowBorder3: + m_OverrideState: 0 + m_Value: 0 diff --git a/Assets/HDRP/Settings/HDRPDefaultResources/DefaultSettingsVolumeProfile.asset.meta b/Assets/HDRP/Settings/HDRPDefaultResources/DefaultSettingsVolumeProfile.asset.meta new file mode 100644 index 0000000..18b5dba --- /dev/null +++ b/Assets/HDRP/Settings/HDRPDefaultResources/DefaultSettingsVolumeProfile.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 14b392ee213d25a48b1feddbd9f5a9be +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HDRP/Settings/HDRPDefaultResources/HDRenderPipelineAsset.asset b/Assets/HDRP/Settings/HDRPDefaultResources/HDRenderPipelineAsset.asset new file mode 100644 index 0000000..5225c6c --- /dev/null +++ b/Assets/HDRP/Settings/HDRPDefaultResources/HDRenderPipelineAsset.asset @@ -0,0 +1,494 @@ +%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: 0cf1dab834d4ec34195b920ea7bbf9ec, type: 3} + m_Name: HDRenderPipelineAsset + m_EditorClassIdentifier: + m_RenderPipelineSettings: + supportShadowMask: 1 + supportSSR: 0 + supportSSRTransparent: 0 + supportSSAO: 1 + supportSSGI: 0 + supportSubsurfaceScattering: 1 + sssSampleBudget: + m_Values: 140000002800000050000000 + m_SchemaId: + m_Id: With3Levels + supportVolumetrics: 1 + supportVolumetricClouds: 0 + supportLightLayers: 0 + supportWater: 0 + waterSimulationResolution: 128 + waterCPUSimulation: 0 + supportDistortion: 1 + supportTransparentBackface: 1 + supportTransparentDepthPrepass: 1 + supportTransparentDepthPostpass: 1 + colorBufferFormat: 74 + supportCustomPass: 1 + customBufferFormat: 12 + supportedLitShaderMode: 2 + planarReflectionResolution: + m_Values: 000100000004000000080000 + m_SchemaId: + m_Id: With3Levels + cubeReflectionResolution: + m_Values: 000100000002000000040000 + m_SchemaId: + m_Id: With3Levels + supportDecals: 1 + supportDecalLayers: 0 + supportSurfaceGradient: 0 + decalNormalBufferHP: 0 + msaaSampleCount: 1 + supportMotionVectors: 1 + supportDataDrivenLensFlare: 1 + supportRuntimeAOVAPI: 0 + supportDitheringCrossFade: 1 + supportTerrainHole: 0 + lightProbeSystem: 0 + probeVolumeMemoryBudget: 1024 + probeVolumeBlendingMemoryBudget: 128 + supportProbeVolumeStreaming: 0 + probeVolumeSHBands: 1 + supportRayTracing: 0 + supportedRayTracingMode: 3 + lightLoopSettings: + cookieAtlasSize: 2048 + cookieFormat: 74 + cookieAtlasLastValidMip: 0 + cookieTexArraySize: 1 + planarReflectionAtlasSize: 1024 + reflectionProbeCacheSize: 64 + reflectionCubemapSize: 256 + maxEnvLightsOnScreen: 64 + reflectionCacheCompressed: 0 + reflectionProbeFormat: 74 + reflectionProbeTexCacheSize: 1073750016 + reflectionProbeTexLastValidCubeMip: 3 + reflectionProbeTexLastValidPlanarMip: 0 + reflectionProbeDecreaseResToFit: 1 + skyReflectionSize: 256 + skyLightingOverrideLayerMask: + serializedVersion: 2 + m_Bits: 0 + supportFabricConvolution: 0 + maxDirectionalLightsOnScreen: 16 + maxPunctualLightsOnScreen: 512 + maxAreaLightsOnScreen: 64 + maxCubeReflectionOnScreen: 48 + maxPlanarReflectionOnScreen: 16 + maxDecalsOnScreen: 512 + maxLightsPerClusterCell: 8 + maxLocalVolumetricFogSize: 32 + maxLocalVolumetricFogOnScreen: 64 + hdShadowInitParams: + maxShadowRequests: 128 + directionalShadowsDepthBits: 32 + shadowFilteringQuality: 1 + areaShadowFilteringQuality: 0 + punctualLightShadowAtlas: + shadowAtlasResolution: 4096 + shadowAtlasDepthBits: 32 + useDynamicViewportRescale: 1 + areaLightShadowAtlas: + shadowAtlasResolution: 4096 + shadowAtlasDepthBits: 32 + useDynamicViewportRescale: 1 + cachedPunctualLightShadowAtlas: 2048 + cachedAreaLightShadowAtlas: 1024 + allowDirectionalMixedCachedShadows: 0 + shadowResolutionDirectional: + m_Values: 00010000000200000004000000080000 + m_SchemaId: + m_Id: With4Levels + shadowResolutionPunctual: + m_Values: 00010000000200000004000000080000 + m_SchemaId: + m_Id: With4Levels + shadowResolutionArea: + m_Values: 00010000000200000004000000080000 + m_SchemaId: + m_Id: With4Levels + maxDirectionalShadowMapResolution: 2048 + maxPunctualShadowMapResolution: 2048 + maxAreaShadowMapResolution: 2048 + supportScreenSpaceShadows: 0 + maxScreenSpaceShadowSlots: 4 + screenSpaceShadowBufferFormat: 48 + decalSettings: + drawDistance: 1000 + atlasWidth: 4096 + atlasHeight: 4096 + perChannelMask: 0 + postProcessSettings: + m_LutSize: 32 + lutFormat: 48 + bufferFormat: 74 + dynamicResolutionSettings: + enabled: 0 + useMipBias: 0 + enableDLSS: 0 + DLSSPerfQualitySetting: 0 + DLSSInjectionPoint: 0 + DLSSUseOptimalSettings: 0 + DLSSSharpness: 0 + fsrOverrideSharpness: 0 + fsrSharpness: 0.92 + maxPercentage: 100 + minPercentage: 100 + dynResType: 1 + upsampleFilter: 1 + forceResolution: 0 + forcedPercentage: 100 + lowResTransparencyMinimumThreshold: 0 + rayTracingHalfResThreshold: 50 + lowresTransparentSettings: + enabled: 1 + checkerboardDepthBuffer: 1 + upsampleType: 1 + xrSettings: + singlePass: 1 + occlusionMesh: 1 + cameraJitter: 0 + allowMotionBlur: 0 + postProcessQualitySettings: + NearBlurSampleCount: 030000000500000008000000 + NearBlurMaxRadius: + - 2 + - 4 + - 7 + FarBlurSampleCount: 04000000070000000e000000 + FarBlurMaxRadius: + - 5 + - 8 + - 13 + DoFResolution: 040000000200000001000000 + DoFHighQualityFiltering: 000101 + DoFPhysicallyBased: 000000 + LimitManualRangeNearBlur: 000000 + MotionBlurSampleCount: 04000000080000000c000000 + BloomRes: 040000000200000002000000 + BloomHighQualityFiltering: 000101 + BloomHighQualityPrefiltering: 000001 + ChromaticAberrationMaxSamples: 03000000060000000c000000 + lightSettings: + useContactShadow: + m_Values: 000001 + m_SchemaId: + m_Id: With3Levels + maximumLODLevel: + m_Values: 000000000000000000000000 + m_SchemaId: + m_Id: With3Levels + lodBias: + m_Values: + - 1 + - 1 + - 1 + m_SchemaId: + m_Id: With3Levels + lightingQualitySettings: + AOStepCount: 040000000600000010000000 + AOFullRes: 000001 + AOMaximumRadiusPixels: 200000002800000050000000 + AOBilateralUpsample: 000101 + AODirectionCount: 010000000200000004000000 + ContactShadowSampleCount: 060000000a00000010000000 + SSRMaxRaySteps: 100000002000000040000000 + SSGIRaySteps: 200000004000000080000000 + SSGIDenoise: 010101 + SSGIHalfResDenoise: 010000 + SSGIDenoiserRadius: + - 0.75 + - 0.5 + - 0.5 + SSGISecondDenoise: 010101 + RTAORayLength: + - 0.5 + - 3 + - 20 + RTAOSampleCount: 010000000200000008000000 + RTAODenoise: 010101 + RTAODenoiserRadius: + - 0.25 + - 0.5 + - 0.65 + RTGIRayLength: + - 50 + - 50 + - 50 + RTGIFullResolution: 000001 + RTGIClampValue: + - 0.5 + - 0.8 + - 1.5 + RTGIRaySteps: 200000003000000040000000 + RTGIDenoise: 010101 + RTGIHalfResDenoise: 010000 + RTGIDenoiserRadius: + - 0.75 + - 0.5 + - 0.25 + RTGISecondDenoise: 010101 + RTRMinSmoothness: + - 0.6 + - 0.4 + - 0 + RTRSmoothnessFadeStart: + - 0.7 + - 0.5 + - 0 + RTRRayLength: + - 50 + - 50 + - 50 + RTRClampValue: + - 0.8 + - 1 + - 1.2 + RTRFullResolution: 000001 + RTRRayMaxIterations: 200000003000000040000000 + RTRDenoise: 010101 + RTRDenoiserRadius: 080000000c00000010000000 + RTRSmoothDenoising: 010000 + Fog_ControlMode: 000000000000000000000000 + Fog_Budget: + - 0.166 + - 0.33 + - 0.666 + Fog_DepthRatio: + - 0.666 + - 0.666 + - 0.5 + m_ObsoleteLightLayerName0: + m_ObsoleteLightLayerName1: + m_ObsoleteLightLayerName2: + m_ObsoleteLightLayerName3: + m_ObsoleteLightLayerName4: + m_ObsoleteLightLayerName5: + m_ObsoleteLightLayerName6: + m_ObsoleteLightLayerName7: + m_ObsoleteDecalLayerName0: + m_ObsoleteDecalLayerName1: + m_ObsoleteDecalLayerName2: + m_ObsoleteDecalLayerName3: + m_ObsoleteDecalLayerName4: + m_ObsoleteDecalLayerName5: + m_ObsoleteDecalLayerName6: + m_ObsoleteDecalLayerName7: + m_ObsoleteSupportRuntimeDebugDisplay: 0 + allowShaderVariantStripping: 1 + enableSRPBatcher: 1 + availableMaterialQualityLevels: -1 + m_DefaultMaterialQualityLevel: 4 + diffusionProfileSettings: {fileID: 0} + virtualTexturingSettings: + streamingCpuCacheSizeInMegaBytes: 256 + streamingMipPreloadTexturesPerFrame: 0 + streamingPreloadMipCount: 1 + streamingGpuCacheSettings: + - format: 0 + sizeInMegaBytes: 128 + m_UseRenderGraph: 1 + m_Version: 22 + m_ObsoleteFrameSettings: + overrides: 0 + enableShadow: 0 + enableContactShadows: 0 + enableShadowMask: 0 + enableSSR: 0 + enableSSAO: 0 + enableSubsurfaceScattering: 0 + enableTransmission: 0 + enableAtmosphericScattering: 0 + enableVolumetrics: 0 + enableReprojectionForVolumetrics: 0 + enableLightLayers: 0 + enableExposureControl: 1 + diffuseGlobalDimmer: 0 + specularGlobalDimmer: 0 + shaderLitMode: 0 + enableDepthPrepassWithDeferredRendering: 0 + enableTransparentPrepass: 0 + enableMotionVectors: 0 + enableObjectMotionVectors: 0 + enableDecals: 0 + enableRoughRefraction: 0 + enableTransparentPostpass: 0 + enableDistortion: 0 + enablePostprocess: 0 + enableOpaqueObjects: 0 + enableTransparentObjects: 0 + enableRealtimePlanarReflection: 0 + enableMSAA: 0 + enableAsyncCompute: 0 + runLightListAsync: 0 + runSSRAsync: 0 + runSSAOAsync: 0 + runContactShadowsAsync: 0 + runVolumeVoxelizationAsync: 0 + lightLoopSettings: + overrides: 0 + enableDeferredTileAndCluster: 0 + enableComputeLightEvaluation: 0 + enableComputeLightVariants: 0 + enableComputeMaterialVariants: 0 + enableFptlForForwardOpaque: 0 + enableBigTilePrepass: 0 + isFptlEnabled: 0 + m_ObsoleteBakedOrCustomReflectionFrameSettings: + overrides: 0 + enableShadow: 0 + enableContactShadows: 0 + enableShadowMask: 0 + enableSSR: 0 + enableSSAO: 0 + enableSubsurfaceScattering: 0 + enableTransmission: 0 + enableAtmosphericScattering: 0 + enableVolumetrics: 0 + enableReprojectionForVolumetrics: 0 + enableLightLayers: 0 + enableExposureControl: 1 + diffuseGlobalDimmer: 0 + specularGlobalDimmer: 0 + shaderLitMode: 0 + enableDepthPrepassWithDeferredRendering: 0 + enableTransparentPrepass: 0 + enableMotionVectors: 0 + enableObjectMotionVectors: 0 + enableDecals: 0 + enableRoughRefraction: 0 + enableTransparentPostpass: 0 + enableDistortion: 0 + enablePostprocess: 0 + enableOpaqueObjects: 0 + enableTransparentObjects: 0 + enableRealtimePlanarReflection: 0 + enableMSAA: 0 + enableAsyncCompute: 0 + runLightListAsync: 0 + runSSRAsync: 0 + runSSAOAsync: 0 + runContactShadowsAsync: 0 + runVolumeVoxelizationAsync: 0 + lightLoopSettings: + overrides: 0 + enableDeferredTileAndCluster: 0 + enableComputeLightEvaluation: 0 + enableComputeLightVariants: 0 + enableComputeMaterialVariants: 0 + enableFptlForForwardOpaque: 0 + enableBigTilePrepass: 0 + isFptlEnabled: 0 + m_ObsoleteRealtimeReflectionFrameSettings: + overrides: 0 + enableShadow: 0 + enableContactShadows: 0 + enableShadowMask: 0 + enableSSR: 0 + enableSSAO: 0 + enableSubsurfaceScattering: 0 + enableTransmission: 0 + enableAtmosphericScattering: 0 + enableVolumetrics: 0 + enableReprojectionForVolumetrics: 0 + enableLightLayers: 0 + enableExposureControl: 1 + diffuseGlobalDimmer: 0 + specularGlobalDimmer: 0 + shaderLitMode: 0 + enableDepthPrepassWithDeferredRendering: 0 + enableTransparentPrepass: 0 + enableMotionVectors: 0 + enableObjectMotionVectors: 0 + enableDecals: 0 + enableRoughRefraction: 0 + enableTransparentPostpass: 0 + enableDistortion: 0 + enablePostprocess: 0 + enableOpaqueObjects: 0 + enableTransparentObjects: 0 + enableRealtimePlanarReflection: 0 + enableMSAA: 0 + enableAsyncCompute: 0 + runLightListAsync: 0 + runSSRAsync: 0 + runSSAOAsync: 0 + runContactShadowsAsync: 0 + runVolumeVoxelizationAsync: 0 + lightLoopSettings: + overrides: 0 + enableDeferredTileAndCluster: 0 + enableComputeLightEvaluation: 0 + enableComputeLightVariants: 0 + enableComputeMaterialVariants: 0 + enableFptlForForwardOpaque: 0 + enableBigTilePrepass: 0 + isFptlEnabled: 0 + m_ObsoleteDefaultVolumeProfile: {fileID: 0} + m_ObsoleteDefaultLookDevProfile: {fileID: 0} + m_ObsoleteFrameSettingsMovedToDefaultSettings: + bitDatas: + data1: 0 + data2: 0 + lodBias: 0 + lodBiasMode: 0 + lodBiasQualityLevel: 0 + maximumLODLevel: 0 + maximumLODLevelMode: 0 + maximumLODLevelQualityLevel: 0 + sssQualityMode: 0 + sssQualityLevel: 0 + sssCustomSampleBudget: 0 + msaaMode: 0 + materialQuality: 0 + m_ObsoleteBakedOrCustomReflectionFrameSettingsMovedToDefaultSettings: + bitDatas: + data1: 0 + data2: 0 + lodBias: 0 + lodBiasMode: 0 + lodBiasQualityLevel: 0 + maximumLODLevel: 0 + maximumLODLevelMode: 0 + maximumLODLevelQualityLevel: 0 + sssQualityMode: 0 + sssQualityLevel: 0 + sssCustomSampleBudget: 0 + msaaMode: 0 + materialQuality: 0 + m_ObsoleteRealtimeReflectionFrameSettingsMovedToDefaultSettings: + bitDatas: + data1: 0 + data2: 0 + lodBias: 0 + lodBiasMode: 0 + lodBiasQualityLevel: 0 + maximumLODLevel: 0 + maximumLODLevelMode: 0 + maximumLODLevelQualityLevel: 0 + sssQualityMode: 0 + sssQualityLevel: 0 + sssCustomSampleBudget: 0 + msaaMode: 0 + materialQuality: 0 + m_ObsoleteRenderPipelineResources: {fileID: 0} + m_ObsoleteRenderPipelineRayTracingResources: {fileID: 0} + m_ObsoleteBeforeTransparentCustomPostProcesses: [] + m_ObsoleteBeforePostProcessCustomPostProcesses: [] + m_ObsoleteAfterPostProcessCustomPostProcesses: [] + m_ObsoleteBeforeTAACustomPostProcesses: [] + m_ObsoleteShaderVariantLogLevel: 0 + m_ObsoleteLensAttenuation: 0 + m_ObsoleteDiffusionProfileSettingsList: [] diff --git a/Assets/HDRP/Settings/HDRPDefaultResources/HDRenderPipelineAsset.asset.meta b/Assets/HDRP/Settings/HDRPDefaultResources/HDRenderPipelineAsset.asset.meta new file mode 100644 index 0000000..2b1a38d --- /dev/null +++ b/Assets/HDRP/Settings/HDRPDefaultResources/HDRenderPipelineAsset.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b9f3086da92434da0bc1518f19f0ce86 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HDRP/Settings/HDRPDefaultResources/HDRenderPipelineGlobalSettings.asset b/Assets/HDRP/Settings/HDRPDefaultResources/HDRenderPipelineGlobalSettings.asset new file mode 100644 index 0000000..030c5e6 --- /dev/null +++ b/Assets/HDRP/Settings/HDRPDefaultResources/HDRenderPipelineGlobalSettings.asset @@ -0,0 +1,108 @@ +%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: 781cc897cf8675041a751163b51f97dd, type: 3} + m_Name: HDRenderPipelineGlobalSettings + m_EditorClassIdentifier: + m_DefaultVolumeProfile: {fileID: 11400000, guid: 14b392ee213d25a48b1feddbd9f5a9be, + type: 2} + m_LookDevVolumeProfile: {fileID: 11400000, guid: 4594f4a3fb14247e192bcca6dc23c8ed, + type: 2} + m_RenderingPathDefaultCameraFrameSettings: + bitDatas: + data1: 72198260625768269 + data2: 13763000511710068760 + lodBias: 1 + lodBiasMode: 0 + lodBiasQualityLevel: 0 + maximumLODLevel: 0 + maximumLODLevelMode: 0 + maximumLODLevelQualityLevel: 0 + sssQualityMode: 0 + sssQualityLevel: 0 + sssCustomSampleBudget: 20 + msaaMode: 1 + materialQuality: 0 + m_RenderingPathDefaultBakedOrCustomReflectionFrameSettings: + bitDatas: + data1: 135310754214733 + data2: 4539628428684460056 + lodBias: 1 + lodBiasMode: 0 + lodBiasQualityLevel: 0 + maximumLODLevel: 0 + maximumLODLevelMode: 0 + maximumLODLevelQualityLevel: 0 + sssQualityMode: 0 + sssQualityLevel: 0 + sssCustomSampleBudget: 20 + msaaMode: 1 + materialQuality: 0 + m_RenderingPathDefaultRealtimeReflectionFrameSettings: + bitDatas: + data1: 139923391782733 + data2: 13763000465807638544 + lodBias: 1 + lodBiasMode: 0 + lodBiasQualityLevel: 0 + maximumLODLevel: 0 + maximumLODLevelMode: 0 + maximumLODLevelQualityLevel: 0 + sssQualityMode: 0 + sssQualityLevel: 0 + sssCustomSampleBudget: 20 + msaaMode: 1 + materialQuality: 0 + m_RenderPipelineResources: {fileID: 11400000, guid: 3ce144cff5783da45aa5d4fdc2da14b7, + type: 2} + m_RenderPipelineRayTracingResources: {fileID: 0} + beforeTransparentCustomPostProcesses: [] + beforePostProcessCustomPostProcesses: [] + afterPostProcessBlursCustomPostProcesses: [] + afterPostProcessCustomPostProcesses: [] + beforeTAACustomPostProcesses: [] + lightLayerName0: Light Layer default + lightLayerName1: Light Layer 1 + lightLayerName2: Light Layer 2 + lightLayerName3: Light Layer 3 + lightLayerName4: Light Layer 4 + lightLayerName5: Light Layer 5 + lightLayerName6: Light Layer 6 + lightLayerName7: Light Layer 7 + decalLayerName0: Decal Layer default + decalLayerName1: Decal Layer 1 + decalLayerName2: Decal Layer 2 + decalLayerName3: Decal Layer 3 + decalLayerName4: Decal Layer 4 + decalLayerName5: Decal Layer 5 + decalLayerName6: Decal Layer 6 + decalLayerName7: Decal Layer 7 + lensAttenuationMode: 0 + colorGradingSpace: 0 + m_ObsoleteDiffusionProfileSettingsList: + - {fileID: 11400000, guid: 48e911a1e337b44e2b85dbc65b47a594, type: 2} + - {fileID: 11400000, guid: 879ffae44eefa4412bb327928f1a96dd, type: 2} + rendererListCulling: 0 + DLSSProjectId: 000000 + useDLSSCustomProjectId: 0 + supportProbeVolumes: 0 + supportRuntimeDebugDisplay: 0 + autoRegisterDiffusionProfiles: 0 + apvScenesData: + serializedBounds: [] + serializedHasVolumes: [] + serializedProfiles: [] + serializedBakeSettings: [] + serializedBakingSets: [] + m_LightingScenario: Default + m_Version: 5 + m_ShaderVariantLogLevel: 0 + m_ExportShaderVariants: 1 diff --git a/Assets/HDRP/Settings/HDRPDefaultResources/HDRenderPipelineGlobalSettings.asset.meta b/Assets/HDRP/Settings/HDRPDefaultResources/HDRenderPipelineGlobalSettings.asset.meta new file mode 100644 index 0000000..bdf3753 --- /dev/null +++ b/Assets/HDRP/Settings/HDRPDefaultResources/HDRenderPipelineGlobalSettings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ac0316ca287ba459492b669ff1317a6f +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HDRP/Settings/SkyandFogSettingsProfile.asset b/Assets/HDRP/Settings/SkyandFogSettingsProfile.asset new file mode 100644 index 0000000..bd03be4 --- /dev/null +++ b/Assets/HDRP/Settings/SkyandFogSettingsProfile.asset @@ -0,0 +1,470 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-7724654706381055090 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: d877ec3e844f2ca46830012e8e79319b, type: 3} + m_Name: + m_EditorClassIdentifier: + active: 1 + rotation: + m_OverrideState: 0 + m_Value: 0 + skyIntensityMode: + m_OverrideState: 0 + m_Value: 0 + exposure: + m_OverrideState: 0 + m_Value: 0 + multiplier: + m_OverrideState: 0 + m_Value: 1 + upperHemisphereLuxValue: + m_OverrideState: 0 + m_Value: 1 + upperHemisphereLuxColor: + m_OverrideState: 0 + m_Value: {x: 0, y: 0, z: 0} + desiredLuxValue: + m_OverrideState: 0 + m_Value: 20000 + updateMode: + m_OverrideState: 0 + m_Value: 0 + updatePeriod: + m_OverrideState: 0 + m_Value: 0 + includeSunInBaking: + m_OverrideState: 0 + m_Value: 0 + type: + m_OverrideState: 0 + m_Value: 1 + sphericalMode: + m_OverrideState: 0 + m_Value: 1 + seaLevel: + m_OverrideState: 0 + m_Value: 0 + planetaryRadius: + m_OverrideState: 0 + m_Value: 6378100 + planetCenterPosition: + m_OverrideState: 0 + m_Value: {x: 0, y: -6378100, z: 0} + airDensityR: + m_OverrideState: 0 + m_Value: 0.04534 + airDensityG: + m_OverrideState: 0 + m_Value: 0.10237241 + airDensityB: + m_OverrideState: 0 + m_Value: 0.23264056 + airTint: + m_OverrideState: 0 + m_Value: {r: 0.9, g: 0.9, b: 1, a: 1} + airMaximumAltitude: + m_OverrideState: 0 + m_Value: 55261.973 + aerosolDensity: + m_OverrideState: 0 + m_Value: 0.01192826 + aerosolTint: + m_OverrideState: 0 + m_Value: {r: 0.9, g: 0.9, b: 0.9, a: 1} + aerosolMaximumAltitude: + m_OverrideState: 0 + m_Value: 8289.296 + aerosolAnisotropy: + m_OverrideState: 0 + m_Value: 0 + numberOfBounces: + m_OverrideState: 0 + m_Value: 8 + groundTint: + m_OverrideState: 0 + m_Value: {r: 0.122641504, g: 0.1043775, b: 0.09313812, a: 1} + groundColorTexture: + m_OverrideState: 0 + m_Value: {fileID: 0} + groundEmissionTexture: + m_OverrideState: 0 + m_Value: {fileID: 0} + groundEmissionMultiplier: + m_OverrideState: 0 + m_Value: 1 + planetRotation: + m_OverrideState: 0 + m_Value: {x: 0, y: 0, z: 0} + spaceEmissionTexture: + m_OverrideState: 0 + m_Value: {fileID: 0} + spaceEmissionMultiplier: + m_OverrideState: 0 + m_Value: 1 + spaceRotation: + m_OverrideState: 0 + m_Value: {x: 0, y: 0, z: 0} + colorSaturation: + m_OverrideState: 0 + m_Value: 1 + alphaSaturation: + m_OverrideState: 0 + m_Value: 1 + alphaMultiplier: + m_OverrideState: 0 + m_Value: 1 + horizonTint: + m_OverrideState: 0 + m_Value: {r: 1, g: 1, b: 1, a: 1} + zenithTint: + m_OverrideState: 0 + m_Value: {r: 1, g: 1, b: 1, a: 1} + horizonZenithShift: + m_OverrideState: 0 + m_Value: 0 + m_SkyVersion: 1 + m_ObsoleteEarthPreset: + m_OverrideState: 0 + m_Value: 1 +--- !u!114 &-4832546200639332464 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: 24f077503be6ae942a1e1245dbd53ea9, type: 3} + m_Name: Bloom + m_EditorClassIdentifier: + active: 1 + quality: + m_OverrideState: 1 + m_Value: 1 + threshold: + m_OverrideState: 1 + m_Value: 0 + intensity: + m_OverrideState: 1 + m_Value: 0 + scatter: + m_OverrideState: 1 + m_Value: 0.7 + tint: + m_OverrideState: 1 + m_Value: {r: 1, g: 1, b: 1, a: 1} + dirtTexture: + m_OverrideState: 1 + m_Value: {fileID: 0} + dirtIntensity: + m_OverrideState: 1 + m_Value: 0 + anamorphic: + m_OverrideState: 0 + m_Value: 1 + m_Resolution: + m_OverrideState: 1 + m_Value: 2 + m_HighQualityPrefiltering: + m_OverrideState: 1 + m_Value: 0 + m_HighQualityFiltering: + m_OverrideState: 1 + m_Value: 1 +--- !u!114 &-4151792930034644520 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: 953beb541740ddc499d005ee80c9ff29, type: 3} + m_Name: + m_EditorClassIdentifier: + active: 1 + quality: + m_OverrideState: 0 + m_Value: 1 + enabled: + m_OverrideState: 1 + m_Value: 1 + colorMode: + m_OverrideState: 0 + m_Value: 1 + color: + m_OverrideState: 0 + m_Value: {r: 0.5, g: 0.5, b: 0.5, a: 1} + tint: + m_OverrideState: 0 + m_Value: {r: 1, g: 1, b: 1, a: 1} + maxFogDistance: + m_OverrideState: 0 + m_Value: 5000 + mipFogMaxMip: + m_OverrideState: 0 + m_Value: 0.5 + mipFogNear: + m_OverrideState: 0 + m_Value: 0 + mipFogFar: + m_OverrideState: 0 + m_Value: 1000 + baseHeight: + m_OverrideState: 0 + m_Value: 0 + maximumHeight: + m_OverrideState: 0 + m_Value: 50 + meanFreePath: + m_OverrideState: 0 + m_Value: 400 + enableVolumetricFog: + m_OverrideState: 1 + m_Value: 1 + albedo: + m_OverrideState: 0 + m_Value: {r: 1, g: 1, b: 1, a: 1} + globalLightProbeDimmer: + m_OverrideState: 0 + m_Value: 1 + depthExtent: + m_OverrideState: 0 + m_Value: 64 + denoisingMode: + m_OverrideState: 0 + m_Value: 2 + anisotropy: + m_OverrideState: 1 + m_Value: 0.65 + sliceDistributionUniformity: + m_OverrideState: 0 + m_Value: 0.75 + m_FogControlMode: + m_OverrideState: 0 + m_Value: 0 + screenResolutionPercentage: + m_OverrideState: 0 + m_Value: 12.5 + volumeSliceCount: + m_OverrideState: 0 + m_Value: 64 + m_VolumetricFogBudget: + m_OverrideState: 0 + m_Value: 0.5 + m_ResolutionDepthRatio: + m_OverrideState: 0 + m_Value: 0.5 + directionalLightsOnly: + m_OverrideState: 0 + m_Value: 0 +--- !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: d7fd9488000d3734a9e00ee676215985, type: 3} + m_Name: SkyandFogSettingsProfile + m_EditorClassIdentifier: + components: + - {fileID: 1142777632297148762} + - {fileID: -7724654706381055090} + - {fileID: -4151792930034644520} + - {fileID: 7642060734654139733} + - {fileID: -4832546200639332464} +--- !u!114 &1142777632297148762 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: 0d7593b3a9277ac4696b20006c21dde2, type: 3} + m_Name: + m_EditorClassIdentifier: + active: 1 + skyType: + m_OverrideState: 0 + m_Value: 4 + cloudType: + m_OverrideState: 0 + m_Value: 0 + skyAmbientMode: + m_OverrideState: 0 + m_Value: 1 + windOrientation: + m_OverrideState: 0 + m_Value: 0 + windSpeed: + m_OverrideState: 0 + m_Value: 0 + fogType: + m_OverrideState: 0 + m_Value: 0 +--- !u!114 &7642060734654139733 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: 2d08ce26990eb1a4a9177b860541e702, type: 3} + m_Name: Exposure + m_EditorClassIdentifier: + active: 1 + mode: + m_OverrideState: 1 + m_Value: 4 + meteringMode: + m_OverrideState: 0 + m_Value: 2 + luminanceSource: + m_OverrideState: 0 + m_Value: 1 + fixedExposure: + m_OverrideState: 0 + m_Value: 0 + compensation: + m_OverrideState: 0 + m_Value: 0 + limitMin: + m_OverrideState: 1 + m_Value: 2 + limitMax: + m_OverrideState: 1 + m_Value: 14 + curveMap: + m_OverrideState: 0 + m_Value: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: -10 + value: -10 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 20 + value: 20 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + limitMinCurveMap: + m_OverrideState: 0 + m_Value: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: -10 + value: -12 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 20 + value: 18 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + limitMaxCurveMap: + m_OverrideState: 0 + m_Value: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: -10 + value: -8 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 20 + value: 22 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + adaptationMode: + m_OverrideState: 0 + m_Value: 1 + adaptationSpeedDarkToLight: + m_OverrideState: 0 + m_Value: 3 + adaptationSpeedLightToDark: + m_OverrideState: 0 + m_Value: 1 + weightTextureMask: + m_OverrideState: 0 + m_Value: {fileID: 0} + histogramPercentages: + m_OverrideState: 0 + m_Value: {x: 40, y: 90} + histogramUseCurveRemapping: + m_OverrideState: 0 + m_Value: 0 + targetMidGray: + m_OverrideState: 0 + m_Value: 0 + centerAroundExposureTarget: + m_OverrideState: 0 + m_Value: 0 + proceduralCenter: + m_OverrideState: 0 + m_Value: {x: 0.5, y: 0.5} + proceduralRadii: + m_OverrideState: 0 + m_Value: {x: 0.15, y: 0.15} + maskMinIntensity: + m_OverrideState: 0 + m_Value: -30 + maskMaxIntensity: + m_OverrideState: 0 + m_Value: 30 + proceduralSoftness: + m_OverrideState: 0 + m_Value: 0.5 diff --git a/Assets/HDRP/Settings/SkyandFogSettingsProfile.asset.meta b/Assets/HDRP/Settings/SkyandFogSettingsProfile.asset.meta new file mode 100644 index 0000000..ab1b028 --- /dev/null +++ b/Assets/HDRP/Settings/SkyandFogSettingsProfile.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8ba92e2dd7f884a0f88b98fa2d235fe7 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HDRP/Volume Profile.asset b/Assets/HDRP/Volume Profile.asset new file mode 100644 index 0000000..3037d74 --- /dev/null +++ b/Assets/HDRP/Volume Profile.asset @@ -0,0 +1,91 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-2354217999400533774 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: 24f077503be6ae942a1e1245dbd53ea9, type: 3} + m_Name: Bloom + m_EditorClassIdentifier: + active: 1 + quality: + m_OverrideState: 1 + m_Value: 1 + threshold: + m_OverrideState: 1 + m_Value: 0 + intensity: + m_OverrideState: 1 + m_Value: 0 + scatter: + m_OverrideState: 1 + m_Value: 0.7 + tint: + m_OverrideState: 1 + m_Value: {r: 1, g: 1, b: 1, a: 1} + dirtTexture: + m_OverrideState: 1 + m_Value: {fileID: 0} + dirtIntensity: + m_OverrideState: 1 + m_Value: 0 + anamorphic: + m_OverrideState: 0 + m_Value: 1 + m_Resolution: + m_OverrideState: 1 + m_Value: 2 + m_HighQualityPrefiltering: + m_OverrideState: 1 + m_Value: 0 + m_HighQualityFiltering: + m_OverrideState: 1 + m_Value: 1 +--- !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: d7fd9488000d3734a9e00ee676215985, type: 3} + m_Name: Volume Profile + m_EditorClassIdentifier: + components: + - {fileID: -2354217999400533774} + - {fileID: 4065595836928041732} +--- !u!114 &4065595836928041732 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: 4b8bcdf71d7fafa419fca1ed162f5fc9, type: 3} + m_Name: ColorAdjustments + m_EditorClassIdentifier: + active: 1 + postExposure: + m_OverrideState: 1 + m_Value: 0 + contrast: + m_OverrideState: 1 + m_Value: 100 + colorFilter: + m_OverrideState: 1 + m_Value: {r: 1, g: 1, b: 1, a: 1} + hueShift: + m_OverrideState: 1 + m_Value: 0 + saturation: + m_OverrideState: 1 + m_Value: 0 diff --git a/Assets/HDRP/Volume Profile.asset.meta b/Assets/HDRP/Volume Profile.asset.meta new file mode 100644 index 0000000..538b6a6 --- /dev/null +++ b/Assets/HDRP/Volume Profile.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f5ed69e18d62a354690204dc7c5142f7 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/manifest.json b/Packages/manifest.json new file mode 100644 index 0000000..ce54a58 --- /dev/null +++ b/Packages/manifest.json @@ -0,0 +1,58 @@ +{ + "dependencies": { + "com.unity.barracuda": "3.0.0", + "com.unity.burst": "1.8.9", + "com.unity.collab-proxy": "2.0.5", + "com.unity.feature.development": "1.0.1", + "com.unity.recorder": "4.0.1", + "com.unity.render-pipelines.high-definition": "14.0.8", + "com.unity.textmeshpro": "3.0.6", + "com.unity.timeline": "1.7.5", + "com.unity.ugui": "1.0.0", + "com.unity.visualscripting": "1.8.0", + "jp.keijiro.osc-jack": "2.0.0", + "jp.keijiro.pcx": "1.0.1", + "jp.keijiro.shadergraphassets": "2.5.2", + "jp.keijiro.smrvfx": "1.1.6", + "com.unity.modules.ai": "1.0.0", + "com.unity.modules.androidjni": "1.0.0", + "com.unity.modules.animation": "1.0.0", + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.cloth": "1.0.0", + "com.unity.modules.director": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.particlesystem": "1.0.0", + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.physics2d": "1.0.0", + "com.unity.modules.screencapture": "1.0.0", + "com.unity.modules.terrain": "1.0.0", + "com.unity.modules.terrainphysics": "1.0.0", + "com.unity.modules.tilemap": "1.0.0", + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.uielements": "1.0.0", + "com.unity.modules.umbra": "1.0.0", + "com.unity.modules.unityanalytics": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.unitywebrequestassetbundle": "1.0.0", + "com.unity.modules.unitywebrequestaudio": "1.0.0", + "com.unity.modules.unitywebrequesttexture": "1.0.0", + "com.unity.modules.unitywebrequestwww": "1.0.0", + "com.unity.modules.vehicles": "1.0.0", + "com.unity.modules.video": "1.0.0", + "com.unity.modules.vr": "1.0.0", + "com.unity.modules.wind": "1.0.0", + "com.unity.modules.xr": "1.0.0" + }, + "scopedRegistries": [ + { + "name": "Keijiro", + "url": "https://registry.npmjs.com", + "scopes": [ + "jp.keijiro" + ] + } + ] +} diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json new file mode 100644 index 0000000..874c226 --- /dev/null +++ b/Packages/packages-lock.json @@ -0,0 +1,520 @@ +{ + "dependencies": { + "com.unity.barracuda": { + "version": "3.0.0", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.burst": "1.6.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.burst": { + "version": "1.8.9", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.mathematics": "1.2.1" + }, + "url": "https://packages.unity.com" + }, + "com.unity.collab-proxy": { + "version": "2.0.5", + "depth": 0, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.editorcoroutines": { + "version": "1.0.0", + "depth": 1, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.ext.nunit": { + "version": "1.0.6", + "depth": 2, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.feature.development": { + "version": "1.0.1", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.ide.visualstudio": "2.0.18", + "com.unity.ide.rider": "3.0.24", + "com.unity.ide.vscode": "1.2.5", + "com.unity.editorcoroutines": "1.0.0", + "com.unity.performance.profile-analyzer": "1.2.2", + "com.unity.test-framework": "1.1.33", + "com.unity.testtools.codecoverage": "1.2.4" + } + }, + "com.unity.ide.rider": { + "version": "3.0.24", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.ext.nunit": "1.0.6" + }, + "url": "https://packages.unity.com" + }, + "com.unity.ide.visualstudio": { + "version": "2.0.18", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.test-framework": "1.1.9" + }, + "url": "https://packages.unity.com" + }, + "com.unity.ide.vscode": { + "version": "1.2.5", + "depth": 1, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.mathematics": { + "version": "1.2.6", + "depth": 1, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.performance.profile-analyzer": { + "version": "1.2.2", + "depth": 1, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.recorder": { + "version": "4.0.1", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.timeline": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.render-pipelines.core": { + "version": "14.0.8", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.ugui": "1.0.0", + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.terrain": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.render-pipelines.high-definition": { + "version": "14.0.8", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.mathematics": "1.2.4", + "com.unity.burst": "1.8.4", + "com.unity.modules.video": "1.0.0", + "com.unity.modules.animation": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0", + "com.unity.modules.terrain": "1.0.0", + "com.unity.render-pipelines.core": "14.0.8", + "com.unity.shadergraph": "14.0.8", + "com.unity.visualeffectgraph": "14.0.8", + "com.unity.render-pipelines.high-definition-config": "14.0.8" + } + }, + "com.unity.render-pipelines.high-definition-config": { + "version": "14.0.8", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.render-pipelines.core": "14.0.8" + } + }, + "com.unity.searcher": { + "version": "4.9.2", + "depth": 2, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.settings-manager": { + "version": "2.0.1", + "depth": 2, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.shadergraph": { + "version": "14.0.8", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.render-pipelines.core": "14.0.8", + "com.unity.searcher": "4.9.2" + } + }, + "com.unity.test-framework": { + "version": "1.1.33", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.ext.nunit": "1.0.6", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.testtools.codecoverage": { + "version": "1.2.4", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.test-framework": "1.0.16", + "com.unity.settings-manager": "1.0.1" + }, + "url": "https://packages.unity.com" + }, + "com.unity.textmeshpro": { + "version": "3.0.6", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ugui": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.timeline": { + "version": "1.7.5", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.modules.director": "1.0.0", + "com.unity.modules.animation": "1.0.0", + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.particlesystem": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.ugui": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0" + } + }, + "com.unity.visualeffectgraph": { + "version": "14.0.8", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.shadergraph": "14.0.8", + "com.unity.render-pipelines.core": "14.0.8" + } + }, + "com.unity.visualscripting": { + "version": "1.8.0", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ugui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "jp.keijiro.noiseshader": { + "version": "2.0.0", + "depth": 1, + "source": "registry", + "dependencies": {}, + "url": "https://registry.npmjs.com" + }, + "jp.keijiro.osc-jack": { + "version": "2.0.0", + "depth": 0, + "source": "registry", + "dependencies": {}, + "url": "https://registry.npmjs.com" + }, + "jp.keijiro.pcx": { + "version": "1.0.1", + "depth": 0, + "source": "registry", + "dependencies": {}, + "url": "https://registry.npmjs.com" + }, + "jp.keijiro.shadergraphassets": { + "version": "2.5.2", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.shadergraph": "12.1.0", + "jp.keijiro.noiseshader": "2.0.0" + }, + "url": "https://registry.npmjs.com" + }, + "jp.keijiro.smrvfx": { + "version": "1.1.6", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.burst": "1.3.4", + "com.unity.visualeffectgraph": "8.2.0" + }, + "url": "https://registry.npmjs.com" + }, + "com.unity.modules.ai": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.androidjni": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.animation": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.assetbundle": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.audio": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.cloth": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0" + } + }, + "com.unity.modules.director": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.animation": "1.0.0" + } + }, + "com.unity.modules.imageconversion": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.imgui": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.jsonserialize": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.particlesystem": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.physics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.physics2d": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.screencapture": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.subsystems": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.modules.terrain": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.terrainphysics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.terrain": "1.0.0" + } + }, + "com.unity.modules.tilemap": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics2d": "1.0.0" + } + }, + "com.unity.modules.ui": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.uielements": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.modules.umbra": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.unityanalytics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.modules.unitywebrequest": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.unitywebrequestassetbundle": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0" + } + }, + "com.unity.modules.unitywebrequestaudio": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.audio": "1.0.0" + } + }, + "com.unity.modules.unitywebrequesttexture": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.unitywebrequestwww": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.unitywebrequestassetbundle": "1.0.0", + "com.unity.modules.unitywebrequestaudio": "1.0.0", + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.vehicles": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0" + } + }, + "com.unity.modules.video": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0" + } + }, + "com.unity.modules.vr": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.xr": "1.0.0" + } + }, + "com.unity.modules.wind": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.xr": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.subsystems": "1.0.0" + } + } + } +} diff --git a/ProjectSettings/AudioManager.asset b/ProjectSettings/AudioManager.asset new file mode 100644 index 0000000..27287fe --- /dev/null +++ b/ProjectSettings/AudioManager.asset @@ -0,0 +1,19 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!11 &1 +AudioManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Volume: 1 + Rolloff Scale: 1 + Doppler Factor: 1 + Default Speaker Mode: 2 + m_SampleRate: 0 + m_DSPBufferSize: 1024 + m_VirtualVoiceCount: 512 + m_RealVoiceCount: 32 + m_SpatializerPlugin: + m_AmbisonicDecoderPlugin: + m_DisableAudio: 0 + m_VirtualizeEffects: 1 + m_RequestedDSPBufferSize: 0 diff --git a/ProjectSettings/BurstAotSettings_StandaloneWindows.json b/ProjectSettings/BurstAotSettings_StandaloneWindows.json new file mode 100644 index 0000000..58cf25f --- /dev/null +++ b/ProjectSettings/BurstAotSettings_StandaloneWindows.json @@ -0,0 +1,18 @@ +{ + "MonoBehaviour": { + "Version": 4, + "EnableBurstCompilation": true, + "EnableOptimisations": true, + "EnableSafetyChecks": false, + "EnableDebugInAllBuilds": false, + "DebugDataKind": 1, + "EnableArmv9SecurityFeatures": false, + "CpuMinTargetX32": 0, + "CpuMaxTargetX32": 0, + "CpuMinTargetX64": 0, + "CpuMaxTargetX64": 0, + "CpuTargetsX32": 6, + "CpuTargetsX64": 72, + "OptimizeFor": 0 + } +} diff --git a/ProjectSettings/ClusterInputManager.asset b/ProjectSettings/ClusterInputManager.asset new file mode 100644 index 0000000..e7886b2 --- /dev/null +++ b/ProjectSettings/ClusterInputManager.asset @@ -0,0 +1,6 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!236 &1 +ClusterInputManager: + m_ObjectHideFlags: 0 + m_Inputs: [] diff --git a/ProjectSettings/CommonBurstAotSettings.json b/ProjectSettings/CommonBurstAotSettings.json new file mode 100644 index 0000000..0293daf --- /dev/null +++ b/ProjectSettings/CommonBurstAotSettings.json @@ -0,0 +1,6 @@ +{ + "MonoBehaviour": { + "Version": 4, + "DisabledWarnings": "" + } +} diff --git a/ProjectSettings/DynamicsManager.asset b/ProjectSettings/DynamicsManager.asset new file mode 100644 index 0000000..1596c42 --- /dev/null +++ b/ProjectSettings/DynamicsManager.asset @@ -0,0 +1,36 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!55 &1 +PhysicsManager: + m_ObjectHideFlags: 0 + serializedVersion: 13 + m_Gravity: {x: 0, y: -9.81, z: 0} + m_DefaultMaterial: {fileID: 0} + m_BounceThreshold: 2 + m_SleepThreshold: 0.005 + m_DefaultContactOffset: 0.01 + m_DefaultSolverIterations: 6 + m_DefaultSolverVelocityIterations: 1 + m_QueriesHitBackfaces: 0 + m_QueriesHitTriggers: 1 + m_EnableAdaptiveForce: 0 + m_ClothInterCollisionDistance: 0.1 + m_ClothInterCollisionStiffness: 0.2 + m_ContactsGeneration: 1 + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + m_AutoSimulation: 1 + m_AutoSyncTransforms: 0 + m_ReuseCollisionCallbacks: 0 + m_ClothInterCollisionSettingsToggle: 0 + m_ClothGravity: {x: 0, y: -9.81, z: 0} + m_ContactPairsMode: 0 + m_BroadphaseType: 0 + m_WorldBounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 250, y: 250, z: 250} + m_WorldSubdivisions: 8 + m_FrictionType: 0 + m_EnableEnhancedDeterminism: 0 + m_EnableUnifiedHeightmaps: 1 + m_SolverType: 0 + m_DefaultMaxAngularSpeed: 50 diff --git a/ProjectSettings/EditorBuildSettings.asset b/ProjectSettings/EditorBuildSettings.asset new file mode 100644 index 0000000..12ea45c --- /dev/null +++ b/ProjectSettings/EditorBuildSettings.asset @@ -0,0 +1,11 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1045 &1 +EditorBuildSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Scenes: + - enabled: 1 + path: Assets/Act-1.unity + guid: 8124e5870f4fd4c779e7a5f994e84ad1 + m_configObjects: {} diff --git a/ProjectSettings/EditorSettings.asset b/ProjectSettings/EditorSettings.asset new file mode 100644 index 0000000..56f7be5 --- /dev/null +++ b/ProjectSettings/EditorSettings.asset @@ -0,0 +1,47 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!159 &1 +EditorSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_SerializationMode: 2 + m_LineEndingsForNewScripts: 2 + m_DefaultBehaviorMode: 0 + m_PrefabRegularEnvironment: {fileID: 0} + m_PrefabUIEnvironment: {fileID: 0} + m_SpritePackerMode: 0 + m_SpritePackerCacheSize: 10 + m_SpritePackerPaddingPower: 1 + m_Bc7TextureCompressor: 0 + m_EtcTextureCompressorBehavior: 1 + m_EtcTextureFastCompressor: 1 + m_EtcTextureNormalCompressor: 2 + m_EtcTextureBestCompressor: 4 + m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;asmref;rsp + m_ProjectGenerationRootNamespace: + m_EnableTextureStreamingInEditMode: 1 + m_EnableTextureStreamingInPlayMode: 1 + m_EnableEditorAsyncCPUTextureLoading: 0 + m_AsyncShaderCompilation: 1 + m_PrefabModeAllowAutoSave: 1 + m_EnterPlayModeOptionsEnabled: 0 + m_EnterPlayModeOptions: 3 + m_GameObjectNamingDigits: 1 + m_GameObjectNamingScheme: 0 + m_AssetNamingUsesSpace: 1 + m_InspectorUseIMGUIDefaultInspector: 0 + m_UseLegacyProbeSampleCount: 0 + m_SerializeInlineMappingsOnOneLine: 0 + m_DisableCookiesInLightmapper: 0 + m_AssetPipelineMode: 1 + m_RefreshImportMode: 0 + m_CacheServerMode: 0 + m_CacheServerEndpoint: + m_CacheServerNamespacePrefix: default + m_CacheServerEnableDownload: 1 + m_CacheServerEnableUpload: 1 + m_CacheServerEnableAuth: 0 + m_CacheServerEnableTls: 0 + m_CacheServerValidationMode: 2 + m_CacheServerDownloadBatchSize: 128 + m_EnableEnlightenBakedGI: 0 diff --git a/ProjectSettings/GraphicsSettings.asset b/ProjectSettings/GraphicsSettings.asset new file mode 100644 index 0000000..bbff704 --- /dev/null +++ b/ProjectSettings/GraphicsSettings.asset @@ -0,0 +1,70 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!30 &1 +GraphicsSettings: + m_ObjectHideFlags: 0 + serializedVersion: 14 + m_Deferred: + m_Mode: 1 + m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} + m_DeferredReflections: + m_Mode: 1 + m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} + m_ScreenSpaceShadows: + m_Mode: 1 + m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} + m_LegacyDeferred: + m_Mode: 1 + m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} + m_DepthNormals: + m_Mode: 1 + m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} + m_MotionVectors: + m_Mode: 1 + m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} + m_LightHalo: + m_Mode: 1 + m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} + m_LensFlare: + m_Mode: 1 + m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} + m_VideoShadersIncludeMode: 2 + m_AlwaysIncludedShaders: + - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0} + m_PreloadedShaders: [] + m_PreloadShadersBatchTimeLimit: -1 + m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, + type: 0} + m_CustomRenderPipeline: {fileID: 11400000, guid: b9f3086da92434da0bc1518f19f0ce86, + type: 2} + m_TransparencySortMode: 0 + m_TransparencySortAxis: {x: 0, y: 0, z: 1} + m_DefaultRenderingPath: 1 + m_DefaultMobileRenderingPath: 1 + m_TierSettings: [] + m_LightmapStripping: 0 + m_FogStripping: 0 + m_InstancingStripping: 0 + m_LightmapKeepPlain: 1 + m_LightmapKeepDirCombined: 1 + m_LightmapKeepDynamicPlain: 1 + m_LightmapKeepDynamicDirCombined: 1 + m_LightmapKeepShadowMask: 1 + m_LightmapKeepSubtractive: 1 + m_FogKeepLinear: 1 + m_FogKeepExp: 1 + m_FogKeepExp2: 1 + m_AlbedoSwatchInfos: [] + m_LightsUseLinearIntensity: 1 + m_LightsUseColorTemperature: 1 + m_DefaultRenderingLayerMask: 257 + m_LogWhenShaderIsCompiled: 0 + m_SRPDefaultSettings: + UnityEngine.Rendering.HighDefinition.HDRenderPipeline: {fileID: 11400000, guid: ac0316ca287ba459492b669ff1317a6f, + type: 2} diff --git a/ProjectSettings/HDRPProjectSettings.asset b/ProjectSettings/HDRPProjectSettings.asset new file mode 100644 index 0000000..835f46f --- /dev/null +++ b/ProjectSettings/HDRPProjectSettings.asset @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 61 + 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: 63a2978a97e4fc04cb9d905947216f3d, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ProjectSettingFolderPath: Settings/HDRPDefaultResources + m_WizardPopupAtStart: 1 + m_LastMaterialVersion: 13 + m_HDShaderGraphLastSeenVersion: 0 + m_PluginMaterialVersions: + m_Keys: [] + m_Values: + m_PluginSubTargetVersions: + m_Keys: [] + m_Values: + m_Version: 2 + m_ObsoleteWizardPopupAlreadyShownOnce: 1 + m_ObsoleteWizardActiveTab: 0 + m_ObsoleteWizardNeedRestartAfterChangingToDX12: 0 + m_ObsoleteWizardNeedToRunFixAllAgainAfterDomainReload: 0 diff --git a/ProjectSettings/InputManager.asset b/ProjectSettings/InputManager.asset new file mode 100644 index 0000000..b16147e --- /dev/null +++ b/ProjectSettings/InputManager.asset @@ -0,0 +1,487 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!13 &1 +InputManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Axes: + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: left + positiveButton: right + altNegativeButton: a + altPositiveButton: d + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: down + positiveButton: up + altNegativeButton: s + altPositiveButton: w + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left ctrl + altNegativeButton: + altPositiveButton: mouse 0 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left alt + altNegativeButton: + altPositiveButton: mouse 1 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left shift + altNegativeButton: + altPositiveButton: mouse 2 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Jump + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: space + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse X + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse Y + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse ScrollWheel + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 2 + joyNum: 0 + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 1 + type: 2 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 0 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 1 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 2 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Jump + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 3 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Submit + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: return + altNegativeButton: + altPositiveButton: joystick button 0 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Submit + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: enter + altNegativeButton: + altPositiveButton: space + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Cancel + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: escape + altNegativeButton: + altPositiveButton: joystick button 1 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Enable Debug Button 1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left ctrl + altNegativeButton: + altPositiveButton: joystick button 8 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Enable Debug Button 2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: backspace + altNegativeButton: + altPositiveButton: joystick button 9 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Reset + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left alt + altNegativeButton: + altPositiveButton: joystick button 1 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Next + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: page down + altNegativeButton: + altPositiveButton: joystick button 5 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Previous + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: page up + altNegativeButton: + altPositiveButton: joystick button 4 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Validate + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: return + altNegativeButton: + altPositiveButton: joystick button 0 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Persistent + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: right shift + altNegativeButton: + altPositiveButton: joystick button 2 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Multiplier + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left shift + altNegativeButton: + altPositiveButton: joystick button 3 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: left + positiveButton: right + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: down + positiveButton: up + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: down + positiveButton: up + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 2 + axis: 6 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: left + positiveButton: right + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 2 + axis: 5 + joyNum: 0 diff --git a/ProjectSettings/MemorySettings.asset b/ProjectSettings/MemorySettings.asset new file mode 100644 index 0000000..5b5face --- /dev/null +++ b/ProjectSettings/MemorySettings.asset @@ -0,0 +1,35 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!387306366 &1 +MemorySettings: + m_ObjectHideFlags: 0 + m_EditorMemorySettings: + m_MainAllocatorBlockSize: -1 + m_ThreadAllocatorBlockSize: -1 + m_MainGfxBlockSize: -1 + m_ThreadGfxBlockSize: -1 + m_CacheBlockSize: -1 + m_TypetreeBlockSize: -1 + m_ProfilerBlockSize: -1 + m_ProfilerEditorBlockSize: -1 + m_BucketAllocatorGranularity: -1 + m_BucketAllocatorBucketsCount: -1 + m_BucketAllocatorBlockSize: -1 + m_BucketAllocatorBlockCount: -1 + m_ProfilerBucketAllocatorGranularity: -1 + m_ProfilerBucketAllocatorBucketsCount: -1 + m_ProfilerBucketAllocatorBlockSize: -1 + m_ProfilerBucketAllocatorBlockCount: -1 + m_TempAllocatorSizeMain: -1 + m_JobTempAllocatorBlockSize: -1 + m_BackgroundJobTempAllocatorBlockSize: -1 + m_JobTempAllocatorReducedBlockSize: -1 + m_TempAllocatorSizeGIBakingWorker: -1 + m_TempAllocatorSizeNavMeshWorker: -1 + m_TempAllocatorSizeAudioWorker: -1 + m_TempAllocatorSizeCloudWorker: -1 + m_TempAllocatorSizeGfx: -1 + m_TempAllocatorSizeJobWorker: -1 + m_TempAllocatorSizeBackgroundWorker: -1 + m_TempAllocatorSizePreloadManager: -1 + m_PlatformMemorySettings: {} diff --git a/ProjectSettings/NavMeshAreas.asset b/ProjectSettings/NavMeshAreas.asset new file mode 100644 index 0000000..3b0b7c3 --- /dev/null +++ b/ProjectSettings/NavMeshAreas.asset @@ -0,0 +1,91 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!126 &1 +NavMeshProjectSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + areas: + - name: Walkable + cost: 1 + - name: Not Walkable + cost: 1 + - name: Jump + cost: 2 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + m_LastAgentTypeID: -887442657 + m_Settings: + - serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.75 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_SettingNames: + - Humanoid diff --git a/ProjectSettings/PackageManagerSettings.asset b/ProjectSettings/PackageManagerSettings.asset new file mode 100644 index 0000000..59c954c --- /dev/null +++ b/ProjectSettings/PackageManagerSettings.asset @@ -0,0 +1,44 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 61 + 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: 13964, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_EnablePreReleasePackages: 0 + m_AdvancedSettingsExpanded: 1 + m_ScopedRegistriesSettingsExpanded: 1 + m_SeeAllPackageVersions: 0 + m_DismissPreviewPackagesInUse: 0 + oneTimeWarningShown: 0 + m_Registries: + - m_Id: main + m_Name: + m_Url: https://packages.unity.com + m_Scopes: [] + m_IsDefault: 1 + m_Capabilities: 0 + m_ConfigSource: 0 + - m_Id: scoped:project:Keijiro + m_Name: Keijiro + m_Url: https://registry.npmjs.com + m_Scopes: + - jp.keijiro + m_IsDefault: 0 + m_Capabilities: 0 + m_ConfigSource: 4 + m_UserSelectedRegistryName: Keijiro + m_UserAddingNewScopedRegistry: 0 + m_RegistryInfoDraft: + m_Modified: 0 + m_ErrorMessage: + m_UserModificationsInstanceId: -850 + m_OriginalInstanceId: -852 + m_LoadAssets: 0 diff --git a/ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json b/ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json new file mode 100644 index 0000000..3c7b4c1 --- /dev/null +++ b/ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json @@ -0,0 +1,5 @@ +{ + "m_Dictionary": { + "m_DictionaryValues": [] + } +} \ No newline at end of file diff --git a/ProjectSettings/Physics2DSettings.asset b/ProjectSettings/Physics2DSettings.asset new file mode 100644 index 0000000..6c5cf8a --- /dev/null +++ b/ProjectSettings/Physics2DSettings.asset @@ -0,0 +1,56 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!19 &1 +Physics2DSettings: + m_ObjectHideFlags: 0 + serializedVersion: 4 + m_Gravity: {x: 0, y: -9.81} + m_DefaultMaterial: {fileID: 0} + m_VelocityIterations: 8 + m_PositionIterations: 3 + m_VelocityThreshold: 1 + m_MaxLinearCorrection: 0.2 + m_MaxAngularCorrection: 8 + m_MaxTranslationSpeed: 100 + m_MaxRotationSpeed: 360 + m_BaumgarteScale: 0.2 + m_BaumgarteTimeOfImpactScale: 0.75 + m_TimeToSleep: 0.5 + m_LinearSleepTolerance: 0.01 + m_AngularSleepTolerance: 2 + m_DefaultContactOffset: 0.01 + m_JobOptions: + serializedVersion: 2 + useMultithreading: 0 + useConsistencySorting: 0 + m_InterpolationPosesPerJob: 100 + m_NewContactsPerJob: 30 + m_CollideContactsPerJob: 100 + m_ClearFlagsPerJob: 200 + m_ClearBodyForcesPerJob: 200 + m_SyncDiscreteFixturesPerJob: 50 + m_SyncContinuousFixturesPerJob: 50 + m_FindNearestContactsPerJob: 100 + m_UpdateTriggerContactsPerJob: 100 + m_IslandSolverCostThreshold: 100 + m_IslandSolverBodyCostScale: 1 + m_IslandSolverContactCostScale: 10 + m_IslandSolverJointCostScale: 10 + m_IslandSolverBodiesPerJob: 50 + m_IslandSolverContactsPerJob: 50 + m_AutoSimulation: 1 + m_QueriesHitTriggers: 1 + m_QueriesStartInColliders: 1 + m_CallbacksOnDisable: 1 + m_ReuseCollisionCallbacks: 0 + m_AutoSyncTransforms: 0 + m_AlwaysShowColliders: 0 + m_ShowColliderSleep: 1 + m_ShowColliderContacts: 0 + m_ShowColliderAABB: 0 + m_ContactArrowScale: 0.2 + m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} + m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} + m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} + m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff diff --git a/ProjectSettings/PresetManager.asset b/ProjectSettings/PresetManager.asset new file mode 100644 index 0000000..67a94da --- /dev/null +++ b/ProjectSettings/PresetManager.asset @@ -0,0 +1,7 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1386491679 &1 +PresetManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_DefaultPresets: {} diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset new file mode 100644 index 0000000..264480c --- /dev/null +++ b/ProjectSettings/ProjectSettings.asset @@ -0,0 +1,927 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!129 &1 +PlayerSettings: + m_ObjectHideFlags: 0 + serializedVersion: 26 + productGUID: c8e07198c31fe1b4ca6fb484020acb1e + AndroidProfiler: 0 + AndroidFilterTouchesWhenObscured: 0 + AndroidEnableSustainedPerformanceMode: 0 + defaultScreenOrientation: 4 + targetDevice: 2 + useOnDemandResources: 0 + accelerometerFrequency: 60 + companyName: DefaultCompany + productName: DwellingRelease + defaultCursor: {fileID: 0} + cursorHotspot: {x: 0, y: 0} + m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1} + m_ShowUnitySplashScreen: 1 + m_ShowUnitySplashLogo: 1 + m_SplashScreenOverlayOpacity: 1 + m_SplashScreenAnimation: 1 + m_SplashScreenLogoStyle: 1 + m_SplashScreenDrawMode: 0 + m_SplashScreenBackgroundAnimationZoom: 1 + m_SplashScreenLogoAnimationZoom: 1 + m_SplashScreenBackgroundLandscapeAspect: 1 + m_SplashScreenBackgroundPortraitAspect: 1 + m_SplashScreenBackgroundLandscapeUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenBackgroundPortraitUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenLogos: [] + m_VirtualRealitySplashScreen: {fileID: 0} + m_HolographicTrackingLossScreen: {fileID: 0} + defaultScreenWidth: 1024 + defaultScreenHeight: 768 + defaultScreenWidthWeb: 960 + defaultScreenHeightWeb: 600 + m_StereoRenderingPath: 0 + m_ActiveColorSpace: 1 + m_SpriteBatchVertexThreshold: 300 + m_MTRendering: 1 + mipStripping: 0 + numberOfMipsStripped: 0 + numberOfMipsStrippedPerMipmapLimitGroup: {} + m_StackTraceTypes: 010000000100000001000000010000000100000001000000 + iosShowActivityIndicatorOnLoading: -1 + androidShowActivityIndicatorOnLoading: -1 + iosUseCustomAppBackgroundBehavior: 0 + allowedAutorotateToPortrait: 1 + allowedAutorotateToPortraitUpsideDown: 1 + allowedAutorotateToLandscapeRight: 1 + allowedAutorotateToLandscapeLeft: 1 + useOSAutorotation: 1 + use32BitDisplayBuffer: 1 + preserveFramebufferAlpha: 0 + disableDepthAndStencilBuffers: 0 + androidStartInFullscreen: 1 + androidRenderOutsideSafeArea: 1 + androidUseSwappy: 0 + androidBlitType: 0 + androidResizableWindow: 0 + androidDefaultWindowWidth: 1920 + androidDefaultWindowHeight: 1080 + androidMinimumWindowWidth: 400 + androidMinimumWindowHeight: 300 + androidFullscreenMode: 1 + defaultIsNativeResolution: 1 + macRetinaSupport: 1 + runInBackground: 0 + captureSingleScreen: 0 + muteOtherAudioSources: 0 + Prepare IOS For Recording: 0 + Force IOS Speakers When Recording: 0 + deferSystemGesturesMode: 0 + hideHomeButton: 0 + submitAnalytics: 1 + usePlayerLog: 1 + bakeCollisionMeshes: 0 + forceSingleInstance: 0 + useFlipModelSwapchain: 1 + resizableWindow: 0 + useMacAppStoreValidation: 0 + macAppStoreCategory: public.app-category.games + gpuSkinning: 1 + xboxPIXTextureCapture: 0 + xboxEnableAvatar: 0 + xboxEnableKinect: 0 + xboxEnableKinectAutoTracking: 0 + xboxEnableFitness: 0 + visibleInBackground: 1 + allowFullscreenSwitch: 1 + fullscreenMode: 1 + xboxSpeechDB: 0 + xboxEnableHeadOrientation: 0 + xboxEnableGuest: 0 + xboxEnablePIXSampling: 0 + metalFramebufferOnly: 0 + xboxOneResolution: 0 + xboxOneSResolution: 0 + xboxOneXResolution: 3 + xboxOneMonoLoggingLevel: 0 + xboxOneLoggingLevel: 1 + xboxOneDisableEsram: 0 + xboxOneEnableTypeOptimization: 0 + xboxOnePresentImmediateThreshold: 0 + switchQueueCommandMemory: 1048576 + switchQueueControlMemory: 16384 + switchQueueComputeMemory: 262144 + switchNVNShaderPoolsGranularity: 33554432 + switchNVNDefaultPoolsGranularity: 16777216 + switchNVNOtherPoolsGranularity: 16777216 + switchGpuScratchPoolGranularity: 2097152 + switchAllowGpuScratchShrinking: 0 + switchNVNMaxPublicTextureIDCount: 0 + switchNVNMaxPublicSamplerIDCount: 0 + switchNVNGraphicsFirmwareMemory: 32 + stadiaPresentMode: 0 + stadiaTargetFramerate: 0 + vulkanNumSwapchainBuffers: 3 + vulkanEnableSetSRGBWrite: 0 + vulkanEnablePreTransform: 0 + vulkanEnableLateAcquireNextImage: 0 + vulkanEnableCommandBufferRecycling: 1 + loadStoreDebugModeEnabled: 0 + bundleVersion: 0.1.0 + preloadedAssets: [] + metroInputSource: 0 + wsaTransparentSwapchain: 0 + m_HolographicPauseOnTrackingLoss: 1 + xboxOneDisableKinectGpuReservation: 1 + xboxOneEnable7thCore: 1 + vrSettings: + enable360StereoCapture: 0 + isWsaHolographicRemotingEnabled: 0 + enableFrameTimingStats: 0 + enableOpenGLProfilerGPURecorders: 1 + useHDRDisplay: 0 + hdrBitDepth: 0 + m_ColorGamuts: 00000000 + targetPixelDensity: 30 + resolutionScalingMode: 0 + resetResolutionOnWindowResize: 0 + androidSupportedAspectRatio: 1 + androidMaxAspectRatio: 2.1 + applicationIdentifier: + Standalone: com.Unity-Technologies.com.unity.template.hdrp-blank + buildNumber: + Standalone: 0 + VisionOS: 0 + iPhone: 0 + tvOS: 0 + overrideDefaultApplicationIdentifier: 1 + AndroidBundleVersionCode: 1 + AndroidMinSdkVersion: 22 + AndroidTargetSdkVersion: 0 + AndroidPreferredInstallLocation: 1 + aotOptions: + stripEngineCode: 1 + iPhoneStrippingLevel: 0 + iPhoneScriptCallOptimization: 0 + ForceInternetPermission: 0 + ForceSDCardPermission: 0 + CreateWallpaper: 0 + APKExpansionFiles: 0 + keepLoadedShadersAlive: 0 + StripUnusedMeshComponents: 1 + strictShaderVariantMatching: 0 + VertexChannelCompressionMask: 4054 + iPhoneSdkVersion: 988 + iOSTargetOSVersionString: 12.0 + tvOSSdkVersion: 0 + tvOSRequireExtendedGameController: 0 + tvOSTargetOSVersionString: 12.0 + VisionOSSdkVersion: 0 + VisionOSTargetOSVersionString: 1.0 + uIPrerenderedIcon: 0 + uIRequiresPersistentWiFi: 0 + uIRequiresFullScreen: 1 + uIStatusBarHidden: 1 + uIExitOnSuspend: 0 + uIStatusBarStyle: 0 + appleTVSplashScreen: {fileID: 0} + appleTVSplashScreen2x: {fileID: 0} + tvOSSmallIconLayers: [] + tvOSSmallIconLayers2x: [] + tvOSLargeIconLayers: [] + tvOSLargeIconLayers2x: [] + tvOSTopShelfImageLayers: [] + tvOSTopShelfImageLayers2x: [] + tvOSTopShelfImageWideLayers: [] + tvOSTopShelfImageWideLayers2x: [] + iOSLaunchScreenType: 0 + iOSLaunchScreenPortrait: {fileID: 0} + iOSLaunchScreenLandscape: {fileID: 0} + iOSLaunchScreenBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreenFillPct: 100 + iOSLaunchScreenSize: 100 + iOSLaunchScreenCustomXibPath: + iOSLaunchScreeniPadType: 0 + iOSLaunchScreeniPadImage: {fileID: 0} + iOSLaunchScreeniPadBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreeniPadFillPct: 100 + iOSLaunchScreeniPadSize: 100 + iOSLaunchScreeniPadCustomXibPath: + iOSLaunchScreenCustomStoryboardPath: + iOSLaunchScreeniPadCustomStoryboardPath: + iOSDeviceRequirements: [] + iOSURLSchemes: [] + macOSURLSchemes: [] + iOSBackgroundModes: 0 + iOSMetalForceHardShadows: 0 + metalEditorSupport: 1 + metalAPIValidation: 1 + iOSRenderExtraFrameOnPause: 0 + iosCopyPluginsCodeInsteadOfSymlink: 0 + appleDeveloperTeamID: + iOSManualSigningProvisioningProfileID: + tvOSManualSigningProvisioningProfileID: + VisionOSManualSigningProvisioningProfileID: + iOSManualSigningProvisioningProfileType: 0 + tvOSManualSigningProvisioningProfileType: 0 + VisionOSManualSigningProvisioningProfileType: 0 + appleEnableAutomaticSigning: 0 + iOSRequireARKit: 0 + iOSAutomaticallyDetectAndAddCapabilities: 1 + appleEnableProMotion: 0 + shaderPrecisionModel: 0 + clonedFromGUID: c71a6e77368cc6048998f34f4bbe2b86 + templatePackageId: com.unity.template.hdrp-blank@14.0.3 + templateDefaultScene: Assets/OutdoorsScene.unity + useCustomMainManifest: 0 + useCustomLauncherManifest: 0 + useCustomMainGradleTemplate: 0 + useCustomLauncherGradleManifest: 0 + useCustomBaseGradleTemplate: 0 + useCustomGradlePropertiesTemplate: 0 + useCustomGradleSettingsTemplate: 0 + useCustomProguardFile: 0 + AndroidTargetArchitectures: 1 + AndroidTargetDevices: 0 + AndroidSplashScreenScale: 0 + androidSplashScreen: {fileID: 0} + AndroidKeystoreName: + AndroidKeyaliasName: + AndroidEnableArmv9SecurityFeatures: 0 + AndroidBuildApkPerCpuArchitecture: 0 + AndroidTVCompatibility: 0 + AndroidIsGame: 1 + AndroidEnableTango: 0 + androidEnableBanner: 1 + androidUseLowAccuracyLocation: 0 + androidUseCustomKeystore: 0 + m_AndroidBanners: + - width: 320 + height: 180 + banner: {fileID: 0} + androidGamepadSupportLevel: 0 + chromeosInputEmulation: 1 + AndroidMinifyRelease: 0 + AndroidMinifyDebug: 0 + AndroidValidateAppBundleSize: 1 + AndroidAppBundleSizeToValidate: 150 + m_BuildTargetIcons: [] + m_BuildTargetPlatformIcons: + - m_BuildTarget: iPhone + m_Icons: + - m_Textures: [] + m_Width: 180 + m_Height: 180 + m_Kind: 0 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 120 + m_Height: 120 + m_Kind: 0 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 167 + m_Height: 167 + m_Kind: 0 + m_SubKind: iPad + - m_Textures: [] + m_Width: 152 + m_Height: 152 + m_Kind: 0 + m_SubKind: iPad + - m_Textures: [] + m_Width: 76 + m_Height: 76 + m_Kind: 0 + m_SubKind: iPad + - m_Textures: [] + m_Width: 120 + m_Height: 120 + m_Kind: 3 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 80 + m_Height: 80 + m_Kind: 3 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 80 + m_Height: 80 + m_Kind: 3 + m_SubKind: iPad + - m_Textures: [] + m_Width: 40 + m_Height: 40 + m_Kind: 3 + m_SubKind: iPad + - m_Textures: [] + m_Width: 87 + m_Height: 87 + m_Kind: 1 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 58 + m_Height: 58 + m_Kind: 1 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 29 + m_Height: 29 + m_Kind: 1 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 58 + m_Height: 58 + m_Kind: 1 + m_SubKind: iPad + - m_Textures: [] + m_Width: 29 + m_Height: 29 + m_Kind: 1 + m_SubKind: iPad + - m_Textures: [] + m_Width: 60 + m_Height: 60 + m_Kind: 2 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 40 + m_Height: 40 + m_Kind: 2 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 40 + m_Height: 40 + m_Kind: 2 + m_SubKind: iPad + - m_Textures: [] + m_Width: 20 + m_Height: 20 + m_Kind: 2 + m_SubKind: iPad + - m_Textures: [] + m_Width: 1024 + m_Height: 1024 + m_Kind: 4 + m_SubKind: App Store + - m_BuildTarget: Android + m_Icons: + - m_Textures: [] + m_Width: 432 + m_Height: 432 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 324 + m_Height: 324 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 216 + m_Height: 216 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 162 + m_Height: 162 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 108 + m_Height: 108 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 81 + m_Height: 81 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 192 + m_Height: 192 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 144 + m_Height: 144 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 96 + m_Height: 96 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 72 + m_Height: 72 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 48 + m_Height: 48 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 36 + m_Height: 36 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 192 + m_Height: 192 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 144 + m_Height: 144 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 96 + m_Height: 96 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 72 + m_Height: 72 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 48 + m_Height: 48 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 36 + m_Height: 36 + m_Kind: 0 + m_SubKind: + m_BuildTargetBatching: + - m_BuildTarget: Standalone + m_StaticBatching: 1 + m_DynamicBatching: 0 + m_BuildTargetShaderSettings: [] + m_BuildTargetGraphicsJobs: + - m_BuildTarget: MacStandaloneSupport + m_GraphicsJobs: 0 + - m_BuildTarget: Switch + m_GraphicsJobs: 1 + - m_BuildTarget: MetroSupport + m_GraphicsJobs: 1 + - m_BuildTarget: AppleTVSupport + m_GraphicsJobs: 0 + - m_BuildTarget: BJMSupport + m_GraphicsJobs: 1 + - m_BuildTarget: LinuxStandaloneSupport + m_GraphicsJobs: 1 + - m_BuildTarget: PS4Player + m_GraphicsJobs: 1 + - m_BuildTarget: iOSSupport + m_GraphicsJobs: 0 + - m_BuildTarget: WindowsStandaloneSupport + m_GraphicsJobs: 1 + - m_BuildTarget: XboxOnePlayer + m_GraphicsJobs: 1 + - m_BuildTarget: LuminSupport + m_GraphicsJobs: 0 + - m_BuildTarget: AndroidPlayer + m_GraphicsJobs: 0 + - m_BuildTarget: WebGLSupport + m_GraphicsJobs: 0 + m_BuildTargetGraphicsJobMode: [] + m_BuildTargetGraphicsAPIs: + - m_BuildTarget: LinuxStandaloneSupport + m_APIs: 15000000 + m_Automatic: 0 + - m_BuildTarget: MacStandaloneSupport + m_APIs: 10000000 + m_Automatic: 0 + - m_BuildTarget: WindowsStandaloneSupport + m_APIs: 02000000 + m_Automatic: 1 + - m_BuildTarget: iOSSupport + m_APIs: 10000000 + m_Automatic: 1 + - m_BuildTarget: AndroidPlayer + m_APIs: 0b00000008000000 + m_Automatic: 0 + m_BuildTargetVRSettings: [] + m_DefaultShaderChunkSizeInMB: 16 + m_DefaultShaderChunkCount: 0 + openGLRequireES31: 0 + openGLRequireES31AEP: 0 + openGLRequireES32: 0 + m_TemplateCustomTags: {} + mobileMTRendering: + Android: 1 + iPhone: 1 + tvOS: 1 + m_BuildTargetGroupLightmapEncodingQuality: + - m_BuildTarget: Standalone + m_EncodingQuality: 2 + - m_BuildTarget: Android + m_EncodingQuality: 2 + - m_BuildTarget: Lumin + m_EncodingQuality: 2 + - m_BuildTarget: Windows Store Apps + m_EncodingQuality: 2 + m_BuildTargetGroupHDRCubemapEncodingQuality: + - m_BuildTarget: Standalone + m_EncodingQuality: 2 + - m_BuildTarget: Android + m_EncodingQuality: 2 + - m_BuildTarget: Lumin + m_EncodingQuality: 1 + - m_BuildTarget: Windows Store Apps + m_EncodingQuality: 2 + m_BuildTargetGroupLightmapSettings: [] + m_BuildTargetGroupLoadStoreDebugModeSettings: [] + m_BuildTargetNormalMapEncoding: [] + m_BuildTargetDefaultTextureCompressionFormat: [] + playModeTestRunnerEnabled: 0 + runPlayModeTestAsEditModeTest: 0 + actionOnDotNetUnhandledException: 1 + enableInternalProfiler: 0 + logObjCUncaughtExceptions: 1 + enableCrashReportAPI: 0 + cameraUsageDescription: + locationUsageDescription: + microphoneUsageDescription: + bluetoothUsageDescription: + macOSTargetOSVersion: 10.13.0 + switchNMETAOverride: + switchNetLibKey: + switchSocketMemoryPoolSize: 6144 + switchSocketAllocatorPoolSize: 128 + switchSocketConcurrencyLimit: 14 + switchScreenResolutionBehavior: 2 + switchUseCPUProfiler: 0 + switchUseGOLDLinker: 0 + switchLTOSetting: 0 + switchApplicationID: 0x01004b9000490000 + switchNSODependencies: + switchCompilerFlags: + switchTitleNames_0: + switchTitleNames_1: + switchTitleNames_2: + switchTitleNames_3: + switchTitleNames_4: + switchTitleNames_5: + switchTitleNames_6: + switchTitleNames_7: + switchTitleNames_8: + switchTitleNames_9: + switchTitleNames_10: + switchTitleNames_11: + switchTitleNames_12: + switchTitleNames_13: + switchTitleNames_14: + switchTitleNames_15: + switchPublisherNames_0: + switchPublisherNames_1: + switchPublisherNames_2: + switchPublisherNames_3: + switchPublisherNames_4: + switchPublisherNames_5: + switchPublisherNames_6: + switchPublisherNames_7: + switchPublisherNames_8: + switchPublisherNames_9: + switchPublisherNames_10: + switchPublisherNames_11: + switchPublisherNames_12: + switchPublisherNames_13: + switchPublisherNames_14: + switchPublisherNames_15: + switchIcons_0: {fileID: 0} + switchIcons_1: {fileID: 0} + switchIcons_2: {fileID: 0} + switchIcons_3: {fileID: 0} + switchIcons_4: {fileID: 0} + switchIcons_5: {fileID: 0} + switchIcons_6: {fileID: 0} + switchIcons_7: {fileID: 0} + switchIcons_8: {fileID: 0} + switchIcons_9: {fileID: 0} + switchIcons_10: {fileID: 0} + switchIcons_11: {fileID: 0} + switchIcons_12: {fileID: 0} + switchIcons_13: {fileID: 0} + switchIcons_14: {fileID: 0} + switchIcons_15: {fileID: 0} + switchSmallIcons_0: {fileID: 0} + switchSmallIcons_1: {fileID: 0} + switchSmallIcons_2: {fileID: 0} + switchSmallIcons_3: {fileID: 0} + switchSmallIcons_4: {fileID: 0} + switchSmallIcons_5: {fileID: 0} + switchSmallIcons_6: {fileID: 0} + switchSmallIcons_7: {fileID: 0} + switchSmallIcons_8: {fileID: 0} + switchSmallIcons_9: {fileID: 0} + switchSmallIcons_10: {fileID: 0} + switchSmallIcons_11: {fileID: 0} + switchSmallIcons_12: {fileID: 0} + switchSmallIcons_13: {fileID: 0} + switchSmallIcons_14: {fileID: 0} + switchSmallIcons_15: {fileID: 0} + switchManualHTML: + switchAccessibleURLs: + switchLegalInformation: + switchMainThreadStackSize: 1048576 + switchPresenceGroupId: + switchLogoHandling: 0 + switchReleaseVersion: 0 + switchDisplayVersion: 1.0.0 + switchStartupUserAccount: 0 + switchSupportedLanguagesMask: 0 + switchLogoType: 0 + switchApplicationErrorCodeCategory: + switchUserAccountSaveDataSize: 0 + switchUserAccountSaveDataJournalSize: 0 + switchApplicationAttribute: 0 + switchCardSpecSize: -1 + switchCardSpecClock: -1 + switchRatingsMask: 0 + switchRatingsInt_0: 0 + switchRatingsInt_1: 0 + switchRatingsInt_2: 0 + switchRatingsInt_3: 0 + switchRatingsInt_4: 0 + switchRatingsInt_5: 0 + switchRatingsInt_6: 0 + switchRatingsInt_7: 0 + switchRatingsInt_8: 0 + switchRatingsInt_9: 0 + switchRatingsInt_10: 0 + switchRatingsInt_11: 0 + switchRatingsInt_12: 0 + switchLocalCommunicationIds_0: + switchLocalCommunicationIds_1: + switchLocalCommunicationIds_2: + switchLocalCommunicationIds_3: + switchLocalCommunicationIds_4: + switchLocalCommunicationIds_5: + switchLocalCommunicationIds_6: + switchLocalCommunicationIds_7: + switchParentalControl: 0 + switchAllowsScreenshot: 1 + switchAllowsVideoCapturing: 1 + switchAllowsRuntimeAddOnContentInstall: 0 + switchDataLossConfirmation: 0 + switchUserAccountLockEnabled: 0 + switchSystemResourceMemory: 16777216 + switchSupportedNpadStyles: 22 + switchNativeFsCacheSize: 32 + switchIsHoldTypeHorizontal: 0 + switchSupportedNpadCount: 8 + switchEnableTouchScreen: 1 + switchSocketConfigEnabled: 0 + switchTcpInitialSendBufferSize: 32 + switchTcpInitialReceiveBufferSize: 64 + switchTcpAutoSendBufferSizeMax: 256 + switchTcpAutoReceiveBufferSizeMax: 256 + switchUdpSendBufferSize: 9 + switchUdpReceiveBufferSize: 42 + switchSocketBufferEfficiency: 4 + switchSocketInitializeEnabled: 1 + switchNetworkInterfaceManagerInitializeEnabled: 1 + switchPlayerConnectionEnabled: 1 + switchUseNewStyleFilepaths: 0 + switchUseLegacyFmodPriorities: 0 + switchUseMicroSleepForYield: 1 + switchEnableRamDiskSupport: 0 + switchMicroSleepForYieldTime: 25 + switchRamDiskSpaceSize: 12 + ps4NPAgeRating: 12 + ps4NPTitleSecret: + ps4NPTrophyPackPath: + ps4ParentalLevel: 11 + ps4ContentID: ED1633-NPXX51362_00-0000000000000000 + ps4Category: 0 + ps4MasterVersion: 01.00 + ps4AppVersion: 01.00 + ps4AppType: 0 + ps4ParamSfxPath: + ps4VideoOutPixelFormat: 0 + ps4VideoOutInitialWidth: 1920 + ps4VideoOutBaseModeInitialWidth: 1920 + ps4VideoOutReprojectionRate: 60 + ps4PronunciationXMLPath: + ps4PronunciationSIGPath: + ps4BackgroundImagePath: + ps4StartupImagePath: + ps4StartupImagesFolder: + ps4IconImagesFolder: + ps4SaveDataImagePath: + ps4SdkOverride: + ps4BGMPath: + ps4ShareFilePath: + ps4ShareOverlayImagePath: + ps4PrivacyGuardImagePath: + ps4ExtraSceSysFile: + ps4NPtitleDatPath: + ps4RemotePlayKeyAssignment: -1 + ps4RemotePlayKeyMappingDir: + ps4PlayTogetherPlayerCount: 0 + ps4EnterButtonAssignment: 2 + ps4ApplicationParam1: 0 + ps4ApplicationParam2: 0 + ps4ApplicationParam3: 0 + ps4ApplicationParam4: 0 + ps4DownloadDataSize: 0 + ps4GarlicHeapSize: 2048 + ps4ProGarlicHeapSize: 2560 + playerPrefsMaxSize: 32768 + ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ + ps4pnSessions: 1 + ps4pnPresence: 1 + ps4pnFriends: 1 + ps4pnGameCustomData: 1 + playerPrefsSupport: 0 + enableApplicationExit: 0 + resetTempFolder: 1 + restrictedAudioUsageRights: 0 + ps4UseResolutionFallback: 0 + ps4ReprojectionSupport: 0 + ps4UseAudio3dBackend: 0 + ps4UseLowGarlicFragmentationMode: 1 + ps4SocialScreenEnabled: 0 + ps4ScriptOptimizationLevel: 2 + ps4Audio3dVirtualSpeakerCount: 14 + ps4attribCpuUsage: 0 + ps4PatchPkgPath: + ps4PatchLatestPkgPath: + ps4PatchChangeinfoPath: + ps4PatchDayOne: 0 + ps4attribUserManagement: 0 + ps4attribMoveSupport: 0 + ps4attrib3DSupport: 0 + ps4attribShareSupport: 0 + ps4attribExclusiveVR: 0 + ps4disableAutoHideSplash: 0 + ps4videoRecordingFeaturesUsed: 0 + ps4contentSearchFeaturesUsed: 0 + ps4CompatibilityPS5: 0 + ps4AllowPS5Detection: 0 + ps4GPU800MHz: 1 + ps4attribEyeToEyeDistanceSettingVR: 0 + ps4IncludedModules: [] + ps4attribVROutputEnabled: 0 + monoEnv: + splashScreenBackgroundSourceLandscape: {fileID: 0} + splashScreenBackgroundSourcePortrait: {fileID: 0} + blurSplashScreenBackground: 1 + spritePackerPolicy: + webGLMemorySize: 32 + webGLExceptionSupport: 1 + webGLNameFilesAsHashes: 0 + webGLShowDiagnostics: 0 + webGLDataCaching: 1 + webGLDebugSymbols: 0 + webGLEmscriptenArgs: + webGLModulesDirectory: + webGLTemplate: APPLICATION:Default + webGLAnalyzeBuildSize: 0 + webGLUseEmbeddedResources: 0 + webGLCompressionFormat: 0 + webGLWasmArithmeticExceptions: 0 + webGLLinkerTarget: 1 + webGLThreadsSupport: 0 + webGLDecompressionFallback: 0 + webGLInitialMemorySize: 32 + webGLMaximumMemorySize: 2048 + webGLMemoryGrowthMode: 2 + webGLMemoryLinearGrowthStep: 16 + webGLMemoryGeometricGrowthStep: 0.2 + webGLMemoryGeometricGrowthCap: 96 + webGLPowerPreference: 2 + scriptingDefineSymbols: {} + additionalCompilerArguments: {} + platformArchitecture: {} + scriptingBackend: {} + il2cppCompilerConfiguration: {} + il2cppCodeGeneration: {} + managedStrippingLevel: + EmbeddedLinux: 1 + GameCoreScarlett: 1 + GameCoreXboxOne: 1 + Nintendo Switch: 1 + PS4: 1 + PS5: 1 + QNX: 1 + Stadia: 1 + VisionOS: 1 + WebGL: 1 + Windows Store Apps: 1 + XboxOne: 1 + iPhone: 1 + tvOS: 1 + incrementalIl2cppBuild: {} + suppressCommonWarnings: 1 + allowUnsafeCode: 0 + useDeterministicCompilation: 1 + additionalIl2CppArgs: + scriptingRuntimeVersion: 1 + gcIncremental: 0 + gcWBarrierValidation: 0 + apiCompatibilityLevelPerPlatform: {} + m_RenderingPath: 1 + m_MobileRenderingPath: 1 + metroPackageName: DwellingRelease + metroPackageVersion: + metroCertificatePath: + metroCertificatePassword: + metroCertificateSubject: + metroCertificateIssuer: + metroCertificateNotAfter: 0000000000000000 + metroApplicationDescription: DwellingRelease + wsaImages: {} + metroTileShortName: + metroTileShowName: 0 + metroMediumTileShowName: 0 + metroLargeTileShowName: 0 + metroWideTileShowName: 0 + metroSupportStreamingInstall: 0 + metroLastRequiredScene: 0 + metroDefaultTileSize: 1 + metroTileForegroundText: 2 + metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} + metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, + a: 1} + metroSplashScreenUseBackgroundColor: 0 + platformCapabilities: {} + metroTargetDeviceFamilies: {} + metroFTAName: + metroFTAFileTypes: [] + metroProtocolName: + vcxProjDefaultLanguage: + XboxOneProductId: + XboxOneUpdateKey: + XboxOneSandboxId: + XboxOneContentId: + XboxOneTitleId: + XboxOneSCId: + XboxOneGameOsOverridePath: + XboxOnePackagingOverridePath: + XboxOneAppManifestOverridePath: + XboxOneVersion: 1.0.0.0 + XboxOnePackageEncryption: 0 + XboxOnePackageUpdateGranularity: 2 + XboxOneDescription: + XboxOneLanguage: + - enus + XboxOneCapability: [] + XboxOneGameRating: {} + XboxOneIsContentPackage: 0 + XboxOneEnhancedXboxCompatibilityMode: 0 + XboxOneEnableGPUVariability: 1 + XboxOneSockets: {} + XboxOneSplashScreen: {fileID: 0} + XboxOneAllowedProductIds: [] + XboxOnePersistentLocalStorageSize: 0 + XboxOneXTitleMemory: 8 + XboxOneOverrideIdentityName: + XboxOneOverrideIdentityPublisher: + vrEditorSettings: {} + cloudServicesEnabled: {} + luminIcon: + m_Name: + m_ModelFolderPath: + m_PortalFolderPath: + luminCert: + m_CertPath: + m_SignPackage: 1 + luminIsChannelApp: 0 + luminVersion: + m_VersionCode: 1 + m_VersionName: + hmiPlayerDataPath: + hmiForceSRGBBlit: 1 + embeddedLinuxEnableGamepadInput: 1 + hmiLogStartupTiming: 0 + hmiCpuConfiguration: + apiCompatibilityLevel: 3 + activeInputHandler: 0 + windowsGamepadBackendHint: 0 + cloudProjectId: 90600367-2003-4970-a0a4-0f7049cb1dd9 + framebufferDepthMemorylessMode: 0 + qualitySettingsNames: [] + projectName: DwellingRelease + organizationId: gulags + cloudEnabled: 0 + legacyClampBlendShapeWeights: 0 + hmiLoadingImage: {fileID: 0} + platformRequiresReadableAssets: 0 + virtualTexturingSupportEnabled: 0 + insecureHttpOption: 0 diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt new file mode 100644 index 0000000..78a7788 --- /dev/null +++ b/ProjectSettings/ProjectVersion.txt @@ -0,0 +1,2 @@ +m_EditorVersion: 2022.3.7f1 +m_EditorVersionWithRevision: 2022.3.7f1 (b16b3b16c7a0) diff --git a/ProjectSettings/QualitySettings.asset b/ProjectSettings/QualitySettings.asset new file mode 100644 index 0000000..a89cc22 --- /dev/null +++ b/ProjectSettings/QualitySettings.asset @@ -0,0 +1,133 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!47 &1 +QualitySettings: + m_ObjectHideFlags: 0 + serializedVersion: 5 + m_CurrentQuality: 0 + m_QualitySettings: + - serializedVersion: 2 + name: High Fidelity + pixelLightCount: 0 + shadows: 2 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 15 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 255 + textureQuality: 0 + anisotropicTextures: 2 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 1 + vSyncCount: 1 + lodBias: 1 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 256 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 11400000, guid: 36dd385e759c96147b6463dcd1149c11, + type: 2} + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Balanced + pixelLightCount: 0 + shadows: 2 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 15 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 255 + textureQuality: 0 + anisotropicTextures: 2 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 1 + vSyncCount: 1 + lodBias: 1 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 256 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 11400000, guid: 3e2e6bfc59709614ab90c0cd7d755e48, + type: 2} + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Performant + pixelLightCount: 0 + shadows: 2 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 15 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 255 + textureQuality: 0 + anisotropicTextures: 2 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 1 + vSyncCount: 1 + lodBias: 1 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 256 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 11400000, guid: 168a2336534e4e043b2a210b6f8d379a, + type: 2} + excludedTargetPlatforms: [] + m_PerPlatformDefaultQuality: + Android: 0 + CloudRendering: 0 + Lumin: 0 + Nintendo Switch: 0 + PS4: 0 + Server: 0 + Stadia: 0 + Standalone: 0 + WebGL: 0 + Windows Store Apps: 0 + XboxOne: 0 + iPhone: 0 + tvOS: 0 diff --git a/ProjectSettings/SceneTemplateSettings.json b/ProjectSettings/SceneTemplateSettings.json new file mode 100644 index 0000000..6f3e60f --- /dev/null +++ b/ProjectSettings/SceneTemplateSettings.json @@ -0,0 +1,167 @@ +{ + "templatePinStates": [], + "dependencyTypeInfos": [ + { + "userAdded": false, + "type": "UnityEngine.AnimationClip", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEditor.Animations.AnimatorController", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.AnimatorOverrideController", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEditor.Audio.AudioMixerController", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.ComputeShader", + "ignore": true, + "defaultInstantiationMode": 1, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Cubemap", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.GameObject", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEditor.LightingDataAsset", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": false + }, + { + "userAdded": false, + "type": "UnityEngine.LightingSettings", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Material", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEditor.MonoScript", + "ignore": true, + "defaultInstantiationMode": 1, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicMaterial", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicsMaterial2D", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.VolumeProfile", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEditor.SceneAsset", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": false + }, + { + "userAdded": false, + "type": "UnityEngine.Shader", + "ignore": true, + "defaultInstantiationMode": 1, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.ShaderVariantCollection", + "ignore": true, + "defaultInstantiationMode": 1, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Texture", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Texture2D", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Timeline.TimelineAsset", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + } + ], + "defaultDependencyTypeInfo": { + "userAdded": false, + "type": "", + "ignore": false, + "defaultInstantiationMode": 1, + "supportsModification": true + }, + "newSceneOverride": 0 +} \ No newline at end of file diff --git a/ProjectSettings/ShaderGraphSettings.asset b/ProjectSettings/ShaderGraphSettings.asset new file mode 100644 index 0000000..9b28428 --- /dev/null +++ b/ProjectSettings/ShaderGraphSettings.asset @@ -0,0 +1,16 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 61 + 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: de02f9e1d18f588468e474319d09a723, type: 3} + m_Name: + m_EditorClassIdentifier: + customInterpolatorErrorThreshold: 32 + customInterpolatorWarningThreshold: 16 diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset new file mode 100644 index 0000000..1c92a78 --- /dev/null +++ b/ProjectSettings/TagManager.asset @@ -0,0 +1,43 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!78 &1 +TagManager: + serializedVersion: 2 + tags: [] + layers: + - Default + - TransparentFX + - Ignore Raycast + - + - Water + - UI + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + m_SortingLayers: + - name: Default + uniqueID: 0 + locked: 0 diff --git a/ProjectSettings/TimeManager.asset b/ProjectSettings/TimeManager.asset new file mode 100644 index 0000000..558a017 --- /dev/null +++ b/ProjectSettings/TimeManager.asset @@ -0,0 +1,9 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!5 &1 +TimeManager: + m_ObjectHideFlags: 0 + Fixed Timestep: 0.02 + Maximum Allowed Timestep: 0.33333334 + m_TimeScale: 1 + Maximum Particle Timestep: 0.03 diff --git a/ProjectSettings/UnityConnectSettings.asset b/ProjectSettings/UnityConnectSettings.asset new file mode 100644 index 0000000..a88bee0 --- /dev/null +++ b/ProjectSettings/UnityConnectSettings.asset @@ -0,0 +1,36 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!310 &1 +UnityConnectSettings: + m_ObjectHideFlags: 0 + serializedVersion: 1 + m_Enabled: 0 + m_TestMode: 0 + m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events + m_EventUrl: https://cdp.cloud.unity3d.com/v1/events + m_ConfigUrl: https://config.uca.cloud.unity3d.com + m_DashboardUrl: https://dashboard.unity3d.com + m_TestInitMode: 0 + CrashReportingSettings: + m_EventUrl: https://perf-events.cloud.unity3d.com + m_Enabled: 0 + m_LogBufferSize: 10 + m_CaptureEditorExceptions: 1 + UnityPurchasingSettings: + m_Enabled: 0 + m_TestMode: 0 + UnityAnalyticsSettings: + m_Enabled: 0 + m_TestMode: 0 + m_InitializeOnStartup: 1 + m_PackageRequiringCoreStatsPresent: 0 + UnityAdsSettings: + m_Enabled: 0 + m_InitializeOnStartup: 1 + m_TestMode: 0 + m_IosGameId: + m_AndroidGameId: + m_GameIds: {} + m_GameId: + PerformanceReportingSettings: + m_Enabled: 0 diff --git a/ProjectSettings/VFXManager.asset b/ProjectSettings/VFXManager.asset new file mode 100644 index 0000000..97ff3c2 --- /dev/null +++ b/ProjectSettings/VFXManager.asset @@ -0,0 +1,17 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!937362698 &1 +VFXManager: + m_ObjectHideFlags: 0 + m_IndirectShader: {fileID: 7200000, guid: 84a17cfa13e40ae4082ef42714f0a81c, type: 3} + m_CopyBufferShader: {fileID: 7200000, guid: 23c51f21a3503f6428b527b01f8a2f4e, type: 3} + m_SortShader: {fileID: 7200000, guid: ea257ca3cfb12a642a5025e612af6b2a, type: 3} + m_StripUpdateShader: {fileID: 7200000, guid: 8fa6c4009fe2a4d4486c62736fc30ad8, type: 3} + m_RenderPipeSettingsPath: + m_FixedTimeStep: 0.016666668 + m_MaxDeltaTime: 0.05 + m_MaxScrubTime: 30 + m_CompiledVersion: 7 + m_RuntimeVersion: 34 + m_RuntimeResources: {fileID: 11400000, guid: bc10b42afe3813544bffd38ae2cd893d, type: 2} + m_BatchEmptyLifetime: 300 diff --git a/ProjectSettings/VersionControlSettings.asset b/ProjectSettings/VersionControlSettings.asset new file mode 100644 index 0000000..dca2881 --- /dev/null +++ b/ProjectSettings/VersionControlSettings.asset @@ -0,0 +1,8 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!890905787 &1 +VersionControlSettings: + m_ObjectHideFlags: 0 + m_Mode: Visible Meta Files + m_CollabEditorSettings: + inProgressEnabled: 1 diff --git a/ProjectSettings/XRSettings.asset b/ProjectSettings/XRSettings.asset new file mode 100644 index 0000000..482590c --- /dev/null +++ b/ProjectSettings/XRSettings.asset @@ -0,0 +1,10 @@ +{ + "m_SettingKeys": [ + "VR Device Disabled", + "VR Device User Alert" + ], + "m_SettingValues": [ + "False", + "False" + ] +} \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..a3d2368 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# Dwelling, 2023. diff --git a/ST-Kinect4Azure-000812394612-depth-640-576.bin b/ST-Kinect4Azure-000812394612-depth-640-576.bin new file mode 100644 index 0000000..66517b4 Binary files /dev/null and b/ST-Kinect4Azure-000812394612-depth-640-576.bin differ diff --git a/dnn_model_2_0_op11.onnx b/dnn_model_2_0_op11.onnx new file mode 100644 index 0000000..d31e4e7 --- /dev/null +++ b/dnn_model_2_0_op11.onnx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:40bf149c8e3dc4cba34cff4f5c3db6f5d5d4e6559d525df1aa02c2e6c80f7d2d +size 166778023