├── .gitignore ├── .vsconfig ├── Assets ├── DecalSample.unity ├── DecalSample.unity.meta ├── Editor.meta ├── Editor │ ├── AllocateTest.cs │ ├── AllocateTest.cs.meta │ ├── Resources.meta │ └── Resources │ │ ├── Test.prefab │ │ └── Test.prefab.meta ├── MainRenderer.asset ├── MainRenderer.asset.meta ├── Models.meta ├── Models │ ├── Armature.fbx │ ├── Armature.fbx.meta │ ├── Locomotion--Run_N.anim.fbx │ ├── Locomotion--Run_N.anim.fbx.meta │ ├── Locomotion--Walk_N.anim.fbx │ ├── Locomotion--Walk_N.anim.fbx.meta │ ├── Run.controller │ ├── Run.controller.meta │ ├── Walk.controller │ └── Walk.controller.meta ├── SimpleLitFakeShadow.mat ├── SimpleLitFakeShadow.mat.meta ├── SimpleLitFakeShadow.shader ├── SimpleLitFakeShadow.shader.meta ├── UniversalRPAsset.asset ├── UniversalRPAsset.asset.meta ├── UniversalRenderPipelineGlobalSettings.asset ├── UniversalRenderPipelineGlobalSettings.asset.meta ├── _DecalAssets.meta └── _DecalAssets │ ├── FakeShadow.cs │ ├── FakeShadow.cs.meta │ ├── FakeShadowCaster.shader │ ├── FakeShadowCaster.shader.meta │ ├── FakeShadowPassFeature.cs │ ├── FakeShadowPassFeature.cs.meta │ ├── For_DecalProjector.meta │ ├── For_DecalProjector │ ├── BlobShadowByDecal.mat │ ├── BlobShadowByDecal.mat.meta │ ├── FakeShadowByDecal.mat │ ├── FakeShadowByDecal.mat.meta │ ├── FakeShadowByDecal.shader │ └── FakeShadowByDecal.shader.meta │ ├── SimpleDecalForBlob.shadergraph │ └── SimpleDecalForBlob.shadergraph.meta ├── LICENSE ├── Packages ├── manifest.json └── packages-lock.json ├── ProjectSettings ├── AudioManager.asset ├── BurstAotSettings_Switch.json ├── ClusterInputManager.asset ├── CommonBurstAotSettings.json ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── MemorySettings.asset ├── NavMeshAreas.asset ├── PackageManagerSettings.asset ├── Packages │ └── com.unity.testtools.codecoverage │ │ └── Settings.json ├── Physics2DSettings.asset ├── PresetManager.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── SceneTemplateSettings.json ├── ShaderGraphSettings.asset ├── TagManager.asset ├── TimeManager.asset ├── URPProjectSettings.asset ├── UnityConnectSettings.asset ├── VFXManager.asset ├── VersionControlSettings.asset ├── XRSettings.asset └── boot.config └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | # This .gitignore file should be placed at the root of your Unity project directory 2 | # 3 | # Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore 4 | # 5 | /[Ll]ibrary/ 6 | /[Tt]emp/ 7 | /[Oo]bj/ 8 | /[Bb]uild/ 9 | /[Bb]uilds/ 10 | /[Ll]ogs/ 11 | /[Mm]emoryCaptures/ 12 | 13 | # Asset meta data should only be ignored when the corresponding asset is also ignored 14 | !/[Aa]ssets/**/*.meta 15 | 16 | # Uncomment this line if you wish to ignore the asset store tools plugin 17 | # /[Aa]ssets/AssetStoreTools* 18 | 19 | # Autogenerated Jetbrains Rider plugin 20 | [Aa]ssets/Plugins/Editor/JetBrains* 21 | 22 | # Visual Studio cache directory 23 | .vs/ 24 | 25 | # Gradle cache directory 26 | .gradle/ 27 | 28 | # Autogenerated VS/MD/Consulo solution and project files 29 | ExportedObj/ 30 | .consulo/ 31 | *.csproj 32 | *.unityproj 33 | *.sln 34 | *.suo 35 | *.tmp 36 | *.user 37 | *.userprefs 38 | *.pidb 39 | *.booproj 40 | *.svd 41 | *.pdb 42 | *.mdb 43 | *.opendb 44 | *.VC.db 45 | 46 | # Unity3D generated meta files 47 | *.pidb.meta 48 | *.pdb.meta 49 | *.mdb.meta 50 | 51 | # Unity3D generated file on crash reports 52 | sysinfo.txt 53 | 54 | # Builds 55 | *.apk 56 | *.unitypackage 57 | UserSettings/ 58 | 59 | # Crashlytics generated file 60 | crashlytics-build.properties 61 | 62 | -------------------------------------------------------------------------------- /.vsconfig: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.0", 3 | "components": [ 4 | "Microsoft.VisualStudio.Workload.ManagedGame" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /Assets/DecalSample.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d75a2bdbbe24a294aa2c352af0d50b3a 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 876028a9c343ca14b8752733d451a7ed 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Editor/AllocateTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yugo-unity/DecalFakeShadow/4b41e2323be6de5cc1c18a560b464498b071968c/Assets/Editor/AllocateTest.cs -------------------------------------------------------------------------------- /Assets/Editor/AllocateTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 02ac96fa8b233bf49b3114b01d5867a9 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Editor/Resources.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a1430b7a69d257647a7908a0655b8d36 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Editor/Resources/Test.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &7289156878996670007 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | serializedVersion: 6 10 | m_Component: 11 | - component: {fileID: 7688457025383071025} 12 | m_Layer: 0 13 | m_Name: Test 14 | m_TagString: Untagged 15 | m_Icon: {fileID: 0} 16 | m_NavMeshLayer: 0 17 | m_StaticEditorFlags: 0 18 | m_IsActive: 1 19 | --- !u!4 &7688457025383071025 20 | Transform: 21 | m_ObjectHideFlags: 0 22 | m_CorrespondingSourceObject: {fileID: 0} 23 | m_PrefabInstance: {fileID: 0} 24 | m_PrefabAsset: {fileID: 0} 25 | m_GameObject: {fileID: 7289156878996670007} 26 | m_LocalRotation: {x: 0.70710677, y: -0.00000005960465, z: 0.3535534, w: 0.61237246} 27 | m_LocalPosition: {x: 3.0199835, y: -0.6534915, z: 0.056538038} 28 | m_LocalScale: {x: 5, y: 8, z: 3} 29 | m_ConstrainProportionsScale: 0 30 | m_Children: [] 31 | m_Father: {fileID: 0} 32 | m_RootOrder: 0 33 | m_LocalEulerAnglesHint: {x: 60, y: 90, z: 120} 34 | -------------------------------------------------------------------------------- /Assets/Editor/Resources/Test.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: caa2dc98cddc03947a971f4a32d528f6 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/MainRenderer.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &-3986180453801235592 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: a1614fc811f8f184697d9bee70ab9fe5, type: 3} 13 | m_Name: DecalRendererFeature 14 | m_EditorClassIdentifier: 15 | m_Active: 1 16 | m_Settings: 17 | technique: 2 18 | maxDrawDistance: 10 19 | dBufferSettings: 20 | surfaceData: 2 21 | screenSpaceSettings: 22 | normalBlend: 0 23 | useGBuffer: 0 24 | m_CopyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3} 25 | m_DBufferClear: {fileID: 4800000, guid: f056d8bd2a1c7e44e9729144b4c70395, type: 3} 26 | --- !u!114 &11400000 27 | MonoBehaviour: 28 | m_ObjectHideFlags: 0 29 | m_CorrespondingSourceObject: {fileID: 0} 30 | m_PrefabInstance: {fileID: 0} 31 | m_PrefabAsset: {fileID: 0} 32 | m_GameObject: {fileID: 0} 33 | m_Enabled: 1 34 | m_EditorHideFlags: 0 35 | m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} 36 | m_Name: MainRenderer 37 | m_EditorClassIdentifier: 38 | debugShaders: 39 | debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, type: 3} 40 | m_RendererFeatures: 41 | - {fileID: -3986180453801235592} 42 | - {fileID: 869635668175901157} 43 | m_RendererFeatureMap: 786b9238ff3daec8e551a25d0891110c 44 | m_UseNativeRenderPass: 0 45 | postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2} 46 | xrSystemData: {fileID: 11400000, guid: 60e1133243b97e347b653163a8c01b64, type: 2} 47 | shaders: 48 | blitPS: {fileID: 4800000, guid: c17132b1f77d20942aa75f8429c0f8bc, type: 3} 49 | copyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3} 50 | screenSpaceShadowPS: {fileID: 0} 51 | samplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3} 52 | stencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, type: 3} 53 | fallbackErrorPS: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3} 54 | materialErrorPS: {fileID: 4800000, guid: 5fd9a8feb75a4b5894c241777f519d4e, type: 3} 55 | coreBlitPS: {fileID: 4800000, guid: 93446b5c5339d4f00b85c159e1159b7c, type: 3} 56 | coreBlitColorAndDepthPS: {fileID: 4800000, guid: d104b2fc1ca6445babb8e90b0758136b, type: 3} 57 | cameraMotionVector: {fileID: 4800000, guid: c56b7e0d4c7cb484e959caeeedae9bbf, type: 3} 58 | objectMotionVector: {fileID: 4800000, guid: 7b3ede40266cd49a395def176e1bc486, type: 3} 59 | m_AssetVersion: 2 60 | m_OpaqueLayerMask: 61 | serializedVersion: 2 62 | m_Bits: 39 63 | m_TransparentLayerMask: 64 | serializedVersion: 2 65 | m_Bits: 4294967295 66 | m_DefaultStencilState: 67 | overrideStencilState: 0 68 | stencilReference: 0 69 | stencilCompareFunction: 8 70 | passOperation: 2 71 | failOperation: 0 72 | zFailOperation: 0 73 | m_ShadowTransparentReceive: 1 74 | m_RenderingMode: 0 75 | m_DepthPrimingMode: 2 76 | m_CopyDepthMode: 0 77 | m_AccurateGbufferNormals: 0 78 | m_ClusteredRendering: 0 79 | m_TileSize: 32 80 | m_IntermediateTextureMode: 1 81 | --- !u!114 &869635668175901157 82 | MonoBehaviour: 83 | m_ObjectHideFlags: 0 84 | m_CorrespondingSourceObject: {fileID: 0} 85 | m_PrefabInstance: {fileID: 0} 86 | m_PrefabAsset: {fileID: 0} 87 | m_GameObject: {fileID: 0} 88 | m_Enabled: 1 89 | m_EditorHideFlags: 0 90 | m_Script: {fileID: 11500000, guid: 90c6089b20f87c044b6165a4964a0c65, type: 3} 91 | m_Name: FakeShadowPassFeature 92 | m_EditorClassIdentifier: 93 | m_Active: 1 94 | characterLayer: 95 | serializedVersion: 2 96 | m_Bits: 64 97 | fakeShadowShader: {fileID: 4800000, guid: 45b2d29dd53159e44b9d21ec63d25600, type: 3} 98 | maxShadowCount: 4 99 | decalMapSize: 512 100 | -------------------------------------------------------------------------------- /Assets/MainRenderer.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a05d2b51d87bcc04980b3b6f00c64c62 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Models.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ed28ee1e2bd4be64fbaa8d97fc522682 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Models/Armature.fbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yugo-unity/DecalFakeShadow/4b41e2323be6de5cc1c18a560b464498b071968c/Assets/Models/Armature.fbx -------------------------------------------------------------------------------- /Assets/Models/Armature.fbx.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c1c632b1b9185bc43aafd480e0799531 3 | ModelImporter: 4 | serializedVersion: 21300 5 | internalIDToNameTable: 6 | - first: 7 | 74: 1827226128182048838 8 | second: Take 001 9 | externalObjects: {} 10 | materials: 11 | materialImportMode: 0 12 | materialName: 0 13 | materialSearch: 1 14 | materialLocation: 1 15 | animations: 16 | legacyGenerateAnimations: 4 17 | bakeSimulation: 0 18 | resampleCurves: 1 19 | optimizeGameObjects: 0 20 | removeConstantScaleCurves: 1 21 | motionNodeName: 22 | rigImportErrors: 23 | rigImportWarnings: 24 | animationImportErrors: 25 | animationImportWarnings: 26 | animationRetargetingWarnings: 27 | animationDoRetargetingWarnings: 0 28 | importAnimatedCustomProperties: 0 29 | importConstraints: 0 30 | animationCompression: 3 31 | animationRotationError: 0.5 32 | animationPositionError: 0.5 33 | animationScaleError: 0.5 34 | animationWrapMode: 0 35 | extraExposedTransformPaths: [] 36 | extraUserProperties: [] 37 | clipAnimations: [] 38 | isReadable: 0 39 | meshes: 40 | lODScreenPercentages: [] 41 | globalScale: 1 42 | meshCompression: 0 43 | addColliders: 0 44 | useSRGBMaterialColor: 1 45 | sortHierarchyByName: 1 46 | importVisibility: 0 47 | importBlendShapes: 0 48 | importCameras: 0 49 | importLights: 0 50 | nodeNameCollisionStrategy: 1 51 | fileIdsGeneration: 2 52 | swapUVChannels: 0 53 | generateSecondaryUV: 0 54 | useFileUnits: 1 55 | keepQuads: 0 56 | weldVertices: 1 57 | bakeAxisConversion: 0 58 | preserveHierarchy: 0 59 | skinWeightsMode: 0 60 | maxBonesPerVertex: 4 61 | minBoneWeight: 0.001 62 | optimizeBones: 0 63 | meshOptimizationFlags: -1 64 | indexFormat: 0 65 | secondaryUVAngleDistortion: 8 66 | secondaryUVAreaDistortion: 15.000001 67 | secondaryUVHardAngle: 88 68 | secondaryUVMarginMethod: 1 69 | secondaryUVMinLightmapResolution: 40 70 | secondaryUVMinObjectScale: 1 71 | secondaryUVPackMargin: 4 72 | useFileScale: 1 73 | tangentSpace: 74 | normalSmoothAngle: 60 75 | normalImportMode: 0 76 | tangentImportMode: 3 77 | normalCalculationMode: 4 78 | legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 79 | blendShapeNormalImportMode: 1 80 | normalSmoothingSource: 0 81 | referencedClips: [] 82 | importAnimation: 0 83 | humanDescription: 84 | serializedVersion: 3 85 | human: [] 86 | skeleton: 87 | - name: Armature(Clone) 88 | parentName: 89 | position: {x: -0, y: 0, z: 0} 90 | rotation: {x: 0, y: -0, z: -0, w: 1} 91 | scale: {x: 1, y: 1, z: 1} 92 | - name: Skeleton 93 | parentName: Armature(Clone) 94 | position: {x: -0, y: 0, z: 0} 95 | rotation: {x: 0, y: -0, z: -0, w: 1} 96 | scale: {x: 1, y: 1, z: 1} 97 | - name: Hips 98 | parentName: Skeleton 99 | position: {x: -0, y: 0.9810986, z: -0.01590455} 100 | rotation: {x: 0, y: -0, z: -0, w: 1} 101 | scale: {x: 1, y: 1, z: 1} 102 | - name: Spine 103 | parentName: Hips 104 | position: {x: -0, y: 0.058229383, z: 0.0012229546} 105 | rotation: {x: 0, y: -0, z: -0, w: 1} 106 | scale: {x: 1, y: 1, z: 1} 107 | - name: Chest 108 | parentName: Spine 109 | position: {x: -0, y: 0.1034043, z: 0} 110 | rotation: {x: 0, y: -0, z: -0, w: 1} 111 | scale: {x: 1, y: 1, z: 1} 112 | - name: UpperChest 113 | parentName: Chest 114 | position: {x: -0, y: 0.1034043, z: 0} 115 | rotation: {x: 0, y: -0, z: -0, w: 1} 116 | scale: {x: 1, y: 1, z: 1} 117 | - name: Neck 118 | parentName: UpperChest 119 | position: {x: -0, y: 0.25104657, z: -0.015329581} 120 | rotation: {x: 0.060688436, y: 0, z: -0, w: 0.9981568} 121 | scale: {x: 1, y: 1, z: 1} 122 | - name: Head 123 | parentName: Neck 124 | position: {x: -0, y: 0.12747401, z: 0} 125 | rotation: {x: -0.060688436, y: 0, z: -0, w: 0.9981568} 126 | scale: {x: 1, y: 1, z: 1} 127 | - name: Right_Eye 128 | parentName: Head 129 | position: {x: 0.033303294, y: 0.03459628, z: 0.0867403} 130 | rotation: {x: 0.7071068, y: 8.2834407e-16, z: 0.7071068, w: -8.2834407e-16} 131 | scale: {x: 1, y: 1, z: 1} 132 | - name: Left_Eye 133 | parentName: Head 134 | position: {x: -0.03330326, y: 0.034598116, z: 0.0867403} 135 | rotation: {x: -0, y: 0.7071068, z: 0, w: 0.7071068} 136 | scale: {x: 1, y: 1, z: 1} 137 | - name: Jaw 138 | parentName: Head 139 | position: {x: -0, y: -0.00763539, z: 0.012895278} 140 | rotation: {x: 0.15949209, y: 0.68888485, z: 0.15949209, w: 0.68888485} 141 | scale: {x: 1, y: 1, z: 1} 142 | - name: Neck_Twist_A 143 | parentName: Neck 144 | position: {x: -0, y: 0.063737005, z: 0} 145 | rotation: {x: 0, y: -0, z: -0, w: 1} 146 | scale: {x: 1, y: 1, z: 1} 147 | - name: Left_Shoulder 148 | parentName: UpperChest 149 | position: {x: -0.0009571358, y: 0.19149224, z: -0.0087277945} 150 | rotation: {x: -0.0049494267, y: -0.113521874, z: 0.043275386, w: 0.99258024} 151 | scale: {x: 1, y: 1, z: 1} 152 | - name: Left_UpperArm 153 | parentName: Left_Shoulder 154 | position: {x: -0.16743502, y: -5.684341e-16, z: -2.664535e-17} 155 | rotation: {x: 0.12673508, y: 0.033320725, z: 0.6809724, w: 0.72048914} 156 | scale: {x: 1, y: 1, z: 1} 157 | - name: Left_LowerArm 158 | parentName: Left_UpperArm 159 | position: {x: -2.8421706e-16, y: 0.28508067, z: 0} 160 | rotation: {x: 0.020536544, y: 0.008321507, z: -0.020624323, w: 0.9995417} 161 | scale: {x: 1, y: 1, z: 1} 162 | - name: Left_Hand 163 | parentName: Left_LowerArm 164 | position: {x: -2.4123817e-10, y: 0.24036221, z: -1.4210853e-16} 165 | rotation: {x: -0.047397237, y: -0.24003564, z: 0.013464748, w: 0.9695128} 166 | scale: {x: 1, y: 1, z: 1} 167 | - name: Left_PinkyProximal 168 | parentName: Left_Hand 169 | position: {x: 0.004436847, y: 0.07288173, z: -0.029359013} 170 | rotation: {x: -0.020069664, y: -0.55048966, z: -0.008246744, w: 0.83456} 171 | scale: {x: 1, y: 1, z: 1} 172 | - name: Left_PinkyIntermediate 173 | parentName: Left_PinkyProximal 174 | position: {x: 1.9539922e-16, y: 0.032272622, z: -1.4210853e-16} 175 | rotation: {x: 0.028111596, y: 0.00000017881392, z: 0.0000007916241, w: 0.9996048} 176 | scale: {x: 1, y: 1, z: 1} 177 | - name: Left_PinkyDistal 178 | parentName: Left_PinkyIntermediate 179 | position: {x: -3.5527133e-17, y: 0.020224448, z: -7.1054265e-17} 180 | rotation: {x: 0.03643496, y: 0.00000007135539, z: 0.00000037864467, w: 0.99933606} 181 | scale: {x: 1, y: 1, z: 1} 182 | - name: Left_PinkyDistalEnd 183 | parentName: Left_PinkyDistal 184 | position: {x: -1.2434495e-16, y: 0.018519057, z: 0} 185 | rotation: {x: 0, y: -0, z: -0, w: 1} 186 | scale: {x: 1, y: 1, z: 1} 187 | - name: Left_RingProximal 188 | parentName: Left_Hand 189 | position: {x: 0.009525569, y: 0.08161553, z: -0.012242405} 190 | rotation: {x: -0.017653849, y: -0.6026994, z: -0.0040523997, w: 0.7977627} 191 | scale: {x: 1, y: 1, z: 1} 192 | - name: Left_RingIntermediate 193 | parentName: Left_RingProximal 194 | position: {x: 3.3750777e-16, y: 0.043630484, z: -1.4210853e-16} 195 | rotation: {x: 0.023556646, y: -0.0000001192093, z: -0.000000054016716, w: 0.99972254} 196 | scale: {x: 1, y: 1, z: 1} 197 | - name: Left_RingDistal 198 | parentName: Left_RingIntermediate 199 | position: {x: 1.7763566e-17, y: 0.027115494, z: -1.065814e-16} 200 | rotation: {x: 0.039088424, y: -0.00000006426068, z: -0.00000028266237, w: 0.99923575} 201 | scale: {x: 1, y: 1, z: 1} 202 | - name: Left_RingDistalEnd 203 | parentName: Left_RingDistal 204 | position: {x: -7.105426e-17, y: 0.02095726, z: -7.105426e-17} 205 | rotation: {x: 0, y: -0, z: -0, w: 1} 206 | scale: {x: 1, y: 1, z: 1} 207 | - name: Left_MiddleProximal 208 | parentName: Left_Hand 209 | position: {x: 0.012847862, y: 0.08609763, z: 0.003435423} 210 | rotation: {x: -0.004089733, y: -0.66108114, z: -0.0040015387, w: 0.75029266} 211 | scale: {x: 1, y: 1, z: 1} 212 | - name: Left_MiddleIntermediate 213 | parentName: Left_MiddleProximal 214 | position: {x: 2.7261607e-16, y: 0.051279362, z: 5.988264e-17} 215 | rotation: {x: 0.02623109, y: 0.00000020861621, z: 0.0000006621702, w: 0.99965596} 216 | scale: {x: 1, y: 1, z: 1} 217 | - name: Left_MiddleDistal 218 | parentName: Left_MiddleIntermediate 219 | position: {x: -7.199101e-17, y: 0.028284006, z: -4.93648e-17} 220 | rotation: {x: 0.03347514, y: 0, z: -0, w: 0.9994396} 221 | scale: {x: 1, y: 1, z: 1} 222 | - name: Left_MiddleDistalEnd 223 | parentName: Left_MiddleDistal 224 | position: {x: -1.7763565e-16, y: 0.023346113, z: -7.105426e-17} 225 | rotation: {x: 0, y: -0, z: -0, w: 1} 226 | scale: {x: 1, y: 1, z: 1} 227 | - name: Left_IndexProximal 228 | parentName: Left_Hand 229 | position: {x: 0.007815497, y: 0.0918443, z: 0.02657316} 230 | rotation: {x: -0.00007974913, y: -0.7104806, z: -0.0063057938, w: 0.7036885} 231 | scale: {x: 1, y: 1, z: 1} 232 | - name: Left_IndexIntermediate 233 | parentName: Left_IndexProximal 234 | position: {x: 9.079803e-16, y: 0.04209777, z: 3.2607592e-16} 235 | rotation: {x: 0.030200941, y: -0, z: -0.000001784414, w: 0.9995439} 236 | scale: {x: 1, y: 1, z: 1} 237 | - name: Left_IndexDistal 238 | parentName: Left_IndexIntermediate 239 | position: {x: -8.20111e-16, y: 0.02513925, z: -4.317065e-16} 240 | rotation: {x: 0.03945639, y: -0.0000000546031, z: 0.0000007955681, w: 0.9992213} 241 | scale: {x: 1, y: 1, z: 1} 242 | - name: Left_IndexDistalEnd 243 | parentName: Left_IndexDistal 244 | position: {x: -1.1581012e-16, y: 0.024609203, z: -6.661337e-17} 245 | rotation: {x: 0, y: -0, z: -0, w: 1} 246 | scale: {x: 1, y: 1, z: 1} 247 | - name: Left_ThumbProximal 248 | parentName: Left_Hand 249 | position: {x: -0.00080496486, y: 0.028816883, z: 0.023514476} 250 | rotation: {x: 0.17960395, y: 0.884174, z: 0.4239894, w: -0.07881539} 251 | scale: {x: 1, y: 1, z: 1} 252 | - name: Left_ThumbIntermediate 253 | parentName: Left_ThumbProximal 254 | position: {x: 2.4357445e-15, y: 0.027578257, z: 0.0038183592} 255 | rotation: {x: 0.12780538, y: 0, z: -0, w: 0.9917993} 256 | scale: {x: 1, y: 1, z: 1} 257 | - name: Left_ThumbDistal 258 | parentName: Left_ThumbIntermediate 259 | position: {x: -2.2737365e-15, y: 0.044597257, z: -0.006869915} 260 | rotation: {x: -0.045420934, y: -0.000000030482195, z: 0.000002678266, w: 0.99896795} 261 | scale: {x: 1, y: 1, z: 1} 262 | - name: Left_ThumbDistalEnd 263 | parentName: Left_ThumbDistal 264 | position: {x: -4.2632555e-16, y: 0.029458016, z: 0} 265 | rotation: {x: 0, y: -0, z: -0, w: 1} 266 | scale: {x: 1, y: 1, z: 1} 267 | - name: Right_Shoulder 268 | parentName: UpperChest 269 | position: {x: 0.0009571358, y: 0.19149381, z: -0.008727803} 270 | rotation: {x: 0.99258024, y: -0.043275386, z: -0.113521874, w: 0.0049494267} 271 | scale: {x: 1, y: 1, z: 1} 272 | - name: Right_UpperArm 273 | parentName: Right_Shoulder 274 | position: {x: 0.16743432, y: -0.0000022099182, z: 0.00000012213746} 275 | rotation: {x: 0.12673447, y: 0.033320908, z: 0.68096745, w: 0.7204939} 276 | scale: {x: 1, y: 1, z: 1} 277 | - name: Right_LowerArm 278 | parentName: Right_UpperArm 279 | position: {x: 0.0000037273983, y: -0.285085, z: -0.00000035927226} 280 | rotation: {x: 0.020541213, y: 0.008317428, z: -0.020620946, w: 0.99954176} 281 | scale: {x: 1, y: 1, z: 1} 282 | - name: Right_Hand 283 | parentName: Right_LowerArm 284 | position: {x: 0.0000014923929, y: -0.24036367, z: 0.0000017856368} 285 | rotation: {x: -0.047397237, y: -0.24003564, z: 0.013464748, w: 0.9695128} 286 | scale: {x: 1, y: 1, z: 1} 287 | - name: Right_PinkyProximal 288 | parentName: Right_Hand 289 | position: {x: -0.0044381507, y: -0.07288141, z: 0.029358566} 290 | rotation: {x: -0.02005783, y: -0.55049574, z: -0.008249196, w: 0.8345563} 291 | scale: {x: 1, y: 1, z: 1} 292 | - name: Right_PinkyIntermediate 293 | parentName: Right_PinkyProximal 294 | position: {x: 0.00000045734515, y: -0.032268908, z: 0.00000088312623} 295 | rotation: {x: 0.028116252, y: -0.0000036060806, z: 0.0000013830139, w: 0.9996047} 296 | scale: {x: 1, y: 1, z: 1} 297 | - name: Right_PinkyDistal 298 | parentName: Right_PinkyIntermediate 299 | position: {x: 0.00000023899057, y: -0.02022493, z: 0.00000055474345} 300 | rotation: {x: 0.036431823, y: -0.0000025322572, z: -0.000009713462, w: 0.9993362} 301 | scale: {x: 1, y: 1, z: 1} 302 | - name: Right_PinkyDistalEnd 303 | parentName: Right_PinkyDistal 304 | position: {x: 0.000000632002, y: -0.018518865, z: 0.0000001154108} 305 | rotation: {x: -1.7347236e-17, y: 0, z: -0, w: 1} 306 | scale: {x: 1, y: 1, z: 1} 307 | - name: Right_RingProximal 308 | parentName: Right_Hand 309 | position: {x: -0.00952738, y: -0.08161427, z: 0.012242128} 310 | rotation: {x: -0.01764793, y: -0.6027018, z: -0.004053581, w: 0.7977611} 311 | scale: {x: 1, y: 1, z: 1} 312 | - name: Right_RingIntermediate 313 | parentName: Right_RingProximal 314 | position: {x: 0.0000000695935, y: -0.04362872, z: 0.00000080048335} 315 | rotation: {x: 0.023547076, y: 0.0000018775461, z: 0.0000070193773, w: 0.9997228} 316 | scale: {x: 1, y: 1, z: 1} 317 | - name: Right_RingDistal 318 | parentName: Right_RingIntermediate 319 | position: {x: -0.000000290747, y: -0.02711462, z: 0.0000000181098} 320 | rotation: {x: 0.039100483, y: 0.00000013493441, z: -0.000005457965, w: 0.9992353} 321 | scale: {x: 1, y: 1, z: 1} 322 | - name: Right_RingDistalEnd 323 | parentName: Right_RingDistal 324 | position: {x: 0.00000008856214, y: -0.020957856, z: 0.0000005565459} 325 | rotation: {x: 9.02056e-17, y: -0, z: -0, w: 1} 326 | scale: {x: 1, y: 1, z: 1} 327 | - name: Right_MiddleProximal 328 | parentName: Right_Hand 329 | position: {x: -0.012848663, y: -0.08609768, z: -0.0034359337} 330 | rotation: {x: -0.0040855533, y: -0.6610818, z: -0.0040009613, w: 0.7502921} 331 | scale: {x: 1, y: 1, z: 1} 332 | - name: Right_MiddleIntermediate 333 | parentName: Right_MiddleProximal 334 | position: {x: 0.000000014272595, y: -0.051275954, z: 0.0000009747695} 335 | rotation: {x: 0.026226023, y: -0.0000010430809, z: -0.0000020442524, w: 0.9996561} 336 | scale: {x: 1, y: 1, z: 1} 337 | - name: Right_MiddleDistal 338 | parentName: Right_MiddleIntermediate 339 | position: {x: 0.00000014287376, y: -0.028283618, z: 0.00000019378916} 340 | rotation: {x: 0.03347514, y: 0, z: -0, w: 0.9994396} 341 | scale: {x: 1, y: 1, z: 1} 342 | - name: Right_MiddleDistalEnd 343 | parentName: Right_MiddleDistal 344 | position: {x: 0.000000038619483, y: -0.023345316, z: 0.0000005352584} 345 | rotation: {x: 0, y: -0, z: -0, w: 1} 346 | scale: {x: 1, y: 1, z: 1} 347 | - name: Right_IndexProximal 348 | parentName: Right_Hand 349 | position: {x: -0.0078223245, y: -0.0918393, z: -0.026574574} 350 | rotation: {x: -0.00008779019, y: -0.71048135, z: -0.0063282885, w: 0.70368767} 351 | scale: {x: 1, y: 1, z: 1} 352 | - name: Right_IndexIntermediate 353 | parentName: Right_IndexProximal 354 | position: {x: 0.0000006924457, y: -0.04210151, z: -0.0000013631077} 355 | rotation: {x: 0.030203177, y: -0.0000006556509, z: 0.0000117874415, w: 0.99954385} 356 | scale: {x: 1, y: 1, z: 1} 357 | - name: Right_IndexDistal 358 | parentName: Right_IndexIntermediate 359 | position: {x: -0.00000032847043, y: -0.025139209, z: -0.0000005960629} 360 | rotation: {x: 0.03948152, y: 0.00000010287983, z: -0.0000048513234, w: 0.9992203} 361 | scale: {x: 1, y: 1, z: 1} 362 | - name: Right_IndexDistalEnd 363 | parentName: Right_IndexDistal 364 | position: {x: 0.00000023984484, y: -0.024609355, z: 0.0000006271131} 365 | rotation: {x: -5.5511138e-17, y: 0, z: -0, w: 1} 366 | scale: {x: 1, y: 1, z: 1} 367 | - name: Right_ThumbProximal 368 | parentName: Right_Hand 369 | position: {x: 0.00080341793, y: -0.028816395, z: -0.023514695} 370 | rotation: {x: 0.17960708, y: 0.88417095, z: 0.4239951, w: -0.07881223} 371 | scale: {x: 1, y: 1, z: 1} 372 | - name: Right_ThumbIntermediate 373 | parentName: Right_ThumbProximal 374 | position: {x: 0.00000015009721, y: -0.02757781, z: -0.0038183848} 375 | rotation: {x: 0.12780538, y: 0, z: -0, w: 0.9917993} 376 | scale: {x: 1, y: 1, z: 1} 377 | - name: Right_ThumbDistal 378 | parentName: Right_ThumbIntermediate 379 | position: {x: 0.0000007817755, y: -0.044594634, z: 0.0068707783} 380 | rotation: {x: -0.04541879, y: -0.0000020913224, z: 0.0000065647023, w: 0.998968} 381 | scale: {x: 1, y: 1, z: 1} 382 | - name: Right_ThumbDistalEnd 383 | parentName: Right_ThumbDistal 384 | position: {x: 0.00000020228964, y: -0.029458148, z: 0.0000009551683} 385 | rotation: {x: -2.7755574e-17, y: 0, z: -0, w: 1} 386 | scale: {x: 1, y: 1, z: 1} 387 | - name: Left_UpperLeg 388 | parentName: Hips 389 | position: {x: -0.08610317, y: -0.053458035, z: -0.011470641} 390 | rotation: {x: 0.999839, y: -0.01775374, z: 0.00004630041, w: -0.0026075041} 391 | scale: {x: 1, y: 1, z: 1} 392 | - name: Left_LowerLeg 393 | parentName: Left_UpperLeg 394 | position: {x: -2.9864513e-16, y: 0.4133444, z: -5.4956034e-17} 395 | rotation: {x: 0.034046065, y: 2.2687323e-19, z: 7.7286215e-21, w: 0.9994203} 396 | scale: {x: 1, y: 1, z: 1} 397 | - name: Left_Foot 398 | parentName: Left_LowerLeg 399 | position: {x: 0.0000000017320426, y: 0.41403946, z: 7.141509e-16} 400 | rotation: {x: -0.035700925, y: 0.049957544, z: -0.019575229, w: 0.9979211} 401 | scale: {x: 1, y: 1, z: 1} 402 | - name: Left_Toes 403 | parentName: Left_Foot 404 | position: {x: 7.105427e-17, y: 0.07224803, z: -0.118065506} 405 | rotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068} 406 | scale: {x: 1, y: 1, z: 1} 407 | - name: Left_ToesEnd 408 | parentName: Left_Toes 409 | position: {x: -0.0010026174, y: 0.06423476, z: 0.016843978} 410 | rotation: {x: 0.7070656, y: -0.0076321815, z: -0.0076321815, w: 0.7070656} 411 | scale: {x: 1, y: 1, z: 1} 412 | - name: Right_UpperLeg 413 | parentName: Hips 414 | position: {x: 0.086103186, y: -0.053458147, z: -0.0114706475} 415 | rotation: {x: 0.0026075041, y: 0.00004630041, z: 0.01775374, w: 0.999839} 416 | scale: {x: 1, y: 1, z: 1} 417 | - name: Right_LowerLeg 418 | parentName: Right_UpperLeg 419 | position: {x: 0.0000004514609, y: -0.41334414, z: 0.000000025994435} 420 | rotation: {x: 0.034046065, y: 2.2687323e-19, z: 7.7286215e-21, w: 0.9994203} 421 | scale: {x: 1, y: 1, z: 1} 422 | - name: Right_Foot 423 | parentName: Right_LowerLeg 424 | position: {x: -0.0000007472542, y: -0.41403967, z: -0.000000032847502} 425 | rotation: {x: -0.035700925, y: 0.049957544, z: -0.019575229, w: 0.9979211} 426 | scale: {x: 1, y: 1, z: 1} 427 | - name: Right_Toes 428 | parentName: Right_Foot 429 | position: {x: -0.00000015643121, y: -0.07224799, z: 0.11807} 430 | rotation: {x: -0.7071068, y: 0, z: 0, w: 0.7071068} 431 | scale: {x: 1, y: 1, z: 1} 432 | - name: Right_ToesEnd 433 | parentName: Right_Toes 434 | position: {x: 0.0010031584, y: -0.06423059, z: -0.016843898} 435 | rotation: {x: 0.7070656, y: -0.0076321815, z: -0.0076321815, w: 0.7070656} 436 | scale: {x: 1, y: 1, z: 1} 437 | - name: Geometry 438 | parentName: Armature(Clone) 439 | position: {x: -0, y: 0, z: 0} 440 | rotation: {x: 0, y: -0, z: -0, w: 1} 441 | scale: {x: 1, y: 1, z: 1} 442 | - name: Armature_Mesh 443 | parentName: Geometry 444 | position: {x: -0, y: 0, z: 0} 445 | rotation: {x: 0, y: -0, z: -0, w: 1} 446 | scale: {x: 1, y: 1, z: 1} 447 | armTwist: 0.5 448 | foreArmTwist: 0.5 449 | upperLegTwist: 0.5 450 | legTwist: 0.5 451 | armStretch: 0.05 452 | legStretch: 0.05 453 | feetSpacing: 0 454 | globalScale: 1 455 | rootMotionBoneName: 456 | hasTranslationDoF: 0 457 | hasExtraRoot: 0 458 | skeletonHasParents: 1 459 | lastHumanDescriptionAvatarSource: {instanceID: 0} 460 | autoGenerateAvatarMappingIfUnspecified: 1 461 | animationType: 2 462 | humanoidOversampling: 1 463 | avatarSetup: 1 464 | addHumanoidExtraRootOnlyWhenUsingAvatar: 1 465 | remapMaterialsIfMaterialImportModeIsNone: 0 466 | additionalBone: 0 467 | userData: 468 | assetBundleName: 469 | assetBundleVariant: 470 | -------------------------------------------------------------------------------- /Assets/Models/Locomotion--Run_N.anim.fbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yugo-unity/DecalFakeShadow/4b41e2323be6de5cc1c18a560b464498b071968c/Assets/Models/Locomotion--Run_N.anim.fbx -------------------------------------------------------------------------------- /Assets/Models/Locomotion--Run_N.anim.fbx.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6eb00f3ce93caa14f88ef6b0cd9cff9c 3 | ModelImporter: 4 | serializedVersion: 21300 5 | internalIDToNameTable: 6 | - first: 7 | 74: 6564411413370888346 8 | second: Run_N 9 | externalObjects: {} 10 | materials: 11 | materialImportMode: 0 12 | materialName: 0 13 | materialSearch: 1 14 | materialLocation: 1 15 | animations: 16 | legacyGenerateAnimations: 4 17 | bakeSimulation: 0 18 | resampleCurves: 1 19 | optimizeGameObjects: 0 20 | removeConstantScaleCurves: 1 21 | motionNodeName: 22 | rigImportErrors: 23 | rigImportWarnings: 24 | animationImportErrors: 25 | animationImportWarnings: 26 | animationRetargetingWarnings: 27 | animationDoRetargetingWarnings: 0 28 | importAnimatedCustomProperties: 0 29 | importConstraints: 0 30 | animationCompression: 3 31 | animationRotationError: 0.5 32 | animationPositionError: 0.5 33 | animationScaleError: 0.5 34 | animationWrapMode: 0 35 | extraExposedTransformPaths: [] 36 | extraUserProperties: [] 37 | clipAnimations: 38 | - serializedVersion: 16 39 | name: Run_N 40 | takeName: Run_N 41 | internalID: 0 42 | firstFrame: 0 43 | lastFrame: 20 44 | wrapMode: 0 45 | orientationOffsetY: 0 46 | level: 0 47 | cycleOffset: 0 48 | loop: 0 49 | hasAdditiveReferencePose: 0 50 | loopTime: 1 51 | loopBlend: 0 52 | loopBlendOrientation: 0 53 | loopBlendPositionY: 0 54 | loopBlendPositionXZ: 0 55 | keepOriginalOrientation: 0 56 | keepOriginalPositionY: 1 57 | keepOriginalPositionXZ: 0 58 | heightFromFeet: 0 59 | mirror: 0 60 | bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 61 | curves: [] 62 | events: [] 63 | transformMask: [] 64 | maskType: 3 65 | maskSource: {instanceID: 0} 66 | additiveReferencePoseFrame: 0 67 | isReadable: 0 68 | meshes: 69 | lODScreenPercentages: [] 70 | globalScale: 1 71 | meshCompression: 0 72 | addColliders: 0 73 | useSRGBMaterialColor: 1 74 | sortHierarchyByName: 1 75 | importVisibility: 0 76 | importBlendShapes: 0 77 | importCameras: 0 78 | importLights: 0 79 | nodeNameCollisionStrategy: 1 80 | fileIdsGeneration: 2 81 | swapUVChannels: 0 82 | generateSecondaryUV: 0 83 | useFileUnits: 1 84 | keepQuads: 0 85 | weldVertices: 1 86 | bakeAxisConversion: 0 87 | preserveHierarchy: 0 88 | skinWeightsMode: 0 89 | maxBonesPerVertex: 4 90 | minBoneWeight: 0.001 91 | optimizeBones: 0 92 | meshOptimizationFlags: -1 93 | indexFormat: 0 94 | secondaryUVAngleDistortion: 8 95 | secondaryUVAreaDistortion: 15.000001 96 | secondaryUVHardAngle: 88 97 | secondaryUVMarginMethod: 1 98 | secondaryUVMinLightmapResolution: 40 99 | secondaryUVMinObjectScale: 1 100 | secondaryUVPackMargin: 4 101 | useFileScale: 1 102 | tangentSpace: 103 | normalSmoothAngle: 60 104 | normalImportMode: 2 105 | tangentImportMode: 2 106 | normalCalculationMode: 4 107 | legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 108 | blendShapeNormalImportMode: 2 109 | normalSmoothingSource: 0 110 | referencedClips: [] 111 | importAnimation: 1 112 | humanDescription: 113 | serializedVersion: 3 114 | human: [] 115 | skeleton: 116 | - name: Armature(Clone) 117 | parentName: 118 | position: {x: -0, y: 0, z: 0} 119 | rotation: {x: 0, y: -0, z: -0, w: 1} 120 | scale: {x: 1, y: 1, z: 1} 121 | - name: Skeleton 122 | parentName: Armature(Clone) 123 | position: {x: -0, y: 0, z: 0} 124 | rotation: {x: 0, y: -0, z: -0, w: 1} 125 | scale: {x: 1, y: 1, z: 1} 126 | - name: Hips 127 | parentName: Skeleton 128 | position: {x: -0, y: 0.9810986, z: -0.01590455} 129 | rotation: {x: 0, y: -0, z: -0, w: 1} 130 | scale: {x: 1, y: 1, z: 1} 131 | - name: Spine 132 | parentName: Hips 133 | position: {x: -0, y: 0.058229383, z: 0.0012229546} 134 | rotation: {x: 0, y: -0, z: -0, w: 1} 135 | scale: {x: 1, y: 1, z: 1} 136 | - name: Chest 137 | parentName: Spine 138 | position: {x: -0, y: 0.1034043, z: 0} 139 | rotation: {x: 0, y: -0, z: -0, w: 1} 140 | scale: {x: 1, y: 1, z: 1} 141 | - name: UpperChest 142 | parentName: Chest 143 | position: {x: -0, y: 0.1034043, z: 0} 144 | rotation: {x: 0, y: -0, z: -0, w: 1} 145 | scale: {x: 1, y: 1, z: 1} 146 | - name: Neck 147 | parentName: UpperChest 148 | position: {x: -0, y: 0.25104657, z: -0.015329581} 149 | rotation: {x: 0.060688436, y: 0, z: -0, w: 0.9981568} 150 | scale: {x: 1, y: 1, z: 1} 151 | - name: Head 152 | parentName: Neck 153 | position: {x: -0, y: 0.12747401, z: 0} 154 | rotation: {x: -0.060688436, y: 0, z: -0, w: 0.9981568} 155 | scale: {x: 1, y: 1, z: 1} 156 | - name: Right_Eye 157 | parentName: Head 158 | position: {x: 0.033303294, y: 0.03459628, z: 0.0867403} 159 | rotation: {x: 0.7071068, y: 8.2834407e-16, z: 0.7071068, w: -8.2834407e-16} 160 | scale: {x: 1, y: 1, z: 1} 161 | - name: Left_Eye 162 | parentName: Head 163 | position: {x: -0.03330326, y: 0.034598116, z: 0.0867403} 164 | rotation: {x: -0, y: 0.7071068, z: 0, w: 0.7071068} 165 | scale: {x: 1, y: 1, z: 1} 166 | - name: Jaw 167 | parentName: Head 168 | position: {x: -0, y: -0.00763539, z: 0.012895278} 169 | rotation: {x: 0.15949209, y: 0.68888485, z: 0.15949209, w: 0.68888485} 170 | scale: {x: 1, y: 1, z: 1} 171 | - name: Neck_Twist_A 172 | parentName: Neck 173 | position: {x: -0, y: 0.063737005, z: 0} 174 | rotation: {x: 0, y: -0, z: -0, w: 1} 175 | scale: {x: 1, y: 1, z: 1} 176 | - name: Left_Shoulder 177 | parentName: UpperChest 178 | position: {x: -0.0009571358, y: 0.19149224, z: -0.0087277945} 179 | rotation: {x: -0.0049494267, y: -0.113521874, z: 0.043275386, w: 0.99258024} 180 | scale: {x: 1, y: 1, z: 1} 181 | - name: Left_UpperArm 182 | parentName: Left_Shoulder 183 | position: {x: -0.16743502, y: -5.684341e-16, z: -2.664535e-17} 184 | rotation: {x: 0.12673508, y: 0.033320725, z: 0.6809724, w: 0.72048914} 185 | scale: {x: 1, y: 1, z: 1} 186 | - name: Left_LowerArm 187 | parentName: Left_UpperArm 188 | position: {x: -2.8421706e-16, y: 0.28508067, z: 0} 189 | rotation: {x: 0.020536544, y: 0.008321507, z: -0.020624323, w: 0.9995417} 190 | scale: {x: 1, y: 1, z: 1} 191 | - name: Left_Hand 192 | parentName: Left_LowerArm 193 | position: {x: -2.4123817e-10, y: 0.24036221, z: -1.4210853e-16} 194 | rotation: {x: -0.047397237, y: -0.24003564, z: 0.013464748, w: 0.9695128} 195 | scale: {x: 1, y: 1, z: 1} 196 | - name: Left_PinkyProximal 197 | parentName: Left_Hand 198 | position: {x: 0.004436847, y: 0.07288173, z: -0.029359013} 199 | rotation: {x: -0.020069664, y: -0.55048966, z: -0.008246744, w: 0.83456} 200 | scale: {x: 1, y: 1, z: 1} 201 | - name: Left_PinkyIntermediate 202 | parentName: Left_PinkyProximal 203 | position: {x: 1.9539922e-16, y: 0.032272622, z: -1.4210853e-16} 204 | rotation: {x: 0.028111596, y: 0.00000017881392, z: 0.0000007916241, w: 0.9996048} 205 | scale: {x: 1, y: 1, z: 1} 206 | - name: Left_PinkyDistal 207 | parentName: Left_PinkyIntermediate 208 | position: {x: -3.5527133e-17, y: 0.020224448, z: -7.1054265e-17} 209 | rotation: {x: 0.03643496, y: 0.00000007135539, z: 0.00000037864467, w: 0.99933606} 210 | scale: {x: 1, y: 1, z: 1} 211 | - name: Left_PinkyDistalEnd 212 | parentName: Left_PinkyDistal 213 | position: {x: -1.2434495e-16, y: 0.018519057, z: 0} 214 | rotation: {x: 0, y: -0, z: -0, w: 1} 215 | scale: {x: 1, y: 1, z: 1} 216 | - name: Left_RingProximal 217 | parentName: Left_Hand 218 | position: {x: 0.009525569, y: 0.08161553, z: -0.012242405} 219 | rotation: {x: -0.017653849, y: -0.6026994, z: -0.0040523997, w: 0.7977627} 220 | scale: {x: 1, y: 1, z: 1} 221 | - name: Left_RingIntermediate 222 | parentName: Left_RingProximal 223 | position: {x: 3.3750777e-16, y: 0.043630484, z: -1.4210853e-16} 224 | rotation: {x: 0.023556646, y: -0.0000001192093, z: -0.000000054016716, w: 0.99972254} 225 | scale: {x: 1, y: 1, z: 1} 226 | - name: Left_RingDistal 227 | parentName: Left_RingIntermediate 228 | position: {x: 1.7763566e-17, y: 0.027115494, z: -1.065814e-16} 229 | rotation: {x: 0.039088424, y: -0.00000006426068, z: -0.00000028266237, w: 0.99923575} 230 | scale: {x: 1, y: 1, z: 1} 231 | - name: Left_RingDistalEnd 232 | parentName: Left_RingDistal 233 | position: {x: -7.105426e-17, y: 0.02095726, z: -7.105426e-17} 234 | rotation: {x: 0, y: -0, z: -0, w: 1} 235 | scale: {x: 1, y: 1, z: 1} 236 | - name: Left_MiddleProximal 237 | parentName: Left_Hand 238 | position: {x: 0.012847862, y: 0.08609763, z: 0.003435423} 239 | rotation: {x: -0.004089733, y: -0.66108114, z: -0.0040015387, w: 0.75029266} 240 | scale: {x: 1, y: 1, z: 1} 241 | - name: Left_MiddleIntermediate 242 | parentName: Left_MiddleProximal 243 | position: {x: 2.7261607e-16, y: 0.051279362, z: 5.988264e-17} 244 | rotation: {x: 0.02623109, y: 0.00000020861621, z: 0.0000006621702, w: 0.99965596} 245 | scale: {x: 1, y: 1, z: 1} 246 | - name: Left_MiddleDistal 247 | parentName: Left_MiddleIntermediate 248 | position: {x: -7.199101e-17, y: 0.028284006, z: -4.93648e-17} 249 | rotation: {x: 0.03347514, y: 0, z: -0, w: 0.9994396} 250 | scale: {x: 1, y: 1, z: 1} 251 | - name: Left_MiddleDistalEnd 252 | parentName: Left_MiddleDistal 253 | position: {x: -1.7763565e-16, y: 0.023346113, z: -7.105426e-17} 254 | rotation: {x: 0, y: -0, z: -0, w: 1} 255 | scale: {x: 1, y: 1, z: 1} 256 | - name: Left_IndexProximal 257 | parentName: Left_Hand 258 | position: {x: 0.007815497, y: 0.0918443, z: 0.02657316} 259 | rotation: {x: -0.00007974913, y: -0.7104806, z: -0.0063057938, w: 0.7036885} 260 | scale: {x: 1, y: 1, z: 1} 261 | - name: Left_IndexIntermediate 262 | parentName: Left_IndexProximal 263 | position: {x: 9.079803e-16, y: 0.04209777, z: 3.2607592e-16} 264 | rotation: {x: 0.030200941, y: -0, z: -0.000001784414, w: 0.9995439} 265 | scale: {x: 1, y: 1, z: 1} 266 | - name: Left_IndexDistal 267 | parentName: Left_IndexIntermediate 268 | position: {x: -8.20111e-16, y: 0.02513925, z: -4.317065e-16} 269 | rotation: {x: 0.03945639, y: -0.0000000546031, z: 0.0000007955681, w: 0.9992213} 270 | scale: {x: 1, y: 1, z: 1} 271 | - name: Left_IndexDistalEnd 272 | parentName: Left_IndexDistal 273 | position: {x: -1.1581012e-16, y: 0.024609203, z: -6.661337e-17} 274 | rotation: {x: 0, y: -0, z: -0, w: 1} 275 | scale: {x: 1, y: 1, z: 1} 276 | - name: Left_ThumbProximal 277 | parentName: Left_Hand 278 | position: {x: -0.00080496486, y: 0.028816883, z: 0.023514476} 279 | rotation: {x: 0.17960395, y: 0.884174, z: 0.4239894, w: -0.07881539} 280 | scale: {x: 1, y: 1, z: 1} 281 | - name: Left_ThumbIntermediate 282 | parentName: Left_ThumbProximal 283 | position: {x: 2.4357445e-15, y: 0.027578257, z: 0.0038183592} 284 | rotation: {x: 0.12780538, y: 0, z: -0, w: 0.9917993} 285 | scale: {x: 1, y: 1, z: 1} 286 | - name: Left_ThumbDistal 287 | parentName: Left_ThumbIntermediate 288 | position: {x: -2.2737365e-15, y: 0.044597257, z: -0.006869915} 289 | rotation: {x: -0.045420934, y: -0.000000030482195, z: 0.000002678266, w: 0.99896795} 290 | scale: {x: 1, y: 1, z: 1} 291 | - name: Left_ThumbDistalEnd 292 | parentName: Left_ThumbDistal 293 | position: {x: -4.2632555e-16, y: 0.029458016, z: 0} 294 | rotation: {x: 0, y: -0, z: -0, w: 1} 295 | scale: {x: 1, y: 1, z: 1} 296 | - name: Right_Shoulder 297 | parentName: UpperChest 298 | position: {x: 0.0009571358, y: 0.19149381, z: -0.008727803} 299 | rotation: {x: 0.99258024, y: -0.043275386, z: -0.113521874, w: 0.0049494267} 300 | scale: {x: 1, y: 1, z: 1} 301 | - name: Right_UpperArm 302 | parentName: Right_Shoulder 303 | position: {x: 0.16743432, y: -0.0000022099182, z: 0.00000012213746} 304 | rotation: {x: 0.12673447, y: 0.033320908, z: 0.68096745, w: 0.7204939} 305 | scale: {x: 1, y: 1, z: 1} 306 | - name: Right_LowerArm 307 | parentName: Right_UpperArm 308 | position: {x: 0.0000037273983, y: -0.285085, z: -0.00000035927226} 309 | rotation: {x: 0.020541213, y: 0.008317428, z: -0.020620946, w: 0.99954176} 310 | scale: {x: 1, y: 1, z: 1} 311 | - name: Right_Hand 312 | parentName: Right_LowerArm 313 | position: {x: 0.0000014923929, y: -0.24036367, z: 0.0000017856368} 314 | rotation: {x: -0.047397237, y: -0.24003564, z: 0.013464748, w: 0.9695128} 315 | scale: {x: 1, y: 1, z: 1} 316 | - name: Right_PinkyProximal 317 | parentName: Right_Hand 318 | position: {x: -0.0044381507, y: -0.07288141, z: 0.029358566} 319 | rotation: {x: -0.02005783, y: -0.55049574, z: -0.008249196, w: 0.8345563} 320 | scale: {x: 1, y: 1, z: 1} 321 | - name: Right_PinkyIntermediate 322 | parentName: Right_PinkyProximal 323 | position: {x: 0.00000045734515, y: -0.032268908, z: 0.00000088312623} 324 | rotation: {x: 0.028116252, y: -0.0000036060806, z: 0.0000013830139, w: 0.9996047} 325 | scale: {x: 1, y: 1, z: 1} 326 | - name: Right_PinkyDistal 327 | parentName: Right_PinkyIntermediate 328 | position: {x: 0.00000023899057, y: -0.02022493, z: 0.00000055474345} 329 | rotation: {x: 0.036431823, y: -0.0000025322572, z: -0.000009713462, w: 0.9993362} 330 | scale: {x: 1, y: 1, z: 1} 331 | - name: Right_PinkyDistalEnd 332 | parentName: Right_PinkyDistal 333 | position: {x: 0.000000632002, y: -0.018518865, z: 0.0000001154108} 334 | rotation: {x: -1.7347236e-17, y: 0, z: -0, w: 1} 335 | scale: {x: 1, y: 1, z: 1} 336 | - name: Right_RingProximal 337 | parentName: Right_Hand 338 | position: {x: -0.00952738, y: -0.08161427, z: 0.012242128} 339 | rotation: {x: -0.01764793, y: -0.6027018, z: -0.004053581, w: 0.7977611} 340 | scale: {x: 1, y: 1, z: 1} 341 | - name: Right_RingIntermediate 342 | parentName: Right_RingProximal 343 | position: {x: 0.0000000695935, y: -0.04362872, z: 0.00000080048335} 344 | rotation: {x: 0.023547076, y: 0.0000018775461, z: 0.0000070193773, w: 0.9997228} 345 | scale: {x: 1, y: 1, z: 1} 346 | - name: Right_RingDistal 347 | parentName: Right_RingIntermediate 348 | position: {x: -0.000000290747, y: -0.02711462, z: 0.0000000181098} 349 | rotation: {x: 0.039100483, y: 0.00000013493441, z: -0.000005457965, w: 0.9992353} 350 | scale: {x: 1, y: 1, z: 1} 351 | - name: Right_RingDistalEnd 352 | parentName: Right_RingDistal 353 | position: {x: 0.00000008856214, y: -0.020957856, z: 0.0000005565459} 354 | rotation: {x: 9.02056e-17, y: -0, z: -0, w: 1} 355 | scale: {x: 1, y: 1, z: 1} 356 | - name: Right_MiddleProximal 357 | parentName: Right_Hand 358 | position: {x: -0.012848663, y: -0.08609768, z: -0.0034359337} 359 | rotation: {x: -0.0040855533, y: -0.6610818, z: -0.0040009613, w: 0.7502921} 360 | scale: {x: 1, y: 1, z: 1} 361 | - name: Right_MiddleIntermediate 362 | parentName: Right_MiddleProximal 363 | position: {x: 0.000000014272595, y: -0.051275954, z: 0.0000009747695} 364 | rotation: {x: 0.026226023, y: -0.0000010430809, z: -0.0000020442524, w: 0.9996561} 365 | scale: {x: 1, y: 1, z: 1} 366 | - name: Right_MiddleDistal 367 | parentName: Right_MiddleIntermediate 368 | position: {x: 0.00000014287376, y: -0.028283618, z: 0.00000019378916} 369 | rotation: {x: 0.03347514, y: 0, z: -0, w: 0.9994396} 370 | scale: {x: 1, y: 1, z: 1} 371 | - name: Right_MiddleDistalEnd 372 | parentName: Right_MiddleDistal 373 | position: {x: 0.000000038619483, y: -0.023345316, z: 0.0000005352584} 374 | rotation: {x: 0, y: -0, z: -0, w: 1} 375 | scale: {x: 1, y: 1, z: 1} 376 | - name: Right_IndexProximal 377 | parentName: Right_Hand 378 | position: {x: -0.0078223245, y: -0.0918393, z: -0.026574574} 379 | rotation: {x: -0.00008779019, y: -0.71048135, z: -0.0063282885, w: 0.70368767} 380 | scale: {x: 1, y: 1, z: 1} 381 | - name: Right_IndexIntermediate 382 | parentName: Right_IndexProximal 383 | position: {x: 0.0000006924457, y: -0.04210151, z: -0.0000013631077} 384 | rotation: {x: 0.030203177, y: -0.0000006556509, z: 0.0000117874415, w: 0.99954385} 385 | scale: {x: 1, y: 1, z: 1} 386 | - name: Right_IndexDistal 387 | parentName: Right_IndexIntermediate 388 | position: {x: -0.00000032847043, y: -0.025139209, z: -0.0000005960629} 389 | rotation: {x: 0.03948152, y: 0.00000010287983, z: -0.0000048513234, w: 0.9992203} 390 | scale: {x: 1, y: 1, z: 1} 391 | - name: Right_IndexDistalEnd 392 | parentName: Right_IndexDistal 393 | position: {x: 0.00000023984484, y: -0.024609355, z: 0.0000006271131} 394 | rotation: {x: -5.5511138e-17, y: 0, z: -0, w: 1} 395 | scale: {x: 1, y: 1, z: 1} 396 | - name: Right_ThumbProximal 397 | parentName: Right_Hand 398 | position: {x: 0.00080341793, y: -0.028816395, z: -0.023514695} 399 | rotation: {x: 0.17960708, y: 0.88417095, z: 0.4239951, w: -0.07881223} 400 | scale: {x: 1, y: 1, z: 1} 401 | - name: Right_ThumbIntermediate 402 | parentName: Right_ThumbProximal 403 | position: {x: 0.00000015009721, y: -0.02757781, z: -0.0038183848} 404 | rotation: {x: 0.12780538, y: 0, z: -0, w: 0.9917993} 405 | scale: {x: 1, y: 1, z: 1} 406 | - name: Right_ThumbDistal 407 | parentName: Right_ThumbIntermediate 408 | position: {x: 0.0000007817755, y: -0.044594634, z: 0.0068707783} 409 | rotation: {x: -0.04541879, y: -0.0000020913224, z: 0.0000065647023, w: 0.998968} 410 | scale: {x: 1, y: 1, z: 1} 411 | - name: Right_ThumbDistalEnd 412 | parentName: Right_ThumbDistal 413 | position: {x: 0.00000020228964, y: -0.029458148, z: 0.0000009551683} 414 | rotation: {x: -2.7755574e-17, y: 0, z: -0, w: 1} 415 | scale: {x: 1, y: 1, z: 1} 416 | - name: Left_UpperLeg 417 | parentName: Hips 418 | position: {x: -0.08610317, y: -0.053458035, z: -0.011470641} 419 | rotation: {x: 0.999839, y: -0.01775374, z: 0.00004630041, w: -0.0026075041} 420 | scale: {x: 1, y: 1, z: 1} 421 | - name: Left_LowerLeg 422 | parentName: Left_UpperLeg 423 | position: {x: -2.9864513e-16, y: 0.4133444, z: -5.4956034e-17} 424 | rotation: {x: 0.034046065, y: 2.2687323e-19, z: 7.7286215e-21, w: 0.9994203} 425 | scale: {x: 1, y: 1, z: 1} 426 | - name: Left_Foot 427 | parentName: Left_LowerLeg 428 | position: {x: 0.0000000017320426, y: 0.41403946, z: 7.141509e-16} 429 | rotation: {x: -0.035700925, y: 0.049957544, z: -0.019575229, w: 0.9979211} 430 | scale: {x: 1, y: 1, z: 1} 431 | - name: Left_Toes 432 | parentName: Left_Foot 433 | position: {x: 7.105427e-17, y: 0.07224803, z: -0.118065506} 434 | rotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068} 435 | scale: {x: 1, y: 1, z: 1} 436 | - name: Left_ToesEnd 437 | parentName: Left_Toes 438 | position: {x: -0.0010026174, y: 0.06423476, z: 0.016843978} 439 | rotation: {x: 0.7070656, y: -0.0076321815, z: -0.0076321815, w: 0.7070656} 440 | scale: {x: 1, y: 1, z: 1} 441 | - name: Right_UpperLeg 442 | parentName: Hips 443 | position: {x: 0.086103186, y: -0.053458147, z: -0.0114706475} 444 | rotation: {x: 0.0026075041, y: 0.00004630041, z: 0.01775374, w: 0.999839} 445 | scale: {x: 1, y: 1, z: 1} 446 | - name: Right_LowerLeg 447 | parentName: Right_UpperLeg 448 | position: {x: 0.0000004514609, y: -0.41334414, z: 0.000000025994435} 449 | rotation: {x: 0.034046065, y: 2.2687323e-19, z: 7.7286215e-21, w: 0.9994203} 450 | scale: {x: 1, y: 1, z: 1} 451 | - name: Right_Foot 452 | parentName: Right_LowerLeg 453 | position: {x: -0.0000007472542, y: -0.41403967, z: -0.000000032847502} 454 | rotation: {x: -0.035700925, y: 0.049957544, z: -0.019575229, w: 0.9979211} 455 | scale: {x: 1, y: 1, z: 1} 456 | - name: Right_Toes 457 | parentName: Right_Foot 458 | position: {x: -0.00000015643121, y: -0.07224799, z: 0.11807} 459 | rotation: {x: -0.7071068, y: 0, z: 0, w: 0.7071068} 460 | scale: {x: 1, y: 1, z: 1} 461 | - name: Right_ToesEnd 462 | parentName: Right_Toes 463 | position: {x: 0.0010031584, y: -0.06423059, z: -0.016843898} 464 | rotation: {x: 0.7070656, y: -0.0076321815, z: -0.0076321815, w: 0.7070656} 465 | scale: {x: 1, y: 1, z: 1} 466 | - name: Geometry 467 | parentName: Armature(Clone) 468 | position: {x: -0, y: 0, z: 0} 469 | rotation: {x: 0, y: -0, z: -0, w: 1} 470 | scale: {x: 1, y: 1, z: 1} 471 | - name: Armature_Mesh 472 | parentName: Geometry 473 | position: {x: -0, y: 0, z: 0} 474 | rotation: {x: 0, y: -0, z: -0, w: 1} 475 | scale: {x: 1, y: 1, z: 1} 476 | armTwist: 0.5 477 | foreArmTwist: 0.5 478 | upperLegTwist: 0.5 479 | legTwist: 0.5 480 | armStretch: 0.05 481 | legStretch: 0.05 482 | feetSpacing: 0 483 | globalScale: 1 484 | rootMotionBoneName: 485 | hasTranslationDoF: 0 486 | hasExtraRoot: 0 487 | skeletonHasParents: 1 488 | lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: c1c632b1b9185bc43aafd480e0799531, type: 3} 489 | autoGenerateAvatarMappingIfUnspecified: 1 490 | animationType: 2 491 | humanoidOversampling: 1 492 | avatarSetup: 2 493 | addHumanoidExtraRootOnlyWhenUsingAvatar: 1 494 | remapMaterialsIfMaterialImportModeIsNone: 0 495 | additionalBone: 0 496 | userData: 497 | assetBundleName: 498 | assetBundleVariant: 499 | -------------------------------------------------------------------------------- /Assets/Models/Locomotion--Walk_N.anim.fbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yugo-unity/DecalFakeShadow/4b41e2323be6de5cc1c18a560b464498b071968c/Assets/Models/Locomotion--Walk_N.anim.fbx -------------------------------------------------------------------------------- /Assets/Models/Locomotion--Walk_N.anim.fbx.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 75a7a0259764f9a4a8fc60bc4443bd67 3 | ModelImporter: 4 | serializedVersion: 21300 5 | internalIDToNameTable: 6 | - first: 7 | 74: 1657602633327794031 8 | second: Walk_N 9 | externalObjects: {} 10 | materials: 11 | materialImportMode: 0 12 | materialName: 0 13 | materialSearch: 1 14 | materialLocation: 1 15 | animations: 16 | legacyGenerateAnimations: 4 17 | bakeSimulation: 0 18 | resampleCurves: 1 19 | optimizeGameObjects: 0 20 | removeConstantScaleCurves: 1 21 | motionNodeName: 22 | rigImportErrors: 23 | rigImportWarnings: 24 | animationImportErrors: 25 | animationImportWarnings: 26 | animationRetargetingWarnings: 27 | animationDoRetargetingWarnings: 0 28 | importAnimatedCustomProperties: 0 29 | importConstraints: 0 30 | animationCompression: 3 31 | animationRotationError: 0.5 32 | animationPositionError: 0.5 33 | animationScaleError: 0.5 34 | animationWrapMode: 0 35 | extraExposedTransformPaths: [] 36 | extraUserProperties: [] 37 | clipAnimations: 38 | - serializedVersion: 16 39 | name: Walk_N 40 | takeName: Walk_N 41 | internalID: 0 42 | firstFrame: 0 43 | lastFrame: 29 44 | wrapMode: 0 45 | orientationOffsetY: 0 46 | level: 0 47 | cycleOffset: 0 48 | loop: 0 49 | hasAdditiveReferencePose: 0 50 | loopTime: 1 51 | loopBlend: 0 52 | loopBlendOrientation: 0 53 | loopBlendPositionY: 0 54 | loopBlendPositionXZ: 0 55 | keepOriginalOrientation: 0 56 | keepOriginalPositionY: 1 57 | keepOriginalPositionXZ: 0 58 | heightFromFeet: 0 59 | mirror: 0 60 | bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 61 | curves: [] 62 | events: [] 63 | transformMask: [] 64 | maskType: 3 65 | maskSource: {instanceID: 0} 66 | additiveReferencePoseFrame: 0 67 | isReadable: 0 68 | meshes: 69 | lODScreenPercentages: [] 70 | globalScale: 1 71 | meshCompression: 0 72 | addColliders: 0 73 | useSRGBMaterialColor: 1 74 | sortHierarchyByName: 1 75 | importVisibility: 0 76 | importBlendShapes: 0 77 | importCameras: 0 78 | importLights: 0 79 | nodeNameCollisionStrategy: 1 80 | fileIdsGeneration: 2 81 | swapUVChannels: 0 82 | generateSecondaryUV: 0 83 | useFileUnits: 1 84 | keepQuads: 0 85 | weldVertices: 1 86 | bakeAxisConversion: 0 87 | preserveHierarchy: 0 88 | skinWeightsMode: 0 89 | maxBonesPerVertex: 4 90 | minBoneWeight: 0.001 91 | optimizeBones: 0 92 | meshOptimizationFlags: -1 93 | indexFormat: 0 94 | secondaryUVAngleDistortion: 8 95 | secondaryUVAreaDistortion: 15.000001 96 | secondaryUVHardAngle: 88 97 | secondaryUVMarginMethod: 1 98 | secondaryUVMinLightmapResolution: 40 99 | secondaryUVMinObjectScale: 1 100 | secondaryUVPackMargin: 4 101 | useFileScale: 1 102 | tangentSpace: 103 | normalSmoothAngle: 60 104 | normalImportMode: 2 105 | tangentImportMode: 2 106 | normalCalculationMode: 4 107 | legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 108 | blendShapeNormalImportMode: 2 109 | normalSmoothingSource: 0 110 | referencedClips: [] 111 | importAnimation: 1 112 | humanDescription: 113 | serializedVersion: 3 114 | human: [] 115 | skeleton: 116 | - name: Armature(Clone) 117 | parentName: 118 | position: {x: -0, y: 0, z: 0} 119 | rotation: {x: 0, y: -0, z: -0, w: 1} 120 | scale: {x: 1, y: 1, z: 1} 121 | - name: Skeleton 122 | parentName: Armature(Clone) 123 | position: {x: -0, y: 0, z: 0} 124 | rotation: {x: 0, y: -0, z: -0, w: 1} 125 | scale: {x: 1, y: 1, z: 1} 126 | - name: Hips 127 | parentName: Skeleton 128 | position: {x: -0, y: 0.9810986, z: -0.01590455} 129 | rotation: {x: 0, y: -0, z: -0, w: 1} 130 | scale: {x: 1, y: 1, z: 1} 131 | - name: Spine 132 | parentName: Hips 133 | position: {x: -0, y: 0.058229383, z: 0.0012229546} 134 | rotation: {x: 0, y: -0, z: -0, w: 1} 135 | scale: {x: 1, y: 1, z: 1} 136 | - name: Chest 137 | parentName: Spine 138 | position: {x: -0, y: 0.1034043, z: 0} 139 | rotation: {x: 0, y: -0, z: -0, w: 1} 140 | scale: {x: 1, y: 1, z: 1} 141 | - name: UpperChest 142 | parentName: Chest 143 | position: {x: -0, y: 0.1034043, z: 0} 144 | rotation: {x: 0, y: -0, z: -0, w: 1} 145 | scale: {x: 1, y: 1, z: 1} 146 | - name: Neck 147 | parentName: UpperChest 148 | position: {x: -0, y: 0.25104657, z: -0.015329581} 149 | rotation: {x: 0.060688436, y: 0, z: -0, w: 0.9981568} 150 | scale: {x: 1, y: 1, z: 1} 151 | - name: Head 152 | parentName: Neck 153 | position: {x: -0, y: 0.12747401, z: 0} 154 | rotation: {x: -0.060688436, y: 0, z: -0, w: 0.9981568} 155 | scale: {x: 1, y: 1, z: 1} 156 | - name: Right_Eye 157 | parentName: Head 158 | position: {x: 0.033303294, y: 0.03459628, z: 0.0867403} 159 | rotation: {x: 0.7071068, y: 8.2834407e-16, z: 0.7071068, w: -8.2834407e-16} 160 | scale: {x: 1, y: 1, z: 1} 161 | - name: Left_Eye 162 | parentName: Head 163 | position: {x: -0.03330326, y: 0.034598116, z: 0.0867403} 164 | rotation: {x: -0, y: 0.7071068, z: 0, w: 0.7071068} 165 | scale: {x: 1, y: 1, z: 1} 166 | - name: Jaw 167 | parentName: Head 168 | position: {x: -0, y: -0.00763539, z: 0.012895278} 169 | rotation: {x: 0.15949209, y: 0.68888485, z: 0.15949209, w: 0.68888485} 170 | scale: {x: 1, y: 1, z: 1} 171 | - name: Neck_Twist_A 172 | parentName: Neck 173 | position: {x: -0, y: 0.063737005, z: 0} 174 | rotation: {x: 0, y: -0, z: -0, w: 1} 175 | scale: {x: 1, y: 1, z: 1} 176 | - name: Left_Shoulder 177 | parentName: UpperChest 178 | position: {x: -0.0009571358, y: 0.19149224, z: -0.0087277945} 179 | rotation: {x: -0.0049494267, y: -0.113521874, z: 0.043275386, w: 0.99258024} 180 | scale: {x: 1, y: 1, z: 1} 181 | - name: Left_UpperArm 182 | parentName: Left_Shoulder 183 | position: {x: -0.16743502, y: -5.684341e-16, z: -2.664535e-17} 184 | rotation: {x: 0.12673508, y: 0.033320725, z: 0.6809724, w: 0.72048914} 185 | scale: {x: 1, y: 1, z: 1} 186 | - name: Left_LowerArm 187 | parentName: Left_UpperArm 188 | position: {x: -2.8421706e-16, y: 0.28508067, z: 0} 189 | rotation: {x: 0.020536544, y: 0.008321507, z: -0.020624323, w: 0.9995417} 190 | scale: {x: 1, y: 1, z: 1} 191 | - name: Left_Hand 192 | parentName: Left_LowerArm 193 | position: {x: -2.4123817e-10, y: 0.24036221, z: -1.4210853e-16} 194 | rotation: {x: -0.047397237, y: -0.24003564, z: 0.013464748, w: 0.9695128} 195 | scale: {x: 1, y: 1, z: 1} 196 | - name: Left_PinkyProximal 197 | parentName: Left_Hand 198 | position: {x: 0.004436847, y: 0.07288173, z: -0.029359013} 199 | rotation: {x: -0.020069664, y: -0.55048966, z: -0.008246744, w: 0.83456} 200 | scale: {x: 1, y: 1, z: 1} 201 | - name: Left_PinkyIntermediate 202 | parentName: Left_PinkyProximal 203 | position: {x: 1.9539922e-16, y: 0.032272622, z: -1.4210853e-16} 204 | rotation: {x: 0.028111596, y: 0.00000017881392, z: 0.0000007916241, w: 0.9996048} 205 | scale: {x: 1, y: 1, z: 1} 206 | - name: Left_PinkyDistal 207 | parentName: Left_PinkyIntermediate 208 | position: {x: -3.5527133e-17, y: 0.020224448, z: -7.1054265e-17} 209 | rotation: {x: 0.03643496, y: 0.00000007135539, z: 0.00000037864467, w: 0.99933606} 210 | scale: {x: 1, y: 1, z: 1} 211 | - name: Left_PinkyDistalEnd 212 | parentName: Left_PinkyDistal 213 | position: {x: -1.2434495e-16, y: 0.018519057, z: 0} 214 | rotation: {x: 0, y: -0, z: -0, w: 1} 215 | scale: {x: 1, y: 1, z: 1} 216 | - name: Left_RingProximal 217 | parentName: Left_Hand 218 | position: {x: 0.009525569, y: 0.08161553, z: -0.012242405} 219 | rotation: {x: -0.017653849, y: -0.6026994, z: -0.0040523997, w: 0.7977627} 220 | scale: {x: 1, y: 1, z: 1} 221 | - name: Left_RingIntermediate 222 | parentName: Left_RingProximal 223 | position: {x: 3.3750777e-16, y: 0.043630484, z: -1.4210853e-16} 224 | rotation: {x: 0.023556646, y: -0.0000001192093, z: -0.000000054016716, w: 0.99972254} 225 | scale: {x: 1, y: 1, z: 1} 226 | - name: Left_RingDistal 227 | parentName: Left_RingIntermediate 228 | position: {x: 1.7763566e-17, y: 0.027115494, z: -1.065814e-16} 229 | rotation: {x: 0.039088424, y: -0.00000006426068, z: -0.00000028266237, w: 0.99923575} 230 | scale: {x: 1, y: 1, z: 1} 231 | - name: Left_RingDistalEnd 232 | parentName: Left_RingDistal 233 | position: {x: -7.105426e-17, y: 0.02095726, z: -7.105426e-17} 234 | rotation: {x: 0, y: -0, z: -0, w: 1} 235 | scale: {x: 1, y: 1, z: 1} 236 | - name: Left_MiddleProximal 237 | parentName: Left_Hand 238 | position: {x: 0.012847862, y: 0.08609763, z: 0.003435423} 239 | rotation: {x: -0.004089733, y: -0.66108114, z: -0.0040015387, w: 0.75029266} 240 | scale: {x: 1, y: 1, z: 1} 241 | - name: Left_MiddleIntermediate 242 | parentName: Left_MiddleProximal 243 | position: {x: 2.7261607e-16, y: 0.051279362, z: 5.988264e-17} 244 | rotation: {x: 0.02623109, y: 0.00000020861621, z: 0.0000006621702, w: 0.99965596} 245 | scale: {x: 1, y: 1, z: 1} 246 | - name: Left_MiddleDistal 247 | parentName: Left_MiddleIntermediate 248 | position: {x: -7.199101e-17, y: 0.028284006, z: -4.93648e-17} 249 | rotation: {x: 0.03347514, y: 0, z: -0, w: 0.9994396} 250 | scale: {x: 1, y: 1, z: 1} 251 | - name: Left_MiddleDistalEnd 252 | parentName: Left_MiddleDistal 253 | position: {x: -1.7763565e-16, y: 0.023346113, z: -7.105426e-17} 254 | rotation: {x: 0, y: -0, z: -0, w: 1} 255 | scale: {x: 1, y: 1, z: 1} 256 | - name: Left_IndexProximal 257 | parentName: Left_Hand 258 | position: {x: 0.007815497, y: 0.0918443, z: 0.02657316} 259 | rotation: {x: -0.00007974913, y: -0.7104806, z: -0.0063057938, w: 0.7036885} 260 | scale: {x: 1, y: 1, z: 1} 261 | - name: Left_IndexIntermediate 262 | parentName: Left_IndexProximal 263 | position: {x: 9.079803e-16, y: 0.04209777, z: 3.2607592e-16} 264 | rotation: {x: 0.030200941, y: -0, z: -0.000001784414, w: 0.9995439} 265 | scale: {x: 1, y: 1, z: 1} 266 | - name: Left_IndexDistal 267 | parentName: Left_IndexIntermediate 268 | position: {x: -8.20111e-16, y: 0.02513925, z: -4.317065e-16} 269 | rotation: {x: 0.03945639, y: -0.0000000546031, z: 0.0000007955681, w: 0.9992213} 270 | scale: {x: 1, y: 1, z: 1} 271 | - name: Left_IndexDistalEnd 272 | parentName: Left_IndexDistal 273 | position: {x: -1.1581012e-16, y: 0.024609203, z: -6.661337e-17} 274 | rotation: {x: 0, y: -0, z: -0, w: 1} 275 | scale: {x: 1, y: 1, z: 1} 276 | - name: Left_ThumbProximal 277 | parentName: Left_Hand 278 | position: {x: -0.00080496486, y: 0.028816883, z: 0.023514476} 279 | rotation: {x: 0.17960395, y: 0.884174, z: 0.4239894, w: -0.07881539} 280 | scale: {x: 1, y: 1, z: 1} 281 | - name: Left_ThumbIntermediate 282 | parentName: Left_ThumbProximal 283 | position: {x: 2.4357445e-15, y: 0.027578257, z: 0.0038183592} 284 | rotation: {x: 0.12780538, y: 0, z: -0, w: 0.9917993} 285 | scale: {x: 1, y: 1, z: 1} 286 | - name: Left_ThumbDistal 287 | parentName: Left_ThumbIntermediate 288 | position: {x: -2.2737365e-15, y: 0.044597257, z: -0.006869915} 289 | rotation: {x: -0.045420934, y: -0.000000030482195, z: 0.000002678266, w: 0.99896795} 290 | scale: {x: 1, y: 1, z: 1} 291 | - name: Left_ThumbDistalEnd 292 | parentName: Left_ThumbDistal 293 | position: {x: -4.2632555e-16, y: 0.029458016, z: 0} 294 | rotation: {x: 0, y: -0, z: -0, w: 1} 295 | scale: {x: 1, y: 1, z: 1} 296 | - name: Right_Shoulder 297 | parentName: UpperChest 298 | position: {x: 0.0009571358, y: 0.19149381, z: -0.008727803} 299 | rotation: {x: 0.99258024, y: -0.043275386, z: -0.113521874, w: 0.0049494267} 300 | scale: {x: 1, y: 1, z: 1} 301 | - name: Right_UpperArm 302 | parentName: Right_Shoulder 303 | position: {x: 0.16743432, y: -0.0000022099182, z: 0.00000012213746} 304 | rotation: {x: 0.12673447, y: 0.033320908, z: 0.68096745, w: 0.7204939} 305 | scale: {x: 1, y: 1, z: 1} 306 | - name: Right_LowerArm 307 | parentName: Right_UpperArm 308 | position: {x: 0.0000037273983, y: -0.285085, z: -0.00000035927226} 309 | rotation: {x: 0.020541213, y: 0.008317428, z: -0.020620946, w: 0.99954176} 310 | scale: {x: 1, y: 1, z: 1} 311 | - name: Right_Hand 312 | parentName: Right_LowerArm 313 | position: {x: 0.0000014923929, y: -0.24036367, z: 0.0000017856368} 314 | rotation: {x: -0.047397237, y: -0.24003564, z: 0.013464748, w: 0.9695128} 315 | scale: {x: 1, y: 1, z: 1} 316 | - name: Right_PinkyProximal 317 | parentName: Right_Hand 318 | position: {x: -0.0044381507, y: -0.07288141, z: 0.029358566} 319 | rotation: {x: -0.02005783, y: -0.55049574, z: -0.008249196, w: 0.8345563} 320 | scale: {x: 1, y: 1, z: 1} 321 | - name: Right_PinkyIntermediate 322 | parentName: Right_PinkyProximal 323 | position: {x: 0.00000045734515, y: -0.032268908, z: 0.00000088312623} 324 | rotation: {x: 0.028116252, y: -0.0000036060806, z: 0.0000013830139, w: 0.9996047} 325 | scale: {x: 1, y: 1, z: 1} 326 | - name: Right_PinkyDistal 327 | parentName: Right_PinkyIntermediate 328 | position: {x: 0.00000023899057, y: -0.02022493, z: 0.00000055474345} 329 | rotation: {x: 0.036431823, y: -0.0000025322572, z: -0.000009713462, w: 0.9993362} 330 | scale: {x: 1, y: 1, z: 1} 331 | - name: Right_PinkyDistalEnd 332 | parentName: Right_PinkyDistal 333 | position: {x: 0.000000632002, y: -0.018518865, z: 0.0000001154108} 334 | rotation: {x: -1.7347236e-17, y: 0, z: -0, w: 1} 335 | scale: {x: 1, y: 1, z: 1} 336 | - name: Right_RingProximal 337 | parentName: Right_Hand 338 | position: {x: -0.00952738, y: -0.08161427, z: 0.012242128} 339 | rotation: {x: -0.01764793, y: -0.6027018, z: -0.004053581, w: 0.7977611} 340 | scale: {x: 1, y: 1, z: 1} 341 | - name: Right_RingIntermediate 342 | parentName: Right_RingProximal 343 | position: {x: 0.0000000695935, y: -0.04362872, z: 0.00000080048335} 344 | rotation: {x: 0.023547076, y: 0.0000018775461, z: 0.0000070193773, w: 0.9997228} 345 | scale: {x: 1, y: 1, z: 1} 346 | - name: Right_RingDistal 347 | parentName: Right_RingIntermediate 348 | position: {x: -0.000000290747, y: -0.02711462, z: 0.0000000181098} 349 | rotation: {x: 0.039100483, y: 0.00000013493441, z: -0.000005457965, w: 0.9992353} 350 | scale: {x: 1, y: 1, z: 1} 351 | - name: Right_RingDistalEnd 352 | parentName: Right_RingDistal 353 | position: {x: 0.00000008856214, y: -0.020957856, z: 0.0000005565459} 354 | rotation: {x: 9.02056e-17, y: -0, z: -0, w: 1} 355 | scale: {x: 1, y: 1, z: 1} 356 | - name: Right_MiddleProximal 357 | parentName: Right_Hand 358 | position: {x: -0.012848663, y: -0.08609768, z: -0.0034359337} 359 | rotation: {x: -0.0040855533, y: -0.6610818, z: -0.0040009613, w: 0.7502921} 360 | scale: {x: 1, y: 1, z: 1} 361 | - name: Right_MiddleIntermediate 362 | parentName: Right_MiddleProximal 363 | position: {x: 0.000000014272595, y: -0.051275954, z: 0.0000009747695} 364 | rotation: {x: 0.026226023, y: -0.0000010430809, z: -0.0000020442524, w: 0.9996561} 365 | scale: {x: 1, y: 1, z: 1} 366 | - name: Right_MiddleDistal 367 | parentName: Right_MiddleIntermediate 368 | position: {x: 0.00000014287376, y: -0.028283618, z: 0.00000019378916} 369 | rotation: {x: 0.03347514, y: 0, z: -0, w: 0.9994396} 370 | scale: {x: 1, y: 1, z: 1} 371 | - name: Right_MiddleDistalEnd 372 | parentName: Right_MiddleDistal 373 | position: {x: 0.000000038619483, y: -0.023345316, z: 0.0000005352584} 374 | rotation: {x: 0, y: -0, z: -0, w: 1} 375 | scale: {x: 1, y: 1, z: 1} 376 | - name: Right_IndexProximal 377 | parentName: Right_Hand 378 | position: {x: -0.0078223245, y: -0.0918393, z: -0.026574574} 379 | rotation: {x: -0.00008779019, y: -0.71048135, z: -0.0063282885, w: 0.70368767} 380 | scale: {x: 1, y: 1, z: 1} 381 | - name: Right_IndexIntermediate 382 | parentName: Right_IndexProximal 383 | position: {x: 0.0000006924457, y: -0.04210151, z: -0.0000013631077} 384 | rotation: {x: 0.030203177, y: -0.0000006556509, z: 0.0000117874415, w: 0.99954385} 385 | scale: {x: 1, y: 1, z: 1} 386 | - name: Right_IndexDistal 387 | parentName: Right_IndexIntermediate 388 | position: {x: -0.00000032847043, y: -0.025139209, z: -0.0000005960629} 389 | rotation: {x: 0.03948152, y: 0.00000010287983, z: -0.0000048513234, w: 0.9992203} 390 | scale: {x: 1, y: 1, z: 1} 391 | - name: Right_IndexDistalEnd 392 | parentName: Right_IndexDistal 393 | position: {x: 0.00000023984484, y: -0.024609355, z: 0.0000006271131} 394 | rotation: {x: -5.5511138e-17, y: 0, z: -0, w: 1} 395 | scale: {x: 1, y: 1, z: 1} 396 | - name: Right_ThumbProximal 397 | parentName: Right_Hand 398 | position: {x: 0.00080341793, y: -0.028816395, z: -0.023514695} 399 | rotation: {x: 0.17960708, y: 0.88417095, z: 0.4239951, w: -0.07881223} 400 | scale: {x: 1, y: 1, z: 1} 401 | - name: Right_ThumbIntermediate 402 | parentName: Right_ThumbProximal 403 | position: {x: 0.00000015009721, y: -0.02757781, z: -0.0038183848} 404 | rotation: {x: 0.12780538, y: 0, z: -0, w: 0.9917993} 405 | scale: {x: 1, y: 1, z: 1} 406 | - name: Right_ThumbDistal 407 | parentName: Right_ThumbIntermediate 408 | position: {x: 0.0000007817755, y: -0.044594634, z: 0.0068707783} 409 | rotation: {x: -0.04541879, y: -0.0000020913224, z: 0.0000065647023, w: 0.998968} 410 | scale: {x: 1, y: 1, z: 1} 411 | - name: Right_ThumbDistalEnd 412 | parentName: Right_ThumbDistal 413 | position: {x: 0.00000020228964, y: -0.029458148, z: 0.0000009551683} 414 | rotation: {x: -2.7755574e-17, y: 0, z: -0, w: 1} 415 | scale: {x: 1, y: 1, z: 1} 416 | - name: Left_UpperLeg 417 | parentName: Hips 418 | position: {x: -0.08610317, y: -0.053458035, z: -0.011470641} 419 | rotation: {x: 0.999839, y: -0.01775374, z: 0.00004630041, w: -0.0026075041} 420 | scale: {x: 1, y: 1, z: 1} 421 | - name: Left_LowerLeg 422 | parentName: Left_UpperLeg 423 | position: {x: -2.9864513e-16, y: 0.4133444, z: -5.4956034e-17} 424 | rotation: {x: 0.034046065, y: 2.2687323e-19, z: 7.7286215e-21, w: 0.9994203} 425 | scale: {x: 1, y: 1, z: 1} 426 | - name: Left_Foot 427 | parentName: Left_LowerLeg 428 | position: {x: 0.0000000017320426, y: 0.41403946, z: 7.141509e-16} 429 | rotation: {x: -0.035700925, y: 0.049957544, z: -0.019575229, w: 0.9979211} 430 | scale: {x: 1, y: 1, z: 1} 431 | - name: Left_Toes 432 | parentName: Left_Foot 433 | position: {x: 7.105427e-17, y: 0.07224803, z: -0.118065506} 434 | rotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068} 435 | scale: {x: 1, y: 1, z: 1} 436 | - name: Left_ToesEnd 437 | parentName: Left_Toes 438 | position: {x: -0.0010026174, y: 0.06423476, z: 0.016843978} 439 | rotation: {x: 0.7070656, y: -0.0076321815, z: -0.0076321815, w: 0.7070656} 440 | scale: {x: 1, y: 1, z: 1} 441 | - name: Right_UpperLeg 442 | parentName: Hips 443 | position: {x: 0.086103186, y: -0.053458147, z: -0.0114706475} 444 | rotation: {x: 0.0026075041, y: 0.00004630041, z: 0.01775374, w: 0.999839} 445 | scale: {x: 1, y: 1, z: 1} 446 | - name: Right_LowerLeg 447 | parentName: Right_UpperLeg 448 | position: {x: 0.0000004514609, y: -0.41334414, z: 0.000000025994435} 449 | rotation: {x: 0.034046065, y: 2.2687323e-19, z: 7.7286215e-21, w: 0.9994203} 450 | scale: {x: 1, y: 1, z: 1} 451 | - name: Right_Foot 452 | parentName: Right_LowerLeg 453 | position: {x: -0.0000007472542, y: -0.41403967, z: -0.000000032847502} 454 | rotation: {x: -0.035700925, y: 0.049957544, z: -0.019575229, w: 0.9979211} 455 | scale: {x: 1, y: 1, z: 1} 456 | - name: Right_Toes 457 | parentName: Right_Foot 458 | position: {x: -0.00000015643121, y: -0.07224799, z: 0.11807} 459 | rotation: {x: -0.7071068, y: 0, z: 0, w: 0.7071068} 460 | scale: {x: 1, y: 1, z: 1} 461 | - name: Right_ToesEnd 462 | parentName: Right_Toes 463 | position: {x: 0.0010031584, y: -0.06423059, z: -0.016843898} 464 | rotation: {x: 0.7070656, y: -0.0076321815, z: -0.0076321815, w: 0.7070656} 465 | scale: {x: 1, y: 1, z: 1} 466 | - name: Geometry 467 | parentName: Armature(Clone) 468 | position: {x: -0, y: 0, z: 0} 469 | rotation: {x: 0, y: -0, z: -0, w: 1} 470 | scale: {x: 1, y: 1, z: 1} 471 | - name: Armature_Mesh 472 | parentName: Geometry 473 | position: {x: -0, y: 0, z: 0} 474 | rotation: {x: 0, y: -0, z: -0, w: 1} 475 | scale: {x: 1, y: 1, z: 1} 476 | armTwist: 0.5 477 | foreArmTwist: 0.5 478 | upperLegTwist: 0.5 479 | legTwist: 0.5 480 | armStretch: 0.05 481 | legStretch: 0.05 482 | feetSpacing: 0 483 | globalScale: 1 484 | rootMotionBoneName: 485 | hasTranslationDoF: 0 486 | hasExtraRoot: 0 487 | skeletonHasParents: 1 488 | lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: c1c632b1b9185bc43aafd480e0799531, type: 3} 489 | autoGenerateAvatarMappingIfUnspecified: 1 490 | animationType: 2 491 | humanoidOversampling: 1 492 | avatarSetup: 2 493 | addHumanoidExtraRootOnlyWhenUsingAvatar: 1 494 | remapMaterialsIfMaterialImportModeIsNone: 0 495 | additionalBone: 0 496 | userData: 497 | assetBundleName: 498 | assetBundleVariant: 499 | -------------------------------------------------------------------------------- /Assets/Models/Run.controller: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!91 &9100000 4 | AnimatorController: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_Name: Run 10 | serializedVersion: 5 11 | m_AnimatorParameters: [] 12 | m_AnimatorLayers: 13 | - serializedVersion: 5 14 | m_Name: Base Layer 15 | m_StateMachine: {fileID: 6301505617316708678} 16 | m_Mask: {fileID: 0} 17 | m_Motions: [] 18 | m_Behaviours: [] 19 | m_BlendingMode: 0 20 | m_SyncedLayerIndex: -1 21 | m_DefaultWeight: 0 22 | m_IKPass: 0 23 | m_SyncedLayerAffectsTiming: 0 24 | m_Controller: {fileID: 9100000} 25 | --- !u!1102 &6078748267352750769 26 | AnimatorState: 27 | serializedVersion: 6 28 | m_ObjectHideFlags: 1 29 | m_CorrespondingSourceObject: {fileID: 0} 30 | m_PrefabInstance: {fileID: 0} 31 | m_PrefabAsset: {fileID: 0} 32 | m_Name: Run_N 33 | m_Speed: 1 34 | m_CycleOffset: 0 35 | m_Transitions: [] 36 | m_StateMachineBehaviours: [] 37 | m_Position: {x: 50, y: 50, z: 0} 38 | m_IKOnFeet: 0 39 | m_WriteDefaultValues: 1 40 | m_Mirror: 0 41 | m_SpeedParameterActive: 0 42 | m_MirrorParameterActive: 0 43 | m_CycleOffsetParameterActive: 0 44 | m_TimeParameterActive: 0 45 | m_Motion: {fileID: 6564411413370888346, guid: 6eb00f3ce93caa14f88ef6b0cd9cff9c, type: 3} 46 | m_Tag: 47 | m_SpeedParameter: 48 | m_MirrorParameter: 49 | m_CycleOffsetParameter: 50 | m_TimeParameter: 51 | --- !u!1107 &6301505617316708678 52 | AnimatorStateMachine: 53 | serializedVersion: 6 54 | m_ObjectHideFlags: 1 55 | m_CorrespondingSourceObject: {fileID: 0} 56 | m_PrefabInstance: {fileID: 0} 57 | m_PrefabAsset: {fileID: 0} 58 | m_Name: Base Layer 59 | m_ChildStates: 60 | - serializedVersion: 1 61 | m_State: {fileID: 6078748267352750769} 62 | m_Position: {x: 200, y: 240, z: 0} 63 | m_ChildStateMachines: [] 64 | m_AnyStateTransitions: [] 65 | m_EntryTransitions: [] 66 | m_StateMachineTransitions: {} 67 | m_StateMachineBehaviours: [] 68 | m_AnyStatePosition: {x: 50, y: 20, z: 0} 69 | m_EntryPosition: {x: 50, y: 120, z: 0} 70 | m_ExitPosition: {x: 800, y: 120, z: 0} 71 | m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} 72 | m_DefaultState: {fileID: 6078748267352750769} 73 | -------------------------------------------------------------------------------- /Assets/Models/Run.controller.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6eeea3abba167934a8a1879941c4db60 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 9100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Models/Walk.controller: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!91 &9100000 4 | AnimatorController: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_Name: Walk 10 | serializedVersion: 5 11 | m_AnimatorParameters: [] 12 | m_AnimatorLayers: 13 | - serializedVersion: 5 14 | m_Name: Base Layer 15 | m_StateMachine: {fileID: 6301505617316708678} 16 | m_Mask: {fileID: 0} 17 | m_Motions: [] 18 | m_Behaviours: [] 19 | m_BlendingMode: 0 20 | m_SyncedLayerIndex: -1 21 | m_DefaultWeight: 0 22 | m_IKPass: 0 23 | m_SyncedLayerAffectsTiming: 0 24 | m_Controller: {fileID: 9100000} 25 | --- !u!1107 &6301505617316708678 26 | AnimatorStateMachine: 27 | serializedVersion: 6 28 | m_ObjectHideFlags: 1 29 | m_CorrespondingSourceObject: {fileID: 0} 30 | m_PrefabInstance: {fileID: 0} 31 | m_PrefabAsset: {fileID: 0} 32 | m_Name: Base Layer 33 | m_ChildStates: 34 | - serializedVersion: 1 35 | m_State: {fileID: 6912602990426853812} 36 | m_Position: {x: 240, y: 253.93106, z: 0} 37 | m_ChildStateMachines: [] 38 | m_AnyStateTransitions: [] 39 | m_EntryTransitions: [] 40 | m_StateMachineTransitions: {} 41 | m_StateMachineBehaviours: [] 42 | m_AnyStatePosition: {x: 50, y: 20, z: 0} 43 | m_EntryPosition: {x: 50, y: 120, z: 0} 44 | m_ExitPosition: {x: 800, y: 120, z: 0} 45 | m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} 46 | m_DefaultState: {fileID: 6912602990426853812} 47 | --- !u!1102 &6912602990426853812 48 | AnimatorState: 49 | serializedVersion: 6 50 | m_ObjectHideFlags: 1 51 | m_CorrespondingSourceObject: {fileID: 0} 52 | m_PrefabInstance: {fileID: 0} 53 | m_PrefabAsset: {fileID: 0} 54 | m_Name: Walk_N 55 | m_Speed: 1 56 | m_CycleOffset: 0 57 | m_Transitions: [] 58 | m_StateMachineBehaviours: [] 59 | m_Position: {x: 50, y: 50, z: 0} 60 | m_IKOnFeet: 0 61 | m_WriteDefaultValues: 1 62 | m_Mirror: 0 63 | m_SpeedParameterActive: 0 64 | m_MirrorParameterActive: 0 65 | m_CycleOffsetParameterActive: 0 66 | m_TimeParameterActive: 0 67 | m_Motion: {fileID: 1657602633327794031, guid: 75a7a0259764f9a4a8fc60bc4443bd67, type: 3} 68 | m_Tag: 69 | m_SpeedParameter: 70 | m_MirrorParameter: 71 | m_CycleOffsetParameter: 72 | m_TimeParameter: 73 | -------------------------------------------------------------------------------- /Assets/Models/Walk.controller.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8188acaedb3b0be4fa6600d6e07cfd1d 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 9100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/SimpleLitFakeShadow.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &-8406819092732137641 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 11 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | version: 5 16 | --- !u!21 &2100000 17 | Material: 18 | serializedVersion: 8 19 | m_ObjectHideFlags: 0 20 | m_CorrespondingSourceObject: {fileID: 0} 21 | m_PrefabInstance: {fileID: 0} 22 | m_PrefabAsset: {fileID: 0} 23 | m_Name: SimpleLitFakeShadow 24 | m_Shader: {fileID: 4800000, guid: c960ba020e9103d4c9fd043b2e100db8, type: 3} 25 | m_ValidKeywords: 26 | - FAKE_CLIP 27 | - _GLOSSINESS_FROM_BASE_ALPHA 28 | - _SPECULAR_COLOR 29 | m_InvalidKeywords: [] 30 | m_LightmapFlags: 4 31 | m_EnableInstancingVariants: 0 32 | m_DoubleSidedGI: 0 33 | m_CustomRenderQueue: -1 34 | stringTagMap: 35 | RenderType: Opaque 36 | disabledShaderPasses: [] 37 | m_SavedProperties: 38 | serializedVersion: 3 39 | m_TexEnvs: 40 | - _BaseMap: 41 | m_Texture: {fileID: 0} 42 | m_Scale: {x: 1, y: 1} 43 | m_Offset: {x: 0, y: 0} 44 | - _BumpMap: 45 | m_Texture: {fileID: 0} 46 | m_Scale: {x: 1, y: 1} 47 | m_Offset: {x: 0, y: 0} 48 | - _DetailAlbedoMap: 49 | m_Texture: {fileID: 0} 50 | m_Scale: {x: 1, y: 1} 51 | m_Offset: {x: 0, y: 0} 52 | - _DetailMask: 53 | m_Texture: {fileID: 0} 54 | m_Scale: {x: 1, y: 1} 55 | m_Offset: {x: 0, y: 0} 56 | - _DetailNormalMap: 57 | m_Texture: {fileID: 0} 58 | m_Scale: {x: 1, y: 1} 59 | m_Offset: {x: 0, y: 0} 60 | - _EmissionMap: 61 | m_Texture: {fileID: 0} 62 | m_Scale: {x: 1, y: 1} 63 | m_Offset: {x: 0, y: 0} 64 | - _MainTex: 65 | m_Texture: {fileID: 0} 66 | m_Scale: {x: 1, y: 1} 67 | m_Offset: {x: 0, y: 0} 68 | - _MetallicGlossMap: 69 | m_Texture: {fileID: 0} 70 | m_Scale: {x: 1, y: 1} 71 | m_Offset: {x: 0, y: 0} 72 | - _OcclusionMap: 73 | m_Texture: {fileID: 0} 74 | m_Scale: {x: 1, y: 1} 75 | m_Offset: {x: 0, y: 0} 76 | - _ParallaxMap: 77 | m_Texture: {fileID: 0} 78 | m_Scale: {x: 1, y: 1} 79 | m_Offset: {x: 0, y: 0} 80 | - _SpecGlossMap: 81 | m_Texture: {fileID: 0} 82 | m_Scale: {x: 1, y: 1} 83 | m_Offset: {x: 0, y: 0} 84 | - unity_Lightmaps: 85 | m_Texture: {fileID: 0} 86 | m_Scale: {x: 1, y: 1} 87 | m_Offset: {x: 0, y: 0} 88 | - unity_LightmapsInd: 89 | m_Texture: {fileID: 0} 90 | m_Scale: {x: 1, y: 1} 91 | m_Offset: {x: 0, y: 0} 92 | - unity_ShadowMasks: 93 | m_Texture: {fileID: 0} 94 | m_Scale: {x: 1, y: 1} 95 | m_Offset: {x: 0, y: 0} 96 | m_Ints: [] 97 | m_Floats: 98 | - _AlphaClip: 0 99 | - _Blend: 0 100 | - _BumpScale: 1 101 | - _ClearCoatMask: 0 102 | - _ClearCoatSmoothness: 0 103 | - _Cull: 2 104 | - _Cutoff: 0.5 105 | - _DetailAlbedoMapScale: 1 106 | - _DetailNormalMapScale: 1 107 | - _DstBlend: 0 108 | - _EnvironmentReflections: 1 109 | - _FakeClip: 1 110 | - _GlossMapScale: 0 111 | - _Glossiness: 0 112 | - _GlossinessSource: 0 113 | - _GlossyReflections: 0 114 | - _Line: 1 115 | - _Metallic: 0 116 | - _OcclusionStrength: 1 117 | - _Parallax: 0.005 118 | - _QueueOffset: 0 119 | - _ReceiveShadows: 1 120 | - _Shininess: 0 121 | - _Smoothness: 0.5 122 | - _SmoothnessSource: 1 123 | - _SmoothnessTextureChannel: 0 124 | - _SpecSource: 0 125 | - _SpecularHighlights: 0 126 | - _SrcBlend: 1 127 | - _Surface: 0 128 | - _WorkflowMode: 1 129 | - _ZWrite: 1 130 | m_Colors: 131 | - _BaseColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} 132 | - _Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} 133 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 134 | - _FakeClipRect: {r: 0, g: 0, b: 0, a: 0} 135 | - _FakeShadowOffset: {r: 0, g: 0, b: 0, a: 0} 136 | - _Offset: {r: 0, g: 0, b: 0, a: 0} 137 | - _ShadowColor: {r: 1, g: 1, b: 1, a: 1} 138 | - _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} 139 | m_BuildTextureStacks: [] 140 | -------------------------------------------------------------------------------- /Assets/SimpleLitFakeShadow.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b71b16f40b0297b488b1604806b3ecb3 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/SimpleLitFakeShadow.shader: -------------------------------------------------------------------------------- 1 | Shader "UTJ/SimpleLitFakeShadow" 2 | { 3 | Properties 4 | { 5 | [MainTexture] _BaseMap("Base Map (RGB) Smoothness / Alpha (A)", 2D) = "white" {} 6 | [MainColor] _BaseColor("Base Color", Color) = (1, 1, 1, 1) 7 | 8 | _Cutoff("Alpha Clipping", Range(0.0, 1.0)) = 0.5 9 | 10 | _Smoothness("Smoothness", Range(0.0, 1.0)) = 0.5 11 | _SpecColor("Specular Color", Color) = (0.5, 0.5, 0.5, 0.5) 12 | _SpecGlossMap("Specular Map", 2D) = "white" {} 13 | _SmoothnessSource("Smoothness Source", Float) = 0.0 14 | _SpecularHighlights("Specular Highlights", Float) = 1.0 15 | 16 | [HideInInspector] _BumpScale("Scale", Float) = 1.0 17 | [NoScaleOffset] _BumpMap("Normal Map", 2D) = "bump" {} 18 | 19 | [HDR] _EmissionColor("Emission Color", Color) = (0,0,0) 20 | [NoScaleOffset]_EmissionMap("Emission Map", 2D) = "white" {} 21 | 22 | // Blending state 23 | _Surface("__surface", Float) = 0.0 24 | _Blend("__blend", Float) = 0.0 25 | _Cull("__cull", Float) = 2.0 26 | [ToggleUI] _AlphaClip("__clip", Float) = 0.0 27 | [HideInInspector] _SrcBlend("__src", Float) = 1.0 28 | [HideInInspector] _DstBlend("__dst", Float) = 0.0 29 | [HideInInspector] _ZWrite("__zw", Float) = 1.0 30 | 31 | [ToggleUI] _ReceiveShadows("Receive Shadows", Float) = 1.0 32 | // Editmode props 33 | _QueueOffset("Queue offset", Float) = 0.0 34 | 35 | // ObsoleteProperties 36 | [HideInInspector] _MainTex("BaseMap", 2D) = "white" {} 37 | [HideInInspector] _Color("Base Color", Color) = (1, 1, 1, 1) 38 | [HideInInspector] _Shininess("Smoothness", Float) = 0.0 39 | [HideInInspector] _GlossinessSource("GlossinessSource", Float) = 0.0 40 | [HideInInspector] _SpecSource("SpecularHighlights", Float) = 0.0 41 | 42 | [HideInInspector][NoScaleOffset]unity_Lightmaps("unity_Lightmaps", 2DArray) = "" {} 43 | [HideInInspector][NoScaleOffset]unity_LightmapsInd("unity_LightmapsInd", 2DArray) = "" {} 44 | [HideInInspector][NoScaleOffset]unity_ShadowMasks("unity_ShadowMasks", 2DArray) = "" {} 45 | 46 | [HideInInspector] _FakeShadowOffset("Scale", Vector) = (0, 0, 0, 0) 47 | [HideInInspector] _FakeClipRect("Clip", Vector) = (0, 0, 0, 0) 48 | } 49 | SubShader 50 | { 51 | Tags{"RenderType" = "Opaque" "RenderPipeline" = "UniversalPipeline" "UniversalMaterialType" = "Lit" "IgnoreProjector" = "True" "ShaderModel" = "4.5"} 52 | 53 | UsePass "Universal Render Pipeline/Simple Lit/ForwardLit" 54 | UsePass "Universal Render Pipeline/Simple Lit/DepthOnly" 55 | 56 | Pass 57 | { 58 | Name "ShadowCaster" 59 | Tags{"LightMode" = "FakeShadow"} 60 | 61 | ZWrite Off 62 | Cull[_Cull] 63 | 64 | HLSLPROGRAM 65 | #pragma exclude_renderers gles gles3 glcore 66 | #pragma target 4.5 67 | 68 | #pragma vertex vert 69 | #pragma fragment frag 70 | 71 | #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" 72 | #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl" 73 | //#include "Packages/com.unity.render-pipelines.universal/Shaders/SimpleLitInput.hlsl" 74 | 75 | #pragma multi_compile_local _ FAKE_CLIP 76 | 77 | // SRP Batcher対応させたい場合はForwardLit/DepthOnly passの定義と合わせる必要がある 78 | // 今回はサンプルなので非対応 79 | //CBUFFER_START(UnityPerMaterial) 80 | float4 _FakeShadowOffset; 81 | float4 _FakeClipRect; 82 | float4x4 _FakeShadowView; 83 | float4x4 _FakeShadowProj; 84 | //CBUFFER_END 85 | 86 | // Global properties 87 | float _FakeShadowLine; 88 | half4 _FakeShadowColor; 89 | 90 | struct Attributes 91 | { 92 | float4 positionOS : POSITION; 93 | }; 94 | 95 | struct Varyings 96 | { 97 | float4 positionCS : SV_POSITION; 98 | #ifdef FAKE_CLIP 99 | float2 screenPos : TEXCOORD0; 100 | #endif 101 | }; 102 | 103 | Varyings vert(Attributes input) 104 | { 105 | Varyings output; 106 | 107 | float4 pos = mul(mul(_FakeShadowProj, mul(_FakeShadowView, unity_ObjectToWorld)), float4(input.positionOS.xyz, 1)); 108 | 109 | // 似非Viewport計算によるグリッド対応 110 | pos.xyz /= pos.w; 111 | pos.xy /= _FakeShadowLine; // グリッド分割数なので0が来ることはない 112 | pos.xy += _FakeShadowOffset.xy; // 指定位置 113 | pos.xyz *= pos.w; 114 | 115 | output.positionCS = pos; 116 | 117 | #ifdef FAKE_CLIP 118 | output.screenPos.xy = ComputeScreenPos(pos).xy; 119 | #endif 120 | 121 | return output; 122 | } 123 | 124 | half4 frag(Varyings input) : SV_Target 125 | { 126 | half4 color = _FakeShadowColor; 127 | #ifdef FAKE_CLIP 128 | clip(step(_FakeClipRect.x, input.screenPos.x)* step(input.screenPos.x, _FakeClipRect.x + _FakeClipRect.z)* 129 | step(_FakeClipRect.y, input.screenPos.y)* step(input.screenPos.y, _FakeClipRect.y + _FakeClipRect.w) - 0.001); 130 | #endif 131 | return color; 132 | } 133 | ENDHLSL 134 | } 135 | } 136 | 137 | Fallback "Hidden/Universal Render Pipeline/FallbackError" 138 | CustomEditor "UnityEditor.Rendering.Universal.ShaderGUI.SimpleLitShader" 139 | } 140 | -------------------------------------------------------------------------------- /Assets/SimpleLitFakeShadow.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c960ba020e9103d4c9fd043b2e100db8 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | preprocessorOverride: 0 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/UniversalRPAsset.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3} 13 | m_Name: UniversalRPAsset 14 | m_EditorClassIdentifier: 15 | k_AssetVersion: 9 16 | k_AssetPreviousVersion: 9 17 | m_RendererType: 1 18 | m_RendererData: {fileID: 0} 19 | m_RendererDataList: 20 | - {fileID: 11400000, guid: a05d2b51d87bcc04980b3b6f00c64c62, type: 2} 21 | m_DefaultRendererIndex: 0 22 | m_RequireDepthTexture: 1 23 | m_RequireOpaqueTexture: 0 24 | m_OpaqueDownsampling: 1 25 | m_SupportsTerrainHoles: 1 26 | m_StoreActionsOptimization: 0 27 | m_SupportsHDR: 1 28 | m_MSAA: 1 29 | m_RenderScale: 1 30 | m_UpscalingFilter: 0 31 | m_FsrOverrideSharpness: 0 32 | m_FsrSharpness: 0.92 33 | m_MainLightRenderingMode: 1 34 | m_MainLightShadowsSupported: 1 35 | m_MainLightShadowmapResolution: 2048 36 | m_AdditionalLightsRenderingMode: 1 37 | m_AdditionalLightsPerObjectLimit: 4 38 | m_AdditionalLightShadowsSupported: 0 39 | m_AdditionalLightsShadowmapResolution: 2048 40 | m_AdditionalLightsShadowResolutionTierLow: 256 41 | m_AdditionalLightsShadowResolutionTierMedium: 512 42 | m_AdditionalLightsShadowResolutionTierHigh: 1024 43 | m_ReflectionProbeBlending: 0 44 | m_ReflectionProbeBoxProjection: 0 45 | m_ShadowDistance: 10 46 | m_ShadowCascadeCount: 1 47 | m_Cascade2Split: 0.25 48 | m_Cascade3Split: {x: 0.1, y: 0.3} 49 | m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467} 50 | m_CascadeBorder: 0.099999994 51 | m_ShadowDepthBias: 1 52 | m_ShadowNormalBias: 1 53 | m_SoftShadowsSupported: 0 54 | m_ConservativeEnclosingSphere: 1 55 | m_NumIterationsEnclosingSphere: 64 56 | m_AdditionalLightsCookieResolution: 2048 57 | m_AdditionalLightsCookieFormat: 3 58 | m_UseSRPBatcher: 1 59 | m_SupportsDynamicBatching: 0 60 | m_MixedLightingSupported: 1 61 | m_SupportsLightLayers: 0 62 | m_DebugLevel: 0 63 | m_UseAdaptivePerformance: 1 64 | m_ColorGradingMode: 0 65 | m_ColorGradingLutSize: 32 66 | m_UseFastSRGBLinearConversion: 0 67 | m_ShadowType: 1 68 | m_LocalShadowsSupported: 0 69 | m_LocalShadowsAtlasResolution: 256 70 | m_MaxPixelLights: 0 71 | m_ShadowAtlasResolution: 256 72 | m_ShaderVariantLogLevel: 0 73 | m_VolumeFrameworkUpdateMode: 0 74 | m_ShadowCascades: 0 75 | -------------------------------------------------------------------------------- /Assets/UniversalRPAsset.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7103551289681374396b642b0fda7449 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/UniversalRenderPipelineGlobalSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: 2ec995e51a6e251468d2a3fd8a686257, type: 3} 13 | m_Name: UniversalRenderPipelineGlobalSettings 14 | m_EditorClassIdentifier: 15 | k_AssetVersion: 2 16 | lightLayerName0: Light Layer default 17 | lightLayerName1: Light Layer 1 18 | lightLayerName2: Light Layer 2 19 | lightLayerName3: Light Layer 3 20 | lightLayerName4: Light Layer 4 21 | lightLayerName5: Light Layer 5 22 | lightLayerName6: Light Layer 6 23 | lightLayerName7: Light Layer 7 24 | m_StripDebugVariants: 1 25 | m_StripUnusedPostProcessingVariants: 1 26 | m_StripUnusedVariants: 1 27 | supportRuntimeDebugDisplay: 0 28 | -------------------------------------------------------------------------------- /Assets/UniversalRenderPipelineGlobalSettings.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 38b35347542e5af4c9b140950c5b18db 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/_DecalAssets.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 934f83668998ce34c8a8fcf22b98a348 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/_DecalAssets/FakeShadow.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.Rendering.Universal; 3 | using System.Runtime.CompilerServices; 4 | 5 | namespace UTJ { 6 | [RequireComponent(typeof(Renderer))] 7 | /// 8 | /// DecalProjectorを利用したトップビューの疑似影 9 | /// 10 | public class FakeShadow : MonoBehaviour { 11 | [Tooltip("対応するDecal Projector参照")] 12 | public DecalProjector projector = null; // NOTE: 暗黙(HideInspector)でDecalProjectorを生成しても良さそう 13 | [Tooltip("OnEnableで自動起動")] 14 | public bool activeOnEnable = false; 15 | [Tooltip("Projectorは動かない")] 16 | public bool isStatic = false; 17 | [SerializeField, Tooltip("Shadow Meshである、Runtimeでの変更をしてはいけない")] 18 | private bool shadowMesh = false; 19 | [SerializeField, Tooltip("DecalProjector範囲からはみ出た部分をClipする")] 20 | private bool _glidClipping = false; 21 | 22 | [System.Flags] 23 | private enum STATE { 24 | NONE, 25 | REQUEST, // リクエスト済 26 | AVAIRABLE, // 設定済 27 | } 28 | 29 | private new Renderer renderer = null; 30 | private Transform root = null; 31 | private Material[] materials = null; 32 | private STATE state = 0; 33 | 34 | private int updateMaterialCount = 0; 35 | //private bool prevClipping = false; 36 | private Vector3 prevSize = Vector3.zero; 37 | private Vector3 prevPivot = Vector3.zero; 38 | private Matrix4x4 projection = Matrix4x4.identity; 39 | private UnityEngine.Rendering.LocalKeyword[] clipKeywords; 40 | 41 | internal bool isShadowMesh { get => this.shadowMesh; } 42 | internal bool isRequested { get => this.state.HasFlag(STATE.REQUEST); } 43 | public bool glidClipping { 44 | get => this._glidClipping; 45 | set { 46 | if (this._glidClipping == value) 47 | return; 48 | this._glidClipping = value; 49 | for (var i = 0; i < this.updateMaterialCount; ++i) 50 | this.materials[i].SetKeyword(this.clipKeywords[i], this._glidClipping); 51 | } 52 | } 53 | 54 | void OnEnable() { 55 | if (this.activeOnEnable) 56 | this.Wakeup(); 57 | } 58 | void OnDisable() { 59 | this.Sleep(); 60 | } 61 | 62 | /// 63 | /// 起動 64 | /// 65 | public void Wakeup() { 66 | Debug.Assert(this.projector != null, "Set the reference of DecalProjector"); 67 | 68 | if (this.renderer == null) { 69 | this.renderer = this.GetComponent(); 70 | 71 | if (this.shadowMesh) { 72 | this.materials = this.renderer.sharedMaterials; 73 | this.updateMaterialCount = 1; 74 | } else { 75 | this.materials = this.renderer.materials; 76 | this.updateMaterialCount = this.materials.Length; 77 | } 78 | this.clipKeywords = new UnityEngine.Rendering.LocalKeyword[this.materials.Length]; 79 | } 80 | if (this.root == null) 81 | this.root = this.projector.transform; 82 | 83 | var ret = FakeShadowManager.Request(this); 84 | if (ret) { 85 | this.state |= STATE.REQUEST; 86 | this.projector.enabled = true; 87 | } else { 88 | Debug.LogError("Failed to request for FakeShadow. Increase the max count."); 89 | this.projector.enabled = false; 90 | } 91 | } 92 | 93 | /// 94 | /// 停止 95 | /// 96 | public void Sleep(bool returnShadow=true) { 97 | if (returnShadow && this.state.HasFlag(STATE.AVAIRABLE)) 98 | FakeShadowManager.Return(this); 99 | 100 | this.state = 0; // cleared REQUEST/AVAIRABLE 101 | this.projector.enabled = false; 102 | } 103 | 104 | /// 105 | /// パラメータ更新 106 | /// 107 | void LateUpdate() { 108 | if (!this.state.HasFlag(STATE.AVAIRABLE)) 109 | return; 110 | 111 | if (this.UpdateProjection()) { 112 | for (var i = 0; i < this.updateMaterialCount; ++i) 113 | this.materials[i].SetMatrix(FakeShadowManager.PROP_ID_PROJ, this.projection); 114 | } 115 | 116 | // 静的なProjectorはView行列の更新不要 117 | if (this.isStatic) 118 | return; 119 | 120 | // Scaleはモデル行列に反映されるのでView行列でつぶさない 121 | //var view = this.root.worldToLocalMatrix; 122 | 123 | // x3ぐらい速くなる(ShadowTextureの都合上、数十程度しかこないので雀の涙) 124 | //var view = Matrix4x4.TRS(this.root.position, this.root.rotation, Vector3.one).inverse; 125 | TR_Inverse(this.root, out var view); 126 | 127 | for (var i = 0; i < this.updateMaterialCount; ++i) 128 | this.materials[i].SetMatrix(FakeShadowManager.PROP_ID_VIEW, view); 129 | } 130 | 131 | /// 132 | /// FakeShadowManagerからの設定 133 | /// 既に稼働中でAvairableCountが変更された場合にも再設定される 134 | /// 135 | /// 設定パラメータ 136 | internal void Setup(in FakeShadowManager.MatParam param) { 137 | if (!this.state.HasFlag(STATE.REQUEST)) 138 | return; 139 | 140 | this.UpdateProjection(force : true); 141 | TR_Inverse(this.root, out var view); 142 | 143 | if (this.shadowMesh) { 144 | for (var i = 0; i < this.materials.Length; ++i) 145 | this.materials[i] = param.material; 146 | this.renderer.materials = this.materials; 147 | 148 | // NOTE: FakeShadowManagerでキャッシュしてもいい 149 | this.clipKeywords[0] = new UnityEngine.Rendering.LocalKeyword(param.material.shader, FakeShadowManager.CLIP_RECT_KEYWORD); 150 | 151 | param.material.SetKeyword(this.clipKeywords[0], this.glidClipping); 152 | param.material.SetMatrix(FakeShadowManager.PROP_ID_PROJ, this.projection); 153 | param.material.SetMatrix(FakeShadowManager.PROP_ID_VIEW, view); 154 | } else { 155 | for (var i = 0; i < this.materials.Length; ++i) { 156 | this.clipKeywords[i] = new UnityEngine.Rendering.LocalKeyword(this.materials[i].shader, FakeShadowManager.CLIP_RECT_KEYWORD); 157 | 158 | this.materials[i].SetKeyword(this.clipKeywords[i], this.glidClipping); 159 | this.materials[i].SetMatrix(FakeShadowManager.PROP_ID_PROJ, this.projection); 160 | this.materials[i].SetMatrix(FakeShadowManager.PROP_ID_VIEW, view); 161 | // 1度設定すればいいのでFakeShadowManagerからMaterialを借りる時は不要 162 | this.materials[i].SetVector(FakeShadowManager.PROP_ID_OFFSET, param.offset); 163 | this.materials[i].SetVector(FakeShadowManager.PROP_ID_CLIP, param.clipRect); 164 | } 165 | } 166 | this.projector.uvScale = param.uvScale; 167 | this.projector.uvBias = param.uvBias; 168 | 169 | this.state |= STATE.AVAIRABLE; 170 | } 171 | 172 | /// 173 | /// Projection行列の更新 174 | /// 175 | /// force to update 176 | /// updated 177 | private bool UpdateProjection(bool force = false) { 178 | var size = this.projector.size; 179 | var pivot = this.projector.pivot; 180 | if (!force && this.prevSize == size && this.prevPivot == pivot) 181 | return false; 182 | 183 | var width = size.x * 0.5f; 184 | var height = size.y * 0.5f; 185 | // NOTE: rangeは必要十分な値でハードコードしてもいい 186 | var range = (size.z + this.projector.pivot.magnitude); 187 | this.projection = GL.GetGPUProjectionMatrix( 188 | Matrix4x4.Ortho(-width, width, -height, height, -range, range), true 189 | ); 190 | this.prevSize = size; 191 | this.prevPivot = pivot; 192 | 193 | return true; 194 | } 195 | 196 | [MethodImpl(MethodImplOptions.AggressiveInlining)] 197 | private static void TR_Inverse(Transform tr, out Matrix4x4 m) { 198 | tr.GetPositionAndRotation(out var p, out var q); 199 | 200 | // NOTE: 201 | // Quaternionは正規化前提 202 | // Inverseなのでpとqは反転 203 | 204 | var x = -q.x * 2f; 205 | var y = -q.y * 2f; 206 | var z = -q.z * 2f; 207 | var xx = -q.x * x; 208 | var yy = -q.y * y; 209 | var zz = -q.z * z; 210 | var xy = -q.x * y; 211 | var xz = -q.x * z; 212 | var yz = -q.y * z; 213 | var wx = q.w * x; 214 | var wy = q.w * y; 215 | var wz = q.w * z; 216 | 217 | m.m00 = 1f - (yy + zz); 218 | m.m10 = xy + wz; 219 | m.m20 = xz - wy; 220 | m.m30 = 0f; 221 | 222 | m.m01 = xy - wz; 223 | m.m11 = 1f - (xx + zz); 224 | m.m21 = yz + wx; 225 | m.m31 = 0f; 226 | 227 | m.m02 = xz + wy; 228 | m.m12 = yz - wx; 229 | m.m22 = 1f - (xx + yy); 230 | m.m32 = 0f; 231 | 232 | //m.m03 = p.x; 233 | //m.m13 = p.y; 234 | //m.m23 = p.z; 235 | //m.m33 = 1f; 236 | m.m03 = m.m00 * -p.x + m.m01 * -p.y + m.m02 * -p.z; // + m.m03; 237 | m.m13 = m.m10 * -p.x + m.m11 * -p.y + m.m12 * -p.z; // + m.m13; 238 | m.m23 = m.m20 * -p.x + m.m21 * -p.y + m.m22 * -p.z; // + m.m23; 239 | //m.m33 = m.m30 * -p.x + m.m31 * -p.y + m.m32 * -p.z + m.m33; 240 | m.m33 = 1f; 241 | } 242 | } 243 | } 244 | -------------------------------------------------------------------------------- /Assets/_DecalAssets/FakeShadow.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c7dfa10038e309745ad70114dc8646f5 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/_DecalAssets/FakeShadowCaster.shader: -------------------------------------------------------------------------------- 1 | Shader "UTJ/FakeShadowCaster" 2 | { 3 | Properties 4 | { 5 | [HideInInspector] _FakeShadowOffset("Scale", Vector) = (0, 0, 0, 0) 6 | [HideInInspector] _FakeClipRect("Clip", Vector) = (0, 0, 0, 0) 7 | [Toggle(FAKE_CLIP)]_FakeClip("Fake Shadow Clipping", Float) = 1 8 | } 9 | 10 | SubShader 11 | { 12 | Tags {"RenderType" = "Opaque" "IgnoreProjector" = "True" "RenderPipeline" = "UniversalPipeline" "ShaderModel" = "4.5"} 13 | LOD 100 14 | 15 | Pass 16 | { 17 | Name "ShadowCaster" 18 | Tags{"LightMode" = "FakeShadow"} 19 | 20 | Blend One Zero 21 | Cull Back 22 | ZWrite Off 23 | ZTest LEqual 24 | 25 | HLSLPROGRAM 26 | #pragma exclude_renderers gles gles3 glcore 27 | #pragma target 4.5 28 | 29 | #pragma vertex vert 30 | #pragma fragment frag 31 | 32 | #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" 33 | #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl" 34 | 35 | #pragma multi_compile_local _ FAKE_CLIP 36 | 37 | CBUFFER_START(UnityPerMaterial) 38 | float4 _FakeShadowOffset; 39 | float4 _FakeClipRect; 40 | float4x4 _FakeShadowView; 41 | float4x4 _FakeShadowProj; 42 | CBUFFER_END 43 | 44 | // Global properties 45 | float _FakeShadowLine; 46 | half4 _FakeShadowColor; 47 | 48 | struct Attributes 49 | { 50 | float4 positionOS : POSITION; 51 | }; 52 | 53 | struct Varyings 54 | { 55 | float4 positionCS : SV_POSITION; 56 | #ifdef FAKE_CLIP 57 | float2 screenPos : TEXCOORD0; 58 | #endif 59 | }; 60 | 61 | Varyings vert(Attributes input) 62 | { 63 | Varyings output; 64 | 65 | float4 pos = mul(mul(_FakeShadowProj, mul(_FakeShadowView, unity_ObjectToWorld)), float4(input.positionOS.xyz, 1)); 66 | 67 | // 似非Viewport計算によるグリッド対応 68 | pos.xyz /= pos.w; 69 | pos.xy /= _FakeShadowLine; // グリッド分割数なので0が来ることはない 70 | pos.xy += _FakeShadowOffset.xy; // 指定位置 71 | pos.xyz *= pos.w; 72 | 73 | output.positionCS = pos; 74 | 75 | #ifdef FAKE_CLIP 76 | output.screenPos.xy = ComputeScreenPos(pos).xy; 77 | #endif 78 | 79 | return output; 80 | } 81 | 82 | half4 frag(Varyings input) : SV_Target 83 | { 84 | half4 color = _FakeShadowColor; 85 | #ifdef FAKE_CLIP 86 | clip(step(_FakeClipRect.x, input.screenPos.x)* step(input.screenPos.x, _FakeClipRect.x + _FakeClipRect.z)* 87 | step(_FakeClipRect.y, input.screenPos.y)* step(input.screenPos.y, _FakeClipRect.y + _FakeClipRect.w) - 0.001); 88 | #endif 89 | return color; 90 | } 91 | ENDHLSL 92 | } 93 | } 94 | } 95 | -------------------------------------------------------------------------------- /Assets/_DecalAssets/FakeShadowCaster.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 45b2d29dd53159e44b9d21ec63d25600 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | preprocessorOverride: 0 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/_DecalAssets/FakeShadowPassFeature.cs: -------------------------------------------------------------------------------- 1 | 2 | #if DEVELOPMENT_BUILD || UNITY_EDITOR 3 | #define ENABLE_PROFILING 4 | #endif 5 | 6 | using System.Collections.Generic; 7 | using UnityEngine; 8 | using UnityEngine.Rendering; 9 | using UnityEngine.Rendering.Universal; 10 | 11 | namespace UTJ { 12 | #region FAKE SHADOW 13 | internal class FakeShadowManager { 14 | #region DEFINE 15 | public struct MatParam { 16 | public int index; 17 | public Vector2 uvScale; 18 | public Vector4 offset; 19 | public Vector2 uvBias; 20 | public Vector4 clipRect; 21 | public Material material; 22 | } 23 | 24 | public const int SHADOW_LIMIT = 25; // 1024の16分割で256を限界値として想定 25 | public const string CLIP_RECT_KEYWORD = "FAKE_CLIP"; 26 | public static readonly int PROP_ID_LINE = Shader.PropertyToID("_FakeShadowLine"); 27 | public static readonly int PROP_ID_OFFSET = Shader.PropertyToID("_FakeShadowOffset"); 28 | public static readonly int PROP_ID_COLOR = Shader.PropertyToID("_FakeShadowColor"); 29 | public static readonly int PROP_ID_VIEW = Shader.PropertyToID("_FakeShadowView"); 30 | public static readonly int PROP_ID_PROJ = Shader.PropertyToID("_FakeShadowProj"); 31 | public static readonly int PROP_ID_CLIP = Shader.PropertyToID("_FakeClipRect"); 32 | public static readonly Quaternion TOP_ROT = Quaternion.Euler(90f, 0f, 0f); 33 | #endregion 34 | 35 | 36 | #region MEMBER 37 | private static Stack requests = new Stack(SHADOW_LIMIT); 38 | private static FakeShadowManager instance = null; 39 | private Dictionary available = new Dictionary(SHADOW_LIMIT); 40 | private Stack cancels = new Stack(SHADOW_LIMIT); 41 | private Stack indexStack = new Stack(SHADOW_LIMIT); 42 | private MatParam[] matParams = new MatParam[SHADOW_LIMIT]; 43 | private Color _color = Color.black; 44 | private int availableCount = 0; 45 | private float mapSize = 1f; 46 | #endregion 47 | 48 | 49 | #region MAIN FUNCTION 50 | [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterAssembliesLoaded)] 51 | private static void Reload() { 52 | // static変数にしたくないがEnterPlayModeを有効にするとRenderPassの生成より先にMonoBehaviourのOnEnableが飛ぶので... 53 | FakeShadowManager.requests.Clear(); 54 | } 55 | 56 | /// 57 | /// 初期化 58 | /// 59 | /// ShadowMesh用のShader 60 | internal FakeShadowManager(Shader fakeShader) { 61 | if (instance != null) { 62 | Debug.LogError("FakeShadowManager is duplicated."); 63 | return; 64 | } 65 | instance = this; 66 | 67 | if (fakeShader != null) { 68 | for (var i = 0; i < SHADOW_LIMIT; ++i) 69 | this.matParams[i].material = new Material(fakeShader); 70 | } 71 | 72 | Shader.SetGlobalColor(PROP_ID_COLOR, Color.gray); 73 | this.availableCount = 0; 74 | this.mapSize = 1; 75 | } 76 | 77 | /// 78 | /// 破棄 79 | /// 80 | internal void Dispose() { 81 | for (var i = 0; i < SHADOW_LIMIT; ++i) { 82 | Object.DestroyImmediate(this.matParams[i].material); 83 | this.matParams[i].material = null; 84 | } 85 | foreach (var shadow in this.available.Keys) 86 | shadow.Sleep(returnShadow:false); 87 | this.available.Clear(); 88 | this.indexStack.Clear(); 89 | requests.Clear(); 90 | instance = null; 91 | } 92 | 93 | /// 94 | /// 上限設定 95 | /// 96 | /// 上限値 97 | /// Decal Shadowバッファの解像度 98 | internal void SetAvailableCount(int count, float decalMapSize) { 99 | if (this.availableCount == count && this.mapSize == decalMapSize) 100 | return; 101 | 102 | this.availableCount = count; 103 | this.mapSize = decalMapSize; 104 | 105 | var line = Mathf.Ceil(Mathf.Sqrt(count)); // 累乗でグリッド生成 106 | var uvScale = 1f / line; // 0~1 107 | var block = 2f / line; // -1~1 108 | var onePixel = 1f / decalMapSize; 109 | var onePixelx2 = 2f / decalMapSize; 110 | 111 | this.indexStack.Clear(); 112 | for (var i = 0; i < this.availableCount; ++i) { 113 | // 描画位置、グリッドの中点 114 | var pos = Vector4.zero; 115 | pos.x = -1f + block * ((float)i % line + 0.5f); 116 | pos.y = 1f - block * (Mathf.Floor((float)i / line) + 0.5f); 117 | var uvBias = new Vector2(uvScale * Mathf.Floor((float)i % line), uvScale * Mathf.Floor((float)i / line)); 118 | // Bilinerによってはみ出してくるので1pix内側で切る 119 | var clipRect = new Vector4(uvBias.x + onePixel, uvBias.y + onePixel, uvScale - onePixelx2, uvScale - onePixelx2); 120 | 121 | this.indexStack.Push(i); 122 | if (this.matParams[i].material != null) { 123 | this.matParams[i].material.SetVector(PROP_ID_OFFSET, pos); 124 | this.matParams[i].material.SetVector(PROP_ID_CLIP, clipRect); 125 | } 126 | this.matParams[i].index = i; 127 | this.matParams[i].uvScale = new Vector2(uvScale, uvScale); 128 | this.matParams[i].offset = pos; 129 | this.matParams[i].uvBias = uvBias; 130 | this.matParams[i].clipRect = clipRect; 131 | } 132 | 133 | // 現在有効なShadowの更新 134 | if (this.available.Count > 0) { 135 | foreach (var shadow in this.available.Keys) { 136 | if (requests.Count >= this.availableCount) { 137 | Debug.LogError($"Canceled FakeShadow [{shadow.name}]. The max count is insufficient."); 138 | this.cancels.Push(shadow); 139 | continue; 140 | } 141 | requests.Push(shadow); 142 | } 143 | this.available.Clear(); 144 | foreach (var shadow in this.cancels) 145 | shadow.Sleep(); 146 | this.cancels.Clear(); 147 | } 148 | 149 | Shader.SetGlobalFloat(PROP_ID_LINE, line); 150 | } 151 | 152 | /// 153 | /// 新規リクエストの対応 154 | /// 155 | internal void ResolveRequests() { 156 | while (requests.Count > 0) { 157 | var req = requests.Pop(); 158 | // キャンセルされた場合は無視 159 | if (!req.isRequested) 160 | continue; 161 | if (this.available.ContainsKey(req)) { 162 | Debug.LogError($"Already available : {req.name}"); 163 | continue; 164 | } 165 | if (this.indexStack.Count == 0) { 166 | Debug.LogError($"Over requests : {req.name}"); 167 | req.Sleep(); 168 | continue; 169 | } 170 | 171 | var index = this.indexStack.Pop(); 172 | this.available.Add(req, index); 173 | 174 | // SkinnedMeshはMeshRendererを分けずにSubMeshの方がオーバーヘッドが低いのでMulti Renderer対応はしない 175 | if (req.isShadowMesh) { 176 | if (this.matParams[index].material == null) { 177 | Return(req); 178 | Debug.LogError("Not supported FakeShadow by ShadowMesh. Need the Shader."); 179 | continue; 180 | } 181 | } 182 | req.Setup(in this.matParams[index]); 183 | } 184 | } 185 | #endregion 186 | 187 | 188 | #region PUBLIC FUNCTION 189 | /// 190 | /// 影色 191 | /// 192 | public static Color color { 193 | get { return instance._color; } 194 | set { 195 | instance._color = value; 196 | Shader.SetGlobalColor(PROP_ID_COLOR, value); 197 | } 198 | } 199 | 200 | /// 201 | /// 有効リクエスト 202 | /// 203 | /// FakeShadowインスタンス 204 | /// 完了 205 | public static bool Request(FakeShadow shadow) { 206 | if (requests.Contains(shadow)) { 207 | Debug.LogError("Duplicated to request"); 208 | return true; 209 | } 210 | 211 | requests.Push(shadow); 212 | return true; 213 | } 214 | 215 | /// 216 | /// インデックス返却 217 | /// 218 | /// Requestで取得したインデックス 219 | public static bool Return(FakeShadow shadow) { 220 | if (instance == null || shadow == null) 221 | return false; 222 | if (instance.available.TryGetValue(shadow, out var index)) { 223 | instance.indexStack.Push(index); 224 | instance.available.Remove(shadow); 225 | return true; 226 | } 227 | Debug.LogError("Not found to return"); 228 | return false; 229 | } 230 | #endregion 231 | } 232 | #endregion 233 | 234 | public class FakeShadowPassFeature : ScriptableRendererFeature { 235 | public LayerMask characterLayer = 0; 236 | public Shader fakeShadowShader = null; 237 | [Range(1, FakeShadowManager.SHADOW_LIMIT)] 238 | public int maxShadowCount = 9; // 3x3 239 | public int decalMapSize = 512; 240 | 241 | private FakeShadowManager fakeShadow = null; 242 | private CharacterDepthPass depthPass = null; 243 | private CharacterShadowPass shadowPass = null; 244 | private CharacterOpaquePass opaquePass = null; 245 | 246 | 247 | #region DEPTH PASS 248 | /// 249 | /// CharacterレイヤーのDepth pass 250 | /// 251 | class CharacterDepthPass : ScriptableRenderPass { 252 | public LayerMask layerMask = 0; 253 | 254 | private ShaderTagId SHADER_TAG_ID = new ShaderTagId("DepthOnly"); 255 | private RenderStateBlock renderStateBlock; 256 | 257 | public CharacterDepthPass() { 258 | this.renderPassEvent = RenderPassEvent.AfterRenderingPrePasses; // 259 | this.renderStateBlock = new RenderStateBlock(RenderStateMask.Nothing); 260 | 261 | #if ENABLE_PROFILING 262 | base.profilingSampler = new ProfilingSampler("Character - Depth Pass"); 263 | #endif 264 | } 265 | 266 | public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData) { 267 | ConfigureTarget(renderingData.cameraData.renderer.cameraDepthTarget); 268 | } 269 | 270 | public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { 271 | #if ENABLE_PROFILING 272 | var cmd = CommandBufferPool.Get(); 273 | using (new ProfilingScope(cmd, this.profilingSampler)) { 274 | context.ExecuteCommandBuffer(cmd); 275 | cmd.Clear(); 276 | #endif 277 | var depthDrawSettings = CreateDrawingSettings(SHADER_TAG_ID, ref renderingData, SortingCriteria.CommonOpaque); 278 | depthDrawSettings.perObjectData = PerObjectData.None; 279 | var depthFilteringSettings = new FilteringSettings(RenderQueueRange.opaque, this.layerMask); 280 | context.DrawRenderers(renderingData.cullResults, ref depthDrawSettings, ref depthFilteringSettings, ref this.renderStateBlock); 281 | #if ENABLE_PROFILING 282 | } 283 | context.ExecuteCommandBuffer(cmd); 284 | CommandBufferPool.Release(cmd); 285 | #endif 286 | } 287 | } 288 | #endregion 289 | 290 | 291 | #region FAKE SHADOW PASS 292 | /// 293 | /// CharacterレイヤーのFake Shadow pass 294 | /// 295 | class CharacterShadowPass : ScriptableRenderPass { 296 | public LayerMask layerMask = 0; 297 | public int decalMapSize = 512; 298 | 299 | private ShaderTagId FAKE_SHADER_TAG_ID = new ShaderTagId("FakeShadow"); 300 | private RenderStateBlock renderStateBlock; 301 | private int DECAL_MAP_ID = Shader.PropertyToID("_DecalTexture"); 302 | 303 | public CharacterShadowPass() { 304 | this.renderPassEvent = RenderPassEvent.AfterRenderingPrePasses; 305 | this.renderStateBlock = new RenderStateBlock(RenderStateMask.Nothing); 306 | 307 | #if ENABLE_PROFILING 308 | base.profilingSampler = new ProfilingSampler("Character - FakeShadow Pass"); 309 | #endif 310 | } 311 | 312 | public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData) { 313 | var desc = new RenderTextureDescriptor(this.decalMapSize, this.decalMapSize, UnityEngine.Experimental.Rendering.GraphicsFormat.R8G8B8A8_SRGB, 0, 0); 314 | desc.msaaSamples = 1; 315 | desc.sRGB = (QualitySettings.activeColorSpace == ColorSpace.Linear); 316 | cmd.GetTemporaryRT(DECAL_MAP_ID, desc, FilterMode.Bilinear); 317 | 318 | ConfigureTarget(DECAL_MAP_ID); 319 | ConfigureClear(ClearFlag.Color, Color.clear); 320 | } 321 | 322 | public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { 323 | #if ENABLE_PROFILING 324 | var cmd = CommandBufferPool.Get(); 325 | using (new ProfilingScope(cmd, this.profilingSampler)) { 326 | context.ExecuteCommandBuffer(cmd); 327 | cmd.Clear(); 328 | #endif 329 | // DecalをGPU Instancingする為にDecal Map一つにグリッドで描画する 330 | var drawSettings = CreateDrawingSettings(FAKE_SHADER_TAG_ID, ref renderingData, SortingCriteria.OptimizeStateChanges); 331 | var filteringSettings = new FilteringSettings(RenderQueueRange.opaque, this.layerMask); 332 | context.DrawRenderers(renderingData.cullResults, ref drawSettings, ref filteringSettings, ref this.renderStateBlock); 333 | #if ENABLE_PROFILING 334 | } 335 | context.ExecuteCommandBuffer(cmd); 336 | CommandBufferPool.Release(cmd); 337 | #endif 338 | } 339 | public override void OnCameraCleanup(CommandBuffer cmd) { 340 | if (cmd == null) { 341 | throw new System.ArgumentNullException("cmd"); 342 | } 343 | 344 | cmd.ReleaseTemporaryRT(DECAL_MAP_ID); 345 | } 346 | } 347 | #endregion 348 | 349 | 350 | #region OPAQUE PASS 351 | /// 352 | /// CharacterレイヤーのOpaque pass 353 | /// 354 | class CharacterOpaquePass : ScriptableRenderPass { 355 | public LayerMask layerMask = 0; 356 | public bool useDepthPriming = false; 357 | 358 | private ShaderTagId SHADER_TAG_ID = new ShaderTagId("UniversalForward"); 359 | private RenderStateBlock renderStateBlock; 360 | 361 | public CharacterOpaquePass() { 362 | this.renderPassEvent = RenderPassEvent.AfterRenderingSkybox; // after DecalPass 363 | this.renderStateBlock = new RenderStateBlock(RenderStateMask.Nothing); 364 | 365 | #if ENABLE_PROFILING 366 | base.profilingSampler = new ProfilingSampler("Character - Opaque Pass"); 367 | #endif 368 | } 369 | 370 | public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData) { 371 | if (this.useDepthPriming) { 372 | this.renderStateBlock.depthState = new DepthState(false, CompareFunction.Equal); 373 | this.renderStateBlock.mask |= RenderStateMask.Depth; 374 | } else if (this.renderStateBlock.depthState.compareFunction == CompareFunction.Equal) { 375 | this.renderStateBlock.depthState = new DepthState(true, CompareFunction.LessEqual); 376 | this.renderStateBlock.mask |= RenderStateMask.Depth; 377 | } 378 | } 379 | 380 | public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { 381 | #if ENABLE_PROFILING 382 | var cmd = CommandBufferPool.Get(); 383 | using (new ProfilingScope(cmd, this.profilingSampler)) { 384 | context.ExecuteCommandBuffer(cmd); 385 | cmd.Clear(); 386 | #endif 387 | var sortFlags = renderingData.cameraData.defaultOpaqueSortFlags; 388 | if (this.useDepthPriming) 389 | sortFlags = SortingCriteria.SortingLayer | SortingCriteria.RenderQueue | SortingCriteria.OptimizeStateChanges; 390 | var drawSettings = CreateDrawingSettings(SHADER_TAG_ID, ref renderingData, sortFlags); 391 | var filteringSettings = new FilteringSettings(RenderQueueRange.opaque, this.layerMask); 392 | context.DrawRenderers(renderingData.cullResults, ref drawSettings, ref filteringSettings, ref this.renderStateBlock); 393 | #if ENABLE_PROFILING 394 | } 395 | context.ExecuteCommandBuffer(cmd); 396 | CommandBufferPool.Release(cmd); 397 | #endif 398 | } 399 | } 400 | #endregion 401 | 402 | 403 | System.Reflection.PropertyInfo propUseDepthPriming = null; 404 | 405 | public override void Create() { 406 | if (this.propUseDepthPriming != null) 407 | return; 408 | 409 | this.depthPass = new CharacterDepthPass(); 410 | this.shadowPass = new CharacterShadowPass(); 411 | this.opaquePass = new CharacterOpaquePass(); 412 | 413 | this.fakeShadow = new FakeShadowManager(this.fakeShadowShader); 414 | 415 | var universalRendererType = typeof(UniversalRenderer); 416 | this.propUseDepthPriming = universalRendererType.GetProperty("useDepthPriming", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); 417 | } 418 | 419 | protected override void Dispose(bool disposing) { 420 | this.depthPass = null; 421 | this.shadowPass = null; 422 | this.opaquePass = null; 423 | this.fakeShadow?.Dispose(); 424 | this.fakeShadow = null; 425 | this.propUseDepthPriming = null; 426 | } 427 | 428 | public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData) { 429 | // Decalを利用するのでDepth Textureは必ずあるという前提 430 | // 本サンプルはDepth Priming有効で期待しているので決め打ちにしてもいい 431 | // ATTENTION: Not supported the case that chaging DepthPrimingMode in runtime when available shadows exist. 432 | var useDepthPriming = (bool)this.propUseDepthPriming.GetValue(renderingData.cameraData.renderer); 433 | 434 | #if UNITY_EDITOR 435 | // Depth Priming Modeが無効かつCopyDepthの為にDepthPrepassを走らせるとイベントが正常に差し込めないので非対応 436 | var memberCopyDepthMode = typeof(UniversalRenderer).GetField("m_CopyDepthMode", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); 437 | var depthPrepass = useDepthPriming | (CopyDepthMode)memberCopyDepthMode.GetValue(renderingData.cameraData.renderer) == CopyDepthMode.ForcePrepass; 438 | if (!useDepthPriming && depthPrepass) 439 | Debug.LogError("not supported \"Depth Texture Mode\" to \"Force Prepass\" in URP Asset"); 440 | #endif 441 | 442 | // support to modify in runtime 443 | this.depthPass.layerMask = this.characterLayer; 444 | this.opaquePass.layerMask = this.characterLayer; 445 | this.shadowPass.layerMask = this.characterLayer; 446 | this.shadowPass.decalMapSize = this.decalMapSize; 447 | 448 | this.opaquePass.useDepthPriming = useDepthPriming; 449 | if (useDepthPriming) 450 | this.depthPass.renderPassEvent = RenderPassEvent.AfterRenderingPrePasses; 451 | else 452 | this.depthPass.renderPassEvent = RenderPassEvent.AfterRenderingOpaques; // for CopyDepth 453 | 454 | this.fakeShadow.SetAvailableCount(this.maxShadowCount, this.decalMapSize); // 有効数の変更、ランタイムで変更したい場合は要改変、実行数より有効数を減らされた場合の例外対応に注意 455 | this.fakeShadow.ResolveRequests(); // リクエスト処理 456 | 457 | renderer.EnqueuePass(this.depthPass); 458 | renderer.EnqueuePass(this.shadowPass); 459 | renderer.EnqueuePass(this.opaquePass); 460 | } 461 | } 462 | } 463 | -------------------------------------------------------------------------------- /Assets/_DecalAssets/FakeShadowPassFeature.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 90c6089b20f87c044b6165a4964a0c65 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/_DecalAssets/For_DecalProjector.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e1dd6b97d4b0d744598cb66e18dd2cdb 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/_DecalAssets/For_DecalProjector/BlobShadowByDecal.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &-6701406186042622323 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 11 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | version: 5 16 | --- !u!21 &2100000 17 | Material: 18 | serializedVersion: 8 19 | m_ObjectHideFlags: 0 20 | m_CorrespondingSourceObject: {fileID: 0} 21 | m_PrefabInstance: {fileID: 0} 22 | m_PrefabAsset: {fileID: 0} 23 | m_Name: BlobShadowByDecal 24 | m_Shader: {fileID: -6465566751694194690, guid: f0e85556399ff1c429d7f4d30a964d4c, type: 3} 25 | m_ValidKeywords: [] 26 | m_InvalidKeywords: [] 27 | m_LightmapFlags: 4 28 | m_EnableInstancingVariants: 0 29 | m_DoubleSidedGI: 0 30 | m_CustomRenderQueue: -1 31 | stringTagMap: {} 32 | disabledShaderPasses: [] 33 | m_SavedProperties: 34 | serializedVersion: 3 35 | m_TexEnvs: 36 | - Base_Map: 37 | m_Texture: {fileID: 10300, guid: 0000000000000000f000000000000000, type: 0} 38 | m_Scale: {x: 1, y: 1} 39 | m_Offset: {x: 0, y: 0} 40 | - _BaseMap: 41 | m_Texture: {fileID: 0} 42 | m_Scale: {x: 1, y: 1} 43 | m_Offset: {x: 0, y: 0} 44 | - _BumpMap: 45 | m_Texture: {fileID: 0} 46 | m_Scale: {x: 1, y: 1} 47 | m_Offset: {x: 0, y: 0} 48 | - _DetailAlbedoMap: 49 | m_Texture: {fileID: 0} 50 | m_Scale: {x: 1, y: 1} 51 | m_Offset: {x: 0, y: 0} 52 | - _DetailMask: 53 | m_Texture: {fileID: 0} 54 | m_Scale: {x: 1, y: 1} 55 | m_Offset: {x: 0, y: 0} 56 | - _DetailNormalMap: 57 | m_Texture: {fileID: 0} 58 | m_Scale: {x: 1, y: 1} 59 | m_Offset: {x: 0, y: 0} 60 | - _EmissionMap: 61 | m_Texture: {fileID: 0} 62 | m_Scale: {x: 1, y: 1} 63 | m_Offset: {x: 0, y: 0} 64 | - _MainTex: 65 | m_Texture: {fileID: 0} 66 | m_Scale: {x: 1, y: 1} 67 | m_Offset: {x: 0, y: 0} 68 | - _MetallicGlossMap: 69 | m_Texture: {fileID: 0} 70 | m_Scale: {x: 1, y: 1} 71 | m_Offset: {x: 0, y: 0} 72 | - _OcclusionMap: 73 | m_Texture: {fileID: 0} 74 | m_Scale: {x: 1, y: 1} 75 | m_Offset: {x: 0, y: 0} 76 | - _ParallaxMap: 77 | m_Texture: {fileID: 0} 78 | m_Scale: {x: 1, y: 1} 79 | m_Offset: {x: 0, y: 0} 80 | - _SpecGlossMap: 81 | m_Texture: {fileID: 0} 82 | m_Scale: {x: 1, y: 1} 83 | m_Offset: {x: 0, y: 0} 84 | - unity_Lightmaps: 85 | m_Texture: {fileID: 0} 86 | m_Scale: {x: 1, y: 1} 87 | m_Offset: {x: 0, y: 0} 88 | - unity_LightmapsInd: 89 | m_Texture: {fileID: 0} 90 | m_Scale: {x: 1, y: 1} 91 | m_Offset: {x: 0, y: 0} 92 | - unity_ShadowMasks: 93 | m_Texture: {fileID: 0} 94 | m_Scale: {x: 1, y: 1} 95 | m_Offset: {x: 0, y: 0} 96 | m_Ints: [] 97 | m_Floats: 98 | - _AlphaClip: 0 99 | - _Blend: 0 100 | - _BumpScale: 1 101 | - _ClearCoatMask: 0 102 | - _ClearCoatSmoothness: 0 103 | - _Cull: 2 104 | - _Cutoff: 0.5 105 | - _DecalAngleFadeSupported: 1 106 | - _DecalMeshBiasType: 0 107 | - _DecalMeshDepthBias: 0 108 | - _DecalMeshViewBias: 0 109 | - _DetailAlbedoMapScale: 1 110 | - _DetailNormalMapScale: 1 111 | - _DrawOrder: 0 112 | - _DstBlend: 0 113 | - _EnvironmentReflections: 1 114 | - _GlossMapScale: 0 115 | - _Glossiness: 0 116 | - _GlossyReflections: 0 117 | - _Metallic: 0 118 | - _OcclusionStrength: 1 119 | - _Parallax: 0.005 120 | - _QueueOffset: 0 121 | - _ReceiveShadows: 1 122 | - _Smoothness: 0.5 123 | - _SmoothnessTextureChannel: 0 124 | - _SpecularHighlights: 1 125 | - _SrcBlend: 1 126 | - _Surface: 0 127 | - _WorkflowMode: 1 128 | - _ZWrite: 1 129 | m_Colors: 130 | - _BaseColor: {r: 1, g: 1, b: 1, a: 1} 131 | - _Base_Color: {r: 0, g: 0, b: 0, a: 0} 132 | - _Color: {r: 1, g: 1, b: 1, a: 1} 133 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 134 | - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} 135 | m_BuildTextureStacks: [] 136 | -------------------------------------------------------------------------------- /Assets/_DecalAssets/For_DecalProjector/BlobShadowByDecal.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fe73b4d38f019ba4b94da5f3437eba02 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/_DecalAssets/For_DecalProjector/FakeShadowByDecal.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &-278128243020669135 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 11 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | version: 5 16 | --- !u!21 &2100000 17 | Material: 18 | serializedVersion: 8 19 | m_ObjectHideFlags: 0 20 | m_CorrespondingSourceObject: {fileID: 0} 21 | m_PrefabInstance: {fileID: 0} 22 | m_PrefabAsset: {fileID: 0} 23 | m_Name: FakeShadowByDecal 24 | m_Shader: {fileID: 4800000, guid: a5da91b415ed0fe46849c7a9f0cc8a59, type: 3} 25 | m_ValidKeywords: 26 | - DECAL_ANGLE_FADE 27 | m_InvalidKeywords: [] 28 | m_LightmapFlags: 4 29 | m_EnableInstancingVariants: 1 30 | m_DoubleSidedGI: 0 31 | m_CustomRenderQueue: -1 32 | stringTagMap: {} 33 | disabledShaderPasses: [] 34 | m_SavedProperties: 35 | serializedVersion: 3 36 | m_TexEnvs: 37 | - Base_Map: 38 | m_Texture: {fileID: 8400000, guid: c329ac36cbdcde8458a7ae5effa398bf, type: 2} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | - Normal_Map: 42 | m_Texture: {fileID: 0} 43 | m_Scale: {x: 1, y: 1} 44 | m_Offset: {x: 0, y: 0} 45 | - _BaseMap: 46 | m_Texture: {fileID: 0} 47 | m_Scale: {x: 1, y: 1} 48 | m_Offset: {x: 0, y: 0} 49 | - _BumpMap: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | - _DetailAlbedoMap: 54 | m_Texture: {fileID: 0} 55 | m_Scale: {x: 1, y: 1} 56 | m_Offset: {x: 0, y: 0} 57 | - _DetailMask: 58 | m_Texture: {fileID: 0} 59 | m_Scale: {x: 1, y: 1} 60 | m_Offset: {x: 0, y: 0} 61 | - _DetailNormalMap: 62 | m_Texture: {fileID: 0} 63 | m_Scale: {x: 1, y: 1} 64 | m_Offset: {x: 0, y: 0} 65 | - _EmissionMap: 66 | m_Texture: {fileID: 0} 67 | m_Scale: {x: 1, y: 1} 68 | m_Offset: {x: 0, y: 0} 69 | - _MainTex: 70 | m_Texture: {fileID: 0} 71 | m_Scale: {x: 1, y: 1} 72 | m_Offset: {x: 0, y: 0} 73 | - _MetallicGlossMap: 74 | m_Texture: {fileID: 0} 75 | m_Scale: {x: 1, y: 1} 76 | m_Offset: {x: 0, y: 0} 77 | - _OcclusionMap: 78 | m_Texture: {fileID: 0} 79 | m_Scale: {x: 1, y: 1} 80 | m_Offset: {x: 0, y: 0} 81 | - _ParallaxMap: 82 | m_Texture: {fileID: 0} 83 | m_Scale: {x: 1, y: 1} 84 | m_Offset: {x: 0, y: 0} 85 | - _SpecGlossMap: 86 | m_Texture: {fileID: 0} 87 | m_Scale: {x: 1, y: 1} 88 | m_Offset: {x: 0, y: 0} 89 | - unity_Lightmaps: 90 | m_Texture: {fileID: 0} 91 | m_Scale: {x: 1, y: 1} 92 | m_Offset: {x: 0, y: 0} 93 | - unity_LightmapsInd: 94 | m_Texture: {fileID: 0} 95 | m_Scale: {x: 1, y: 1} 96 | m_Offset: {x: 0, y: 0} 97 | - unity_ShadowMasks: 98 | m_Texture: {fileID: 0} 99 | m_Scale: {x: 1, y: 1} 100 | m_Offset: {x: 0, y: 0} 101 | m_Ints: [] 102 | m_Floats: 103 | - Normal_Blend: 0 104 | - _AlphaClip: 0 105 | - _Blend: 0 106 | - _BumpScale: 1 107 | - _ClearCoatMask: 0 108 | - _ClearCoatSmoothness: 0 109 | - _Cull: 2 110 | - _Cutoff: 0.5 111 | - _DecalAngleFadeSupported: 1 112 | - _DecalMeshBiasType: 0 113 | - _DecalMeshDepthBias: 0 114 | - _DecalMeshViewBias: 0 115 | - _DetailAlbedoMapScale: 1 116 | - _DetailNormalMapScale: 1 117 | - _DrawOrder: 0 118 | - _DstBlend: 0 119 | - _EnvironmentReflections: 1 120 | - _GlossMapScale: 0 121 | - _Glossiness: 0 122 | - _GlossyReflections: 0 123 | - _Metallic: 0 124 | - _OcclusionStrength: 1 125 | - _Parallax: 0.005 126 | - _QueueOffset: 0 127 | - _ReceiveShadows: 1 128 | - _Smoothness: 0.5 129 | - _SmoothnessTextureChannel: 0 130 | - _SpecularHighlights: 1 131 | - _SrcBlend: 1 132 | - _Surface: 0 133 | - _WorkflowMode: 1 134 | - _ZWrite: 1 135 | m_Colors: 136 | - _BaseColor: {r: 1, g: 1, b: 1, a: 1} 137 | - _Base_Color: {r: 0.18934675, g: 0.2564249, b: 0.3490566, a: 0} 138 | - _Color: {r: 1, g: 1, b: 1, a: 1} 139 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 140 | - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} 141 | m_BuildTextureStacks: [] 142 | -------------------------------------------------------------------------------- /Assets/_DecalAssets/For_DecalProjector/FakeShadowByDecal.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c4817ed7f0354c348bebd1e24902e6a4 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/_DecalAssets/For_DecalProjector/FakeShadowByDecal.shader: -------------------------------------------------------------------------------- 1 | 2 | // ShaderGraphのDecalシェーダーからFake Shadowに必要なもののみに削ぎ落す 3 | Shader "UTJ/FakeShadowByDecal" 4 | { 5 | Properties 6 | { 7 | //[NoScaleOffset] Base_Map("Base Map", 2D) = "white" {} // _DecalTextureで飛んでくる 8 | _Base_Color("Base Color", Color) = (0, 0, 0, 0) 9 | [Toggle(DECAL_ANGLE_FADE)]_DecalAngleFadeSupported("Decal Angle Fade Supported", Float) = 1 10 | } 11 | SubShader 12 | { 13 | Tags 14 | { 15 | "RenderPipeline" = "UniversalPipeline" 16 | // RenderType: 17 | "PreviewType" = "Plane" 18 | // Queue: 19 | } 20 | Pass 21 | { 22 | Name "DecalScreenSpaceProjector" 23 | Tags 24 | { 25 | "LightMode" = "DecalScreenSpaceProjector" 26 | } 27 | 28 | // Render State 29 | Cull Front 30 | Blend SrcAlpha OneMinusSrcAlpha 31 | ZTest Greater 32 | ZWrite Off 33 | 34 | // Debug 35 | // 36 | 37 | // -------------------------------------------------- 38 | // Pass 39 | 40 | HLSLPROGRAM 41 | 42 | // Pragmas 43 | #pragma target 2.5 44 | #pragma vertex Vert 45 | #pragma fragment Frag 46 | #pragma multi_compile_instancing 47 | #pragma editor_sync_compilation 48 | 49 | // create shader variant 50 | #pragma shader_feature_local_fragment DECAL_ANGLE_FADE 51 | 52 | // Includes 53 | #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" 54 | #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" 55 | #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl" 56 | #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderVariablesDecal.hlsl" 57 | #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DeclareDepthTexture.hlsl" 58 | #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/NormalReconstruction.hlsl" 59 | 60 | // -------------------------------------------------- 61 | // Structs and Packing 62 | 63 | struct Attributes 64 | { 65 | float3 positionOS : POSITION; 66 | float4 uv0 : TEXCOORD0; 67 | #if UNITY_ANY_INSTANCING_ENABLED 68 | uint instanceID : INSTANCEID_SEMANTIC; 69 | #endif 70 | }; 71 | struct Varyings 72 | { 73 | float4 positionCS : SV_POSITION; 74 | float4 texCoord0; 75 | #if UNITY_ANY_INSTANCING_ENABLED 76 | uint instanceID : CUSTOM_INSTANCE_ID; 77 | #endif 78 | }; 79 | struct PackedVaryings 80 | { 81 | float4 positionCS : SV_POSITION; 82 | float4 interp0 : INTERP0; 83 | #if UNITY_ANY_INSTANCING_ENABLED 84 | uint instanceID : CUSTOM_INSTANCE_ID; 85 | #endif 86 | }; 87 | 88 | PackedVaryings PackVaryings(Varyings input) 89 | { 90 | PackedVaryings output; 91 | ZERO_INITIALIZE(PackedVaryings, output); 92 | output.positionCS = input.positionCS; 93 | output.interp0.xyzw = input.texCoord0; 94 | #if UNITY_ANY_INSTANCING_ENABLED 95 | output.instanceID = input.instanceID; 96 | #endif 97 | return output; 98 | } 99 | 100 | Varyings UnpackVaryings(PackedVaryings input) 101 | { 102 | Varyings output; 103 | output.positionCS = input.positionCS; 104 | output.texCoord0 = input.interp0.xyzw; 105 | #if UNITY_ANY_INSTANCING_ENABLED 106 | output.instanceID = input.instanceID; 107 | #endif 108 | return output; 109 | } 110 | 111 | 112 | // -------------------------------------------------- 113 | // Graph 114 | 115 | CBUFFER_START(UnityPerMaterial) 116 | float4 _DecalTexture_TexelSize; 117 | float4 _Base_Color; 118 | CBUFFER_END 119 | 120 | //SAMPLER(SamplerState_Linear_Repeat); 121 | TEXTURE2D(_DecalTexture); 122 | SAMPLER(sampler_DecalTexture); 123 | 124 | // -------------------------------------------------- 125 | // Functions 126 | 127 | half4 GetSurfaceColor(Varyings input, uint2 positionSS, float angleFadeFactor) 128 | { 129 | half4x4 normalToWorld = UNITY_ACCESS_INSTANCED_PROP(Decal, _NormalToWorld); 130 | half fadeFactor = clamp(normalToWorld[0][3], 0.0f, 1.0f) * angleFadeFactor; 131 | float2 scale = float2(normalToWorld[3][0], normalToWorld[3][1]); 132 | float2 offset = float2(normalToWorld[3][2], normalToWorld[3][3]); 133 | input.texCoord0.xy = input.texCoord0.xy * scale + offset; 134 | 135 | UnityTexture2D _Property_Out_0 = UnityBuildTexture2DStructNoScale(_DecalTexture); 136 | float4 _SampleTexture2D_RGBA_0 = SAMPLE_TEXTURE2D(_Property_Out_0.tex, _Property_Out_0.samplerstate, _Property_Out_0.GetTransformedUV(input.texCoord0.xy)); 137 | float3 surfaceColor = _SampleTexture2D_RGBA_0.rgb * _Base_Color.rgb; 138 | float surfaceAlpha = _SampleTexture2D_RGBA_0.a; 139 | 140 | return half4(surfaceColor.r, surfaceColor.g, surfaceColor.b, surfaceAlpha * fadeFactor); 141 | } 142 | 143 | // -------------------------------------------------- 144 | // Main 145 | 146 | Varyings BuildVaryings(Attributes input) 147 | { 148 | Varyings output = (Varyings)0; 149 | 150 | UNITY_SETUP_INSTANCE_ID(input); 151 | 152 | UNITY_TRANSFER_INSTANCE_ID(input, output); 153 | UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output); 154 | 155 | // TODO: Avoid path via VertexPositionInputs (Universal) 156 | VertexPositionInputs vertexInput = GetVertexPositionInputs(input.positionOS.xyz); 157 | 158 | // Returns the camera relative position (if enabled) 159 | float3 positionWS = TransformObjectToWorld(input.positionOS); 160 | 161 | output.positionCS = TransformWorldToHClip(positionWS); 162 | 163 | output.texCoord0 = input.uv0; 164 | 165 | #ifdef EDITOR_VISUALIZATION 166 | float2 VizUV = 0; 167 | float4 LightCoord = 0; 168 | UnityEditorVizData(input.positionOS, input.uv0, input.uv1, input.uv2, VizUV, LightCoord); 169 | #endif 170 | 171 | return output; 172 | } 173 | 174 | PackedVaryings Vert(Attributes inputMesh) 175 | { 176 | Varyings output = (Varyings)0; 177 | output = BuildVaryings(inputMesh); 178 | 179 | PackedVaryings packedOutput = (PackedVaryings)0; 180 | packedOutput = PackVaryings(output); 181 | 182 | return packedOutput; 183 | } 184 | 185 | void Frag(PackedVaryings packedInput, out half4 outColor : SV_Target0) 186 | { 187 | UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(packedInput); 188 | UNITY_SETUP_INSTANCE_ID(packedInput); 189 | Varyings input = UnpackVaryings(packedInput); 190 | 191 | half angleFadeFactor = 1.0; 192 | 193 | float2 positionCS = input.positionCS.xy; 194 | 195 | // Only screen space needs flip logic, other passes do not setup needed properties so we skip here 196 | TransformScreenUV(positionCS, _ScreenSize.y); 197 | 198 | #if UNITY_REVERSED_Z 199 | float depth = LoadSceneDepth(positionCS.xy); 200 | #else 201 | // Adjust z to match NDC for OpenGL 202 | float depth = lerp(UNITY_NEAR_CLIP_VALUE, 1, LoadSceneDepth(positionCS.xy)); 203 | #endif 204 | 205 | float2 positionSS = input.positionCS.xy * _ScreenSize.zw; 206 | 207 | float3 positionWS = ComputeWorldSpacePosition(positionSS, depth, UNITY_MATRIX_I_VP); 208 | 209 | // Transform from relative world space to decal space (DS) to clip the decal 210 | float3 positionDS = TransformWorldToObject(positionWS); 211 | positionDS = positionDS * float3(1.0, -1.0, 1.0); 212 | 213 | // call clip as early as possible 214 | float clipValue = 0.5 - Max3(abs(positionDS).x, abs(positionDS).y, abs(positionDS).z); 215 | clip(clipValue); 216 | 217 | float2 texCoord = positionDS.xz + float2(0.5, 0.5); 218 | input.texCoord0.xy = texCoord; 219 | 220 | #ifdef DECAL_ANGLE_FADE 221 | #if defined(_DECAL_NORMAL_BLEND_HIGH) 222 | half3 normalWS = half3(ReconstructNormalTap9(positionCS.xy)); 223 | #elif defined(_DECAL_NORMAL_BLEND_MEDIUM) 224 | half3 normalWS = half3(ReconstructNormalTap5(positionCS.xy)); 225 | #else 226 | half3 normalWS = half3(ReconstructNormalDerivative(input.positionCS.xy)); 227 | #endif 228 | 229 | // Check if this decal projector require angle fading 230 | half4x4 normalToWorld = UNITY_ACCESS_INSTANCED_PROP(Decal, _NormalToWorld); 231 | half2 angleFade = half2(normalToWorld[1][3], normalToWorld[2][3]); 232 | 233 | if (angleFade.y < 0.0f) // if angle fade is enabled 234 | { 235 | half3 decalNormal = half3(normalToWorld[0].z, normalToWorld[1].z, normalToWorld[2].z); 236 | half dotAngle = dot(normalWS, decalNormal); 237 | // See equation in DecalCreateDrawCallSystem.cs - simplified to a madd mul add here 238 | angleFadeFactor = saturate(angleFade.x + angleFade.y * (dotAngle * (dotAngle - 2.0))); 239 | } 240 | #endif 241 | 242 | outColor = GetSurfaceColor(input, (uint2)positionSS, angleFadeFactor); 243 | } 244 | ENDHLSL 245 | } 246 | } 247 | //FallBack "Hidden/Shader Graph/FallbackError" 248 | } -------------------------------------------------------------------------------- /Assets/_DecalAssets/For_DecalProjector/FakeShadowByDecal.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a5da91b415ed0fe46849c7a9f0cc8a59 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | preprocessorOverride: 0 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/_DecalAssets/SimpleDecalForBlob.shadergraph.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f0e85556399ff1c429d7f4d30a964d4c 3 | ScriptedImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 2 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3} 11 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Unity Companion License 2 | 3 | Copyright (c) 2022 Yugo Fujioka 4 | 5 | Licensed under the Unity Companion License for Unity-dependent projects--see Unity Companion License. 6 | [https://unity.com/legal/licenses/unity-companion-license] 7 | 8 | Unless expressly provided otherwise, the Software under this license is made available strictly 9 | on an "AS IS" BASIS WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. 10 | Please review the license for details on these and other terms and conditions. 11 | -------------------------------------------------------------------------------- /Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.ide.visualstudio": "2.0.18", 4 | "com.unity.render-pipelines.universal": "12.1.11", 5 | "com.unity.test-framework": "1.1.33", 6 | "com.unity.ugui": "1.0.0", 7 | "com.unity.modules.ai": "1.0.0", 8 | "com.unity.modules.androidjni": "1.0.0", 9 | "com.unity.modules.animation": "1.0.0", 10 | "com.unity.modules.assetbundle": "1.0.0", 11 | "com.unity.modules.audio": "1.0.0", 12 | "com.unity.modules.cloth": "1.0.0", 13 | "com.unity.modules.director": "1.0.0", 14 | "com.unity.modules.imageconversion": "1.0.0", 15 | "com.unity.modules.imgui": "1.0.0", 16 | "com.unity.modules.jsonserialize": "1.0.0", 17 | "com.unity.modules.particlesystem": "1.0.0", 18 | "com.unity.modules.physics": "1.0.0", 19 | "com.unity.modules.physics2d": "1.0.0", 20 | "com.unity.modules.screencapture": "1.0.0", 21 | "com.unity.modules.terrain": "1.0.0", 22 | "com.unity.modules.terrainphysics": "1.0.0", 23 | "com.unity.modules.tilemap": "1.0.0", 24 | "com.unity.modules.ui": "1.0.0", 25 | "com.unity.modules.uielements": "1.0.0", 26 | "com.unity.modules.umbra": "1.0.0", 27 | "com.unity.modules.unityanalytics": "1.0.0", 28 | "com.unity.modules.unitywebrequest": "1.0.0", 29 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 30 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 31 | "com.unity.modules.unitywebrequesttexture": "1.0.0", 32 | "com.unity.modules.unitywebrequestwww": "1.0.0", 33 | "com.unity.modules.vehicles": "1.0.0", 34 | "com.unity.modules.video": "1.0.0", 35 | "com.unity.modules.vr": "1.0.0", 36 | "com.unity.modules.wind": "1.0.0", 37 | "com.unity.modules.xr": "1.0.0" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /Packages/packages-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.burst": { 4 | "version": "1.8.4", 5 | "depth": 1, 6 | "source": "registry", 7 | "dependencies": { 8 | "com.unity.mathematics": "1.2.1" 9 | }, 10 | "url": "https://packages.unity.com" 11 | }, 12 | "com.unity.ext.nunit": { 13 | "version": "1.0.6", 14 | "depth": 1, 15 | "source": "registry", 16 | "dependencies": {}, 17 | "url": "https://packages.unity.com" 18 | }, 19 | "com.unity.ide.visualstudio": { 20 | "version": "2.0.18", 21 | "depth": 0, 22 | "source": "registry", 23 | "dependencies": { 24 | "com.unity.test-framework": "1.1.9" 25 | }, 26 | "url": "https://packages.unity.com" 27 | }, 28 | "com.unity.mathematics": { 29 | "version": "1.2.6", 30 | "depth": 1, 31 | "source": "registry", 32 | "dependencies": {}, 33 | "url": "https://packages.unity.com" 34 | }, 35 | "com.unity.render-pipelines.core": { 36 | "version": "12.1.11", 37 | "depth": 1, 38 | "source": "builtin", 39 | "dependencies": { 40 | "com.unity.ugui": "1.0.0", 41 | "com.unity.modules.physics": "1.0.0", 42 | "com.unity.modules.jsonserialize": "1.0.0" 43 | } 44 | }, 45 | "com.unity.render-pipelines.universal": { 46 | "version": "12.1.11", 47 | "depth": 0, 48 | "source": "builtin", 49 | "dependencies": { 50 | "com.unity.mathematics": "1.2.1", 51 | "com.unity.burst": "1.8.4", 52 | "com.unity.render-pipelines.core": "12.1.11", 53 | "com.unity.shadergraph": "12.1.11" 54 | } 55 | }, 56 | "com.unity.searcher": { 57 | "version": "4.9.1", 58 | "depth": 2, 59 | "source": "registry", 60 | "dependencies": {}, 61 | "url": "https://packages.unity.com" 62 | }, 63 | "com.unity.shadergraph": { 64 | "version": "12.1.11", 65 | "depth": 1, 66 | "source": "builtin", 67 | "dependencies": { 68 | "com.unity.render-pipelines.core": "12.1.11", 69 | "com.unity.searcher": "4.9.1" 70 | } 71 | }, 72 | "com.unity.test-framework": { 73 | "version": "1.1.33", 74 | "depth": 0, 75 | "source": "registry", 76 | "dependencies": { 77 | "com.unity.ext.nunit": "1.0.6", 78 | "com.unity.modules.imgui": "1.0.0", 79 | "com.unity.modules.jsonserialize": "1.0.0" 80 | }, 81 | "url": "https://packages.unity.com" 82 | }, 83 | "com.unity.ugui": { 84 | "version": "1.0.0", 85 | "depth": 0, 86 | "source": "builtin", 87 | "dependencies": { 88 | "com.unity.modules.ui": "1.0.0", 89 | "com.unity.modules.imgui": "1.0.0" 90 | } 91 | }, 92 | "com.unity.modules.ai": { 93 | "version": "1.0.0", 94 | "depth": 0, 95 | "source": "builtin", 96 | "dependencies": {} 97 | }, 98 | "com.unity.modules.androidjni": { 99 | "version": "1.0.0", 100 | "depth": 0, 101 | "source": "builtin", 102 | "dependencies": {} 103 | }, 104 | "com.unity.modules.animation": { 105 | "version": "1.0.0", 106 | "depth": 0, 107 | "source": "builtin", 108 | "dependencies": {} 109 | }, 110 | "com.unity.modules.assetbundle": { 111 | "version": "1.0.0", 112 | "depth": 0, 113 | "source": "builtin", 114 | "dependencies": {} 115 | }, 116 | "com.unity.modules.audio": { 117 | "version": "1.0.0", 118 | "depth": 0, 119 | "source": "builtin", 120 | "dependencies": {} 121 | }, 122 | "com.unity.modules.cloth": { 123 | "version": "1.0.0", 124 | "depth": 0, 125 | "source": "builtin", 126 | "dependencies": { 127 | "com.unity.modules.physics": "1.0.0" 128 | } 129 | }, 130 | "com.unity.modules.director": { 131 | "version": "1.0.0", 132 | "depth": 0, 133 | "source": "builtin", 134 | "dependencies": { 135 | "com.unity.modules.audio": "1.0.0", 136 | "com.unity.modules.animation": "1.0.0" 137 | } 138 | }, 139 | "com.unity.modules.imageconversion": { 140 | "version": "1.0.0", 141 | "depth": 0, 142 | "source": "builtin", 143 | "dependencies": {} 144 | }, 145 | "com.unity.modules.imgui": { 146 | "version": "1.0.0", 147 | "depth": 0, 148 | "source": "builtin", 149 | "dependencies": {} 150 | }, 151 | "com.unity.modules.jsonserialize": { 152 | "version": "1.0.0", 153 | "depth": 0, 154 | "source": "builtin", 155 | "dependencies": {} 156 | }, 157 | "com.unity.modules.particlesystem": { 158 | "version": "1.0.0", 159 | "depth": 0, 160 | "source": "builtin", 161 | "dependencies": {} 162 | }, 163 | "com.unity.modules.physics": { 164 | "version": "1.0.0", 165 | "depth": 0, 166 | "source": "builtin", 167 | "dependencies": {} 168 | }, 169 | "com.unity.modules.physics2d": { 170 | "version": "1.0.0", 171 | "depth": 0, 172 | "source": "builtin", 173 | "dependencies": {} 174 | }, 175 | "com.unity.modules.screencapture": { 176 | "version": "1.0.0", 177 | "depth": 0, 178 | "source": "builtin", 179 | "dependencies": { 180 | "com.unity.modules.imageconversion": "1.0.0" 181 | } 182 | }, 183 | "com.unity.modules.subsystems": { 184 | "version": "1.0.0", 185 | "depth": 1, 186 | "source": "builtin", 187 | "dependencies": { 188 | "com.unity.modules.jsonserialize": "1.0.0" 189 | } 190 | }, 191 | "com.unity.modules.terrain": { 192 | "version": "1.0.0", 193 | "depth": 0, 194 | "source": "builtin", 195 | "dependencies": {} 196 | }, 197 | "com.unity.modules.terrainphysics": { 198 | "version": "1.0.0", 199 | "depth": 0, 200 | "source": "builtin", 201 | "dependencies": { 202 | "com.unity.modules.physics": "1.0.0", 203 | "com.unity.modules.terrain": "1.0.0" 204 | } 205 | }, 206 | "com.unity.modules.tilemap": { 207 | "version": "1.0.0", 208 | "depth": 0, 209 | "source": "builtin", 210 | "dependencies": { 211 | "com.unity.modules.physics2d": "1.0.0" 212 | } 213 | }, 214 | "com.unity.modules.ui": { 215 | "version": "1.0.0", 216 | "depth": 0, 217 | "source": "builtin", 218 | "dependencies": {} 219 | }, 220 | "com.unity.modules.uielements": { 221 | "version": "1.0.0", 222 | "depth": 0, 223 | "source": "builtin", 224 | "dependencies": { 225 | "com.unity.modules.ui": "1.0.0", 226 | "com.unity.modules.imgui": "1.0.0", 227 | "com.unity.modules.jsonserialize": "1.0.0", 228 | "com.unity.modules.uielementsnative": "1.0.0" 229 | } 230 | }, 231 | "com.unity.modules.uielementsnative": { 232 | "version": "1.0.0", 233 | "depth": 1, 234 | "source": "builtin", 235 | "dependencies": { 236 | "com.unity.modules.ui": "1.0.0", 237 | "com.unity.modules.imgui": "1.0.0", 238 | "com.unity.modules.jsonserialize": "1.0.0" 239 | } 240 | }, 241 | "com.unity.modules.umbra": { 242 | "version": "1.0.0", 243 | "depth": 0, 244 | "source": "builtin", 245 | "dependencies": {} 246 | }, 247 | "com.unity.modules.unityanalytics": { 248 | "version": "1.0.0", 249 | "depth": 0, 250 | "source": "builtin", 251 | "dependencies": { 252 | "com.unity.modules.unitywebrequest": "1.0.0", 253 | "com.unity.modules.jsonserialize": "1.0.0" 254 | } 255 | }, 256 | "com.unity.modules.unitywebrequest": { 257 | "version": "1.0.0", 258 | "depth": 0, 259 | "source": "builtin", 260 | "dependencies": {} 261 | }, 262 | "com.unity.modules.unitywebrequestassetbundle": { 263 | "version": "1.0.0", 264 | "depth": 0, 265 | "source": "builtin", 266 | "dependencies": { 267 | "com.unity.modules.assetbundle": "1.0.0", 268 | "com.unity.modules.unitywebrequest": "1.0.0" 269 | } 270 | }, 271 | "com.unity.modules.unitywebrequestaudio": { 272 | "version": "1.0.0", 273 | "depth": 0, 274 | "source": "builtin", 275 | "dependencies": { 276 | "com.unity.modules.unitywebrequest": "1.0.0", 277 | "com.unity.modules.audio": "1.0.0" 278 | } 279 | }, 280 | "com.unity.modules.unitywebrequesttexture": { 281 | "version": "1.0.0", 282 | "depth": 0, 283 | "source": "builtin", 284 | "dependencies": { 285 | "com.unity.modules.unitywebrequest": "1.0.0", 286 | "com.unity.modules.imageconversion": "1.0.0" 287 | } 288 | }, 289 | "com.unity.modules.unitywebrequestwww": { 290 | "version": "1.0.0", 291 | "depth": 0, 292 | "source": "builtin", 293 | "dependencies": { 294 | "com.unity.modules.unitywebrequest": "1.0.0", 295 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 296 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 297 | "com.unity.modules.audio": "1.0.0", 298 | "com.unity.modules.assetbundle": "1.0.0", 299 | "com.unity.modules.imageconversion": "1.0.0" 300 | } 301 | }, 302 | "com.unity.modules.vehicles": { 303 | "version": "1.0.0", 304 | "depth": 0, 305 | "source": "builtin", 306 | "dependencies": { 307 | "com.unity.modules.physics": "1.0.0" 308 | } 309 | }, 310 | "com.unity.modules.video": { 311 | "version": "1.0.0", 312 | "depth": 0, 313 | "source": "builtin", 314 | "dependencies": { 315 | "com.unity.modules.audio": "1.0.0", 316 | "com.unity.modules.ui": "1.0.0", 317 | "com.unity.modules.unitywebrequest": "1.0.0" 318 | } 319 | }, 320 | "com.unity.modules.vr": { 321 | "version": "1.0.0", 322 | "depth": 0, 323 | "source": "builtin", 324 | "dependencies": { 325 | "com.unity.modules.jsonserialize": "1.0.0", 326 | "com.unity.modules.physics": "1.0.0", 327 | "com.unity.modules.xr": "1.0.0" 328 | } 329 | }, 330 | "com.unity.modules.wind": { 331 | "version": "1.0.0", 332 | "depth": 0, 333 | "source": "builtin", 334 | "dependencies": {} 335 | }, 336 | "com.unity.modules.xr": { 337 | "version": "1.0.0", 338 | "depth": 0, 339 | "source": "builtin", 340 | "dependencies": { 341 | "com.unity.modules.physics": "1.0.0", 342 | "com.unity.modules.jsonserialize": "1.0.0", 343 | "com.unity.modules.subsystems": "1.0.0" 344 | } 345 | } 346 | } 347 | } 348 | -------------------------------------------------------------------------------- /ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Volume: 1 8 | Rolloff Scale: 1 9 | Doppler Factor: 1 10 | Default Speaker Mode: 2 11 | m_SampleRate: 0 12 | m_DSPBufferSize: 1024 13 | m_VirtualVoiceCount: 512 14 | m_RealVoiceCount: 32 15 | m_SpatializerPlugin: 16 | m_AmbisonicDecoderPlugin: 17 | m_DisableAudio: 0 18 | m_VirtualizeEffects: 1 19 | m_RequestedDSPBufferSize: 0 20 | -------------------------------------------------------------------------------- /ProjectSettings/BurstAotSettings_Switch.json: -------------------------------------------------------------------------------- 1 | { 2 | "MonoBehaviour": { 3 | "Version": 4, 4 | "EnableBurstCompilation": true, 5 | "EnableOptimisations": true, 6 | "EnableSafetyChecks": false, 7 | "EnableDebugInAllBuilds": false, 8 | "CpuMinTargetX32": 0, 9 | "CpuMaxTargetX32": 0, 10 | "CpuMinTargetX64": 0, 11 | "CpuMaxTargetX64": 0, 12 | "OptimizeFor": 0 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /ProjectSettings/CommonBurstAotSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "MonoBehaviour": { 3 | "Version": 4, 4 | "DisabledWarnings": "" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 13 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_SleepThreshold: 0.005 11 | m_DefaultContactOffset: 0.01 12 | m_DefaultSolverIterations: 6 13 | m_DefaultSolverVelocityIterations: 1 14 | m_QueriesHitBackfaces: 0 15 | m_QueriesHitTriggers: 1 16 | m_EnableAdaptiveForce: 0 17 | m_ClothInterCollisionDistance: 0.1 18 | m_ClothInterCollisionStiffness: 0.2 19 | m_ContactsGeneration: 1 20 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 21 | m_AutoSimulation: 1 22 | m_AutoSyncTransforms: 0 23 | m_ReuseCollisionCallbacks: 1 24 | m_ClothInterCollisionSettingsToggle: 0 25 | m_ClothGravity: {x: 0, y: -9.81, z: 0} 26 | m_ContactPairsMode: 0 27 | m_BroadphaseType: 0 28 | m_WorldBounds: 29 | m_Center: {x: 0, y: 0, z: 0} 30 | m_Extent: {x: 250, y: 250, z: 250} 31 | m_WorldSubdivisions: 8 32 | m_FrictionType: 0 33 | m_EnableEnhancedDeterminism: 0 34 | m_EnableUnifiedHeightmaps: 1 35 | m_SolverType: 0 36 | m_DefaultMaxAngularSpeed: 7 37 | -------------------------------------------------------------------------------- /ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: 8 | - enabled: 0 9 | path: Assets/Scenes/SampleScene.unity 10 | guid: d1c3109bdb54ad54c8a2b2838528e640 11 | m_configObjects: {} 12 | -------------------------------------------------------------------------------- /ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 11 7 | m_SerializationMode: 2 8 | m_LineEndingsForNewScripts: 1 9 | m_DefaultBehaviorMode: 0 10 | m_PrefabRegularEnvironment: {fileID: 0} 11 | m_PrefabUIEnvironment: {fileID: 0} 12 | m_SpritePackerMode: 0 13 | m_SpritePackerPaddingPower: 1 14 | m_Bc7TextureCompressor: 0 15 | m_EtcTextureCompressorBehavior: 1 16 | m_EtcTextureFastCompressor: 1 17 | m_EtcTextureNormalCompressor: 2 18 | m_EtcTextureBestCompressor: 4 19 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;asmref;rsp 20 | m_ProjectGenerationRootNamespace: 21 | m_EnableTextureStreamingInEditMode: 1 22 | m_EnableTextureStreamingInPlayMode: 1 23 | m_AsyncShaderCompilation: 1 24 | m_CachingShaderPreprocessor: 1 25 | m_PrefabModeAllowAutoSave: 1 26 | m_EnterPlayModeOptionsEnabled: 1 27 | m_EnterPlayModeOptions: 3 28 | m_GameObjectNamingDigits: 1 29 | m_GameObjectNamingScheme: 0 30 | m_AssetNamingUsesSpace: 1 31 | m_UseLegacyProbeSampleCount: 0 32 | m_SerializeInlineMappingsOnOneLine: 1 33 | m_DisableCookiesInLightmapper: 1 34 | m_AssetPipelineMode: 1 35 | m_RefreshImportMode: 0 36 | m_CacheServerMode: 0 37 | m_CacheServerEndpoint: 38 | m_CacheServerNamespacePrefix: default 39 | m_CacheServerEnableDownload: 1 40 | m_CacheServerEnableUpload: 1 41 | m_CacheServerEnableAuth: 0 42 | m_CacheServerEnableTls: 0 43 | m_CacheServerValidationMode: 2 44 | m_CacheServerDownloadBatchSize: 128 45 | -------------------------------------------------------------------------------- /ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!30 &1 4 | GraphicsSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 14 7 | m_Deferred: 8 | m_Mode: 1 9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} 10 | m_DeferredReflections: 11 | m_Mode: 1 12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} 13 | m_ScreenSpaceShadows: 14 | m_Mode: 1 15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} 16 | m_LegacyDeferred: 17 | m_Mode: 1 18 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} 19 | m_DepthNormals: 20 | m_Mode: 1 21 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} 22 | m_MotionVectors: 23 | m_Mode: 1 24 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} 25 | m_LightHalo: 26 | m_Mode: 1 27 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} 28 | m_LensFlare: 29 | m_Mode: 1 30 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} 31 | m_VideoShadersIncludeMode: 2 32 | m_AlwaysIncludedShaders: 33 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} 34 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} 35 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} 36 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} 37 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} 38 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} 39 | - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0} 40 | - {fileID: 16000, guid: 0000000000000000f000000000000000, type: 0} 41 | - {fileID: 16001, guid: 0000000000000000f000000000000000, type: 0} 42 | - {fileID: 17000, guid: 0000000000000000f000000000000000, type: 0} 43 | m_PreloadedShaders: [] 44 | m_PreloadShadersBatchTimeLimit: -1 45 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} 46 | m_CustomRenderPipeline: {fileID: 11400000, guid: 7103551289681374396b642b0fda7449, type: 2} 47 | m_TransparencySortMode: 0 48 | m_TransparencySortAxis: {x: 0, y: 0, z: 1} 49 | m_DefaultRenderingPath: 1 50 | m_DefaultMobileRenderingPath: 1 51 | m_TierSettings: [] 52 | m_LightmapStripping: 0 53 | m_FogStripping: 0 54 | m_InstancingStripping: 0 55 | m_LightmapKeepPlain: 1 56 | m_LightmapKeepDirCombined: 1 57 | m_LightmapKeepDynamicPlain: 1 58 | m_LightmapKeepDynamicDirCombined: 1 59 | m_LightmapKeepShadowMask: 1 60 | m_LightmapKeepSubtractive: 1 61 | m_FogKeepLinear: 1 62 | m_FogKeepExp: 1 63 | m_FogKeepExp2: 1 64 | m_AlbedoSwatchInfos: [] 65 | m_LightsUseLinearIntensity: 1 66 | m_LightsUseColorTemperature: 1 67 | m_DefaultRenderingLayerMask: 1 68 | m_LogWhenShaderIsCompiled: 0 69 | m_SRPDefaultSettings: 70 | UnityEngine.Rendering.Universal.UniversalRenderPipeline: {fileID: 11400000, guid: 38b35347542e5af4c9b140950c5b18db, type: 2} 71 | -------------------------------------------------------------------------------- /ProjectSettings/InputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!13 &1 4 | InputManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Axes: 8 | - serializedVersion: 3 9 | m_Name: Horizontal 10 | descriptiveName: 11 | descriptiveNegativeName: 12 | negativeButton: left 13 | positiveButton: right 14 | altNegativeButton: a 15 | altPositiveButton: d 16 | gravity: 3 17 | dead: 0.001 18 | sensitivity: 3 19 | snap: 1 20 | invert: 0 21 | type: 0 22 | axis: 0 23 | joyNum: 0 24 | - serializedVersion: 3 25 | m_Name: Vertical 26 | descriptiveName: 27 | descriptiveNegativeName: 28 | negativeButton: down 29 | positiveButton: up 30 | altNegativeButton: s 31 | altPositiveButton: w 32 | gravity: 3 33 | dead: 0.001 34 | sensitivity: 3 35 | snap: 1 36 | invert: 0 37 | type: 0 38 | axis: 0 39 | joyNum: 0 40 | - serializedVersion: 3 41 | m_Name: Fire1 42 | descriptiveName: 43 | descriptiveNegativeName: 44 | negativeButton: 45 | positiveButton: left ctrl 46 | altNegativeButton: 47 | altPositiveButton: mouse 0 48 | gravity: 1000 49 | dead: 0.001 50 | sensitivity: 1000 51 | snap: 0 52 | invert: 0 53 | type: 0 54 | axis: 0 55 | joyNum: 0 56 | - serializedVersion: 3 57 | m_Name: Fire2 58 | descriptiveName: 59 | descriptiveNegativeName: 60 | negativeButton: 61 | positiveButton: left alt 62 | altNegativeButton: 63 | altPositiveButton: mouse 1 64 | gravity: 1000 65 | dead: 0.001 66 | sensitivity: 1000 67 | snap: 0 68 | invert: 0 69 | type: 0 70 | axis: 0 71 | joyNum: 0 72 | - serializedVersion: 3 73 | m_Name: Fire3 74 | descriptiveName: 75 | descriptiveNegativeName: 76 | negativeButton: 77 | positiveButton: left shift 78 | altNegativeButton: 79 | altPositiveButton: mouse 2 80 | gravity: 1000 81 | dead: 0.001 82 | sensitivity: 1000 83 | snap: 0 84 | invert: 0 85 | type: 0 86 | axis: 0 87 | joyNum: 0 88 | - serializedVersion: 3 89 | m_Name: Jump 90 | descriptiveName: 91 | descriptiveNegativeName: 92 | negativeButton: 93 | positiveButton: space 94 | altNegativeButton: 95 | altPositiveButton: 96 | gravity: 1000 97 | dead: 0.001 98 | sensitivity: 1000 99 | snap: 0 100 | invert: 0 101 | type: 0 102 | axis: 0 103 | joyNum: 0 104 | - serializedVersion: 3 105 | m_Name: Mouse X 106 | descriptiveName: 107 | descriptiveNegativeName: 108 | negativeButton: 109 | positiveButton: 110 | altNegativeButton: 111 | altPositiveButton: 112 | gravity: 0 113 | dead: 0 114 | sensitivity: 0.1 115 | snap: 0 116 | invert: 0 117 | type: 1 118 | axis: 0 119 | joyNum: 0 120 | - serializedVersion: 3 121 | m_Name: Mouse Y 122 | descriptiveName: 123 | descriptiveNegativeName: 124 | negativeButton: 125 | positiveButton: 126 | altNegativeButton: 127 | altPositiveButton: 128 | gravity: 0 129 | dead: 0 130 | sensitivity: 0.1 131 | snap: 0 132 | invert: 0 133 | type: 1 134 | axis: 1 135 | joyNum: 0 136 | - serializedVersion: 3 137 | m_Name: Mouse ScrollWheel 138 | descriptiveName: 139 | descriptiveNegativeName: 140 | negativeButton: 141 | positiveButton: 142 | altNegativeButton: 143 | altPositiveButton: 144 | gravity: 0 145 | dead: 0 146 | sensitivity: 0.1 147 | snap: 0 148 | invert: 0 149 | type: 1 150 | axis: 2 151 | joyNum: 0 152 | - serializedVersion: 3 153 | m_Name: Horizontal 154 | descriptiveName: 155 | descriptiveNegativeName: 156 | negativeButton: 157 | positiveButton: 158 | altNegativeButton: 159 | altPositiveButton: 160 | gravity: 0 161 | dead: 0.19 162 | sensitivity: 1 163 | snap: 0 164 | invert: 0 165 | type: 2 166 | axis: 0 167 | joyNum: 0 168 | - serializedVersion: 3 169 | m_Name: Vertical 170 | descriptiveName: 171 | descriptiveNegativeName: 172 | negativeButton: 173 | positiveButton: 174 | altNegativeButton: 175 | altPositiveButton: 176 | gravity: 0 177 | dead: 0.19 178 | sensitivity: 1 179 | snap: 0 180 | invert: 1 181 | type: 2 182 | axis: 1 183 | joyNum: 0 184 | - serializedVersion: 3 185 | m_Name: Fire1 186 | descriptiveName: 187 | descriptiveNegativeName: 188 | negativeButton: 189 | positiveButton: joystick button 0 190 | altNegativeButton: 191 | altPositiveButton: 192 | gravity: 1000 193 | dead: 0.001 194 | sensitivity: 1000 195 | snap: 0 196 | invert: 0 197 | type: 0 198 | axis: 0 199 | joyNum: 0 200 | - serializedVersion: 3 201 | m_Name: Fire2 202 | descriptiveName: 203 | descriptiveNegativeName: 204 | negativeButton: 205 | positiveButton: joystick button 1 206 | altNegativeButton: 207 | altPositiveButton: 208 | gravity: 1000 209 | dead: 0.001 210 | sensitivity: 1000 211 | snap: 0 212 | invert: 0 213 | type: 0 214 | axis: 0 215 | joyNum: 0 216 | - serializedVersion: 3 217 | m_Name: Fire3 218 | descriptiveName: 219 | descriptiveNegativeName: 220 | negativeButton: 221 | positiveButton: joystick button 2 222 | altNegativeButton: 223 | altPositiveButton: 224 | gravity: 1000 225 | dead: 0.001 226 | sensitivity: 1000 227 | snap: 0 228 | invert: 0 229 | type: 0 230 | axis: 0 231 | joyNum: 0 232 | - serializedVersion: 3 233 | m_Name: Jump 234 | descriptiveName: 235 | descriptiveNegativeName: 236 | negativeButton: 237 | positiveButton: joystick button 3 238 | altNegativeButton: 239 | altPositiveButton: 240 | gravity: 1000 241 | dead: 0.001 242 | sensitivity: 1000 243 | snap: 0 244 | invert: 0 245 | type: 0 246 | axis: 0 247 | joyNum: 0 248 | - serializedVersion: 3 249 | m_Name: Submit 250 | descriptiveName: 251 | descriptiveNegativeName: 252 | negativeButton: 253 | positiveButton: return 254 | altNegativeButton: 255 | altPositiveButton: joystick button 0 256 | gravity: 1000 257 | dead: 0.001 258 | sensitivity: 1000 259 | snap: 0 260 | invert: 0 261 | type: 0 262 | axis: 0 263 | joyNum: 0 264 | - serializedVersion: 3 265 | m_Name: Submit 266 | descriptiveName: 267 | descriptiveNegativeName: 268 | negativeButton: 269 | positiveButton: enter 270 | altNegativeButton: 271 | altPositiveButton: space 272 | gravity: 1000 273 | dead: 0.001 274 | sensitivity: 1000 275 | snap: 0 276 | invert: 0 277 | type: 0 278 | axis: 0 279 | joyNum: 0 280 | - serializedVersion: 3 281 | m_Name: Cancel 282 | descriptiveName: 283 | descriptiveNegativeName: 284 | negativeButton: 285 | positiveButton: escape 286 | altNegativeButton: 287 | altPositiveButton: joystick button 1 288 | gravity: 1000 289 | dead: 0.001 290 | sensitivity: 1000 291 | snap: 0 292 | invert: 0 293 | type: 0 294 | axis: 0 295 | joyNum: 0 296 | - serializedVersion: 3 297 | m_Name: Enable Debug Button 1 298 | descriptiveName: 299 | descriptiveNegativeName: 300 | negativeButton: 301 | positiveButton: left ctrl 302 | altNegativeButton: 303 | altPositiveButton: joystick button 8 304 | gravity: 0 305 | dead: 0 306 | sensitivity: 0 307 | snap: 0 308 | invert: 0 309 | type: 0 310 | axis: 0 311 | joyNum: 0 312 | - serializedVersion: 3 313 | m_Name: Enable Debug Button 2 314 | descriptiveName: 315 | descriptiveNegativeName: 316 | negativeButton: 317 | positiveButton: backspace 318 | altNegativeButton: 319 | altPositiveButton: joystick button 9 320 | gravity: 0 321 | dead: 0 322 | sensitivity: 0 323 | snap: 0 324 | invert: 0 325 | type: 0 326 | axis: 0 327 | joyNum: 0 328 | - serializedVersion: 3 329 | m_Name: Debug Reset 330 | descriptiveName: 331 | descriptiveNegativeName: 332 | negativeButton: 333 | positiveButton: left alt 334 | altNegativeButton: 335 | altPositiveButton: joystick button 1 336 | gravity: 0 337 | dead: 0 338 | sensitivity: 0 339 | snap: 0 340 | invert: 0 341 | type: 0 342 | axis: 0 343 | joyNum: 0 344 | - serializedVersion: 3 345 | m_Name: Debug Next 346 | descriptiveName: 347 | descriptiveNegativeName: 348 | negativeButton: 349 | positiveButton: page down 350 | altNegativeButton: 351 | altPositiveButton: joystick button 5 352 | gravity: 0 353 | dead: 0 354 | sensitivity: 0 355 | snap: 0 356 | invert: 0 357 | type: 0 358 | axis: 0 359 | joyNum: 0 360 | - serializedVersion: 3 361 | m_Name: Debug Previous 362 | descriptiveName: 363 | descriptiveNegativeName: 364 | negativeButton: 365 | positiveButton: page up 366 | altNegativeButton: 367 | altPositiveButton: joystick button 4 368 | gravity: 0 369 | dead: 0 370 | sensitivity: 0 371 | snap: 0 372 | invert: 0 373 | type: 0 374 | axis: 0 375 | joyNum: 0 376 | - serializedVersion: 3 377 | m_Name: Debug Validate 378 | descriptiveName: 379 | descriptiveNegativeName: 380 | negativeButton: 381 | positiveButton: return 382 | altNegativeButton: 383 | altPositiveButton: joystick button 0 384 | gravity: 0 385 | dead: 0 386 | sensitivity: 0 387 | snap: 0 388 | invert: 0 389 | type: 0 390 | axis: 0 391 | joyNum: 0 392 | - serializedVersion: 3 393 | m_Name: Debug Persistent 394 | descriptiveName: 395 | descriptiveNegativeName: 396 | negativeButton: 397 | positiveButton: right shift 398 | altNegativeButton: 399 | altPositiveButton: joystick button 2 400 | gravity: 0 401 | dead: 0 402 | sensitivity: 0 403 | snap: 0 404 | invert: 0 405 | type: 0 406 | axis: 0 407 | joyNum: 0 408 | - serializedVersion: 3 409 | m_Name: Debug Multiplier 410 | descriptiveName: 411 | descriptiveNegativeName: 412 | negativeButton: 413 | positiveButton: left shift 414 | altNegativeButton: 415 | altPositiveButton: joystick button 3 416 | gravity: 0 417 | dead: 0 418 | sensitivity: 0 419 | snap: 0 420 | invert: 0 421 | type: 0 422 | axis: 0 423 | joyNum: 0 424 | - serializedVersion: 3 425 | m_Name: Debug Horizontal 426 | descriptiveName: 427 | descriptiveNegativeName: 428 | negativeButton: left 429 | positiveButton: right 430 | altNegativeButton: 431 | altPositiveButton: 432 | gravity: 1000 433 | dead: 0.001 434 | sensitivity: 1000 435 | snap: 0 436 | invert: 0 437 | type: 0 438 | axis: 0 439 | joyNum: 0 440 | - serializedVersion: 3 441 | m_Name: Debug Vertical 442 | descriptiveName: 443 | descriptiveNegativeName: 444 | negativeButton: down 445 | positiveButton: up 446 | altNegativeButton: 447 | altPositiveButton: 448 | gravity: 1000 449 | dead: 0.001 450 | sensitivity: 1000 451 | snap: 0 452 | invert: 0 453 | type: 0 454 | axis: 0 455 | joyNum: 0 456 | - serializedVersion: 3 457 | m_Name: Debug Vertical 458 | descriptiveName: 459 | descriptiveNegativeName: 460 | negativeButton: down 461 | positiveButton: up 462 | altNegativeButton: 463 | altPositiveButton: 464 | gravity: 1000 465 | dead: 0.001 466 | sensitivity: 1000 467 | snap: 0 468 | invert: 0 469 | type: 2 470 | axis: 6 471 | joyNum: 0 472 | - serializedVersion: 3 473 | m_Name: Debug Horizontal 474 | descriptiveName: 475 | descriptiveNegativeName: 476 | negativeButton: left 477 | positiveButton: right 478 | altNegativeButton: 479 | altPositiveButton: 480 | gravity: 1000 481 | dead: 0.001 482 | sensitivity: 1000 483 | snap: 0 484 | invert: 0 485 | type: 2 486 | axis: 5 487 | joyNum: 0 488 | -------------------------------------------------------------------------------- /ProjectSettings/MemorySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!387306366 &1 4 | MemorySettings: 5 | m_ObjectHideFlags: 0 6 | m_EditorMemorySettings: 7 | m_MainAllocatorBlockSize: -1 8 | m_ThreadAllocatorBlockSize: -1 9 | m_MainGfxBlockSize: -1 10 | m_ThreadGfxBlockSize: -1 11 | m_CacheBlockSize: -1 12 | m_TypetreeBlockSize: -1 13 | m_ProfilerBlockSize: -1 14 | m_ProfilerEditorBlockSize: -1 15 | m_BucketAllocatorGranularity: -1 16 | m_BucketAllocatorBucketsCount: -1 17 | m_BucketAllocatorBlockSize: -1 18 | m_BucketAllocatorBlockCount: -1 19 | m_ProfilerBucketAllocatorGranularity: -1 20 | m_ProfilerBucketAllocatorBucketsCount: -1 21 | m_ProfilerBucketAllocatorBlockSize: -1 22 | m_ProfilerBucketAllocatorBlockCount: -1 23 | m_TempAllocatorSizeMain: -1 24 | m_JobTempAllocatorBlockSize: -1 25 | m_BackgroundJobTempAllocatorBlockSize: -1 26 | m_JobTempAllocatorReducedBlockSize: -1 27 | m_TempAllocatorSizeGIBakingWorker: -1 28 | m_TempAllocatorSizeNavMeshWorker: -1 29 | m_TempAllocatorSizeAudioWorker: -1 30 | m_TempAllocatorSizeCloudWorker: -1 31 | m_TempAllocatorSizeGfx: -1 32 | m_TempAllocatorSizeJobWorker: -1 33 | m_TempAllocatorSizeBackgroundWorker: -1 34 | m_TempAllocatorSizePreloadManager: -1 35 | m_PlatformMemorySettings: {} 36 | -------------------------------------------------------------------------------- /ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshProjectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | m_LastAgentTypeID: -887442657 73 | m_Settings: 74 | - serializedVersion: 2 75 | agentTypeID: 0 76 | agentRadius: 0.5 77 | agentHeight: 2 78 | agentSlope: 45 79 | agentClimb: 0.75 80 | ledgeDropHeight: 0 81 | maxJumpAcrossDistance: 0 82 | minRegionArea: 2 83 | manualCellSize: 0 84 | cellSize: 0.16666667 85 | manualTileSize: 0 86 | tileSize: 256 87 | accuratePlacement: 0 88 | debug: 89 | m_Flags: 0 90 | m_SettingNames: 91 | - Humanoid 92 | -------------------------------------------------------------------------------- /ProjectSettings/PackageManagerSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | m_EnablePreReleasePackages: 0 16 | m_EnablePackageDependencies: 0 17 | m_AdvancedSettingsExpanded: 1 18 | m_ScopedRegistriesSettingsExpanded: 1 19 | m_SeeAllPackageVersions: 0 20 | oneTimeWarningShown: 0 21 | m_Registries: 22 | - m_Id: main 23 | m_Name: 24 | m_Url: https://packages.unity.com 25 | m_Scopes: [] 26 | m_IsDefault: 1 27 | m_Capabilities: 7 28 | m_UserSelectedRegistryName: 29 | m_UserAddingNewScopedRegistry: 0 30 | m_RegistryInfoDraft: 31 | m_Modified: 0 32 | m_ErrorMessage: 33 | m_UserModificationsInstanceId: -850 34 | m_OriginalInstanceId: -852 35 | m_LoadAssets: 0 36 | -------------------------------------------------------------------------------- /ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "m_Name": "Settings", 3 | "m_Path": "ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json", 4 | "m_Dictionary": { 5 | "m_DictionaryValues": [] 6 | } 7 | } -------------------------------------------------------------------------------- /ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 4 7 | m_Gravity: {x: 0, y: -9.81} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_VelocityIterations: 8 10 | m_PositionIterations: 3 11 | m_VelocityThreshold: 1 12 | m_MaxLinearCorrection: 0.2 13 | m_MaxAngularCorrection: 8 14 | m_MaxTranslationSpeed: 100 15 | m_MaxRotationSpeed: 360 16 | m_BaumgarteScale: 0.2 17 | m_BaumgarteTimeOfImpactScale: 0.75 18 | m_TimeToSleep: 0.5 19 | m_LinearSleepTolerance: 0.01 20 | m_AngularSleepTolerance: 2 21 | m_DefaultContactOffset: 0.01 22 | m_JobOptions: 23 | serializedVersion: 2 24 | useMultithreading: 0 25 | useConsistencySorting: 0 26 | m_InterpolationPosesPerJob: 100 27 | m_NewContactsPerJob: 30 28 | m_CollideContactsPerJob: 100 29 | m_ClearFlagsPerJob: 200 30 | m_ClearBodyForcesPerJob: 200 31 | m_SyncDiscreteFixturesPerJob: 50 32 | m_SyncContinuousFixturesPerJob: 50 33 | m_FindNearestContactsPerJob: 100 34 | m_UpdateTriggerContactsPerJob: 100 35 | m_IslandSolverCostThreshold: 100 36 | m_IslandSolverBodyCostScale: 1 37 | m_IslandSolverContactCostScale: 10 38 | m_IslandSolverJointCostScale: 10 39 | m_IslandSolverBodiesPerJob: 50 40 | m_IslandSolverContactsPerJob: 50 41 | m_AutoSimulation: 1 42 | m_QueriesHitTriggers: 1 43 | m_QueriesStartInColliders: 1 44 | m_CallbacksOnDisable: 1 45 | m_ReuseCollisionCallbacks: 1 46 | m_AutoSyncTransforms: 0 47 | m_AlwaysShowColliders: 0 48 | m_ShowColliderSleep: 1 49 | m_ShowColliderContacts: 0 50 | m_ShowColliderAABB: 0 51 | m_ContactArrowScale: 0.2 52 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 53 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 54 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 55 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 56 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 57 | -------------------------------------------------------------------------------- /ProjectSettings/PresetManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1386491679 &1 4 | PresetManager: 5 | m_ObjectHideFlags: 0 6 | m_DefaultList: 7 | - type: 8 | m_NativeTypeID: 108 9 | m_ManagedTypePPtr: {fileID: 0} 10 | m_ManagedTypeFallback: 11 | defaultPresets: 12 | - m_Preset: {fileID: 2655988077585873504, guid: 463065d4f17d1d94d848aa127b94dd43, 13 | type: 2} 14 | - type: 15 | m_NativeTypeID: 1020 16 | m_ManagedTypePPtr: {fileID: 0} 17 | m_ManagedTypeFallback: 18 | defaultPresets: 19 | - m_Preset: {fileID: 2655988077585873504, guid: e7689051185d12f4298e1ebb2693a29f, 20 | type: 2} 21 | - type: 22 | m_NativeTypeID: 1006 23 | m_ManagedTypePPtr: {fileID: 0} 24 | m_ManagedTypeFallback: 25 | defaultPresets: 26 | - m_Preset: {fileID: 2655988077585873504, guid: e8537455c6c08bd4e8bf0be3707da685, 27 | type: 2} 28 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2021.3.25f1 2 | m_EditorVersionWithRevision: 2021.3.25f1 (68ef2c4f8861) 3 | -------------------------------------------------------------------------------- /ProjectSettings/QualitySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!47 &1 4 | QualitySettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 5 7 | m_CurrentQuality: 3 8 | m_QualitySettings: 9 | - serializedVersion: 2 10 | name: Low 11 | pixelLightCount: 0 12 | shadows: 0 13 | shadowResolution: 0 14 | shadowProjection: 1 15 | shadowCascades: 1 16 | shadowDistance: 20 17 | shadowNearPlaneOffset: 3 18 | shadowCascade2Split: 0.33333334 19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 20 | shadowmaskMode: 0 21 | skinWeights: 4 22 | textureQuality: 0 23 | anisotropicTextures: 0 24 | antiAliasing: 0 25 | softParticles: 0 26 | softVegetation: 0 27 | realtimeReflectionProbes: 0 28 | billboardsFaceCameraPosition: 0 29 | vSyncCount: 0 30 | lodBias: 0.4 31 | maximumLODLevel: 0 32 | streamingMipmapsActive: 0 33 | streamingMipmapsAddAllCameras: 1 34 | streamingMipmapsMemoryBudget: 512 35 | streamingMipmapsRenderersPerFrame: 512 36 | streamingMipmapsMaxLevelReduction: 2 37 | streamingMipmapsMaxFileIORequests: 1024 38 | particleRaycastBudget: 16 39 | asyncUploadTimeSlice: 2 40 | asyncUploadBufferSize: 16 41 | asyncUploadPersistentBuffer: 1 42 | resolutionScalingFixedDPIFactor: 1 43 | customRenderPipeline: {fileID: 11400000, guid: a31e9f9f9c9d4b9429ed0d1234e22103, type: 2} 44 | excludedTargetPlatforms: [] 45 | - serializedVersion: 2 46 | name: Medium 47 | pixelLightCount: 1 48 | shadows: 1 49 | shadowResolution: 0 50 | shadowProjection: 1 51 | shadowCascades: 1 52 | shadowDistance: 20 53 | shadowNearPlaneOffset: 3 54 | shadowCascade2Split: 0.33333334 55 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 56 | shadowmaskMode: 0 57 | skinWeights: 4 58 | textureQuality: 0 59 | anisotropicTextures: 1 60 | antiAliasing: 0 61 | softParticles: 0 62 | softVegetation: 0 63 | realtimeReflectionProbes: 0 64 | billboardsFaceCameraPosition: 0 65 | vSyncCount: 1 66 | lodBias: 0.7 67 | maximumLODLevel: 0 68 | streamingMipmapsActive: 0 69 | streamingMipmapsAddAllCameras: 1 70 | streamingMipmapsMemoryBudget: 512 71 | streamingMipmapsRenderersPerFrame: 512 72 | streamingMipmapsMaxLevelReduction: 2 73 | streamingMipmapsMaxFileIORequests: 1024 74 | particleRaycastBudget: 64 75 | asyncUploadTimeSlice: 2 76 | asyncUploadBufferSize: 16 77 | asyncUploadPersistentBuffer: 1 78 | resolutionScalingFixedDPIFactor: 1 79 | customRenderPipeline: {fileID: 11400000, guid: d847b876476d3d6468f5dfcd34266f96, type: 2} 80 | excludedTargetPlatforms: [] 81 | - serializedVersion: 2 82 | name: High 83 | pixelLightCount: 2 84 | shadows: 2 85 | shadowResolution: 1 86 | shadowProjection: 1 87 | shadowCascades: 2 88 | shadowDistance: 40 89 | shadowNearPlaneOffset: 3 90 | shadowCascade2Split: 0.33333334 91 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 92 | shadowmaskMode: 1 93 | skinWeights: 255 94 | textureQuality: 0 95 | anisotropicTextures: 1 96 | antiAliasing: 2 97 | softParticles: 0 98 | softVegetation: 1 99 | realtimeReflectionProbes: 1 100 | billboardsFaceCameraPosition: 1 101 | vSyncCount: 1 102 | lodBias: 1 103 | maximumLODLevel: 0 104 | streamingMipmapsActive: 0 105 | streamingMipmapsAddAllCameras: 1 106 | streamingMipmapsMemoryBudget: 512 107 | streamingMipmapsRenderersPerFrame: 512 108 | streamingMipmapsMaxLevelReduction: 2 109 | streamingMipmapsMaxFileIORequests: 1024 110 | particleRaycastBudget: 256 111 | asyncUploadTimeSlice: 2 112 | asyncUploadBufferSize: 16 113 | asyncUploadPersistentBuffer: 1 114 | resolutionScalingFixedDPIFactor: 1 115 | customRenderPipeline: {fileID: 11400000, guid: 19ba41d7c0026c3459d37c2fe90c55a0, type: 2} 116 | excludedTargetPlatforms: [] 117 | - serializedVersion: 2 118 | name: Custom 119 | pixelLightCount: 2 120 | shadows: 2 121 | shadowResolution: 1 122 | shadowProjection: 1 123 | shadowCascades: 2 124 | shadowDistance: 40 125 | shadowNearPlaneOffset: 3 126 | shadowCascade2Split: 0.33333334 127 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 128 | shadowmaskMode: 1 129 | skinWeights: 255 130 | textureQuality: 0 131 | anisotropicTextures: 1 132 | antiAliasing: 0 133 | softParticles: 0 134 | softVegetation: 1 135 | realtimeReflectionProbes: 1 136 | billboardsFaceCameraPosition: 1 137 | vSyncCount: 1 138 | lodBias: 1 139 | maximumLODLevel: 0 140 | streamingMipmapsActive: 0 141 | streamingMipmapsAddAllCameras: 1 142 | streamingMipmapsMemoryBudget: 512 143 | streamingMipmapsRenderersPerFrame: 512 144 | streamingMipmapsMaxLevelReduction: 2 145 | streamingMipmapsMaxFileIORequests: 1024 146 | particleRaycastBudget: 256 147 | asyncUploadTimeSlice: 2 148 | asyncUploadBufferSize: 16 149 | asyncUploadPersistentBuffer: 1 150 | resolutionScalingFixedDPIFactor: 1 151 | customRenderPipeline: {fileID: 11400000, guid: 7103551289681374396b642b0fda7449, type: 2} 152 | excludedTargetPlatforms: [] 153 | m_PerPlatformDefaultQuality: 154 | Android: 1 155 | GameCoreScarlett: 2 156 | GameCoreXboxOne: 2 157 | Lumin: 2 158 | Nintendo Switch: 3 159 | PS4: 2 160 | PS5: 2 161 | Server: 3 162 | Stadia: 2 163 | Standalone: 3 164 | WebGL: 1 165 | Windows Store Apps: 2 166 | XboxOne: 2 167 | iPhone: 1 168 | tvOS: 1 169 | -------------------------------------------------------------------------------- /ProjectSettings/SceneTemplateSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "templatePinStates": [], 3 | "dependencyTypeInfos": [ 4 | { 5 | "userAdded": false, 6 | "type": "UnityEngine.AnimationClip", 7 | "ignore": false, 8 | "defaultInstantiationMode": 0, 9 | "supportsModification": true 10 | }, 11 | { 12 | "userAdded": false, 13 | "type": "UnityEditor.Animations.AnimatorController", 14 | "ignore": false, 15 | "defaultInstantiationMode": 0, 16 | "supportsModification": true 17 | }, 18 | { 19 | "userAdded": false, 20 | "type": "UnityEngine.AnimatorOverrideController", 21 | "ignore": false, 22 | "defaultInstantiationMode": 0, 23 | "supportsModification": true 24 | }, 25 | { 26 | "userAdded": false, 27 | "type": "UnityEditor.Audio.AudioMixerController", 28 | "ignore": false, 29 | "defaultInstantiationMode": 0, 30 | "supportsModification": true 31 | }, 32 | { 33 | "userAdded": false, 34 | "type": "UnityEngine.ComputeShader", 35 | "ignore": true, 36 | "defaultInstantiationMode": 1, 37 | "supportsModification": true 38 | }, 39 | { 40 | "userAdded": false, 41 | "type": "UnityEngine.Cubemap", 42 | "ignore": false, 43 | "defaultInstantiationMode": 0, 44 | "supportsModification": true 45 | }, 46 | { 47 | "userAdded": false, 48 | "type": "UnityEngine.GameObject", 49 | "ignore": false, 50 | "defaultInstantiationMode": 0, 51 | "supportsModification": true 52 | }, 53 | { 54 | "userAdded": false, 55 | "type": "UnityEditor.LightingDataAsset", 56 | "ignore": false, 57 | "defaultInstantiationMode": 0, 58 | "supportsModification": false 59 | }, 60 | { 61 | "userAdded": false, 62 | "type": "UnityEngine.LightingSettings", 63 | "ignore": false, 64 | "defaultInstantiationMode": 0, 65 | "supportsModification": true 66 | }, 67 | { 68 | "userAdded": false, 69 | "type": "UnityEngine.Material", 70 | "ignore": false, 71 | "defaultInstantiationMode": 0, 72 | "supportsModification": true 73 | }, 74 | { 75 | "userAdded": false, 76 | "type": "UnityEditor.MonoScript", 77 | "ignore": true, 78 | "defaultInstantiationMode": 1, 79 | "supportsModification": true 80 | }, 81 | { 82 | "userAdded": false, 83 | "type": "UnityEngine.PhysicMaterial", 84 | "ignore": false, 85 | "defaultInstantiationMode": 0, 86 | "supportsModification": true 87 | }, 88 | { 89 | "userAdded": false, 90 | "type": "UnityEngine.PhysicsMaterial2D", 91 | "ignore": false, 92 | "defaultInstantiationMode": 0, 93 | "supportsModification": true 94 | }, 95 | { 96 | "userAdded": false, 97 | "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile", 98 | "ignore": false, 99 | "defaultInstantiationMode": 0, 100 | "supportsModification": true 101 | }, 102 | { 103 | "userAdded": false, 104 | "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources", 105 | "ignore": false, 106 | "defaultInstantiationMode": 0, 107 | "supportsModification": true 108 | }, 109 | { 110 | "userAdded": false, 111 | "type": "UnityEngine.Rendering.VolumeProfile", 112 | "ignore": false, 113 | "defaultInstantiationMode": 0, 114 | "supportsModification": true 115 | }, 116 | { 117 | "userAdded": false, 118 | "type": "UnityEditor.SceneAsset", 119 | "ignore": false, 120 | "defaultInstantiationMode": 0, 121 | "supportsModification": false 122 | }, 123 | { 124 | "userAdded": false, 125 | "type": "UnityEngine.Shader", 126 | "ignore": true, 127 | "defaultInstantiationMode": 1, 128 | "supportsModification": true 129 | }, 130 | { 131 | "userAdded": false, 132 | "type": "UnityEngine.ShaderVariantCollection", 133 | "ignore": true, 134 | "defaultInstantiationMode": 1, 135 | "supportsModification": true 136 | }, 137 | { 138 | "userAdded": false, 139 | "type": "UnityEngine.Texture", 140 | "ignore": false, 141 | "defaultInstantiationMode": 0, 142 | "supportsModification": true 143 | }, 144 | { 145 | "userAdded": false, 146 | "type": "UnityEngine.Texture2D", 147 | "ignore": false, 148 | "defaultInstantiationMode": 0, 149 | "supportsModification": true 150 | }, 151 | { 152 | "userAdded": false, 153 | "type": "UnityEngine.Timeline.TimelineAsset", 154 | "ignore": false, 155 | "defaultInstantiationMode": 0, 156 | "supportsModification": true 157 | } 158 | ], 159 | "defaultDependencyTypeInfo": { 160 | "userAdded": false, 161 | "type": "", 162 | "ignore": false, 163 | "defaultInstantiationMode": 1, 164 | "supportsModification": true 165 | }, 166 | "newSceneOverride": 0 167 | } -------------------------------------------------------------------------------- /ProjectSettings/ShaderGraphSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: de02f9e1d18f588468e474319d09a723, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | customInterpolatorErrorThreshold: 32 16 | customInterpolatorWarningThreshold: 16 17 | -------------------------------------------------------------------------------- /ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: [] 7 | layers: 8 | - Default 9 | - TransparentFX 10 | - Ignore Raycast 11 | - 12 | - Water 13 | - UI 14 | - Character 15 | - 16 | - 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | m_SortingLayers: 41 | - name: Default 42 | uniqueID: 0 43 | locked: 0 44 | -------------------------------------------------------------------------------- /ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.02 7 | Maximum Allowed Timestep: 0.1 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /ProjectSettings/URPProjectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: 247994e1f5a72c2419c26a37e9334c01, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | m_LastMaterialVersion: 5 16 | -------------------------------------------------------------------------------- /ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 1 7 | m_Enabled: 0 8 | m_TestMode: 0 9 | m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events 10 | m_EventUrl: https://cdp.cloud.unity3d.com/v1/events 11 | m_ConfigUrl: https://config.uca.cloud.unity3d.com 12 | m_DashboardUrl: https://dashboard.unity3d.com 13 | m_TestInitMode: 0 14 | CrashReportingSettings: 15 | m_EventUrl: https://perf-events.cloud.unity3d.com 16 | m_Enabled: 0 17 | m_LogBufferSize: 10 18 | m_CaptureEditorExceptions: 1 19 | UnityPurchasingSettings: 20 | m_Enabled: 0 21 | m_TestMode: 0 22 | UnityAnalyticsSettings: 23 | m_Enabled: 0 24 | m_TestMode: 0 25 | m_InitializeOnStartup: 1 26 | UnityAdsSettings: 27 | m_Enabled: 0 28 | m_InitializeOnStartup: 1 29 | m_TestMode: 0 30 | m_IosGameId: 31 | m_AndroidGameId: 32 | m_GameIds: {} 33 | m_GameId: 34 | PerformanceReportingSettings: 35 | m_Enabled: 0 36 | -------------------------------------------------------------------------------- /ProjectSettings/VFXManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!937362698 &1 4 | VFXManager: 5 | m_ObjectHideFlags: 0 6 | m_IndirectShader: {fileID: 0} 7 | m_CopyBufferShader: {fileID: 0} 8 | m_SortShader: {fileID: 0} 9 | m_RenderPipeSettingsPath: 10 | m_FixedTimeStep: 0.016666668 11 | m_MaxDeltaTime: 0.05 12 | -------------------------------------------------------------------------------- /ProjectSettings/VersionControlSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!890905787 &1 4 | VersionControlSettings: 5 | m_ObjectHideFlags: 0 6 | m_Mode: Visible Meta Files 7 | m_CollabEditorSettings: 8 | inProgressEnabled: 1 9 | -------------------------------------------------------------------------------- /ProjectSettings/XRSettings.asset: -------------------------------------------------------------------------------- 1 | { 2 | "m_SettingKeys": [ 3 | "VR Device Disabled", 4 | "VR Device User Alert" 5 | ], 6 | "m_SettingValues": [ 7 | "False", 8 | "False" 9 | ] 10 | } -------------------------------------------------------------------------------- /ProjectSettings/boot.config: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yugo-unity/DecalFakeShadow/4b41e2323be6de5cc1c18a560b464498b071968c/ProjectSettings/boot.config -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yugo-unity/DecalFakeShadow/4b41e2323be6de5cc1c18a560b464498b071968c/README.md --------------------------------------------------------------------------------