├── .github └── workflows │ └── release.yml ├── .gitignore ├── Assets ├── .gitkeep ├── Clip.anim ├── Clip.anim.meta ├── Controller.controller ├── Controller.controller.meta ├── VRCExpressionParameters.asset ├── VRCExpressionParameters.asset.meta ├── VRCExpressionsMenu.asset ├── VRCExpressionsMenu.asset.meta ├── main.unity └── main.unity.meta ├── LICENSE ├── Packages ├── .gitignore ├── com.vrchat.core.bootstrap │ ├── Editor.meta │ ├── Editor │ │ ├── Bootstrap.cs │ │ ├── Bootstrap.cs.meta │ │ ├── VRChat.Bootstrapper.Editor.asmdef │ │ └── VRChat.Bootstrapper.Editor.asmdef.meta │ ├── License.md │ ├── License.md.meta │ ├── package.json │ └── package.json.meta ├── dev.logilabo.parameter-smoother │ ├── Editor.meta │ ├── Editor │ │ ├── ParameterSmoother.Editor.asmdef │ │ ├── ParameterSmoother.Editor.asmdef.meta │ │ ├── ParameterSmootherEditor.cs │ │ ├── ParameterSmootherEditor.cs.meta │ │ ├── ParameterSmootherPass.cs │ │ ├── ParameterSmootherPass.cs.meta │ │ ├── PluginDefinition.cs │ │ └── PluginDefinition.cs.meta │ ├── Runtime.meta │ ├── Runtime │ │ ├── ParameterSmoother.Runtime.asmdef │ │ ├── ParameterSmoother.Runtime.asmdef.meta │ │ ├── ParameterSmoother.cs │ │ └── ParameterSmoother.cs.meta │ ├── package.json │ └── package.json.meta ├── manifest.json ├── packages-lock.json └── vpm-manifest.json ├── ProjectSettings ├── AudioManager.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── NavMeshAreas.asset ├── PackageManagerSettings.asset ├── Packages │ └── com.vrchat.base │ │ └── settings.json ├── Physics2DSettings.asset ├── PresetManager.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── TagManager.asset ├── TimeManager.asset ├── UnityConnectSettings.asset ├── VFXManager.asset └── XRSettings.asset └── README.md /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Build Release 2 | 3 | on: 4 | workflow_dispatch: 5 | 6 | jobs: 7 | 8 | # Validate Repository Configuration 9 | config: 10 | runs-on: ubuntu-latest 11 | outputs: 12 | config_package: ${{ steps.config_package.outputs.configPackage }} 13 | steps: 14 | 15 | # Ensure that required repository variable has been created for the Package 16 | - name: Validate Package Config 17 | id: config_package 18 | run: | 19 | if [ "${{ vars.PACKAGE_NAME }}" != "" ]; then 20 | echo "configPackage=true" >> $GITHUB_OUTPUT; 21 | else 22 | echo "configPackage=false" >> $GITHUB_OUTPUT; 23 | fi 24 | 25 | # Build and release the Package 26 | # If the repository is not configured properly, this job will be skipped 27 | build: 28 | needs: config 29 | runs-on: ubuntu-latest 30 | permissions: 31 | contents: write 32 | env: 33 | packagePath: Packages/${{ vars.PACKAGE_NAME }} 34 | if: needs.config.outputs.config_package == 'true' 35 | steps: 36 | 37 | # Checkout Local Repository 38 | - name: Checkout 39 | uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac 40 | 41 | # Get the Package version based on the package.json file 42 | - name: Get Version 43 | id: version 44 | uses: zoexx/github-action-json-file-properties@b9f36ce6ee6fe2680cd3c32b2c62e22eade7e590 45 | with: 46 | file_path: "${{ env.packagePath }}/package.json" 47 | prop_path: "version" 48 | 49 | # Configure the Environment Variables needed for releasing the Package 50 | - name: Set Environment Variables 51 | run: | 52 | echo "zipFile=${{ vars.PACKAGE_NAME }}-${{ steps.version.outputs.value }}".zip >> $GITHUB_ENV 53 | echo "unityPackage=${{ vars.PACKAGE_NAME }}-${{ steps.version.outputs.value }}.unitypackage" >> $GITHUB_ENV 54 | echo "version=${{ steps.version.outputs.value }}" >> $GITHUB_ENV 55 | 56 | # Zip the Package for release 57 | - name: Create Package Zip 58 | working-directory: "${{ env.packagePath }}" 59 | run: zip -r "${{ github.workspace }}/${{ env.zipFile }}" . 60 | 61 | # Build a list of .meta files for future use 62 | - name: Track Package Meta Files 63 | run: find "${{ env.packagePath }}/" -name \*.meta >> metaList 64 | 65 | # Make a UnityPackage version of the Package for release 66 | - name: Create UnityPackage 67 | uses: pCYSl5EDgo/create-unitypackage@cfcd3cf0391a5ef1306342794866a9897c32af0b 68 | with: 69 | package-path: ${{ env.unityPackage }} 70 | include-files: metaList 71 | 72 | # Make a release tag of the version from the package.json file 73 | - name: Create Tag 74 | id: tag_version 75 | uses: rickstaa/action-create-tag@88dbf7ff6fe2405f8e8f6c6fdfd78829bc631f83 76 | with: 77 | tag: "${{ env.version }}" 78 | 79 | # Publish the Release to GitHub 80 | - name: Make Release 81 | uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 82 | with: 83 | files: | 84 | ${{ env.zipFile }} 85 | ${{ env.unityPackage }} 86 | ${{ env.packagePath }}/package.json 87 | tag_name: ${{ env.version }} -------------------------------------------------------------------------------- /.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 | 58 | # Crashlytics generated file 59 | crashlytics-build.properties 60 | 61 | .idea/.idea.vpm-package-maker/.idea 62 | Assets/PackageMakerWindowData.asset* 63 | .idea 64 | .vscode 65 | -------------------------------------------------------------------------------- /Assets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/logicmachine/avatar-parameter-smoother/8e59e845e644c109201798efb309749355fe51a6/Assets/.gitkeep -------------------------------------------------------------------------------- /Assets/Clip.anim: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!74 &7400000 4 | AnimationClip: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_Name: Clip 10 | serializedVersion: 6 11 | m_Legacy: 0 12 | m_Compressed: 0 13 | m_UseHighQualityCurve: 1 14 | m_RotationCurves: [] 15 | m_CompressedRotationCurves: [] 16 | m_EulerCurves: [] 17 | m_PositionCurves: 18 | - curve: 19 | serializedVersion: 2 20 | m_Curve: 21 | - serializedVersion: 3 22 | time: 0 23 | value: {x: 0, y: 0, z: 0} 24 | inSlope: {x: 0, y: 0, z: 0} 25 | outSlope: {x: 0, y: 0, z: 0} 26 | tangentMode: 0 27 | weightedMode: 0 28 | inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} 29 | outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} 30 | - serializedVersion: 3 31 | time: 1 32 | value: {x: 0, y: 2, z: 0} 33 | inSlope: {x: 0, y: 0, z: 0} 34 | outSlope: {x: 0, y: 0, z: 0} 35 | tangentMode: 0 36 | weightedMode: 0 37 | inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} 38 | outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} 39 | m_PreInfinity: 2 40 | m_PostInfinity: 2 41 | m_RotationOrder: 4 42 | path: Cube 43 | m_ScaleCurves: [] 44 | m_FloatCurves: [] 45 | m_PPtrCurves: [] 46 | m_SampleRate: 60 47 | m_WrapMode: 0 48 | m_Bounds: 49 | m_Center: {x: 0, y: 0, z: 0} 50 | m_Extent: {x: 0, y: 0, z: 0} 51 | m_ClipBindingConstant: 52 | genericBindings: 53 | - serializedVersion: 2 54 | path: 2429296262 55 | attribute: 1 56 | script: {fileID: 0} 57 | typeID: 4 58 | customType: 0 59 | isPPtrCurve: 0 60 | pptrCurveMapping: [] 61 | m_AnimationClipSettings: 62 | serializedVersion: 2 63 | m_AdditiveReferencePoseClip: {fileID: 0} 64 | m_AdditiveReferencePoseTime: 0 65 | m_StartTime: 0 66 | m_StopTime: 1 67 | m_OrientationOffsetY: 0 68 | m_Level: 0 69 | m_CycleOffset: 0 70 | m_HasAdditiveReferencePose: 0 71 | m_LoopTime: 0 72 | m_LoopBlend: 0 73 | m_LoopBlendOrientation: 0 74 | m_LoopBlendPositionY: 0 75 | m_LoopBlendPositionXZ: 0 76 | m_KeepOriginalOrientation: 0 77 | m_KeepOriginalPositionY: 1 78 | m_KeepOriginalPositionXZ: 0 79 | m_HeightFromFeet: 0 80 | m_Mirror: 0 81 | m_EditorCurves: 82 | - curve: 83 | serializedVersion: 2 84 | m_Curve: 85 | - serializedVersion: 3 86 | time: 0 87 | value: 0 88 | inSlope: 0 89 | outSlope: 0 90 | tangentMode: 136 91 | weightedMode: 0 92 | inWeight: 0.33333334 93 | outWeight: 0.33333334 94 | - serializedVersion: 3 95 | time: 1 96 | value: 0 97 | inSlope: 0 98 | outSlope: 0 99 | tangentMode: 136 100 | weightedMode: 0 101 | inWeight: 0.33333334 102 | outWeight: 0.33333334 103 | m_PreInfinity: 2 104 | m_PostInfinity: 2 105 | m_RotationOrder: 4 106 | attribute: m_LocalPosition.x 107 | path: Cube 108 | classID: 4 109 | script: {fileID: 0} 110 | - curve: 111 | serializedVersion: 2 112 | m_Curve: 113 | - serializedVersion: 3 114 | time: 0 115 | value: 0 116 | inSlope: 0 117 | outSlope: 0 118 | tangentMode: 136 119 | weightedMode: 0 120 | inWeight: 0.33333334 121 | outWeight: 0.33333334 122 | - serializedVersion: 3 123 | time: 1 124 | value: 2 125 | inSlope: 0 126 | outSlope: 0 127 | tangentMode: 136 128 | weightedMode: 0 129 | inWeight: 0.33333334 130 | outWeight: 0.33333334 131 | m_PreInfinity: 2 132 | m_PostInfinity: 2 133 | m_RotationOrder: 4 134 | attribute: m_LocalPosition.y 135 | path: Cube 136 | classID: 4 137 | script: {fileID: 0} 138 | - curve: 139 | serializedVersion: 2 140 | m_Curve: 141 | - serializedVersion: 3 142 | time: 0 143 | value: 0 144 | inSlope: 0 145 | outSlope: 0 146 | tangentMode: 136 147 | weightedMode: 0 148 | inWeight: 0.33333334 149 | outWeight: 0.33333334 150 | - serializedVersion: 3 151 | time: 1 152 | value: 0 153 | inSlope: 0 154 | outSlope: 0 155 | tangentMode: 136 156 | weightedMode: 0 157 | inWeight: 0.33333334 158 | outWeight: 0.33333334 159 | m_PreInfinity: 2 160 | m_PostInfinity: 2 161 | m_RotationOrder: 4 162 | attribute: m_LocalPosition.z 163 | path: Cube 164 | classID: 4 165 | script: {fileID: 0} 166 | m_EulerEditorCurves: [] 167 | m_HasGenericRootTransform: 0 168 | m_HasMotionFloatCurves: 0 169 | m_Events: [] 170 | -------------------------------------------------------------------------------- /Assets/Clip.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6dfb951b0746bbd41ae2d8f8ed0d3976 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 7400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Controller.controller: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1102 &-7770762694470710223 4 | AnimatorState: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 1 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: New State 11 | m_Speed: 1 12 | m_CycleOffset: 0 13 | m_Transitions: [] 14 | m_StateMachineBehaviours: [] 15 | m_Position: {x: 50, y: 50, z: 0} 16 | m_IKOnFeet: 0 17 | m_WriteDefaultValues: 0 18 | m_Mirror: 0 19 | m_SpeedParameterActive: 0 20 | m_MirrorParameterActive: 0 21 | m_CycleOffsetParameterActive: 0 22 | m_TimeParameterActive: 1 23 | m_Motion: {fileID: 7400000, guid: 6dfb951b0746bbd41ae2d8f8ed0d3976, type: 2} 24 | m_Tag: 25 | m_SpeedParameter: 26 | m_MirrorParameter: 27 | m_CycleOffsetParameter: 28 | m_TimeParameter: Test/Smoothed 29 | --- !u!91 &9100000 30 | AnimatorController: 31 | m_ObjectHideFlags: 0 32 | m_CorrespondingSourceObject: {fileID: 0} 33 | m_PrefabInstance: {fileID: 0} 34 | m_PrefabAsset: {fileID: 0} 35 | m_Name: Controller 36 | serializedVersion: 5 37 | m_AnimatorParameters: 38 | - m_Name: Test/Smoothed 39 | m_Type: 1 40 | m_DefaultFloat: 0.5 41 | m_DefaultInt: 0 42 | m_DefaultBool: 0 43 | m_Controller: {fileID: 0} 44 | m_AnimatorLayers: 45 | - serializedVersion: 5 46 | m_Name: Base Layer 47 | m_StateMachine: {fileID: 4072617543767326909} 48 | m_Mask: {fileID: 0} 49 | m_Motions: [] 50 | m_Behaviours: [] 51 | m_BlendingMode: 0 52 | m_SyncedLayerIndex: -1 53 | m_DefaultWeight: 0 54 | m_IKPass: 0 55 | m_SyncedLayerAffectsTiming: 0 56 | m_Controller: {fileID: 9100000} 57 | --- !u!1107 &4072617543767326909 58 | AnimatorStateMachine: 59 | serializedVersion: 6 60 | m_ObjectHideFlags: 1 61 | m_CorrespondingSourceObject: {fileID: 0} 62 | m_PrefabInstance: {fileID: 0} 63 | m_PrefabAsset: {fileID: 0} 64 | m_Name: Base Layer 65 | m_ChildStates: 66 | - serializedVersion: 1 67 | m_State: {fileID: -7770762694470710223} 68 | m_Position: {x: 300, y: 110, z: 0} 69 | m_ChildStateMachines: [] 70 | m_AnyStateTransitions: [] 71 | m_EntryTransitions: [] 72 | m_StateMachineTransitions: {} 73 | m_StateMachineBehaviours: [] 74 | m_AnyStatePosition: {x: 50, y: 20, z: 0} 75 | m_EntryPosition: {x: 50, y: 120, z: 0} 76 | m_ExitPosition: {x: 800, y: 120, z: 0} 77 | m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} 78 | m_DefaultState: {fileID: -7770762694470710223} 79 | -------------------------------------------------------------------------------- /Assets/Controller.controller.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f1dd46d89ad3bc14b96089e1a5c2ca79 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 9100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/VRCExpressionParameters.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: -1506855854, guid: 67cc4cb7839cd3741b63733d5adf0442, type: 3} 13 | m_Name: VRCExpressionParameters 14 | m_EditorClassIdentifier: 15 | parameters: 16 | - name: Test 17 | valueType: 1 18 | saved: 1 19 | defaultValue: 0 20 | networkSynced: 1 21 | -------------------------------------------------------------------------------- /Assets/VRCExpressionParameters.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d52ff26d1ee0afa4383a9bd0d873e64a 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/VRCExpressionsMenu.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: -340790334, guid: 67cc4cb7839cd3741b63733d5adf0442, type: 3} 13 | m_Name: VRCExpressionsMenu 14 | m_EditorClassIdentifier: 15 | controls: 16 | - name: Test 17 | icon: {fileID: 0} 18 | type: 203 19 | parameter: 20 | name: 21 | value: 1 22 | style: 0 23 | subMenu: {fileID: 0} 24 | subParameters: 25 | - name: Test 26 | labels: [] 27 | -------------------------------------------------------------------------------- /Assets/VRCExpressionsMenu.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6e778d09231e445468bf319e05db9b41 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/main.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 753fd54fda5a8914eb7970c4c7e12c86 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 Takaaki Hiragushi 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Packages/.gitignore: -------------------------------------------------------------------------------- 1 | /*/ 2 | !dev.logilabo.parameter-smoother 3 | -------------------------------------------------------------------------------- /Packages/com.vrchat.core.bootstrap/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5ee5eebf1b35bbd49ae7983db316180a 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/com.vrchat.core.bootstrap/Editor/Bootstrap.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | using System.Net; 4 | using System.Text.RegularExpressions; 5 | using System.Threading.Tasks; 6 | using UnityEditor; 7 | using UnityEngine; 8 | 9 | namespace VRC.PackageManagement.Core 10 | { 11 | public class Bootstrap 12 | { 13 | // JSON property names in Project Manifest 14 | public const string UNITY_PACKAGES_FOLDER = "Packages"; 15 | public const string UNITY_MANIFEST_FILENAME = "manifest.json"; 16 | 17 | // VRC Values 18 | public const string VRC_CONFIG = "https://api.vrchat.cloud/api/1/config"; 19 | public const string VRC_AGENT = "VCCBootstrap 1.0"; 20 | public const string VRC_RESOLVER_PACKAGE = "com.vrchat.core.vpm-resolver"; 21 | 22 | // Finds url for bootstrap package without using JSON 23 | private static Regex _bootstrapRegex = new Regex("\"bootstrap\"\\s*:\\s*\"(.+?(?=\"))\""); 24 | public static string ManifestPath => Path.Combine(Directory.GetCurrentDirectory(), UNITY_PACKAGES_FOLDER, UNITY_MANIFEST_FILENAME); 25 | 26 | // Path where we expect the target package to exist 27 | public static string ResolverPath => 28 | Path.Combine(Directory.GetCurrentDirectory(), UNITY_PACKAGES_FOLDER, VRC_RESOLVER_PACKAGE); 29 | 30 | [InitializeOnLoadMethod] 31 | public static async void CheckForRestore() 32 | { 33 | if (!new DirectoryInfo(ResolverPath).Exists) 34 | { 35 | try 36 | { 37 | await AddResolver(); 38 | } 39 | catch (Exception e) 40 | { 41 | Debug.LogError($"Could not download and install the VPM Package Resolver - you may be missing packages. Exception: {e.Message}"); 42 | } 43 | } 44 | } 45 | 46 | public static async Task AddResolver() 47 | { 48 | var configData = await GetRemoteString(VRC_CONFIG); 49 | if (string.IsNullOrWhiteSpace(configData)) 50 | { 51 | Debug.LogWarning($"Could not get VPM libraries, try again later"); 52 | return; 53 | } 54 | var bootstrapMatch = _bootstrapRegex.Match(configData); 55 | if (!bootstrapMatch.Success || bootstrapMatch.Groups.Count < 2) 56 | { 57 | Debug.LogError($"Could not find bootstrap in config, try again later"); 58 | return; 59 | } 60 | 61 | var url = bootstrapMatch.Groups[1].Value; 62 | 63 | var targetFile = Path.Combine(Path.GetTempPath(), $"resolver-{DateTime.Now.ToString("yyyyMMddTHHmmss")}.unitypackage"); 64 | 65 | // Download to dir 66 | using (var client = new WebClient()) 67 | { 68 | // Add User Agent or else CloudFlare will return 1020 69 | client.Headers.Add(HttpRequestHeader.UserAgent, VRC_AGENT); 70 | 71 | await client.DownloadFileTaskAsync(url, targetFile); 72 | 73 | if (File.Exists(targetFile)) 74 | { 75 | Debug.Log($"Downloaded Resolver to {targetFile}"); 76 | AssetDatabase.ImportPackage(targetFile, false); 77 | } 78 | } 79 | return; 80 | } 81 | 82 | public static async Task GetRemoteString(string url) 83 | { 84 | using (var client = new WebClient()) 85 | { 86 | // Add User Agent or else CloudFlare will return 1020 87 | client.Headers.Add(HttpRequestHeader.UserAgent, VRC_AGENT); 88 | return await client.DownloadStringTaskAsync(url); 89 | } 90 | } 91 | } 92 | } 93 | -------------------------------------------------------------------------------- /Packages/com.vrchat.core.bootstrap/Editor/Bootstrap.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: eea11c44cabdaaa43ac0a21dbbbd9824 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/com.vrchat.core.bootstrap/Editor/VRChat.Bootstrapper.Editor.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "VRChat.Bootstrapper.Editor", 3 | "references": [], 4 | "includePlatforms": [ 5 | "Editor" 6 | ], 7 | "excludePlatforms": [], 8 | "allowUnsafeCode": false, 9 | "overrideReferences": false, 10 | "precompiledReferences": [], 11 | "autoReferenced": true, 12 | "defineConstraints": [], 13 | "versionDefines": [], 14 | "noEngineReferences": false 15 | } -------------------------------------------------------------------------------- /Packages/com.vrchat.core.bootstrap/Editor/VRChat.Bootstrapper.Editor.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e0d8a3ed977bd0948b99f4bce8e56a07 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Packages/com.vrchat.core.bootstrap/License.md: -------------------------------------------------------------------------------- 1 | # VRCHAT INC. 2 | ### VRCHAT DISTRO LICENSE FILE 3 | Version: February 24, 2022 4 | 5 | **SUMMARY OF TERMS:** Any materials subject to this Distro Asset License may be distributed by you, with or without modifications, on a non-commercial basis (i.e., at no charge), in accordance with the full terms of the Materials License Agreement. 6 | 7 | This Distro License File is a "License File" as defined in the VRChat Materials License Agreement, found at https://hello.vrchat.com/legal/sdk (or any successor link designated by VRChat) (as may be revised from time to time, the "Materials License Agreement"). 8 | 9 | This Distro License File applies to all the files in the Folder containing this Distro License File and those in all Child Folders within that Folder (except with respect to files in any Child Folder that contains a different License File) (such files, other than this Distro License File, the "Covered Files"). All capitalized terms used but not otherwise defined in this Distro License File have the meanings provided in the Materials License Agreement. 10 | 11 | This Distro License File only provides a summary of the terms applicable to the Covered Files. To understand your rights and obligations and the full set of terms that apply to use of the Covered Files, please see the relevant sections of the Materials License Agreement, including terms applicable to Distro Materials. -------------------------------------------------------------------------------- /Packages/com.vrchat.core.bootstrap/License.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a84f4a071b4a7fa49985f447a0ce2fe2 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Packages/com.vrchat.core.bootstrap/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name" : "com.vrchat.core.bootstrap", 3 | "displayName" : "VRChat Package Bootstrapper", 4 | "version" : "0.1.15", 5 | "unity" : "2019.4", 6 | "description" : "Tool to Download VPM Packages", 7 | "vrchatVersion" : "2022.1.1", 8 | "author" : { 9 | "name" : "VRChat", 10 | "email" : "developer@vrchat.com", 11 | "url" : "https://github.com/vrchat/packages" 12 | }, 13 | "url" : "", 14 | "dependencies" : { 15 | "com.unity.nuget.newtonsoft-json" : "2.0.2" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Packages/com.vrchat.core.bootstrap/package.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6c5fffb4815ba9046ad0a2e878396439 3 | PackageManifestImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Packages/dev.logilabo.parameter-smoother/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9481796ef21052c4183125872dd8ed07 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/dev.logilabo.parameter-smoother/Editor/ParameterSmoother.Editor.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "VRChatPackageTemplate.Editor", 3 | "references": [ 4 | "ParameterSmoother.Runtime", 5 | "nadena.dev.ndmf", 6 | "nadena.dev.modular-avatar.core" 7 | ], 8 | "includePlatforms": [ 9 | "Editor" 10 | ], 11 | "excludePlatforms": [], 12 | "allowUnsafeCode": false, 13 | "overrideReferences": false, 14 | "precompiledReferences": [], 15 | "autoReferenced": true, 16 | "defineConstraints": [], 17 | "versionDefines": [], 18 | "noEngineReferences": false 19 | } -------------------------------------------------------------------------------- /Packages/dev.logilabo.parameter-smoother/Editor/ParameterSmoother.Editor.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: df45ab4f3bbb8394987fc80e55e039ef 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Packages/dev.logilabo.parameter-smoother/Editor/ParameterSmootherEditor.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEditor; 3 | using UnityEditorInternal; 4 | 5 | using dev.logilabo.parameter_smoother.runtime; 6 | 7 | // ReSharper disable once CheckNamespace 8 | namespace dev.logilabo.parameter_smoother.editor 9 | { 10 | [CustomEditor(typeof(ParameterSmoother))] 11 | public class SettingsEditor : Editor 12 | { 13 | private SerializedProperty _controllerProp; 14 | private SerializedProperty _layerTypeProp; 15 | private SerializedProperty _smoothedSuffixProp; 16 | private SerializedProperty _configsProp; 17 | private ReorderableList _configsList; 18 | 19 | private void OnEnable() 20 | { 21 | var so = serializedObject; 22 | _layerTypeProp = so.FindProperty("layerType"); 23 | _smoothedSuffixProp = so.FindProperty("smoothedSuffix"); 24 | _configsProp = so.FindProperty("configs"); 25 | _configsList = new ReorderableList(so, _configsProp); 26 | _configsList.drawHeaderCallback += rect => 27 | { 28 | EditorGUI.LabelField(rect, "Target Parameters"); 29 | }; 30 | _configsList.elementHeight = (EditorGUIUtility.singleLineHeight + 2) * 3; 31 | _configsList.drawElementCallback += (rect, index, selected, focused) => 32 | { 33 | var prop = _configsList.serializedProperty.GetArrayElementAtIndex(index); 34 | var h = EditorGUIUtility.singleLineHeight; 35 | var lw = EditorGUIUtility.labelWidth; 36 | var sourceRect = new Rect(rect.x, rect.y + (h + 2) * 0 + 1, rect.width, h); 37 | EditorGUI.PropertyField(sourceRect, prop.FindPropertyRelative("parameterName")); 38 | var localSmoothnessRect = new Rect(rect.x, rect.y + (h + 2) * 1 + 1, rect.width, h); 39 | EditorGUI.PropertyField(localSmoothnessRect, prop.FindPropertyRelative("localSmoothness")); 40 | var remoteSmoothnessRect = new Rect(rect.x, rect.y + (h + 2) * 2 + 1, rect.width, h); 41 | EditorGUI.PropertyField(remoteSmoothnessRect, prop.FindPropertyRelative("remoteSmoothness")); 42 | }; 43 | } 44 | 45 | public override void OnInspectorGUI() 46 | { 47 | var so = serializedObject; 48 | EditorGUILayout.PropertyField(_layerTypeProp, new GUIContent("Layer Type")); 49 | EditorGUILayout.PropertyField(_smoothedSuffixProp, new GUIContent("Smoothed Parameter Suffix")); 50 | _configsList.DoLayoutList(); 51 | so.ApplyModifiedProperties(); 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /Packages/dev.logilabo.parameter-smoother/Editor/ParameterSmootherEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f0aa91dc693e43749aeb7d41d4e061ff 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/dev.logilabo.parameter-smoother/Editor/ParameterSmootherPass.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Linq; 3 | using UnityEngine; 4 | using Object = UnityEngine.Object; 5 | 6 | using dev.logilabo.parameter_smoother.runtime; 7 | using nadena.dev.modular_avatar.core; 8 | using nadena.dev.ndmf; 9 | using UnityEditor.Animations; 10 | 11 | // ReSharper disable once CheckNamespace 12 | namespace dev.logilabo.parameter_smoother.editor 13 | { 14 | public class ParameterSmootherPass : Pass 15 | { 16 | private const string OneParameter = "ParameterSmoother/One"; 17 | private const string LocalSmoothnessSuffix = "/LocalSmoothness"; 18 | private const string RemoteSmoothnessSuffix = "/RemoteSmoothness"; 19 | private const float ParameterRange = 1024.0f; 20 | 21 | private static Motion CreateBlendTree(ParameterSmoother smoother, bool isLocal) 22 | { 23 | var children = new List(); 24 | foreach (var config in smoother.configs) 25 | { 26 | var source = config.parameterName; 27 | var smoothed = source + smoother.smoothedSuffix; 28 | var smoothness = config.parameterName + (isLocal ? LocalSmoothnessSuffix : RemoteSmoothnessSuffix); 29 | var minCurve = new AnimationCurve(new Keyframe(0.0f, -ParameterRange)); 30 | var maxCurve = new AnimationCurve(new Keyframe(0.0f, ParameterRange)); 31 | var minClip = new AnimationClip(); 32 | var maxClip = new AnimationClip(); 33 | minClip.SetCurve("", typeof(Animator), smoothed, minCurve); 34 | maxClip.SetCurve("", typeof(Animator), smoothed, maxCurve); 35 | var oldTree = new BlendTree 36 | { 37 | blendParameter = smoothed, 38 | blendType = BlendTreeType.Simple1D, 39 | children = new[] 40 | { 41 | new ChildMotion { motion = minClip, threshold = -ParameterRange }, 42 | new ChildMotion { motion = maxClip, threshold = ParameterRange } 43 | }, 44 | minThreshold = -ParameterRange, 45 | maxThreshold = ParameterRange, 46 | name = source + " (old)" 47 | }; 48 | var newTree = new BlendTree 49 | { 50 | blendParameter = source, 51 | blendType = BlendTreeType.Simple1D, 52 | children = new[] 53 | { 54 | new ChildMotion { motion = minClip, threshold = -ParameterRange }, 55 | new ChildMotion { motion = maxClip, threshold = ParameterRange } 56 | }, 57 | minThreshold = -ParameterRange, 58 | maxThreshold = ParameterRange, 59 | name = source + " (new)" 60 | }; 61 | children.Add(new BlendTree 62 | { 63 | blendParameter = smoothness, 64 | blendType = BlendTreeType.Simple1D, 65 | children = new[] 66 | { 67 | new ChildMotion { motion = newTree, threshold = 0.0f }, 68 | new ChildMotion { motion = oldTree, threshold = 1.0f } 69 | }, 70 | minThreshold = 0.0f, 71 | maxThreshold = 1.0f, 72 | name = source 73 | }); 74 | } 75 | return new BlendTree() 76 | { 77 | blendParameter = OneParameter, 78 | blendType = BlendTreeType.Direct, 79 | children = children 80 | .Select(t => new ChildMotion { directBlendParameter = OneParameter, motion = t }) 81 | .ToArray(), 82 | name = "Root" 83 | }; 84 | } 85 | 86 | private static AnimatorController CreateSmoothingAnimator(ParameterSmoother smoother) 87 | { 88 | var controller = new AnimatorController(); 89 | 90 | // Register parameters 91 | controller.AddParameter(new AnimatorControllerParameter 92 | { 93 | name=OneParameter, 94 | type=AnimatorControllerParameterType.Float, 95 | defaultFloat = 1.0f 96 | }); 97 | controller.AddParameter(new AnimatorControllerParameter 98 | { 99 | name="IsLocal", 100 | type=AnimatorControllerParameterType.Bool, 101 | defaultBool = false 102 | }); 103 | foreach (var config in smoother.configs) 104 | { 105 | var source = config.parameterName; 106 | controller.AddParameter(new AnimatorControllerParameter 107 | { 108 | name = source, 109 | type = AnimatorControllerParameterType.Float, 110 | defaultFloat = 0.0f 111 | }); 112 | controller.AddParameter(new AnimatorControllerParameter 113 | { 114 | name = source + smoother.smoothedSuffix, 115 | type = AnimatorControllerParameterType.Float, 116 | defaultFloat = 0.0f 117 | }); 118 | controller.AddParameter(new AnimatorControllerParameter 119 | { 120 | name = source + LocalSmoothnessSuffix, 121 | type = AnimatorControllerParameterType.Float, 122 | defaultFloat = config.localSmoothness 123 | }); 124 | controller.AddParameter(new AnimatorControllerParameter 125 | { 126 | name = source + RemoteSmoothnessSuffix, 127 | type = AnimatorControllerParameterType.Float, 128 | defaultFloat = config.remoteSmoothness 129 | }); 130 | } 131 | 132 | // Create layer 133 | var layer = new AnimatorControllerLayer 134 | { 135 | defaultWeight = 1.0f, 136 | name = "ParameterSmoother", 137 | stateMachine = new AnimatorStateMachine() 138 | }; 139 | var remoteState = layer.stateMachine.AddState("Remote (WD On)"); 140 | var localState = layer.stateMachine.AddState("Local (WD On)"); 141 | remoteState.motion = CreateBlendTree(smoother, false); 142 | localState.motion = CreateBlendTree(smoother, true); 143 | remoteState.AddTransition(new AnimatorStateTransition 144 | { 145 | conditions = new[] 146 | { 147 | new AnimatorCondition 148 | { 149 | mode = AnimatorConditionMode.If, 150 | parameter = "IsLocal" 151 | } 152 | }, 153 | destinationState = localState 154 | }); 155 | controller.AddLayer(layer); 156 | return controller; 157 | } 158 | 159 | private static void ExecuteSingle(ParameterSmoother smoother) 160 | { 161 | // TODO Use MA merge blend trees 162 | var obj = smoother.gameObject; 163 | var mergeAnimator = obj.AddComponent(); 164 | mergeAnimator.animator = CreateSmoothingAnimator(smoother); 165 | mergeAnimator.layerType = smoother.layerType; 166 | mergeAnimator.pathMode = MergeAnimatorPathMode.Absolute; 167 | } 168 | 169 | protected override void Execute(BuildContext context) 170 | { 171 | var components = context.AvatarRootObject.GetComponentsInChildren(); 172 | foreach (var smoother in components) 173 | { 174 | ExecuteSingle(smoother); 175 | Object.DestroyImmediate(smoother); 176 | } 177 | } 178 | } 179 | } 180 | -------------------------------------------------------------------------------- /Packages/dev.logilabo.parameter-smoother/Editor/ParameterSmootherPass.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d7fe2571a6fd3bb4483f4191bff7cb4f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/dev.logilabo.parameter-smoother/Editor/PluginDefinition.cs: -------------------------------------------------------------------------------- 1 | using nadena.dev.ndmf; 2 | 3 | [assembly: ExportsPlugin(typeof(dev.logilabo.parameter_smoother.editor.PluginDefinition))] 4 | 5 | // ReSharper disable once CheckNamespace 6 | namespace dev.logilabo.parameter_smoother.editor 7 | { 8 | public class PluginDefinition : Plugin 9 | { 10 | public override string QualifiedName => "dev.logilabo.parameter_smoother"; 11 | public override string DisplayName => "Parameter Smoother"; 12 | 13 | protected override void Configure() 14 | { 15 | InPhase(BuildPhase.Generating) 16 | .Run(ParameterSmootherPass.Instance); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Packages/dev.logilabo.parameter-smoother/Editor/PluginDefinition.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: be279cc4d99d7b04ba6daf97639450d1 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/dev.logilabo.parameter-smoother/Runtime.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: adc295205c2c4914299226c14e30da4d 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/dev.logilabo.parameter-smoother/Runtime/ParameterSmoother.Runtime.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ParameterSmoother.Runtime", 3 | "references": [], 4 | "includePlatforms": [], 5 | "excludePlatforms": [], 6 | "allowUnsafeCode": false, 7 | "overrideReferences": false, 8 | "precompiledReferences": [], 9 | "autoReferenced": true, 10 | "defineConstraints": [], 11 | "versionDefines": [], 12 | "noEngineReferences": false 13 | } -------------------------------------------------------------------------------- /Packages/dev.logilabo.parameter-smoother/Runtime/ParameterSmoother.Runtime.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 50ddc707de2f084439498f2a44e4e22d 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Packages/dev.logilabo.parameter-smoother/Runtime/ParameterSmoother.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using VRC.SDK3.Avatars.Components; 5 | using VRC.SDKBase; 6 | 7 | // ReSharper disable once CheckNamespace 8 | namespace dev.logilabo.parameter_smoother.runtime 9 | { 10 | [Serializable] 11 | public struct SmoothingConfig 12 | { 13 | public string parameterName; 14 | public float localSmoothness; 15 | public float remoteSmoothness; 16 | } 17 | 18 | [AddComponentMenu("Logilabo Avatar Tools/Parameter Smoother")] 19 | public class ParameterSmoother : MonoBehaviour, IEditorOnly 20 | { 21 | public VRCAvatarDescriptor.AnimLayerType layerType = VRCAvatarDescriptor.AnimLayerType.FX; 22 | public string smoothedSuffix = "/Smoothed"; 23 | public List configs = new List(); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Packages/dev.logilabo.parameter-smoother/Runtime/ParameterSmoother.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aa7f07f8e5604f940a9591416661e247 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/dev.logilabo.parameter-smoother/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "dev.logilabo.parameter-smoother", 3 | "displayName": "Parameter Smoother", 4 | "version": "0.1.1", 5 | "unity": "2019.4", 6 | "description": "Non-destructive avatar parameter smoother", 7 | "author": { 8 | "name": "logi", 9 | "email": "ent@arrize.net", 10 | "url": "https://logilabo.dev/" 11 | }, 12 | "vpmDependencies": { 13 | "nadena.dev.ndmf": ">=1.3.0-rc.0 <2.0.0-a", 14 | "nadena.dev.modular-avatar": ">=1.9.0-rc.0 <2.0.0-a" 15 | } 16 | } -------------------------------------------------------------------------------- /Packages/dev.logilabo.parameter-smoother/package.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cb921d43c5f0bfe499a7f954912ae2e4 3 | PackageManifestImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.ide.rider": "1.2.1", 4 | "com.unity.ide.visualstudio": "2.0.11", 5 | "com.unity.ide.vscode": "1.2.4", 6 | "com.unity.test-framework": "1.1.29", 7 | "com.unity.textmeshpro": "2.1.6", 8 | "com.unity.timeline": "1.2.18", 9 | "com.unity.ugui": "1.0.0", 10 | "com.unity.xr.oculus.standalone": "2.38.4", 11 | "com.unity.xr.openvr.standalone": "2.0.5", 12 | "com.unity.modules.ai": "1.0.0", 13 | "com.unity.modules.androidjni": "1.0.0", 14 | "com.unity.modules.animation": "1.0.0", 15 | "com.unity.modules.assetbundle": "1.0.0", 16 | "com.unity.modules.audio": "1.0.0", 17 | "com.unity.modules.cloth": "1.0.0", 18 | "com.unity.modules.director": "1.0.0", 19 | "com.unity.modules.imageconversion": "1.0.0", 20 | "com.unity.modules.imgui": "1.0.0", 21 | "com.unity.modules.jsonserialize": "1.0.0", 22 | "com.unity.modules.particlesystem": "1.0.0", 23 | "com.unity.modules.physics": "1.0.0", 24 | "com.unity.modules.physics2d": "1.0.0", 25 | "com.unity.modules.screencapture": "1.0.0", 26 | "com.unity.modules.terrain": "1.0.0", 27 | "com.unity.modules.terrainphysics": "1.0.0", 28 | "com.unity.modules.tilemap": "1.0.0", 29 | "com.unity.modules.ui": "1.0.0", 30 | "com.unity.modules.uielements": "1.0.0", 31 | "com.unity.modules.umbra": "1.0.0", 32 | "com.unity.modules.unityanalytics": "1.0.0", 33 | "com.unity.modules.unitywebrequest": "1.0.0", 34 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 35 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 36 | "com.unity.modules.unitywebrequesttexture": "1.0.0", 37 | "com.unity.modules.unitywebrequestwww": "1.0.0", 38 | "com.unity.modules.vehicles": "1.0.0", 39 | "com.unity.modules.video": "1.0.0", 40 | "com.unity.modules.vr": "1.0.0", 41 | "com.unity.modules.wind": "1.0.0", 42 | "com.unity.modules.xr": "1.0.0" 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /Packages/packages-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.burst": { 4 | "version": "1.4.11", 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.rider": { 20 | "version": "1.2.1", 21 | "depth": 0, 22 | "source": "registry", 23 | "dependencies": { 24 | "com.unity.test-framework": "1.1.1" 25 | }, 26 | "url": "https://packages.unity.com" 27 | }, 28 | "com.unity.ide.visualstudio": { 29 | "version": "2.0.11", 30 | "depth": 0, 31 | "source": "registry", 32 | "dependencies": { 33 | "com.unity.test-framework": "1.1.9" 34 | }, 35 | "url": "https://packages.unity.com" 36 | }, 37 | "com.unity.ide.vscode": { 38 | "version": "1.2.4", 39 | "depth": 0, 40 | "source": "registry", 41 | "dependencies": {}, 42 | "url": "https://packages.unity.com" 43 | }, 44 | "com.unity.mathematics": { 45 | "version": "1.2.5", 46 | "depth": 1, 47 | "source": "registry", 48 | "dependencies": {}, 49 | "url": "https://packages.unity.com" 50 | }, 51 | "com.unity.nuget.newtonsoft-json": { 52 | "version": "3.0.2", 53 | "depth": 1, 54 | "source": "registry", 55 | "dependencies": {}, 56 | "url": "https://packages.unity.com" 57 | }, 58 | "com.unity.test-framework": { 59 | "version": "1.1.29", 60 | "depth": 0, 61 | "source": "registry", 62 | "dependencies": { 63 | "com.unity.ext.nunit": "1.0.6", 64 | "com.unity.modules.imgui": "1.0.0", 65 | "com.unity.modules.jsonserialize": "1.0.0" 66 | }, 67 | "url": "https://packages.unity.com" 68 | }, 69 | "com.unity.textmeshpro": { 70 | "version": "2.1.6", 71 | "depth": 0, 72 | "source": "registry", 73 | "dependencies": { 74 | "com.unity.ugui": "1.0.0" 75 | }, 76 | "url": "https://packages.unity.com" 77 | }, 78 | "com.unity.timeline": { 79 | "version": "1.2.18", 80 | "depth": 0, 81 | "source": "registry", 82 | "dependencies": { 83 | "com.unity.modules.director": "1.0.0", 84 | "com.unity.modules.animation": "1.0.0", 85 | "com.unity.modules.audio": "1.0.0", 86 | "com.unity.modules.particlesystem": "1.0.0" 87 | }, 88 | "url": "https://packages.unity.com" 89 | }, 90 | "com.unity.ugui": { 91 | "version": "1.0.0", 92 | "depth": 0, 93 | "source": "builtin", 94 | "dependencies": { 95 | "com.unity.modules.ui": "1.0.0", 96 | "com.unity.modules.imgui": "1.0.0" 97 | } 98 | }, 99 | "com.unity.xr.oculus.standalone": { 100 | "version": "2.38.4", 101 | "depth": 0, 102 | "source": "registry", 103 | "dependencies": {}, 104 | "url": "https://packages.unity.com" 105 | }, 106 | "com.unity.xr.openvr.standalone": { 107 | "version": "2.0.5", 108 | "depth": 0, 109 | "source": "registry", 110 | "dependencies": {}, 111 | "url": "https://packages.unity.com" 112 | }, 113 | "com.vrchat.avatars": { 114 | "version": "file:com.vrchat.avatars", 115 | "depth": 0, 116 | "source": "embedded", 117 | "dependencies": {} 118 | }, 119 | "com.vrchat.base": { 120 | "version": "file:com.vrchat.base", 121 | "depth": 0, 122 | "source": "embedded", 123 | "dependencies": { 124 | "com.unity.burst": "1.4.11", 125 | "com.unity.mathematics": "1.2.5", 126 | "com.unity.nuget.newtonsoft-json": "3.0.2" 127 | } 128 | }, 129 | "com.vrchat.core.bootstrap": { 130 | "version": "file:com.vrchat.core.bootstrap", 131 | "depth": 0, 132 | "source": "embedded", 133 | "dependencies": { 134 | "com.unity.nuget.newtonsoft-json": "2.0.2" 135 | } 136 | }, 137 | "com.vrchat.core.vpm-resolver": { 138 | "version": "file:com.vrchat.core.vpm-resolver", 139 | "depth": 0, 140 | "source": "embedded", 141 | "dependencies": { 142 | "com.unity.nuget.newtonsoft-json": "3.0.2" 143 | } 144 | }, 145 | "dev.logilabo.parameter-smoother": { 146 | "version": "file:dev.logilabo.parameter-smoother", 147 | "depth": 0, 148 | "source": "embedded", 149 | "dependencies": {} 150 | }, 151 | "nadena.dev.modular-avatar": { 152 | "version": "file:nadena.dev.modular-avatar", 153 | "depth": 0, 154 | "source": "embedded", 155 | "dependencies": { 156 | "com.unity.nuget.newtonsoft-json": "2.0.0" 157 | } 158 | }, 159 | "nadena.dev.ndmf": { 160 | "version": "file:nadena.dev.ndmf", 161 | "depth": 0, 162 | "source": "embedded", 163 | "dependencies": {} 164 | }, 165 | "vrchat.blackstartx.gesture-manager": { 166 | "version": "file:vrchat.blackstartx.gesture-manager", 167 | "depth": 0, 168 | "source": "embedded", 169 | "dependencies": {} 170 | }, 171 | "com.unity.modules.ai": { 172 | "version": "1.0.0", 173 | "depth": 0, 174 | "source": "builtin", 175 | "dependencies": {} 176 | }, 177 | "com.unity.modules.androidjni": { 178 | "version": "1.0.0", 179 | "depth": 0, 180 | "source": "builtin", 181 | "dependencies": {} 182 | }, 183 | "com.unity.modules.animation": { 184 | "version": "1.0.0", 185 | "depth": 0, 186 | "source": "builtin", 187 | "dependencies": {} 188 | }, 189 | "com.unity.modules.assetbundle": { 190 | "version": "1.0.0", 191 | "depth": 0, 192 | "source": "builtin", 193 | "dependencies": {} 194 | }, 195 | "com.unity.modules.audio": { 196 | "version": "1.0.0", 197 | "depth": 0, 198 | "source": "builtin", 199 | "dependencies": {} 200 | }, 201 | "com.unity.modules.cloth": { 202 | "version": "1.0.0", 203 | "depth": 0, 204 | "source": "builtin", 205 | "dependencies": { 206 | "com.unity.modules.physics": "1.0.0" 207 | } 208 | }, 209 | "com.unity.modules.director": { 210 | "version": "1.0.0", 211 | "depth": 0, 212 | "source": "builtin", 213 | "dependencies": { 214 | "com.unity.modules.audio": "1.0.0", 215 | "com.unity.modules.animation": "1.0.0" 216 | } 217 | }, 218 | "com.unity.modules.imageconversion": { 219 | "version": "1.0.0", 220 | "depth": 0, 221 | "source": "builtin", 222 | "dependencies": {} 223 | }, 224 | "com.unity.modules.imgui": { 225 | "version": "1.0.0", 226 | "depth": 0, 227 | "source": "builtin", 228 | "dependencies": {} 229 | }, 230 | "com.unity.modules.jsonserialize": { 231 | "version": "1.0.0", 232 | "depth": 0, 233 | "source": "builtin", 234 | "dependencies": {} 235 | }, 236 | "com.unity.modules.particlesystem": { 237 | "version": "1.0.0", 238 | "depth": 0, 239 | "source": "builtin", 240 | "dependencies": {} 241 | }, 242 | "com.unity.modules.physics": { 243 | "version": "1.0.0", 244 | "depth": 0, 245 | "source": "builtin", 246 | "dependencies": {} 247 | }, 248 | "com.unity.modules.physics2d": { 249 | "version": "1.0.0", 250 | "depth": 0, 251 | "source": "builtin", 252 | "dependencies": {} 253 | }, 254 | "com.unity.modules.screencapture": { 255 | "version": "1.0.0", 256 | "depth": 0, 257 | "source": "builtin", 258 | "dependencies": { 259 | "com.unity.modules.imageconversion": "1.0.0" 260 | } 261 | }, 262 | "com.unity.modules.subsystems": { 263 | "version": "1.0.0", 264 | "depth": 1, 265 | "source": "builtin", 266 | "dependencies": { 267 | "com.unity.modules.jsonserialize": "1.0.0" 268 | } 269 | }, 270 | "com.unity.modules.terrain": { 271 | "version": "1.0.0", 272 | "depth": 0, 273 | "source": "builtin", 274 | "dependencies": {} 275 | }, 276 | "com.unity.modules.terrainphysics": { 277 | "version": "1.0.0", 278 | "depth": 0, 279 | "source": "builtin", 280 | "dependencies": { 281 | "com.unity.modules.physics": "1.0.0", 282 | "com.unity.modules.terrain": "1.0.0" 283 | } 284 | }, 285 | "com.unity.modules.tilemap": { 286 | "version": "1.0.0", 287 | "depth": 0, 288 | "source": "builtin", 289 | "dependencies": { 290 | "com.unity.modules.physics2d": "1.0.0" 291 | } 292 | }, 293 | "com.unity.modules.ui": { 294 | "version": "1.0.0", 295 | "depth": 0, 296 | "source": "builtin", 297 | "dependencies": {} 298 | }, 299 | "com.unity.modules.uielements": { 300 | "version": "1.0.0", 301 | "depth": 0, 302 | "source": "builtin", 303 | "dependencies": { 304 | "com.unity.modules.imgui": "1.0.0", 305 | "com.unity.modules.jsonserialize": "1.0.0" 306 | } 307 | }, 308 | "com.unity.modules.umbra": { 309 | "version": "1.0.0", 310 | "depth": 0, 311 | "source": "builtin", 312 | "dependencies": {} 313 | }, 314 | "com.unity.modules.unityanalytics": { 315 | "version": "1.0.0", 316 | "depth": 0, 317 | "source": "builtin", 318 | "dependencies": { 319 | "com.unity.modules.unitywebrequest": "1.0.0", 320 | "com.unity.modules.jsonserialize": "1.0.0" 321 | } 322 | }, 323 | "com.unity.modules.unitywebrequest": { 324 | "version": "1.0.0", 325 | "depth": 0, 326 | "source": "builtin", 327 | "dependencies": {} 328 | }, 329 | "com.unity.modules.unitywebrequestassetbundle": { 330 | "version": "1.0.0", 331 | "depth": 0, 332 | "source": "builtin", 333 | "dependencies": { 334 | "com.unity.modules.assetbundle": "1.0.0", 335 | "com.unity.modules.unitywebrequest": "1.0.0" 336 | } 337 | }, 338 | "com.unity.modules.unitywebrequestaudio": { 339 | "version": "1.0.0", 340 | "depth": 0, 341 | "source": "builtin", 342 | "dependencies": { 343 | "com.unity.modules.unitywebrequest": "1.0.0", 344 | "com.unity.modules.audio": "1.0.0" 345 | } 346 | }, 347 | "com.unity.modules.unitywebrequesttexture": { 348 | "version": "1.0.0", 349 | "depth": 0, 350 | "source": "builtin", 351 | "dependencies": { 352 | "com.unity.modules.unitywebrequest": "1.0.0", 353 | "com.unity.modules.imageconversion": "1.0.0" 354 | } 355 | }, 356 | "com.unity.modules.unitywebrequestwww": { 357 | "version": "1.0.0", 358 | "depth": 0, 359 | "source": "builtin", 360 | "dependencies": { 361 | "com.unity.modules.unitywebrequest": "1.0.0", 362 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 363 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 364 | "com.unity.modules.audio": "1.0.0", 365 | "com.unity.modules.assetbundle": "1.0.0", 366 | "com.unity.modules.imageconversion": "1.0.0" 367 | } 368 | }, 369 | "com.unity.modules.vehicles": { 370 | "version": "1.0.0", 371 | "depth": 0, 372 | "source": "builtin", 373 | "dependencies": { 374 | "com.unity.modules.physics": "1.0.0" 375 | } 376 | }, 377 | "com.unity.modules.video": { 378 | "version": "1.0.0", 379 | "depth": 0, 380 | "source": "builtin", 381 | "dependencies": { 382 | "com.unity.modules.audio": "1.0.0", 383 | "com.unity.modules.ui": "1.0.0", 384 | "com.unity.modules.unitywebrequest": "1.0.0" 385 | } 386 | }, 387 | "com.unity.modules.vr": { 388 | "version": "1.0.0", 389 | "depth": 0, 390 | "source": "builtin", 391 | "dependencies": { 392 | "com.unity.modules.jsonserialize": "1.0.0", 393 | "com.unity.modules.physics": "1.0.0", 394 | "com.unity.modules.xr": "1.0.0" 395 | } 396 | }, 397 | "com.unity.modules.wind": { 398 | "version": "1.0.0", 399 | "depth": 0, 400 | "source": "builtin", 401 | "dependencies": {} 402 | }, 403 | "com.unity.modules.xr": { 404 | "version": "1.0.0", 405 | "depth": 0, 406 | "source": "builtin", 407 | "dependencies": { 408 | "com.unity.modules.physics": "1.0.0", 409 | "com.unity.modules.jsonserialize": "1.0.0", 410 | "com.unity.modules.subsystems": "1.0.0" 411 | } 412 | } 413 | } 414 | } 415 | -------------------------------------------------------------------------------- /Packages/vpm-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.vrchat.core.vpm-resolver": { 4 | "version": "0.1.26" 5 | }, 6 | "com.vrchat.base": { 7 | "version": "3.4.2" 8 | }, 9 | "com.vrchat.avatars": { 10 | "version": "3.4.2" 11 | }, 12 | "vrchat.blackstartx.gesture-manager": { 13 | "version": "3.8.8" 14 | }, 15 | "nadena.dev.modular-avatar": { 16 | "version": "1.8.4" 17 | } 18 | }, 19 | "locked": { 20 | "com.vrchat.core.vpm-resolver": { 21 | "version": "0.1.26", 22 | "dependencies": {} 23 | }, 24 | "com.vrchat.base": { 25 | "version": "3.4.2", 26 | "dependencies": {} 27 | }, 28 | "com.vrchat.avatars": { 29 | "version": "3.4.2", 30 | "dependencies": { 31 | "com.vrchat.base": "3.4.2" 32 | } 33 | }, 34 | "vrchat.blackstartx.gesture-manager": { 35 | "version": "3.8.8", 36 | "dependencies": { 37 | "com.vrchat.avatars": "3.2.x || 3.3.x || 3.4.x || 3.5.x" 38 | } 39 | }, 40 | "nadena.dev.modular-avatar": { 41 | "version": "1.9.0-rc.0", 42 | "dependencies": { 43 | "com.vrchat.avatars": ">=3.2.0", 44 | "nadena.dev.ndmf": ">=1.3.0-rc.0 <2.0.0-a" 45 | } 46 | }, 47 | "nadena.dev.ndmf": { 48 | "version": "1.3.0-rc.0", 49 | "dependencies": {} 50 | } 51 | } 52 | } -------------------------------------------------------------------------------- /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: 48000 12 | m_DSPBufferSize: 1024 13 | m_VirtualVoiceCount: 64 14 | m_RealVoiceCount: 32 15 | m_EnableOutputSuspension: 1 16 | m_SpatializerPlugin: 17 | m_AmbisonicDecoderPlugin: 18 | m_DisableAudio: 0 19 | m_VirtualizeEffects: 1 20 | m_RequestedDSPBufferSize: 0 21 | -------------------------------------------------------------------------------- /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/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: 11 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 18 | m_ClothInterCollisionStiffness: 0 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_ContactPairsMode: 0 26 | m_BroadphaseType: 0 27 | m_WorldBounds: 28 | m_Center: {x: 0, y: 0, z: 0} 29 | m_Extent: {x: 250, y: 250, z: 250} 30 | m_WorldSubdivisions: 8 31 | m_FrictionType: 0 32 | m_EnableEnhancedDeterminism: 0 33 | m_EnableUnifiedHeightmaps: 1 34 | m_DefaultMaxAngluarSpeed: 7 35 | -------------------------------------------------------------------------------- /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 | m_configObjects: {} 9 | -------------------------------------------------------------------------------- /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: 9 7 | m_ExternalVersionControlSupport: Visible Meta Files 8 | m_SerializationMode: 2 9 | m_LineEndingsForNewScripts: 0 10 | m_DefaultBehaviorMode: 0 11 | m_PrefabRegularEnvironment: {fileID: 0} 12 | m_PrefabUIEnvironment: {fileID: 0} 13 | m_SpritePackerMode: 0 14 | m_SpritePackerPaddingPower: 1 15 | m_EtcTextureCompressorBehavior: 1 16 | m_EtcTextureFastCompressor: 1 17 | m_EtcTextureNormalCompressor: 2 18 | m_EtcTextureBestCompressor: 4 19 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;rsp;asmref 20 | m_ProjectGenerationRootNamespace: 21 | m_CollabEditorSettings: 22 | inProgressEnabled: 1 23 | m_EnableTextureStreamingInEditMode: 1 24 | m_EnableTextureStreamingInPlayMode: 1 25 | m_AsyncShaderCompilation: 1 26 | m_EnterPlayModeOptionsEnabled: 0 27 | m_EnterPlayModeOptions: 3 28 | m_ShowLightmapResolutionOverlay: 1 29 | m_UseLegacyProbeSampleCount: 0 30 | m_AssetPipelineMode: 1 31 | m_CacheServerMode: 0 32 | m_CacheServerEndpoint: 33 | m_CacheServerNamespacePrefix: default 34 | m_CacheServerEnableDownload: 1 35 | m_CacheServerEnableUpload: 1 36 | -------------------------------------------------------------------------------- /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: 13 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_AlwaysIncludedShaders: [] 32 | m_PreloadedShaders: [] 33 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, 34 | type: 0} 35 | m_CustomRenderPipeline: {fileID: 0} 36 | m_TransparencySortMode: 0 37 | m_TransparencySortAxis: {x: 0, y: 0, z: 1} 38 | m_DefaultRenderingPath: 1 39 | m_DefaultMobileRenderingPath: 1 40 | m_TierSettings: [] 41 | m_LightmapStripping: 0 42 | m_FogStripping: 0 43 | m_InstancingStripping: 0 44 | m_LightmapKeepPlain: 1 45 | m_LightmapKeepDirCombined: 1 46 | m_LightmapKeepDynamicPlain: 1 47 | m_LightmapKeepDynamicDirCombined: 1 48 | m_LightmapKeepShadowMask: 1 49 | m_LightmapKeepSubtractive: 1 50 | m_FogKeepLinear: 1 51 | m_FogKeepExp: 1 52 | m_FogKeepExp2: 1 53 | m_AlbedoSwatchInfos: [] 54 | m_LightsUseLinearIntensity: 1 55 | m_LightsUseColorTemperature: 1 56 | m_LogWhenShaderIsCompiled: 0 57 | m_AllowEnlightenSupportForUpgradedProject: 0 58 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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_ScopedRegistriesSettingsExpanded: 1 16 | oneTimeWarningShown: 0 17 | m_Registries: 18 | - m_Id: main 19 | m_Name: 20 | m_Url: https://packages.unity.com 21 | m_Scopes: [] 22 | m_IsDefault: 1 23 | m_UserSelectedRegistryName: 24 | m_UserAddingNewScopedRegistry: 0 25 | m_RegistryInfoDraft: 26 | m_ErrorMessage: 27 | m_Original: 28 | m_Id: 29 | m_Name: 30 | m_Url: 31 | m_Scopes: [] 32 | m_IsDefault: 0 33 | m_Modified: 0 34 | m_Name: 35 | m_Url: 36 | m_Scopes: 37 | - 38 | m_SelectedScopeIndex: 0 39 | -------------------------------------------------------------------------------- /ProjectSettings/Packages/com.vrchat.base/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "samplesImported": false, 3 | "allowVRCPackageChanges": false, 4 | "samplesHintCreated": true, 5 | "debugVCCConnection": false 6 | } -------------------------------------------------------------------------------- /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 | serializedVersion: 2 7 | m_DefaultPresets: {} 8 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!129 &1 4 | PlayerSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 20 7 | productGUID: b3c5e0f91eedeff44a33fc4ff58cec69 8 | AndroidProfiler: 0 9 | AndroidFilterTouchesWhenObscured: 0 10 | AndroidEnableSustainedPerformanceMode: 0 11 | defaultScreenOrientation: 4 12 | targetDevice: 2 13 | useOnDemandResources: 0 14 | accelerometerFrequency: 60 15 | companyName: VRChat 16 | productName: vpm-package-maker 17 | defaultCursor: {fileID: 0} 18 | cursorHotspot: {x: 0, y: 0} 19 | m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1} 20 | m_ShowUnitySplashScreen: 1 21 | m_ShowUnitySplashLogo: 1 22 | m_SplashScreenOverlayOpacity: 1 23 | m_SplashScreenAnimation: 1 24 | m_SplashScreenLogoStyle: 1 25 | m_SplashScreenDrawMode: 0 26 | m_SplashScreenBackgroundAnimationZoom: 1 27 | m_SplashScreenLogoAnimationZoom: 1 28 | m_SplashScreenBackgroundLandscapeAspect: 1 29 | m_SplashScreenBackgroundPortraitAspect: 1 30 | m_SplashScreenBackgroundLandscapeUvs: 31 | serializedVersion: 2 32 | x: 0 33 | y: 0 34 | width: 1 35 | height: 1 36 | m_SplashScreenBackgroundPortraitUvs: 37 | serializedVersion: 2 38 | x: 0 39 | y: 0 40 | width: 1 41 | height: 1 42 | m_SplashScreenLogos: [] 43 | m_VirtualRealitySplashScreen: {fileID: 0} 44 | m_HolographicTrackingLossScreen: {fileID: 0} 45 | defaultScreenWidth: 1024 46 | defaultScreenHeight: 768 47 | defaultScreenWidthWeb: 960 48 | defaultScreenHeightWeb: 600 49 | m_StereoRenderingPath: 1 50 | m_ActiveColorSpace: 1 51 | m_MTRendering: 1 52 | m_StackTraceTypes: 010000000100000001000000010000000100000001000000 53 | iosShowActivityIndicatorOnLoading: -1 54 | androidShowActivityIndicatorOnLoading: -1 55 | iosUseCustomAppBackgroundBehavior: 0 56 | iosAllowHTTPDownload: 1 57 | allowedAutorotateToPortrait: 1 58 | allowedAutorotateToPortraitUpsideDown: 1 59 | allowedAutorotateToLandscapeRight: 1 60 | allowedAutorotateToLandscapeLeft: 1 61 | useOSAutorotation: 1 62 | use32BitDisplayBuffer: 1 63 | preserveFramebufferAlpha: 0 64 | disableDepthAndStencilBuffers: 0 65 | androidStartInFullscreen: 1 66 | androidRenderOutsideSafeArea: 1 67 | androidUseSwappy: 0 68 | androidBlitType: 0 69 | androidResizableWindow: 0 70 | androidDefaultWindowWidth: 1920 71 | androidDefaultWindowHeight: 1080 72 | androidMinimumWindowWidth: 400 73 | androidMinimumWindowHeight: 300 74 | androidFullscreenMode: 1 75 | defaultIsNativeResolution: 1 76 | macRetinaSupport: 1 77 | runInBackground: 1 78 | captureSingleScreen: 0 79 | muteOtherAudioSources: 0 80 | Prepare IOS For Recording: 0 81 | Force IOS Speakers When Recording: 0 82 | deferSystemGesturesMode: 0 83 | hideHomeButton: 0 84 | submitAnalytics: 1 85 | usePlayerLog: 1 86 | bakeCollisionMeshes: 0 87 | forceSingleInstance: 0 88 | useFlipModelSwapchain: 1 89 | resizableWindow: 0 90 | useMacAppStoreValidation: 0 91 | macAppStoreCategory: public.app-category.games 92 | gpuSkinning: 1 93 | xboxPIXTextureCapture: 0 94 | xboxEnableAvatar: 0 95 | xboxEnableKinect: 0 96 | xboxEnableKinectAutoTracking: 0 97 | xboxEnableFitness: 0 98 | visibleInBackground: 1 99 | allowFullscreenSwitch: 1 100 | fullscreenMode: 1 101 | xboxSpeechDB: 0 102 | xboxEnableHeadOrientation: 0 103 | xboxEnableGuest: 0 104 | xboxEnablePIXSampling: 0 105 | metalFramebufferOnly: 0 106 | xboxOneResolution: 0 107 | xboxOneSResolution: 0 108 | xboxOneXResolution: 3 109 | xboxOneMonoLoggingLevel: 0 110 | xboxOneLoggingLevel: 1 111 | xboxOneDisableEsram: 0 112 | xboxOneEnableTypeOptimization: 0 113 | xboxOnePresentImmediateThreshold: 0 114 | switchQueueCommandMemory: 0 115 | switchQueueControlMemory: 16384 116 | switchQueueComputeMemory: 262144 117 | switchNVNShaderPoolsGranularity: 33554432 118 | switchNVNDefaultPoolsGranularity: 16777216 119 | switchNVNOtherPoolsGranularity: 16777216 120 | switchNVNMaxPublicTextureIDCount: 0 121 | switchNVNMaxPublicSamplerIDCount: 0 122 | stadiaPresentMode: 0 123 | stadiaTargetFramerate: 0 124 | vulkanNumSwapchainBuffers: 3 125 | vulkanEnableSetSRGBWrite: 0 126 | vulkanEnableLateAcquireNextImage: 0 127 | m_SupportedAspectRatios: 128 | 4:3: 1 129 | 5:4: 1 130 | 16:10: 1 131 | 16:9: 1 132 | Others: 1 133 | bundleVersion: 0.1 134 | preloadedAssets: [] 135 | metroInputSource: 0 136 | wsaTransparentSwapchain: 0 137 | m_HolographicPauseOnTrackingLoss: 1 138 | xboxOneDisableKinectGpuReservation: 1 139 | xboxOneEnable7thCore: 1 140 | vrSettings: 141 | cardboard: 142 | depthFormat: 0 143 | enableTransitionView: 0 144 | daydream: 145 | depthFormat: 0 146 | useSustainedPerformanceMode: 0 147 | enableVideoLayer: 0 148 | useProtectedVideoMemory: 0 149 | minimumSupportedHeadTracking: 0 150 | maximumSupportedHeadTracking: 1 151 | hololens: 152 | depthFormat: 1 153 | depthBufferSharingEnabled: 1 154 | lumin: 155 | depthFormat: 0 156 | frameTiming: 2 157 | enableGLCache: 0 158 | glCacheMaxBlobSize: 524288 159 | glCacheMaxFileSize: 8388608 160 | oculus: 161 | sharedDepthBuffer: 1 162 | dashSupport: 1 163 | lowOverheadMode: 0 164 | protectedContext: 0 165 | v2Signing: 1 166 | enable360StereoCapture: 0 167 | isWsaHolographicRemotingEnabled: 0 168 | enableFrameTimingStats: 0 169 | useHDRDisplay: 0 170 | D3DHDRBitDepth: 0 171 | m_ColorGamuts: 00000000 172 | targetPixelDensity: 30 173 | resolutionScalingMode: 0 174 | androidSupportedAspectRatio: 1 175 | androidMaxAspectRatio: 2.1 176 | applicationIdentifier: {} 177 | buildNumber: {} 178 | AndroidBundleVersionCode: 1 179 | AndroidMinSdkVersion: 19 180 | AndroidTargetSdkVersion: 0 181 | AndroidPreferredInstallLocation: 1 182 | aotOptions: 183 | stripEngineCode: 1 184 | iPhoneStrippingLevel: 0 185 | iPhoneScriptCallOptimization: 0 186 | ForceInternetPermission: 0 187 | ForceSDCardPermission: 0 188 | CreateWallpaper: 0 189 | APKExpansionFiles: 0 190 | keepLoadedShadersAlive: 0 191 | StripUnusedMeshComponents: 1 192 | VertexChannelCompressionMask: 4054 193 | iPhoneSdkVersion: 988 194 | iOSTargetOSVersionString: 10.0 195 | tvOSSdkVersion: 0 196 | tvOSRequireExtendedGameController: 0 197 | tvOSTargetOSVersionString: 10.0 198 | uIPrerenderedIcon: 0 199 | uIRequiresPersistentWiFi: 0 200 | uIRequiresFullScreen: 1 201 | uIStatusBarHidden: 1 202 | uIExitOnSuspend: 0 203 | uIStatusBarStyle: 0 204 | appleTVSplashScreen: {fileID: 0} 205 | appleTVSplashScreen2x: {fileID: 0} 206 | tvOSSmallIconLayers: [] 207 | tvOSSmallIconLayers2x: [] 208 | tvOSLargeIconLayers: [] 209 | tvOSLargeIconLayers2x: [] 210 | tvOSTopShelfImageLayers: [] 211 | tvOSTopShelfImageLayers2x: [] 212 | tvOSTopShelfImageWideLayers: [] 213 | tvOSTopShelfImageWideLayers2x: [] 214 | iOSLaunchScreenType: 0 215 | iOSLaunchScreenPortrait: {fileID: 0} 216 | iOSLaunchScreenLandscape: {fileID: 0} 217 | iOSLaunchScreenBackgroundColor: 218 | serializedVersion: 2 219 | rgba: 0 220 | iOSLaunchScreenFillPct: 100 221 | iOSLaunchScreenSize: 100 222 | iOSLaunchScreenCustomXibPath: 223 | iOSLaunchScreeniPadType: 0 224 | iOSLaunchScreeniPadImage: {fileID: 0} 225 | iOSLaunchScreeniPadBackgroundColor: 226 | serializedVersion: 2 227 | rgba: 0 228 | iOSLaunchScreeniPadFillPct: 100 229 | iOSLaunchScreeniPadSize: 100 230 | iOSLaunchScreeniPadCustomXibPath: 231 | iOSUseLaunchScreenStoryboard: 0 232 | iOSLaunchScreenCustomStoryboardPath: 233 | iOSDeviceRequirements: [] 234 | iOSURLSchemes: [] 235 | iOSBackgroundModes: 0 236 | iOSMetalForceHardShadows: 0 237 | metalEditorSupport: 1 238 | metalAPIValidation: 1 239 | iOSRenderExtraFrameOnPause: 0 240 | iosCopyPluginsCodeInsteadOfSymlink: 0 241 | appleDeveloperTeamID: 242 | iOSManualSigningProvisioningProfileID: 243 | tvOSManualSigningProvisioningProfileID: 244 | iOSManualSigningProvisioningProfileType: 0 245 | tvOSManualSigningProvisioningProfileType: 0 246 | appleEnableAutomaticSigning: 0 247 | iOSRequireARKit: 0 248 | iOSAutomaticallyDetectAndAddCapabilities: 1 249 | appleEnableProMotion: 0 250 | clonedFromGUID: c0afd0d1d80e3634a9dac47e8a0426ea 251 | templatePackageId: com.unity.template.3d@4.2.8 252 | templateDefaultScene: Assets/Scenes/SampleScene.unity 253 | AndroidTargetArchitectures: 1 254 | AndroidTargetDevices: 0 255 | AndroidSplashScreenScale: 0 256 | androidSplashScreen: {fileID: 0} 257 | AndroidKeystoreName: 258 | AndroidKeyaliasName: 259 | AndroidBuildApkPerCpuArchitecture: 0 260 | AndroidTVCompatibility: 0 261 | AndroidIsGame: 1 262 | AndroidEnableTango: 0 263 | androidEnableBanner: 1 264 | androidUseLowAccuracyLocation: 0 265 | androidUseCustomKeystore: 0 266 | m_AndroidBanners: 267 | - width: 320 268 | height: 180 269 | banner: {fileID: 0} 270 | androidGamepadSupportLevel: 0 271 | chromeosInputEmulation: 1 272 | AndroidValidateAppBundleSize: 1 273 | AndroidAppBundleSizeToValidate: 150 274 | m_BuildTargetIcons: [] 275 | m_BuildTargetPlatformIcons: [] 276 | m_BuildTargetBatching: 277 | - m_BuildTarget: Standalone 278 | m_StaticBatching: 1 279 | m_DynamicBatching: 1 280 | - m_BuildTarget: tvOS 281 | m_StaticBatching: 1 282 | m_DynamicBatching: 0 283 | - m_BuildTarget: Android 284 | m_StaticBatching: 1 285 | m_DynamicBatching: 0 286 | - m_BuildTarget: iPhone 287 | m_StaticBatching: 1 288 | m_DynamicBatching: 0 289 | - m_BuildTarget: WebGL 290 | m_StaticBatching: 0 291 | m_DynamicBatching: 0 292 | m_BuildTargetGraphicsJobs: 293 | - m_BuildTarget: MacStandaloneSupport 294 | m_GraphicsJobs: 0 295 | - m_BuildTarget: Switch 296 | m_GraphicsJobs: 1 297 | - m_BuildTarget: MetroSupport 298 | m_GraphicsJobs: 1 299 | - m_BuildTarget: AppleTVSupport 300 | m_GraphicsJobs: 0 301 | - m_BuildTarget: BJMSupport 302 | m_GraphicsJobs: 1 303 | - m_BuildTarget: LinuxStandaloneSupport 304 | m_GraphicsJobs: 1 305 | - m_BuildTarget: PS4Player 306 | m_GraphicsJobs: 1 307 | - m_BuildTarget: iOSSupport 308 | m_GraphicsJobs: 0 309 | - m_BuildTarget: WindowsStandaloneSupport 310 | m_GraphicsJobs: 1 311 | - m_BuildTarget: XboxOnePlayer 312 | m_GraphicsJobs: 1 313 | - m_BuildTarget: LuminSupport 314 | m_GraphicsJobs: 0 315 | - m_BuildTarget: AndroidPlayer 316 | m_GraphicsJobs: 0 317 | - m_BuildTarget: WebGLSupport 318 | m_GraphicsJobs: 0 319 | m_BuildTargetGraphicsJobMode: 320 | - m_BuildTarget: PS4Player 321 | m_GraphicsJobMode: 0 322 | - m_BuildTarget: XboxOnePlayer 323 | m_GraphicsJobMode: 0 324 | m_BuildTargetGraphicsAPIs: 325 | - m_BuildTarget: AndroidPlayer 326 | m_APIs: 0b000000 327 | m_Automatic: 0 328 | - m_BuildTarget: iOSSupport 329 | m_APIs: 10000000 330 | m_Automatic: 0 331 | - m_BuildTarget: AppleTVSupport 332 | m_APIs: 10000000 333 | m_Automatic: 0 334 | - m_BuildTarget: WebGLSupport 335 | m_APIs: 0b000000 336 | m_Automatic: 1 337 | - m_BuildTarget: WindowsStandaloneSupport 338 | m_APIs: 02000000 339 | m_Automatic: 0 340 | - m_BuildTarget: MacStandaloneSupport 341 | m_APIs: 10000000 342 | m_Automatic: 0 343 | m_BuildTargetVRSettings: 344 | - m_BuildTarget: Standalone 345 | m_Enabled: 1 346 | m_Devices: 347 | - None 348 | - OpenVR 349 | - Oculus 350 | openGLRequireES31: 0 351 | openGLRequireES31AEP: 0 352 | openGLRequireES32: 0 353 | m_TemplateCustomTags: {} 354 | mobileMTRendering: 355 | Android: 1 356 | iPhone: 1 357 | tvOS: 1 358 | m_BuildTargetGroupLightmapEncodingQuality: [] 359 | m_BuildTargetGroupLightmapSettings: [] 360 | playModeTestRunnerEnabled: 0 361 | runPlayModeTestAsEditModeTest: 0 362 | actionOnDotNetUnhandledException: 1 363 | enableInternalProfiler: 0 364 | logObjCUncaughtExceptions: 1 365 | enableCrashReportAPI: 0 366 | cameraUsageDescription: 367 | locationUsageDescription: 368 | microphoneUsageDescription: 369 | switchNetLibKey: 370 | switchSocketMemoryPoolSize: 6144 371 | switchSocketAllocatorPoolSize: 128 372 | switchSocketConcurrencyLimit: 14 373 | switchScreenResolutionBehavior: 2 374 | switchUseCPUProfiler: 0 375 | switchApplicationID: 0x01004b9000490000 376 | switchNSODependencies: 377 | switchTitleNames_0: 378 | switchTitleNames_1: 379 | switchTitleNames_2: 380 | switchTitleNames_3: 381 | switchTitleNames_4: 382 | switchTitleNames_5: 383 | switchTitleNames_6: 384 | switchTitleNames_7: 385 | switchTitleNames_8: 386 | switchTitleNames_9: 387 | switchTitleNames_10: 388 | switchTitleNames_11: 389 | switchTitleNames_12: 390 | switchTitleNames_13: 391 | switchTitleNames_14: 392 | switchTitleNames_15: 393 | switchPublisherNames_0: 394 | switchPublisherNames_1: 395 | switchPublisherNames_2: 396 | switchPublisherNames_3: 397 | switchPublisherNames_4: 398 | switchPublisherNames_5: 399 | switchPublisherNames_6: 400 | switchPublisherNames_7: 401 | switchPublisherNames_8: 402 | switchPublisherNames_9: 403 | switchPublisherNames_10: 404 | switchPublisherNames_11: 405 | switchPublisherNames_12: 406 | switchPublisherNames_13: 407 | switchPublisherNames_14: 408 | switchPublisherNames_15: 409 | switchIcons_0: {fileID: 0} 410 | switchIcons_1: {fileID: 0} 411 | switchIcons_2: {fileID: 0} 412 | switchIcons_3: {fileID: 0} 413 | switchIcons_4: {fileID: 0} 414 | switchIcons_5: {fileID: 0} 415 | switchIcons_6: {fileID: 0} 416 | switchIcons_7: {fileID: 0} 417 | switchIcons_8: {fileID: 0} 418 | switchIcons_9: {fileID: 0} 419 | switchIcons_10: {fileID: 0} 420 | switchIcons_11: {fileID: 0} 421 | switchIcons_12: {fileID: 0} 422 | switchIcons_13: {fileID: 0} 423 | switchIcons_14: {fileID: 0} 424 | switchIcons_15: {fileID: 0} 425 | switchSmallIcons_0: {fileID: 0} 426 | switchSmallIcons_1: {fileID: 0} 427 | switchSmallIcons_2: {fileID: 0} 428 | switchSmallIcons_3: {fileID: 0} 429 | switchSmallIcons_4: {fileID: 0} 430 | switchSmallIcons_5: {fileID: 0} 431 | switchSmallIcons_6: {fileID: 0} 432 | switchSmallIcons_7: {fileID: 0} 433 | switchSmallIcons_8: {fileID: 0} 434 | switchSmallIcons_9: {fileID: 0} 435 | switchSmallIcons_10: {fileID: 0} 436 | switchSmallIcons_11: {fileID: 0} 437 | switchSmallIcons_12: {fileID: 0} 438 | switchSmallIcons_13: {fileID: 0} 439 | switchSmallIcons_14: {fileID: 0} 440 | switchSmallIcons_15: {fileID: 0} 441 | switchManualHTML: 442 | switchAccessibleURLs: 443 | switchLegalInformation: 444 | switchMainThreadStackSize: 1048576 445 | switchPresenceGroupId: 446 | switchLogoHandling: 0 447 | switchReleaseVersion: 0 448 | switchDisplayVersion: 1.0.0 449 | switchStartupUserAccount: 0 450 | switchTouchScreenUsage: 0 451 | switchSupportedLanguagesMask: 0 452 | switchLogoType: 0 453 | switchApplicationErrorCodeCategory: 454 | switchUserAccountSaveDataSize: 0 455 | switchUserAccountSaveDataJournalSize: 0 456 | switchApplicationAttribute: 0 457 | switchCardSpecSize: -1 458 | switchCardSpecClock: -1 459 | switchRatingsMask: 0 460 | switchRatingsInt_0: 0 461 | switchRatingsInt_1: 0 462 | switchRatingsInt_2: 0 463 | switchRatingsInt_3: 0 464 | switchRatingsInt_4: 0 465 | switchRatingsInt_5: 0 466 | switchRatingsInt_6: 0 467 | switchRatingsInt_7: 0 468 | switchRatingsInt_8: 0 469 | switchRatingsInt_9: 0 470 | switchRatingsInt_10: 0 471 | switchRatingsInt_11: 0 472 | switchRatingsInt_12: 0 473 | switchLocalCommunicationIds_0: 474 | switchLocalCommunicationIds_1: 475 | switchLocalCommunicationIds_2: 476 | switchLocalCommunicationIds_3: 477 | switchLocalCommunicationIds_4: 478 | switchLocalCommunicationIds_5: 479 | switchLocalCommunicationIds_6: 480 | switchLocalCommunicationIds_7: 481 | switchParentalControl: 0 482 | switchAllowsScreenshot: 1 483 | switchAllowsVideoCapturing: 1 484 | switchAllowsRuntimeAddOnContentInstall: 0 485 | switchDataLossConfirmation: 0 486 | switchUserAccountLockEnabled: 0 487 | switchSystemResourceMemory: 16777216 488 | switchSupportedNpadStyles: 22 489 | switchNativeFsCacheSize: 32 490 | switchIsHoldTypeHorizontal: 0 491 | switchSupportedNpadCount: 8 492 | switchSocketConfigEnabled: 0 493 | switchTcpInitialSendBufferSize: 32 494 | switchTcpInitialReceiveBufferSize: 64 495 | switchTcpAutoSendBufferSizeMax: 256 496 | switchTcpAutoReceiveBufferSizeMax: 256 497 | switchUdpSendBufferSize: 9 498 | switchUdpReceiveBufferSize: 42 499 | switchSocketBufferEfficiency: 4 500 | switchSocketInitializeEnabled: 1 501 | switchNetworkInterfaceManagerInitializeEnabled: 1 502 | switchPlayerConnectionEnabled: 1 503 | switchUseMicroSleepForYield: 1 504 | switchMicroSleepForYieldTime: 25 505 | ps4NPAgeRating: 12 506 | ps4NPTitleSecret: 507 | ps4NPTrophyPackPath: 508 | ps4ParentalLevel: 11 509 | ps4ContentID: ED1633-NPXX51362_00-0000000000000000 510 | ps4Category: 0 511 | ps4MasterVersion: 01.00 512 | ps4AppVersion: 01.00 513 | ps4AppType: 0 514 | ps4ParamSfxPath: 515 | ps4VideoOutPixelFormat: 0 516 | ps4VideoOutInitialWidth: 1920 517 | ps4VideoOutBaseModeInitialWidth: 1920 518 | ps4VideoOutReprojectionRate: 60 519 | ps4PronunciationXMLPath: 520 | ps4PronunciationSIGPath: 521 | ps4BackgroundImagePath: 522 | ps4StartupImagePath: 523 | ps4StartupImagesFolder: 524 | ps4IconImagesFolder: 525 | ps4SaveDataImagePath: 526 | ps4SdkOverride: 527 | ps4BGMPath: 528 | ps4ShareFilePath: 529 | ps4ShareOverlayImagePath: 530 | ps4PrivacyGuardImagePath: 531 | ps4ExtraSceSysFile: 532 | ps4NPtitleDatPath: 533 | ps4RemotePlayKeyAssignment: -1 534 | ps4RemotePlayKeyMappingDir: 535 | ps4PlayTogetherPlayerCount: 0 536 | ps4EnterButtonAssignment: 1 537 | ps4ApplicationParam1: 0 538 | ps4ApplicationParam2: 0 539 | ps4ApplicationParam3: 0 540 | ps4ApplicationParam4: 0 541 | ps4DownloadDataSize: 0 542 | ps4GarlicHeapSize: 2048 543 | ps4ProGarlicHeapSize: 2560 544 | playerPrefsMaxSize: 32768 545 | ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ 546 | ps4pnSessions: 1 547 | ps4pnPresence: 1 548 | ps4pnFriends: 1 549 | ps4pnGameCustomData: 1 550 | playerPrefsSupport: 0 551 | enableApplicationExit: 0 552 | resetTempFolder: 1 553 | restrictedAudioUsageRights: 0 554 | ps4UseResolutionFallback: 0 555 | ps4ReprojectionSupport: 0 556 | ps4UseAudio3dBackend: 0 557 | ps4UseLowGarlicFragmentationMode: 1 558 | ps4SocialScreenEnabled: 0 559 | ps4ScriptOptimizationLevel: 0 560 | ps4Audio3dVirtualSpeakerCount: 14 561 | ps4attribCpuUsage: 0 562 | ps4PatchPkgPath: 563 | ps4PatchLatestPkgPath: 564 | ps4PatchChangeinfoPath: 565 | ps4PatchDayOne: 0 566 | ps4attribUserManagement: 0 567 | ps4attribMoveSupport: 0 568 | ps4attrib3DSupport: 0 569 | ps4attribShareSupport: 0 570 | ps4attribExclusiveVR: 0 571 | ps4disableAutoHideSplash: 0 572 | ps4videoRecordingFeaturesUsed: 0 573 | ps4contentSearchFeaturesUsed: 0 574 | ps4CompatibilityPS5: 0 575 | ps4AllowPS5Detection: 0 576 | ps4GPU800MHz: 1 577 | ps4attribEyeToEyeDistanceSettingVR: 0 578 | ps4IncludedModules: [] 579 | ps4attribVROutputEnabled: 0 580 | ps5ParamFilePath: 581 | ps5VideoOutPixelFormat: 0 582 | ps5VideoOutInitialWidth: 1920 583 | ps5VideoOutOutputMode: 1 584 | ps5BackgroundImagePath: 585 | ps5StartupImagePath: 586 | ps5Pic2Path: 587 | ps5StartupImagesFolder: 588 | ps5IconImagesFolder: 589 | ps5SaveDataImagePath: 590 | ps5SdkOverride: 591 | ps5BGMPath: 592 | ps5ShareOverlayImagePath: 593 | ps5NPConfigZipPath: 594 | ps5Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ 595 | ps5UseResolutionFallback: 0 596 | ps5UseAudio3dBackend: 0 597 | ps5ScriptOptimizationLevel: 2 598 | ps5Audio3dVirtualSpeakerCount: 14 599 | ps5UpdateReferencePackage: 600 | ps5disableAutoHideSplash: 0 601 | ps5OperatingSystemCanDisableSplashScreen: 0 602 | ps5IncludedModules: [] 603 | ps5SharedBinaryContentLabels: [] 604 | ps5SharedBinarySystemFolders: [] 605 | monoEnv: 606 | splashScreenBackgroundSourceLandscape: {fileID: 0} 607 | splashScreenBackgroundSourcePortrait: {fileID: 0} 608 | blurSplashScreenBackground: 1 609 | spritePackerPolicy: 610 | webGLMemorySize: 16 611 | webGLExceptionSupport: 1 612 | webGLNameFilesAsHashes: 0 613 | webGLDataCaching: 1 614 | webGLDebugSymbols: 0 615 | webGLEmscriptenArgs: 616 | webGLModulesDirectory: 617 | webGLTemplate: APPLICATION:Default 618 | webGLAnalyzeBuildSize: 0 619 | webGLUseEmbeddedResources: 0 620 | webGLCompressionFormat: 1 621 | webGLLinkerTarget: 1 622 | webGLThreadsSupport: 0 623 | webGLWasmStreaming: 0 624 | scriptingDefineSymbols: 625 | 1: VRC_SDK_VRCSDK3 626 | platformArchitecture: {} 627 | scriptingBackend: {} 628 | il2cppCompilerConfiguration: 629 | Standalone: 1 630 | managedStrippingLevel: {} 631 | incrementalIl2cppBuild: {} 632 | suppressCommonWarnings: 1 633 | allowUnsafeCode: 0 634 | additionalIl2CppArgs: --compiler-flags="" --linker-flags="" 635 | scriptingRuntimeVersion: 1 636 | gcIncremental: 1 637 | assemblyVersionValidation: 1 638 | gcWBarrierValidation: 0 639 | apiCompatibilityLevelPerPlatform: 640 | Standalone: 3 641 | m_RenderingPath: 1 642 | m_MobileRenderingPath: 1 643 | metroPackageName: Template_3D 644 | metroPackageVersion: 645 | metroCertificatePath: 646 | metroCertificatePassword: 647 | metroCertificateSubject: 648 | metroCertificateIssuer: 649 | metroCertificateNotAfter: 0000000000000000 650 | metroApplicationDescription: Template_3D 651 | wsaImages: {} 652 | metroTileShortName: 653 | metroTileShowName: 0 654 | metroMediumTileShowName: 0 655 | metroLargeTileShowName: 0 656 | metroWideTileShowName: 0 657 | metroSupportStreamingInstall: 0 658 | metroLastRequiredScene: 0 659 | metroDefaultTileSize: 1 660 | metroTileForegroundText: 2 661 | metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} 662 | metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, 663 | a: 1} 664 | metroSplashScreenUseBackgroundColor: 0 665 | platformCapabilities: {} 666 | metroTargetDeviceFamilies: {} 667 | metroFTAName: 668 | metroFTAFileTypes: [] 669 | metroProtocolName: 670 | XboxOneProductId: 671 | XboxOneUpdateKey: 672 | XboxOneSandboxId: 673 | XboxOneContentId: 674 | XboxOneTitleId: 675 | XboxOneSCId: 676 | XboxOneGameOsOverridePath: 677 | XboxOnePackagingOverridePath: 678 | XboxOneAppManifestOverridePath: 679 | XboxOneVersion: 1.0.0.0 680 | XboxOnePackageEncryption: 0 681 | XboxOnePackageUpdateGranularity: 2 682 | XboxOneDescription: 683 | XboxOneLanguage: 684 | - enus 685 | XboxOneCapability: [] 686 | XboxOneGameRating: {} 687 | XboxOneIsContentPackage: 0 688 | XboxOneEnhancedXboxCompatibilityMode: 0 689 | XboxOneEnableGPUVariability: 1 690 | XboxOneSockets: {} 691 | XboxOneSplashScreen: {fileID: 0} 692 | XboxOneAllowedProductIds: [] 693 | XboxOnePersistentLocalStorageSize: 0 694 | XboxOneXTitleMemory: 8 695 | XboxOneOverrideIdentityName: 696 | XboxOneOverrideIdentityPublisher: 697 | vrEditorSettings: 698 | daydream: 699 | daydreamIconForeground: {fileID: 0} 700 | daydreamIconBackground: {fileID: 0} 701 | cloudServicesEnabled: 702 | UNet: 1 703 | luminIcon: 704 | m_Name: 705 | m_ModelFolderPath: 706 | m_PortalFolderPath: 707 | luminCert: 708 | m_CertPath: 709 | m_SignPackage: 1 710 | luminIsChannelApp: 0 711 | luminVersion: 712 | m_VersionCode: 1 713 | m_VersionName: 714 | apiCompatibilityLevel: 6 715 | cloudProjectId: 716 | framebufferDepthMemorylessMode: 0 717 | projectName: 718 | organizationId: 719 | cloudEnabled: 0 720 | enableNativePlatformBackendsForNewInputSystem: 0 721 | disableOldInputManagerSupport: 0 722 | legacyClampBlendShapeWeights: 0 723 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2019.4.31f1 2 | m_EditorVersionWithRevision: 2019.4.31f1 (bd5abf232a62) 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: 2 8 | m_QualitySettings: 9 | - serializedVersion: 2 10 | name: VRC Low 11 | pixelLightCount: 4 12 | shadows: 2 13 | shadowResolution: 1 14 | shadowProjection: 1 15 | shadowCascades: 2 16 | shadowDistance: 75 17 | shadowNearPlaneOffset: 2 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: 2 24 | antiAliasing: 0 25 | softParticles: 1 26 | softVegetation: 1 27 | realtimeReflectionProbes: 1 28 | billboardsFaceCameraPosition: 1 29 | vSyncCount: 0 30 | lodBias: 1 31 | maximumLODLevel: 0 32 | streamingMipmapsActive: 0 33 | streamingMipmapsAddAllCameras: 1 34 | streamingMipmapsMemoryBudget: 512 35 | streamingMipmapsRenderersPerFrame: 512 36 | streamingMipmapsMaxLevelReduction: 2 37 | streamingMipmapsMaxFileIORequests: 1024 38 | particleRaycastBudget: 1024 39 | asyncUploadTimeSlice: 2 40 | asyncUploadBufferSize: 64 41 | asyncUploadPersistentBuffer: 1 42 | resolutionScalingFixedDPIFactor: 1 43 | customRenderPipeline: {fileID: 0} 44 | excludedTargetPlatforms: 45 | - Android 46 | - serializedVersion: 2 47 | name: VRC Medium 48 | pixelLightCount: 4 49 | shadows: 2 50 | shadowResolution: 2 51 | shadowProjection: 1 52 | shadowCascades: 2 53 | shadowDistance: 75 54 | shadowNearPlaneOffset: 2 55 | shadowCascade2Split: 0.33333334 56 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 57 | shadowmaskMode: 0 58 | skinWeights: 4 59 | textureQuality: 0 60 | anisotropicTextures: 2 61 | antiAliasing: 2 62 | softParticles: 1 63 | softVegetation: 1 64 | realtimeReflectionProbes: 1 65 | billboardsFaceCameraPosition: 1 66 | vSyncCount: 0 67 | lodBias: 1.5 68 | maximumLODLevel: 0 69 | streamingMipmapsActive: 0 70 | streamingMipmapsAddAllCameras: 1 71 | streamingMipmapsMemoryBudget: 512 72 | streamingMipmapsRenderersPerFrame: 512 73 | streamingMipmapsMaxLevelReduction: 2 74 | streamingMipmapsMaxFileIORequests: 1024 75 | particleRaycastBudget: 2048 76 | asyncUploadTimeSlice: 2 77 | asyncUploadBufferSize: 64 78 | asyncUploadPersistentBuffer: 1 79 | resolutionScalingFixedDPIFactor: 1 80 | customRenderPipeline: {fileID: 0} 81 | excludedTargetPlatforms: 82 | - Android 83 | - serializedVersion: 2 84 | name: VRC High 85 | pixelLightCount: 8 86 | shadows: 2 87 | shadowResolution: 3 88 | shadowProjection: 1 89 | shadowCascades: 4 90 | shadowDistance: 150 91 | shadowNearPlaneOffset: 2 92 | shadowCascade2Split: 0.33333334 93 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 94 | shadowmaskMode: 0 95 | skinWeights: 4 96 | textureQuality: 0 97 | anisotropicTextures: 2 98 | antiAliasing: 4 99 | softParticles: 1 100 | softVegetation: 1 101 | realtimeReflectionProbes: 1 102 | billboardsFaceCameraPosition: 1 103 | vSyncCount: 0 104 | lodBias: 2 105 | maximumLODLevel: 0 106 | streamingMipmapsActive: 0 107 | streamingMipmapsAddAllCameras: 1 108 | streamingMipmapsMemoryBudget: 512 109 | streamingMipmapsRenderersPerFrame: 512 110 | streamingMipmapsMaxLevelReduction: 2 111 | streamingMipmapsMaxFileIORequests: 1024 112 | particleRaycastBudget: 4096 113 | asyncUploadTimeSlice: 2 114 | asyncUploadBufferSize: 128 115 | asyncUploadPersistentBuffer: 1 116 | resolutionScalingFixedDPIFactor: 1 117 | customRenderPipeline: {fileID: 0} 118 | excludedTargetPlatforms: 119 | - Android 120 | - serializedVersion: 2 121 | name: VRC Mobile 122 | pixelLightCount: 4 123 | shadows: 0 124 | shadowResolution: 1 125 | shadowProjection: 1 126 | shadowCascades: 1 127 | shadowDistance: 50 128 | shadowNearPlaneOffset: 2 129 | shadowCascade2Split: 0.33333334 130 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 131 | shadowmaskMode: 0 132 | skinWeights: 4 133 | textureQuality: 0 134 | anisotropicTextures: 2 135 | antiAliasing: 2 136 | softParticles: 0 137 | softVegetation: 0 138 | realtimeReflectionProbes: 0 139 | billboardsFaceCameraPosition: 1 140 | vSyncCount: 0 141 | lodBias: 2 142 | maximumLODLevel: 0 143 | streamingMipmapsActive: 0 144 | streamingMipmapsAddAllCameras: 1 145 | streamingMipmapsMemoryBudget: 512 146 | streamingMipmapsRenderersPerFrame: 512 147 | streamingMipmapsMaxLevelReduction: 2 148 | streamingMipmapsMaxFileIORequests: 1024 149 | particleRaycastBudget: 1024 150 | asyncUploadTimeSlice: 1 151 | asyncUploadBufferSize: 32 152 | asyncUploadPersistentBuffer: 1 153 | resolutionScalingFixedDPIFactor: 1 154 | customRenderPipeline: {fileID: 0} 155 | excludedTargetPlatforms: 156 | - Standalone 157 | m_PerPlatformDefaultQuality: 158 | Android: 2 159 | Lumin: 5 160 | Nintendo 3DS: 5 161 | Nintendo Switch: 5 162 | PS4: 5 163 | PSP2: 2 164 | Stadia: 5 165 | Standalone: 5 166 | WebGL: 3 167 | Windows Store Apps: 5 168 | XboxOne: 5 169 | iPhone: 2 170 | tvOS: 2 171 | -------------------------------------------------------------------------------- /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 | - 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.33333334 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /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_TestInitMode: 0 13 | CrashReportingSettings: 14 | m_EventUrl: https://perf-events.cloud.unity3d.com 15 | m_Enabled: 0 16 | m_LogBufferSize: 10 17 | m_CaptureEditorExceptions: 1 18 | UnityPurchasingSettings: 19 | m_Enabled: 0 20 | m_TestMode: 0 21 | UnityAnalyticsSettings: 22 | m_Enabled: 0 23 | m_TestMode: 0 24 | m_InitializeOnStartup: 1 25 | UnityAdsSettings: 26 | m_Enabled: 0 27 | m_InitializeOnStartup: 1 28 | m_TestMode: 0 29 | m_IosGameId: 30 | m_AndroidGameId: 31 | m_GameIds: {} 32 | m_GameId: 33 | PerformanceReportingSettings: 34 | m_Enabled: 0 35 | -------------------------------------------------------------------------------- /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_StripUpdateShader: {fileID: 0} 10 | m_RenderPipeSettingsPath: 11 | m_FixedTimeStep: 0.016666668 12 | m_MaxDeltaTime: 0.05 13 | -------------------------------------------------------------------------------- /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 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Parameter Smoother 2 | 3 | Non-destructive Parameter Smoothing for Avatars 3.0 4 | 5 | ## How to use 6 | - Install [Logilabo Avatar Tools VPM repository](https://vpm.logilabo.dev) and import "Parameter Smoother". 7 | - Add "Logilabo Avatar Tools / Parameter Smoother" component to an object in the target avatar. 8 | - Fill configuration parameters. 9 | 10 | ### Example 11 | | Name | Value | 12 | |---------------------------|-----------| 13 | | Layer Type | FX | 14 | | Smoothed Parameter Suffix | /Smoothed | 15 | | Parameter Name (0) | Foo | 16 | | Local Smoothness (0) | 0.1 | 17 | | Remote Smoothness (0) | 0.7 | 18 | 19 | With this configuration, you can use the parameter `Foo/Smoothed` as smoothed `Foo` in the FX layer. 20 | 21 | ## References 22 | - [Advanced Blend Tree Techniques](https://notes.sleightly.dev/advanced-blendtrees/) 23 | - [NDM Framework](https://ndmf.nadena.dev/) 24 | 25 | --------------------------------------------------------------------------------