diff --git a/.github/workflows/VRC-Asset-Release-And-Upload.yml b/.github/workflows/VRC-Asset-Release-And-Upload.yml new file mode 100644 index 0000000..ac34bff --- /dev/null +++ b/.github/workflows/VRC-Asset-Release-And-Upload.yml @@ -0,0 +1,84 @@ +name: VRC Asset Release and Listing Upload +on: + push: + tags: + - "*.*.*" + +env: + ASSETS_PATH: . + RELEASE_PATH: Packages + ARTIFACT_DURATION: 30 # In days + UPLOAD_ENDPOINT: https://api.vrlabs.dev/packages/add + WORKFLOW_VERSION: 1.0.0 + +jobs: + build: + runs-on: "ubuntu-latest" + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Check if package.json exists + run: | + if [ ! -f package.json ]; then + echo "package.json not found" + exit 1 + fi + + - name: Get package.json + id: get_package_json + run: | + { + echo 'package_json<<"""' + echo $(cat package.json) + echo '"""' + } >> $GITHUB_OUTPUT + + - name: Get needed Data + id: job_data + run: | + version=$(echo "${{ github.ref_name }}") + version=$(echo $version | tr '[:upper:]' '[:lower:]') + echo "version=$version" >> $GITHUB_OUTPUT + major_version=$(echo $version | cut -d '.' -f 1) + minor_version=$(echo $version | cut -d '.' -f 2) + echo "major_version=$major_version" >> $GITHUB_OUTPUT + echo "minor_version=$minor_version" >> $GITHUB_OUTPUT + name="${{ fromJson(steps.get_package_json.outputs.package_json).name }}" + display_name="${{ fromJson(steps.get_package_json.outputs.package_json).displayName }}" + echo "package_name=$name" >> $GITHUB_OUTPUT + echo "package_display_name=$display_name" >> $GITHUB_OUTPUT + + - name: Create Packages + id: create_packages + uses: VRLabs/VRCTools-Packaging-Action@v1 + with: + path: '${{ env.ASSETS_PATH }}' + outputPath: '${{ env.RELEASE_PATH }}' + releaseUrl: 'https://github.com/${{ github.repository }}/releases/download/${{ steps.job_data.outputs.version }}/${{ steps.job_data.outputs.package_name }}-${{ steps.job_data.outputs.version }}.zip' + unityReleaseUrl: 'https://github.com/${{ github.repository }}/releases/download/${{ steps.job_data.outputs.version }}/${{ steps.job_data.outputs.package_name }}-${{ steps.job_data.outputs.version }}.unitypackage' + releaseVersion: '${{ steps.job_data.outputs.version }}' + + - name: Create Release + uses: softprops/action-gh-release@v1 + if: startsWith(github.ref, 'refs/tags/') + with: + name: "${{ steps.job_data.outputs.package_display_name }} ${{ steps.job_data.outputs.version }}" + files: | + ${{ steps.create_packages.outputs.unityPackagePath }} + ${{ steps.create_packages.outputs.vccPackagePath }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SOURCE_TAG: ${{ steps.job_data.outputs.version }} + + - name: Add server-json to Artifacts + uses: actions/upload-artifact@v3 + with: + name: server-json + path: ${{ steps.create_packages.outputs.serverPackageJsonPath }} + retention-days: ${{ env.ARTIFACT_DURATION }} + + - name: Send package info to a server + run: | + curl -X POST -H "Content-Type: application/json" -H "Vrl-Api-Key: ${{ secrets.LISTINGS_API_KEY }}" --data @${{ steps.create_packages.outputs.serverPackageJsonPath }} ${{ env.UPLOAD_ENDPOINT }} || exit 0 + shell: bash \ No newline at end of file diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml deleted file mode 100644 index 8082101..0000000 --- a/.github/workflows/create-release.yml +++ /dev/null @@ -1,58 +0,0 @@ -name: create-release -on: - push: - tags: - - "*.*.*" -jobs: - build: - runs-on: "ubuntu-latest" - steps: - - name: Checkout - uses: actions/checkout@v2 - - - name: Branch name - id: branch_name - run: | - echo ::set-output name=SOURCE_NAME::${GITHUB_REF#refs/*/} - echo ::set-output name=SOURCE_BRANCH::${GITHUB_REF#refs/heads/} - echo ::set-output name=SOURCE_TAG::${GITHUB_REF#refs/tags/} - - - name: Update version on json - run: | - node .github/update-version-json.js ${{ env.SOURCE_TAG }} - env: - SOURCE_TAG: ${{ steps.branch_name.outputs.SOURCE_TAG }} - - - name: Prepare Folder For Packaging - run: | - mkdir -p "Assets/VRLabs/Contact Tracker" - ls | grep -v "Assets" | xargs -d '\n' mv -t "Assets/VRLabs/Contact Tracker" - echo -e "fileFormatVersion: 2\nguid: 652a1ba5b00554143bc9a76307dbc4e8\nfolderAsset: yes\nDefaultImporter:\n externalObjects: {}\n userData: \n assetBundleName: \n assetBundleVariant: " > "Assets/VRLabs.meta" - echo -e "fileFormatVersion: 2\nguid: 9cd56b450009343a99b606696779825a\nfolderAsset: yes\nDefaultImporter:\n externalObjects: {}\n userData: \n assetBundleName: \n assetBundleVariant: " > "Assets/VRLabs/Contact Tracker.meta" - cd "Assets/VRLabs/Contact Tracker" - zip -r Contact_Tracker_${{ env.SOURCE_TAG }}.zip ./ - mv Contact_Tracker_${{ env.SOURCE_TAG }}.zip ../../../ - cd ../../../ - env: - SOURCE_TAG: ${{ steps.branch_name.outputs.SOURCE_TAG }} - - - name: Create UnityPackage - env: - SOURCE_TAG: ${{ steps.branch_name.outputs.SOURCE_TAG }} - uses: VRLabs/extract-unity-package-action@v1.2.1 - with: - outputPackagePath: 'Contact_Tracker_${{ env.SOURCE_TAG }}.unitypackage' - unityProjectPath: '.' - packagePath: 'Assets' - - - name: Create Release - uses: softprops/action-gh-release@v1 - if: startsWith(github.ref, 'refs/tags/') - with: - name: "Contact Tracker ${{ env.SOURCE_TAG }}" - files: | - Contact_Tracker_${{ env.SOURCE_TAG }}.unitypackage - Contact_Tracker_${{ env.SOURCE_TAG }}.zip - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - SOURCE_TAG: ${{ steps.branch_name.outputs.SOURCE_TAG }} diff --git a/FX.controller b/Contact Tracker FX.controller similarity index 96% rename from FX.controller rename to Contact Tracker FX.controller index f70a835..1bba0e4 100644 --- a/FX.controller +++ b/Contact Tracker FX.controller @@ -7,7 +7,7 @@ AnimatorState: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: Reset Tracker + m_Name: Tracker Reset m_Speed: 1 m_CycleOffset: 0 m_Transitions: @@ -239,7 +239,7 @@ AnimatorController: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: FX + m_Name: Contact Tracker FX serializedVersion: 5 m_AnimatorParameters: - m_Name: ContactTracker/Control @@ -247,52 +247,52 @@ AnimatorController: m_DefaultFloat: 0 m_DefaultInt: 0 m_DefaultBool: 0 - m_Controller: {fileID: 0} + m_Controller: {fileID: 9100000} - m_Name: ContactTracker/X+ m_Type: 1 m_DefaultFloat: 0 m_DefaultInt: 0 m_DefaultBool: 0 - m_Controller: {fileID: 0} + m_Controller: {fileID: 9100000} - m_Name: ContactTracker/X- m_Type: 1 m_DefaultFloat: 0 m_DefaultInt: 0 m_DefaultBool: 0 - m_Controller: {fileID: 0} + m_Controller: {fileID: 9100000} - m_Name: ContactTracker/Y+ m_Type: 1 m_DefaultFloat: 0 m_DefaultInt: 0 m_DefaultBool: 0 - m_Controller: {fileID: 0} + m_Controller: {fileID: 9100000} - m_Name: ContactTracker/Y- m_Type: 1 m_DefaultFloat: 0 m_DefaultInt: 0 m_DefaultBool: 0 - m_Controller: {fileID: 0} + m_Controller: {fileID: 9100000} - m_Name: ContactTracker/Z+ m_Type: 1 m_DefaultFloat: 0 m_DefaultInt: 0 m_DefaultBool: 0 - m_Controller: {fileID: 0} + m_Controller: {fileID: 9100000} - m_Name: ContactTracker/Z- m_Type: 1 m_DefaultFloat: 0 m_DefaultInt: 0 m_DefaultBool: 0 - m_Controller: {fileID: 0} + m_Controller: {fileID: 9100000} - m_Name: ContactTracker/Size m_Type: 1 m_DefaultFloat: 0 m_DefaultInt: 0 m_DefaultBool: 0 - m_Controller: {fileID: 0} + m_Controller: {fileID: 9100000} m_AnimatorLayers: - serializedVersion: 5 - m_Name: Tracker Control + m_Name: Contact Tracker Control m_StateMachine: {fileID: 6579965920562694768} m_Mask: {fileID: 0} m_Motions: [] @@ -304,7 +304,7 @@ AnimatorController: m_SyncedLayerAffectsTiming: 0 m_Controller: {fileID: 9100000} - serializedVersion: 5 - m_Name: Tracker Blend Tree + m_Name: Contact Tracker Blend Tree m_StateMachine: {fileID: 9126931852697489125} m_Mask: {fileID: 0} m_Motions: [] @@ -443,14 +443,14 @@ AnimatorStateMachine: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: Tracker Control + m_Name: Contact Tracker Control m_ChildStates: - serializedVersion: 1 m_State: {fileID: -9104728529232961903} m_Position: {x: 30, y: 180, z: 0} - serializedVersion: 1 m_State: {fileID: 2074266605032204707} - m_Position: {x: 30, y: 320, z: 0} + m_Position: {x: 150, y: 250, z: 0} - serializedVersion: 1 m_State: {fileID: 6109795355817464234} m_Position: {x: -90, y: 250, z: 0} @@ -514,7 +514,7 @@ AnimatorStateMachine: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: Tracker Blend Tree + m_Name: Contact Tracker Blend Tree m_ChildStates: - serializedVersion: 1 m_State: {fileID: -7025210188980449939} diff --git a/FX.controller.meta b/Contact Tracker FX.controller.meta old mode 100755 new mode 100644 similarity index 100% rename from FX.controller.meta rename to Contact Tracker FX.controller.meta diff --git a/Contact Tracker.prefab b/Contact Tracker.prefab index cc02d7a..8ccb06e 100644 --- a/Contact Tracker.prefab +++ b/Contact Tracker.prefab @@ -1,6 +1,6 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1 &754098133 +--- !u!1 &962766186839155576 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -8,202 +8,60 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 754098134} - - component: {fileID: 754098135} + - component: {fileID: 962766186839155575} + - component: {fileID: 962766186839155572} + - component: {fileID: 962766186839155573} m_Layer: 0 - m_Name: Z+ - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &754098134 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 754098133} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0.5} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 974925824185284465} - m_RootOrder: 5 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &754098135 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 754098133} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -1450912254, guid: 80f1b8067b0760e4bb45023bc2e9de66, type: 3} - m_Name: - m_EditorClassIdentifier: - rootTransform: {fileID: 0} - shapeType: 0 - radius: 1 - height: 2 - position: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0, w: 1} - collisionTags: - - Head - allowSelf: 0 - allowOthers: 1 - localOnly: 0 - receiverType: 2 - parameter: ContactTracker/Z+ - minVelocity: 0.05 ---- !u!1 &1259436658 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1259436659} - - component: {fileID: 1259436660} - m_Layer: 0 - m_Name: Z- - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1259436659 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1259436658} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.5} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 974925824185284465} - m_RootOrder: 6 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1259436660 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1259436658} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -1450912254, guid: 80f1b8067b0760e4bb45023bc2e9de66, type: 3} - m_Name: - m_EditorClassIdentifier: - rootTransform: {fileID: 0} - shapeType: 0 - radius: 1 - height: 2 - position: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0, w: 1} - collisionTags: - - Head - allowSelf: 0 - allowOthers: 1 - localOnly: 0 - receiverType: 2 - parameter: ContactTracker/Z- - minVelocity: 0.05 ---- !u!1 &1656290368 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1656290369} - m_Layer: 0 - m_Name: Tracker Target - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1656290369 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1656290368} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 6443734747979092963} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &676272255864616189 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3269587030738052788} - - component: {fileID: 4968267866765915634} - - component: {fileID: 1287091456019842645} - - component: {fileID: 352510589333581789} - m_Layer: 0 - m_Name: Culling + m_Name: Cube m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &3269587030738052788 +--- !u!4 &962766186839155575 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 676272255864616189} + m_GameObject: {fileID: 962766186839155576} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 974925824185284465} - m_RootOrder: 0 + m_Father: {fileID: 2798281607989112538} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &4968267866765915634 +--- !u!33 &962766186839155572 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 676272255864616189} + m_GameObject: {fileID: 962766186839155576} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &1287091456019842645 +--- !u!23 &962766186839155573 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 676272255864616189} + m_GameObject: {fileID: 962766186839155576} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: 321d6a27c75754b82a3425cb9bb4a8c3, type: 2} + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -224,27 +82,202 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 ---- !u!1818360610 &352510589333581789 -ScaleConstraint: + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &2529891810045129437 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2844939224326570710} + - component: {fileID: 1872907190338008391} + - component: {fileID: 9086011948595259225} + - component: {fileID: 4960167730532309904} + m_Layer: 0 + m_Name: Contact Tracker + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2844939224326570710 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2529891810045129437} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2798281607989112538} + - {fileID: 8327259498914129476} + - {fileID: 9086011948831993204} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1773428102 &1872907190338008391 +ParentConstraint: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 676272255864616189} + m_GameObject: {fileID: 2529891810045129437} m_Enabled: 1 - m_Weight: 0 - m_ScaleAtRest: {x: 1, y: 1, z: 1} - m_ScaleOffset: {x: 10000, y: 10000, z: 10000} - m_AffectScalingX: 1 - m_AffectScalingY: 1 - m_AffectScalingZ: 1 - m_IsContraintActive: 1 + serializedVersion: 2 + m_Weight: 1 + m_TranslationAtRest: {x: 0, y: 0, z: 0} + m_RotationAtRest: {x: 0, y: 0, z: 0} + m_TranslationOffsets: + - {x: 0, y: 0, z: 0} + m_RotationOffsets: + - {x: 0, y: 0, z: 0} + m_AffectTranslationX: 1 + m_AffectTranslationY: 1 + m_AffectTranslationZ: 1 + m_AffectRotationX: 1 + m_AffectRotationY: 1 + m_AffectRotationZ: 1 + m_Active: 1 m_IsLocked: 1 m_Sources: - sourceTransform: {fileID: 6081129921729490045, guid: 56473278c5631486497e0e9b7c915c82, type: 3} weight: 1 ---- !u!1 &1984866978749344854 +--- !u!54 &9086011948595259225 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2529891810045129437} + serializedVersion: 4 + m_Mass: 1 + m_Drag: Infinity + m_AngularDrag: Infinity + m_CenterOfMass: {x: 0, y: 0, z: 0} + m_InertiaTensor: {x: 1, y: 1, z: 1} + m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ImplicitCom: 1 + m_ImplicitTensor: 1 + m_UseGravity: 0 + m_IsKinematic: 0 + m_Interpolate: 2 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!153 &4960167730532309904 +ConfigurableJoint: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2529891810045129437} + m_ConnectedBody: {fileID: 0} + m_ConnectedArticulationBody: {fileID: 0} + m_Anchor: {x: 0, y: 0, z: 0} + m_Axis: {x: 0, y: 0, z: 0} + m_AutoConfigureConnectedAnchor: 0 + m_ConnectedAnchor: {x: 0, y: 0, z: 0} + serializedVersion: 3 + m_SecondaryAxis: {x: 0, y: 0, z: 0} + m_XMotion: 0 + m_YMotion: 0 + m_ZMotion: 0 + m_AngularXMotion: 0 + m_AngularYMotion: 0 + m_AngularZMotion: 0 + m_LinearLimitSpring: + spring: 0 + damper: 0 + m_LinearLimit: + limit: 0 + bounciness: 0 + contactDistance: 0 + m_AngularXLimitSpring: + spring: 0 + damper: 0 + m_LowAngularXLimit: + limit: 0 + bounciness: 0 + contactDistance: 0 + m_HighAngularXLimit: + limit: 0 + bounciness: 0 + contactDistance: 0 + m_AngularYZLimitSpring: + spring: 0 + damper: 0 + m_AngularYLimit: + limit: 0 + bounciness: 0 + contactDistance: 0 + m_AngularZLimit: + limit: 0 + bounciness: 0 + contactDistance: 0 + m_TargetPosition: {x: 0, y: 0, z: 0} + m_TargetVelocity: {x: 0, y: 0, z: 0} + m_XDrive: + serializedVersion: 4 + positionSpring: 0 + positionDamper: 0 + maximumForce: 3.4028233e+38 + useAcceleration: 0 + m_YDrive: + serializedVersion: 4 + positionSpring: 0 + positionDamper: 0 + maximumForce: 3.4028233e+38 + useAcceleration: 0 + m_ZDrive: + serializedVersion: 4 + positionSpring: 0 + positionDamper: 0 + maximumForce: 3.4028233e+38 + useAcceleration: 0 + m_TargetRotation: {x: 0, y: 0, z: 0, w: 1} + m_TargetAngularVelocity: {x: 0, y: 0, z: 0} + m_RotationDriveMode: 0 + m_AngularXDrive: + serializedVersion: 4 + positionSpring: 0 + positionDamper: 0 + maximumForce: 3.4028233e+38 + useAcceleration: 0 + m_AngularYZDrive: + serializedVersion: 4 + positionSpring: 0 + positionDamper: 0 + maximumForce: 3.4028233e+38 + useAcceleration: 0 + m_SlerpDrive: + serializedVersion: 4 + positionSpring: 0 + positionDamper: 0 + maximumForce: 3.4028233e+38 + useAcceleration: 0 + m_ProjectionMode: 0 + m_ProjectionDistance: 0.1 + m_ProjectionAngle: 180 + m_ConfiguredInWorldSpace: 0 + m_SwapBodies: 0 + m_BreakForce: Infinity + m_BreakTorque: Infinity + m_EnableCollision: 0 + m_EnablePreprocessing: 1 + m_MassScale: 1 + m_ConnectedMassScale: 1 +--- !u!1 &3556609093049064245 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -252,36 +285,37 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 2984960060276439779} - - component: {fileID: 4930688688892588993} + - component: {fileID: 4027546802467946781} + - component: {fileID: 4171336975880391648} m_Layer: 0 - m_Name: Y+ + m_Name: Y- m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &2984960060276439779 +--- !u!4 &4027546802467946781 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1984866978749344854} + m_GameObject: {fileID: 3556609093049064245} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0.5, z: 0} + m_LocalPosition: {x: 0, y: -0.5, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 974925824185284465} - m_RootOrder: 3 + m_Father: {fileID: 8327259498914129476} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &4930688688892588993 +--- !u!114 &4171336975880391648 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1984866978749344854} + m_GameObject: {fileID: 3556609093049064245} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: -1450912254, guid: 80f1b8067b0760e4bb45023bc2e9de66, type: 3} @@ -299,9 +333,9 @@ MonoBehaviour: allowOthers: 1 localOnly: 0 receiverType: 2 - parameter: ContactTracker/Y+ + parameter: ContactTracker/Y- minVelocity: 0.05 ---- !u!1 &4470495969483978783 +--- !u!1 &3854416038999907426 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -309,38 +343,48 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 6395817296129834991} - - component: {fileID: 3437172650018530890} + - component: {fileID: 8327259498914129476} + - component: {fileID: 5148811700105118028} + - component: {fileID: 5806304760563160556} + - component: {fileID: 3217073854997450797} m_Layer: 0 - m_Name: Container + m_Name: Tracking Points m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &6395817296129834991 +--- !u!4 &8327259498914129476 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4470495969483978783} + m_GameObject: {fileID: 3854416038999907426} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} + m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 8307893387502236226} - m_Father: {fileID: 6443734747979092963} - m_RootOrder: 1 + - {fileID: 6001072543605241729} + - {fileID: 5561471989901893635} + - {fileID: 8969337789327730969} + - {fileID: 6303714456013401046} + - {fileID: 4027546802467946781} + - {fileID: 9086011947662413539} + - {fileID: 9086011949228780358} + m_Father: {fileID: 2844939224326570710} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1773428102 &3437172650018530890 +--- !u!1773428102 &5148811700105118028 ParentConstraint: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4470495969483978783} + m_GameObject: {fileID: 3854416038999907426} m_Enabled: 1 + serializedVersion: 2 m_Weight: 1 m_TranslationAtRest: {x: 0, y: 0, z: 0} m_RotationAtRest: {x: 0, y: 0, z: 0} @@ -354,12 +398,65 @@ ParentConstraint: m_AffectRotationX: 1 m_AffectRotationY: 1 m_AffectRotationZ: 1 - m_IsContraintActive: 1 + m_Active: 1 m_IsLocked: 1 m_Sources: - - sourceTransform: {fileID: 974925824185284465} + - sourceTransform: {fileID: 9086011948831993204} weight: 1 ---- !u!1 &4783415640472473998 +--- !u!1818360608 &5806304760563160556 +PositionConstraint: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3854416038999907426} + m_Enabled: 0 + serializedVersion: 2 + m_Weight: 1 + m_TranslationAtRest: {x: 0, y: 0, z: 0} + m_TranslationOffset: {x: 0, y: 0, z: 0} + m_AffectTranslationX: 1 + m_AffectTranslationY: 1 + m_AffectTranslationZ: 1 + m_Active: 1 + m_IsLocked: 1 + m_Sources: + - sourceTransform: {fileID: 5561471989901893635} + weight: 0 + - sourceTransform: {fileID: 8969337789327730969} + weight: 0 + - sourceTransform: {fileID: 6303714456013401046} + weight: 0 + - sourceTransform: {fileID: 4027546802467946781} + weight: 0 + - sourceTransform: {fileID: 9086011947662413539} + weight: 0 + - sourceTransform: {fileID: 9086011949228780358} + weight: 0 + - sourceTransform: {fileID: 8327259498914129476} + weight: 0 +--- !u!1818360610 &3217073854997450797 +ScaleConstraint: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3854416038999907426} + m_Enabled: 1 + serializedVersion: 2 + m_Weight: 0 + m_ScaleAtRest: {x: 0.25, y: 0.25, z: 0.25} + m_ScaleOffset: {x: 3, y: 3, z: 3} + m_AffectScalingX: 1 + m_AffectScalingY: 1 + m_AffectScalingZ: 1 + m_Active: 1 + m_IsLocked: 1 + m_Sources: + - sourceTransform: {fileID: 6081129921729490045, guid: 56473278c5631486497e0e9b7c915c82, + type: 3} + weight: 1 +--- !u!1 &4356639540044480699 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -367,8 +464,8 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 175220958472239148} - - component: {fileID: 5145471372371437642} + - component: {fileID: 8969337789327730969} + - component: {fileID: 4143203121772444031} m_Layer: 0 m_Name: X- m_TagString: Untagged @@ -376,27 +473,28 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &175220958472239148 +--- !u!4 &8969337789327730969 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4783415640472473998} + m_GameObject: {fileID: 4356639540044480699} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -0.5, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 974925824185284465} - m_RootOrder: 2 + m_Father: {fileID: 8327259498914129476} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &5145471372371437642 +--- !u!114 &4143203121772444031 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4783415640472473998} + m_GameObject: {fileID: 4356639540044480699} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: -1450912254, guid: 80f1b8067b0760e4bb45023bc2e9de66, type: 3} @@ -416,7 +514,7 @@ MonoBehaviour: receiverType: 2 parameter: ContactTracker/X- minVelocity: 0.05 ---- !u!1 &4801081337651386430 +--- !u!1 &4375002603849435403 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -424,8 +522,8 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 3691173737900421430} - - component: {fileID: 6965858128553719415} + - component: {fileID: 5561471989901893635} + - component: {fileID: 2214729459273770818} m_Layer: 0 m_Name: X+ m_TagString: Untagged @@ -433,27 +531,28 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &3691173737900421430 +--- !u!4 &5561471989901893635 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4801081337651386430} + m_GameObject: {fileID: 4375002603849435403} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0.5, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 974925824185284465} - m_RootOrder: 1 + m_Father: {fileID: 8327259498914129476} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &6965858128553719415 +--- !u!114 &2214729459273770818 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4801081337651386430} + m_GameObject: {fileID: 4375002603849435403} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: -1450912254, guid: 80f1b8067b0760e4bb45023bc2e9de66, type: 3} @@ -473,7 +572,7 @@ MonoBehaviour: receiverType: 2 parameter: ContactTracker/X+ minVelocity: 0.05 ---- !u!1 &5434258487490465111 +--- !u!1 &4620020162740185386 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -481,46 +580,40 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 974925824185284465} - - component: {fileID: 4135359216423080057} - - component: {fileID: 3351765335998711001} - - component: {fileID: 5959010088717697304} + - component: {fileID: 2798281607989112538} + - component: {fileID: 5883027031450974079} m_Layer: 0 - m_Name: Tracking Points + m_Name: Container m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &974925824185284465 +--- !u!4 &2798281607989112538 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5434258487490465111} + m_GameObject: {fileID: 4620020162740185386} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 3269587030738052788} - - {fileID: 3691173737900421430} - - {fileID: 175220958472239148} - - {fileID: 2984960060276439779} - - {fileID: 5328681676030726184} - - {fileID: 754098134} - - {fileID: 1259436659} - m_Father: {fileID: 6443734747979092963} - m_RootOrder: 0 + - {fileID: 962766186839155575} + m_Father: {fileID: 2844939224326570710} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1773428102 &4135359216423080057 +--- !u!1773428102 &5883027031450974079 ParentConstraint: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5434258487490465111} + m_GameObject: {fileID: 4620020162740185386} m_Enabled: 1 + serializedVersion: 2 m_Weight: 1 m_TranslationAtRest: {x: 0, y: 0, z: 0} m_RotationAtRest: {x: 0, y: 0, z: 0} @@ -534,63 +627,175 @@ ParentConstraint: m_AffectRotationX: 1 m_AffectRotationY: 1 m_AffectRotationZ: 1 - m_IsContraintActive: 1 + m_Active: 1 m_IsLocked: 1 m_Sources: - - sourceTransform: {fileID: 1656290369} + - sourceTransform: {fileID: 8327259498914129476} weight: 1 ---- !u!1818360608 &3351765335998711001 -PositionConstraint: +--- !u!1 &7321821351875771747 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6303714456013401046} + - component: {fileID: 4213870098233402100} + m_Layer: 0 + m_Name: Y+ + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6303714456013401046 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7321821351875771747} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.5, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8327259498914129476} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &4213870098233402100 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7321821351875771747} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1450912254, guid: 80f1b8067b0760e4bb45023bc2e9de66, type: 3} + m_Name: + m_EditorClassIdentifier: + rootTransform: {fileID: 0} + shapeType: 0 + radius: 1 + height: 2 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: 0, z: 0, w: 1} + collisionTags: + - Head + allowSelf: 0 + allowOthers: 1 + localOnly: 0 + receiverType: 2 + parameter: ContactTracker/Y+ + minVelocity: 0.05 +--- !u!1 &8607898081052992968 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6001072543605241729} + - component: {fileID: 4243845465994224839} + - component: {fileID: 8055626255261620064} + - component: {fileID: 8859602159250423528} + m_Layer: 12 + m_Name: Culling + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6001072543605241729 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8607898081052992968} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8327259498914129476} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4243845465994224839 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8607898081052992968} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &8055626255261620064 +MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5434258487490465111} - m_Enabled: 0 - m_Weight: 1 - m_TranslationAtRest: {x: 0, y: 0, z: 0} - m_TranslationOffset: {x: 0, y: 0, z: 0} - m_AffectTranslationX: 1 - m_AffectTranslationY: 1 - m_AffectTranslationZ: 1 - m_IsContraintActive: 1 - m_IsLocked: 1 - m_Sources: - - sourceTransform: {fileID: 3691173737900421430} - weight: 0 - - sourceTransform: {fileID: 175220958472239148} - weight: 0 - - sourceTransform: {fileID: 2984960060276439779} - weight: 0 - - sourceTransform: {fileID: 5328681676030726184} - weight: 0 - - sourceTransform: {fileID: 754098134} - weight: 0 - - sourceTransform: {fileID: 1259436659} - weight: 0 - - sourceTransform: {fileID: 974925824185284465} - weight: 0 ---- !u!1818360610 &5959010088717697304 + m_GameObject: {fileID: 8607898081052992968} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 321d6a27c75754b82a3425cb9bb4a8c3, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1818360610 &8859602159250423528 ScaleConstraint: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5434258487490465111} + m_GameObject: {fileID: 8607898081052992968} m_Enabled: 1 + serializedVersion: 2 m_Weight: 0 - m_ScaleAtRest: {x: 0.25, y: 0.25, z: 0.25} - m_ScaleOffset: {x: 3, y: 3, z: 3} + m_ScaleAtRest: {x: 1, y: 1, z: 1} + m_ScaleOffset: {x: 10000, y: 10000, z: 10000} m_AffectScalingX: 1 m_AffectScalingY: 1 m_AffectScalingZ: 1 - m_IsContraintActive: 1 + m_Active: 1 m_IsLocked: 1 m_Sources: - sourceTransform: {fileID: 6081129921729490045, guid: 56473278c5631486497e0e9b7c915c82, type: 3} weight: 1 ---- !u!1 &5714050442765273600 +--- !u!1 &9086011947662413536 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -598,36 +803,37 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 5328681676030726184} - - component: {fileID: 5184891506911124181} + - component: {fileID: 9086011947662413539} + - component: {fileID: 9086011947662413538} m_Layer: 0 - m_Name: Y- + m_Name: Z+ m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &5328681676030726184 +--- !u!4 &9086011947662413539 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5714050442765273600} + m_GameObject: {fileID: 9086011947662413536} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: -0.5, z: 0} + m_LocalPosition: {x: 0, y: 0, z: 0.5} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 974925824185284465} - m_RootOrder: 4 + m_Father: {fileID: 8327259498914129476} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &5184891506911124181 +--- !u!114 &9086011947662413538 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5714050442765273600} + m_GameObject: {fileID: 9086011947662413536} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: -1450912254, guid: 80f1b8067b0760e4bb45023bc2e9de66, type: 3} @@ -645,9 +851,9 @@ MonoBehaviour: allowOthers: 1 localOnly: 0 receiverType: 2 - parameter: ContactTracker/Y- + parameter: ContactTracker/Z+ minVelocity: 0.05 ---- !u!1 &6704738930233041896 +--- !u!1 &9086011948831993205 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -655,173 +861,30 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 6443734747979092963} - - component: {fileID: 7487824339508798578} - - component: {fileID: 357873260} - - component: {fileID: 4233931204322577061} + - component: {fileID: 9086011948831993204} m_Layer: 0 - m_Name: Contact Tracker + m_Name: Tracker Target m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &6443734747979092963 +--- !u!4 &9086011948831993204 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6704738930233041896} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_GameObject: {fileID: 9086011948831993205} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 974925824185284465} - - {fileID: 6395817296129834991} - - {fileID: 1656290369} - m_Father: {fileID: 0} - m_RootOrder: 0 + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2844939224326570710} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1773428102 &7487824339508798578 -ParentConstraint: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6704738930233041896} - m_Enabled: 1 - m_Weight: 1 - m_TranslationAtRest: {x: 0, y: 0, z: 0} - m_RotationAtRest: {x: 0, y: 0, z: 0} - m_TranslationOffsets: - - {x: 0, y: 0, z: 0} - m_RotationOffsets: - - {x: 0, y: 0, z: 0} - m_AffectTranslationX: 1 - m_AffectTranslationY: 1 - m_AffectTranslationZ: 1 - m_AffectRotationX: 1 - m_AffectRotationY: 1 - m_AffectRotationZ: 1 - m_IsContraintActive: 1 - m_IsLocked: 1 - m_Sources: - - sourceTransform: {fileID: 6081129921729490045, guid: 56473278c5631486497e0e9b7c915c82, - type: 3} - weight: 1 ---- !u!54 &357873260 -Rigidbody: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6704738930233041896} - serializedVersion: 2 - m_Mass: 1 - m_Drag: Infinity - m_AngularDrag: Infinity - m_UseGravity: 0 - m_IsKinematic: 0 - m_Interpolate: 2 - m_Constraints: 0 - m_CollisionDetection: 0 ---- !u!153 &4233931204322577061 -ConfigurableJoint: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6704738930233041896} - m_ConnectedBody: {fileID: 0} - m_Anchor: {x: 0, y: 0, z: 0} - m_Axis: {x: 0, y: 0, z: 0} - m_AutoConfigureConnectedAnchor: 0 - m_ConnectedAnchor: {x: 0, y: 0, z: 0} - serializedVersion: 2 - m_SecondaryAxis: {x: 0, y: 0, z: 0} - m_XMotion: 0 - m_YMotion: 0 - m_ZMotion: 0 - m_AngularXMotion: 0 - m_AngularYMotion: 0 - m_AngularZMotion: 0 - m_LinearLimitSpring: - spring: 0 - damper: 0 - m_LinearLimit: - limit: 0 - bounciness: 0 - contactDistance: 0 - m_AngularXLimitSpring: - spring: 0 - damper: 0 - m_LowAngularXLimit: - limit: 0 - bounciness: 0 - contactDistance: 0 - m_HighAngularXLimit: - limit: 0 - bounciness: 0 - contactDistance: 0 - m_AngularYZLimitSpring: - spring: 0 - damper: 0 - m_AngularYLimit: - limit: 0 - bounciness: 0 - contactDistance: 0 - m_AngularZLimit: - limit: 0 - bounciness: 0 - contactDistance: 0 - m_TargetPosition: {x: 0, y: 0, z: 0} - m_TargetVelocity: {x: 0, y: 0, z: 0} - m_XDrive: - serializedVersion: 3 - positionSpring: 0 - positionDamper: 0 - maximumForce: 3.4028233e+38 - m_YDrive: - serializedVersion: 3 - positionSpring: 0 - positionDamper: 0 - maximumForce: 3.4028233e+38 - m_ZDrive: - serializedVersion: 3 - positionSpring: 0 - positionDamper: 0 - maximumForce: 3.4028233e+38 - m_TargetRotation: {x: 0, y: 0, z: 0, w: 1} - m_TargetAngularVelocity: {x: 0, y: 0, z: 0} - m_RotationDriveMode: 0 - m_AngularXDrive: - serializedVersion: 3 - positionSpring: 0 - positionDamper: 0 - maximumForce: 3.4028233e+38 - m_AngularYZDrive: - serializedVersion: 3 - positionSpring: 0 - positionDamper: 0 - maximumForce: 3.4028233e+38 - m_SlerpDrive: - serializedVersion: 3 - positionSpring: 0 - positionDamper: 0 - maximumForce: 3.4028233e+38 - m_ProjectionMode: 0 - m_ProjectionDistance: 0.1 - m_ProjectionAngle: 180 - m_ConfiguredInWorldSpace: 0 - m_SwapBodies: 0 - m_BreakForce: Infinity - m_BreakTorque: Infinity - m_EnableCollision: 0 - m_EnablePreprocessing: 1 - m_MassScale: 1 - m_ConnectedMassScale: 1 ---- !u!1 &8307893387502236237 +--- !u!1 &9086011949228780359 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -829,74 +892,53 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 8307893387502236226} - - component: {fileID: 8307893387502236225} - - component: {fileID: 8307893387502236224} + - component: {fileID: 9086011949228780358} + - component: {fileID: 9086011949228780353} m_Layer: 0 - m_Name: Cube + m_Name: Z- m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &8307893387502236226 +--- !u!4 &9086011949228780358 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8307893387502236237} + m_GameObject: {fileID: 9086011949228780359} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_LocalPosition: {x: 0, y: 0, z: -0.5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 6395817296129834991} - m_RootOrder: 0 + m_Father: {fileID: 8327259498914129476} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &8307893387502236225 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8307893387502236237} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &8307893387502236224 -MeshRenderer: +--- !u!114 &9086011949228780353 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8307893387502236237} + m_GameObject: {fileID: 9086011949228780359} m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: -1450912254, guid: 80f1b8067b0760e4bb45023bc2e9de66, type: 3} + m_Name: + m_EditorClassIdentifier: + rootTransform: {fileID: 0} + shapeType: 0 + radius: 1 + height: 2 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: 0, z: 0, w: 1} + collisionTags: + - Head + allowSelf: 0 + allowOthers: 1 + localOnly: 0 + receiverType: 2 + parameter: ContactTracker/Z- + minVelocity: 0.05 diff --git a/Instancer.meta b/Instancer.meta new file mode 100644 index 0000000..3ba4e55 --- /dev/null +++ b/Instancer.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fc6b905be792b18439541c47977abcc3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Instancer/Contact-Tracker Instancer.asmdef b/Instancer/Contact-Tracker Instancer.asmdef new file mode 100644 index 0000000..c2320b5 --- /dev/null +++ b/Instancer/Contact-Tracker Instancer.asmdef @@ -0,0 +1,22 @@ +{ + "name": "VRLabs Contact-Tracker Instancer", + "rootNamespace": "", + "references": [], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [ + { + "name": "dev.vrlabs.instancer", + "expression": "", + "define": "VRLABS_INSTANCER_FOUND" + } + ], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Instancer/Contact-Tracker Instancer.asmdef.meta b/Instancer/Contact-Tracker Instancer.asmdef.meta new file mode 100644 index 0000000..da20e8c --- /dev/null +++ b/Instancer/Contact-Tracker Instancer.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 91c614cdcefd35847ac83aa656a039b5 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Instancer/Contact-Tracker Instancer.cs b/Instancer/Contact-Tracker Instancer.cs new file mode 100644 index 0000000..a191ab1 --- /dev/null +++ b/Instancer/Contact-Tracker Instancer.cs @@ -0,0 +1,50 @@ +#if VRLABS_INSTANCER_FOUND +using System; +using System.Linq; +using System.Reflection; +using UnityEditor; +using UnityEngine; + +namespace VRLabs.ContactTracker +{ + public class ContactTracker : ScriptableObject + { + public const string packageName = "Contact-Tracker"; + + public static string[] excludeRegexs = + { + ".*\\.cs", + ".*\\.asmdef", + "package.json" + }; + + [MenuItem("VRLabs/Create Instance/Contact Tracker")] + public static void FancyPackage() + { + Type instancerType = AppDomain.CurrentDomain.GetAssemblies() + .Where(x => x.GetType("VRLabs.Instancer.Instancer") != null) + .Select(x => x.GetType("VRLabs.Instancer.Instancer")).FirstOrDefault(); + + if (instancerType == null) + { + Debug.LogError("Instancer not found. To use this functionality, install the VRLabs Instancer from https://github.com/VRLabs/Instancer"); + return; + } + + MethodInfo instanceMethod = instancerType.GetMethod("Instance", BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic); + + if (instanceMethod == null) + { + Debug.LogError("Instance method not found"); + return; + } + + var editor = ScriptableObject.CreateInstance(); + var script = MonoScript.FromScriptableObject(editor); + var assetPath = AssetDatabase.GetAssetPath(script); + + instanceMethod.Invoke(null, new object[] { packageName, assetPath, excludeRegexs }); + } + } +} +#endif \ No newline at end of file diff --git a/Instancer/Contact-Tracker Instancer.cs.meta b/Instancer/Contact-Tracker Instancer.cs.meta new file mode 100644 index 0000000..a813520 --- /dev/null +++ b/Instancer/Contact-Tracker Instancer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 094ad5404edd01c4e9347f627a13a82a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/LICENSE b/LICENSE index df010af..6a98738 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2022 VRLabs +Copyright (c) 2022 VRLabs LLC Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/Media/Preview.gif b/Media/Preview.gif new file mode 100644 index 0000000..64b3885 Binary files /dev/null and b/Media/Preview.gif differ diff --git a/Media/Preview.png b/Media/Preview.png new file mode 100644 index 0000000..be33cc4 Binary files /dev/null and b/Media/Preview.png differ diff --git a/Media/Setup.mp4 b/Media/Setup.mp4 index 7553285..71f54f4 100644 Binary files a/Media/Setup.mp4 and b/Media/Setup.mp4 differ diff --git a/Media/Web/Preview.webp b/Media/Web/Preview.webp new file mode 100644 index 0000000..15ef985 Binary files /dev/null and b/Media/Web/Preview.webp differ diff --git a/Media/Web/Preview.webp.meta b/Media/Web/Preview.webp.meta new file mode 100644 index 0000000..2d92f14 --- /dev/null +++ b/Media/Web/Preview.webp.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5f11b01c4e66b0144bbebb257b7ca994 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Media/Web/PreviewGif.webp b/Media/Web/PreviewGif.webp new file mode 100644 index 0000000..23a58db Binary files /dev/null and b/Media/Web/PreviewGif.webp differ diff --git a/Media/Web/PreviewGif.webp.meta b/Media/Web/PreviewGif.webp.meta new file mode 100644 index 0000000..0e473c0 --- /dev/null +++ b/Media/Web/PreviewGif.webp.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 74e034593788009429ba9a8f924a5230 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/README.md b/README.md index dd68259..953805f 100644 --- a/README.md +++ b/README.md @@ -1,64 +1,107 @@ -# Contact Tracker - -[![Generic badge](https://img.shields.io/badge/Unity-2019.4.31f1-informational.svg)](https://unity3d.com/unity/whats-new/2019.4.31) -[![Generic badge](https://img.shields.io/badge/SDK-AvatarSDK3-informational.svg)](https://vrchat.com/home/download) -[![Generic badge](https://img.shields.io/badge/License-MIT-informational.svg)](https://github.com/VRLabs/Contact-Tracker/blob/main/LICENSE) -[![Generic badge](https://img.shields.io/github/downloads/VRLabs/Contact-Tracker/total?label=Downloads)](https://github.com/VRLabs/Contact-Tracker/releases/latest) - -Tracking for contacts, by contacts. - -## How it works - -Proximity-type [Receivers](https://docs.vrchat.com/docs/contacts#VRCContactReceiver) overlap on each axis and feed values to a parented position constraint, which centers on a tagged [Sender](https://docs.vrchat.com/docs/contacts#VRCContactSender). +
-## Install guide - -https://user-images.githubusercontent.com/45078979/165898002-cadaceb8-213c-431f-885b-03e5c7b9ba48.mp4 +# Contact Tracker -**Use the latest version of [Avatars 3.0 Manager](https://github.com/VRLabs/Avatars-3.0-Manager).** +[![Generic badge](https://img.shields.io/github/downloads/VRLabs/Contact-Tracker/total?label=Downloads)](https://github.com/VRLabs/Contact-Tracker/releases/latest) +[![Generic badge](https://img.shields.io/badge/License-MIT-informational.svg)](https://github.com/VRLabs/Contact-Tracker/blob/main/LICENSE) +[![Generic badge](https://img.shields.io/badge/Unity-2019.4.31f1-lightblue.svg)](https://unity3d.com/unity/whats-new/2019.4.31) +[![Generic badge](https://img.shields.io/badge/SDK-AvatarSDK3-lightblue.svg)](https://vrchat.com/home/download) -Merge the FX controller to your own FX controller, using the [Avatars 3.0 Manager](https://github.com/VRLabs/Avatars-3.0-Manager) tool. +[![Generic badge](https://img.shields.io/discord/706913824607043605?color=%237289da&label=DISCORD&logo=Discord&style=for-the-badge)](https://discord.vrlabs.dev/) +[![Generic badge](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Fshieldsio-patreon.vercel.app%2Fapi%3Fusername%3Dvrlabs%26type%3Dpatrons&style=for-the-badge)](https://patreon.vrlabs.dev/) -"Contact Tracker.prefab" should go to the base of your Unity scene, which will give it base Unity scaling. +System for attaching objects to contacts on other players -Unpack the prefab by right-clicking it. +![ContactTracker](https://github.com/VRLabs/Contact-Tracker/assets/76777936/0059a587-8ada-4891-bc18-bf5d5d7a6f6a) -Place "Contact Tracker" at the base of your avatar. -Remove "Tracker Target" outside of "Contact Tracker" and place it anywhere in your avatar's hierarchy as needed. +### ⬇️ [Download Latest Version](https://github.com/VRLabs/Contact-Tracker/releases/latest) -## How to use -**"ContactTracker/Control" parameter must be true for the system to be active.** +### 📦 [Add to VRChat Creator Companion](https://vrlabs.dev/packages?package=dev.vrlabs.contact-tracker) -Place objects inside "Contact Tracker/Container" for attaching to the tracked contact. Alternatively, constrain objects to "Contact Tracker/Tracking Points". +
-You can edit the collision tags on the 6 receiver components in the "Contact Tracker/Tracking Points" hierarchy to change what contact senders can be tracked. +--- -"ContactTracker/Size" parameter can be changed to scale the size of the tracker while it is not tracking. +## How it works -## Examples +* Six overlapping Proximity Contacts feed their outputs into a parent constraint to center a GameObject on the target. + * The GameObject contains the Proximity Contacts, making them center themselves on the target constantly. +* The ``Allow Others`` setting on the Contacts is turned off after the Contact Tracker has attached. + * This prevents the Contact Tracker from tracking multiple Contacts. -[Red's Player Tracker](https://github.com/hfcRed/Player-Tracker) implements this tracking method in a ready-to-go framework. +## Install guide -## Credit +https://github.com/VRLabs/Contact-Tracker/assets/76777936/39dd0fb1-9333-42d3-91b4-8c812a24792a -[Red](https://github.com/hfcRed) +* Merge the Animator Controller ``Contact Tracker FX`` to your own FX Controller, using the [Avatars 3.0 Manager](https://github.com/VRLabs/Avatars-3.0-Manager) tool. +* Drag & drop the ``Contact Tracker`` prefab into the base of your Hierarchy. +* Right click and unpack the prefab, then drag & drop it onto your avatar. +* Expand the prefab hierarchy and find ``Tracker Target``. +* Move ``Tracker Target`` outside of ``Contact Tracker`` and place it anywhere in your avatar's hierarchy as needed. -[Dreadrith](https://github.com/Dreadrith) +## How to use -## Author Note +* Place the objects you want to attach to other players inside ``Contact Tracker`` -> ``Container``. + * Alternatively you can constrain the objects to ``Contact Tracker`` -> ``Tracking Points``. +* Enable the ``ContactTracker/Control`` parameter to activate the system. +* You can edit the ``Collision Tags`` of the six Proximity Contacts to change which Contact Senders the Contact Tracker should track. +* The ``ContactTracker/Size`` parameter in the FX Controller can be changed to set the size of the Contact Tracker when it is not tracking. + +## Additional notes + +* The Blend Tree used in the ``Contact Tracker Blend Tree`` FX Layer **MUST** use Write Defaults **ON**! +* This is the only case in which mixing Write Defaults is okay, you do not need to switch your workflow. + +## Performance stats + +```c++ +Constraints: 6 +Contact Receivers: 6 +FX Animator Layers: 2 +Mesh Renderers: 1 +Rigidbodies: 1 +``` + +## Hierarchy layout + +```html +Contact Tracker +|-Container +| |-Cube +|-Tracking Points +| |-Culling +| |-X+ +| |-X- +| |-Y+ +| |-Y- +| |-Z+ +| |-Z- +|-Tracker Target +``` + +## Contributors + +* [Red](https://github.com/hfcRed) +* [Dreadrith](https://github.com/Dreadrith) +* [lin](https://github.com/oofdesu) -The Blend Tree used in the "Tracker Blend Tree" layer must use Write Defaults ON. This may result in you mixing Write Defaults settings. In this case, specifically with that Blend Tree, mixing Write Defaults settings **should be okay**. If mixing Write Defaults settings with that layer causes an issue for you, [please report it to us](https://discord.vrlabs.dev). +## License -## Downloads +Contact Tracker is available as-is under MIT. For more information see [LICENSE](https://github.com/VRLabs/Contact-Tracker/blob/main/LICENSE). -You can grab the latest version of the Contact Tracker in [Releases](https://github.com/VRLabs/Contact-Tracker/releases/latest). +​ -## License +
-Contact Tracker is available as-is under MIT. For more information see [LICENSE](https://github.com/VRLabs/Contact-Tracker/blob/main/LICENSE). +[](https://vrlabs.dev "VRLabs") + +[](https://discord.vrlabs.dev/ "VRLabs") + +[](https://patreon.vrlabs.dev/ "VRLabs") + +[](https://twitter.com/vrlabsdev "VRLabs") -## Contact us +
-If you need help, our support channel is on [Discord](https://discord.vrlabs.dev). diff --git a/Resources/Animations/Blend Tree/Scale.anim b/Resources/Animations/Blend Tree/Tracker Scale.anim similarity index 99% rename from Resources/Animations/Blend Tree/Scale.anim rename to Resources/Animations/Blend Tree/Tracker Scale.anim index 8000a76..3695fa7 100644 --- a/Resources/Animations/Blend Tree/Scale.anim +++ b/Resources/Animations/Blend Tree/Tracker Scale.anim @@ -6,7 +6,7 @@ AnimationClip: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: Scale + m_Name: Tracker Scale serializedVersion: 6 m_Legacy: 0 m_Compressed: 0 diff --git a/Resources/Animations/Blend Tree/Scale.anim.meta b/Resources/Animations/Blend Tree/Tracker Scale.anim.meta similarity index 100% rename from Resources/Animations/Blend Tree/Scale.anim.meta rename to Resources/Animations/Blend Tree/Tracker Scale.anim.meta diff --git a/Resources/Animations/Blend Tree/X+.anim b/Resources/Animations/Blend Tree/Tracker X+.anim similarity index 99% rename from Resources/Animations/Blend Tree/X+.anim rename to Resources/Animations/Blend Tree/Tracker X+.anim index ff85a38..60d2f4c 100644 --- a/Resources/Animations/Blend Tree/X+.anim +++ b/Resources/Animations/Blend Tree/Tracker X+.anim @@ -6,7 +6,7 @@ AnimationClip: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: X+ + m_Name: Tracker X+ serializedVersion: 6 m_Legacy: 0 m_Compressed: 0 diff --git a/Resources/Animations/Blend Tree/X+.anim.meta b/Resources/Animations/Blend Tree/Tracker X+.anim.meta similarity index 100% rename from Resources/Animations/Blend Tree/X+.anim.meta rename to Resources/Animations/Blend Tree/Tracker X+.anim.meta diff --git a/Resources/Animations/Blend Tree/X-.anim b/Resources/Animations/Blend Tree/Tracker X-.anim similarity index 99% rename from Resources/Animations/Blend Tree/X-.anim rename to Resources/Animations/Blend Tree/Tracker X-.anim index fb2c976..3eae771 100644 --- a/Resources/Animations/Blend Tree/X-.anim +++ b/Resources/Animations/Blend Tree/Tracker X-.anim @@ -6,7 +6,7 @@ AnimationClip: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: X- + m_Name: Tracker X- serializedVersion: 6 m_Legacy: 0 m_Compressed: 0 diff --git a/Resources/Animations/Blend Tree/X-.anim.meta b/Resources/Animations/Blend Tree/Tracker X-.anim.meta similarity index 100% rename from Resources/Animations/Blend Tree/X-.anim.meta rename to Resources/Animations/Blend Tree/Tracker X-.anim.meta diff --git a/Resources/Animations/Blend Tree/Y+.anim b/Resources/Animations/Blend Tree/Tracker Y+.anim similarity index 99% rename from Resources/Animations/Blend Tree/Y+.anim rename to Resources/Animations/Blend Tree/Tracker Y+.anim index e14e02b..1446ed7 100644 --- a/Resources/Animations/Blend Tree/Y+.anim +++ b/Resources/Animations/Blend Tree/Tracker Y+.anim @@ -6,7 +6,7 @@ AnimationClip: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: Y+ + m_Name: Tracker Y+ serializedVersion: 6 m_Legacy: 0 m_Compressed: 0 diff --git a/Resources/Animations/Blend Tree/Y+.anim.meta b/Resources/Animations/Blend Tree/Tracker Y+.anim.meta similarity index 100% rename from Resources/Animations/Blend Tree/Y+.anim.meta rename to Resources/Animations/Blend Tree/Tracker Y+.anim.meta diff --git a/Resources/Animations/Blend Tree/Y-.anim b/Resources/Animations/Blend Tree/Tracker Y-.anim similarity index 99% rename from Resources/Animations/Blend Tree/Y-.anim rename to Resources/Animations/Blend Tree/Tracker Y-.anim index 8b12091..b54a785 100644 --- a/Resources/Animations/Blend Tree/Y-.anim +++ b/Resources/Animations/Blend Tree/Tracker Y-.anim @@ -6,7 +6,7 @@ AnimationClip: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: Y- + m_Name: Tracker Y- serializedVersion: 6 m_Legacy: 0 m_Compressed: 0 diff --git a/Resources/Animations/Blend Tree/Y-.anim.meta b/Resources/Animations/Blend Tree/Tracker Y-.anim.meta similarity index 100% rename from Resources/Animations/Blend Tree/Y-.anim.meta rename to Resources/Animations/Blend Tree/Tracker Y-.anim.meta diff --git a/Resources/Animations/Blend Tree/Z+.anim b/Resources/Animations/Blend Tree/Tracker Z+.anim similarity index 99% rename from Resources/Animations/Blend Tree/Z+.anim rename to Resources/Animations/Blend Tree/Tracker Z+.anim index bdf97e4..f3604db 100644 --- a/Resources/Animations/Blend Tree/Z+.anim +++ b/Resources/Animations/Blend Tree/Tracker Z+.anim @@ -6,7 +6,7 @@ AnimationClip: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: Z+ + m_Name: Tracker Z+ serializedVersion: 6 m_Legacy: 0 m_Compressed: 0 diff --git a/Resources/Animations/Blend Tree/Z+.anim.meta b/Resources/Animations/Blend Tree/Tracker Z+.anim.meta similarity index 100% rename from Resources/Animations/Blend Tree/Z+.anim.meta rename to Resources/Animations/Blend Tree/Tracker Z+.anim.meta diff --git a/Resources/Animations/Blend Tree/Z-.anim b/Resources/Animations/Blend Tree/Tracker Z-.anim similarity index 99% rename from Resources/Animations/Blend Tree/Z-.anim rename to Resources/Animations/Blend Tree/Tracker Z-.anim index 3256f33..2b67cce 100644 --- a/Resources/Animations/Blend Tree/Z-.anim +++ b/Resources/Animations/Blend Tree/Tracker Z-.anim @@ -6,7 +6,7 @@ AnimationClip: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: Z- + m_Name: Tracker Z- serializedVersion: 6 m_Legacy: 0 m_Compressed: 0 diff --git a/Resources/Animations/Blend Tree/Z-.anim.meta b/Resources/Animations/Blend Tree/Tracker Z-.anim.meta similarity index 100% rename from Resources/Animations/Blend Tree/Z-.anim.meta rename to Resources/Animations/Blend Tree/Tracker Z-.anim.meta diff --git a/Resources/Animations/Reset Tracker.anim b/Resources/Animations/Tracker Reset.anim similarity index 91% rename from Resources/Animations/Reset Tracker.anim rename to Resources/Animations/Tracker Reset.anim index 4618da9..c06cf2e 100644 --- a/Resources/Animations/Reset Tracker.anim +++ b/Resources/Animations/Tracker Reset.anim @@ -6,8 +6,8 @@ AnimationClip: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: Reset Tracker - serializedVersion: 6 + m_Name: Tracker Reset + serializedVersion: 7 m_Legacy: 0 m_Compressed: 0 m_UseHighQualityCurve: 1 @@ -17,7 +17,8 @@ AnimationClip: m_PositionCurves: [] m_ScaleCurves: [] m_FloatCurves: - - curve: + - serializedVersion: 2 + curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 @@ -45,7 +46,9 @@ AnimationClip: path: Contact Tracker/Tracking Points classID: 1773428102 script: {fileID: 0} - - curve: + flags: 16 + - serializedVersion: 2 + curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 @@ -73,7 +76,9 @@ AnimationClip: path: Contact Tracker/Tracking Points classID: 1818360608 script: {fileID: 0} - - curve: + flags: 16 + - serializedVersion: 2 + curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 @@ -101,7 +106,9 @@ AnimationClip: path: Contact Tracker/Tracking Points classID: 1818360610 script: {fileID: 0} - - curve: + flags: 16 + - serializedVersion: 2 + curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 @@ -129,7 +136,9 @@ AnimationClip: path: Contact Tracker/Tracking Points/X+ classID: 114 script: {fileID: -1450912254, guid: 80f1b8067b0760e4bb45023bc2e9de66, type: 3} - - curve: + flags: 16 + - serializedVersion: 2 + curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 @@ -157,7 +166,9 @@ AnimationClip: path: Contact Tracker/Tracking Points/X- classID: 114 script: {fileID: -1450912254, guid: 80f1b8067b0760e4bb45023bc2e9de66, type: 3} - - curve: + flags: 16 + - serializedVersion: 2 + curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 @@ -185,7 +196,9 @@ AnimationClip: path: Contact Tracker/Tracking Points/Y+ classID: 114 script: {fileID: -1450912254, guid: 80f1b8067b0760e4bb45023bc2e9de66, type: 3} - - curve: + flags: 16 + - serializedVersion: 2 + curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 @@ -213,7 +226,9 @@ AnimationClip: path: Contact Tracker/Tracking Points/Y- classID: 114 script: {fileID: -1450912254, guid: 80f1b8067b0760e4bb45023bc2e9de66, type: 3} - - curve: + flags: 16 + - serializedVersion: 2 + curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 @@ -241,7 +256,9 @@ AnimationClip: path: Contact Tracker/Tracking Points/Z+ classID: 114 script: {fileID: -1450912254, guid: 80f1b8067b0760e4bb45023bc2e9de66, type: 3} - - curve: + flags: 16 + - serializedVersion: 2 + curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 @@ -269,7 +286,9 @@ AnimationClip: path: Contact Tracker/Tracking Points/Z- classID: 114 script: {fileID: -1450912254, guid: 80f1b8067b0760e4bb45023bc2e9de66, type: 3} - - curve: + flags: 16 + - serializedVersion: 2 + curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 @@ -297,12 +316,14 @@ AnimationClip: path: Contact Tracker/Tracking Points classID: 1818360608 script: {fileID: 0} - - curve: + flags: 16 + - serializedVersion: 2 + curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 time: 0 - value: 0.005 + value: 1 inSlope: Infinity outSlope: Infinity tangentMode: 103 @@ -311,7 +332,7 @@ AnimationClip: outWeight: 0.33333334 - serializedVersion: 3 time: 0.016666668 - value: 0.005 + value: 1 inSlope: Infinity outSlope: Infinity tangentMode: 103 @@ -325,6 +346,7 @@ AnimationClip: path: Contact Tracker/Tracking Points/Culling classID: 1818360610 script: {fileID: 0} + flags: 16 m_PPtrCurves: [] m_SampleRate: 60 m_WrapMode: 0 @@ -340,6 +362,8 @@ AnimationClip: typeID: 1773428102 customType: 0 isPPtrCurve: 0 + isIntCurve: 0 + isSerializeReferenceCurve: 0 - serializedVersion: 2 path: 3695631678 attribute: 3305885265 @@ -347,6 +371,8 @@ AnimationClip: typeID: 1818360608 customType: 0 isPPtrCurve: 0 + isIntCurve: 0 + isSerializeReferenceCurve: 0 - serializedVersion: 2 path: 3695631678 attribute: 4294967283 @@ -354,6 +380,8 @@ AnimationClip: typeID: 1818360610 customType: 33 isPPtrCurve: 0 + isIntCurve: 0 + isSerializeReferenceCurve: 0 - serializedVersion: 2 path: 2538758498 attribute: 1031938443 @@ -361,6 +389,8 @@ AnimationClip: typeID: 114 customType: 0 isPPtrCurve: 0 + isIntCurve: 0 + isSerializeReferenceCurve: 0 - serializedVersion: 2 path: 2117190743 attribute: 1031938443 @@ -368,6 +398,8 @@ AnimationClip: typeID: 114 customType: 0 isPPtrCurve: 0 + isIntCurve: 0 + isSerializeReferenceCurve: 0 - serializedVersion: 2 path: 2387169315 attribute: 1031938443 @@ -375,6 +407,8 @@ AnimationClip: typeID: 114 customType: 0 isPPtrCurve: 0 + isIntCurve: 0 + isSerializeReferenceCurve: 0 - serializedVersion: 2 path: 1730868502 attribute: 1031938443 @@ -382,6 +416,8 @@ AnimationClip: typeID: 114 customType: 0 isPPtrCurve: 0 + isIntCurve: 0 + isSerializeReferenceCurve: 0 - serializedVersion: 2 path: 2774795232 attribute: 1031938443 @@ -389,6 +425,8 @@ AnimationClip: typeID: 114 customType: 0 isPPtrCurve: 0 + isIntCurve: 0 + isSerializeReferenceCurve: 0 - serializedVersion: 2 path: 1275569877 attribute: 1031938443 @@ -396,6 +434,8 @@ AnimationClip: typeID: 114 customType: 0 isPPtrCurve: 0 + isIntCurve: 0 + isSerializeReferenceCurve: 0 - serializedVersion: 2 path: 3695631678 attribute: 108 @@ -403,6 +443,8 @@ AnimationClip: typeID: 1818360608 customType: 31 isPPtrCurve: 0 + isIntCurve: 0 + isSerializeReferenceCurve: 0 - serializedVersion: 2 path: 3870528620 attribute: 4294967283 @@ -410,6 +452,8 @@ AnimationClip: typeID: 1818360610 customType: 33 isPPtrCurve: 0 + isIntCurve: 0 + isSerializeReferenceCurve: 0 pptrCurveMapping: [] m_AnimationClipSettings: serializedVersion: 2 @@ -432,7 +476,8 @@ AnimationClip: m_HeightFromFeet: 0 m_Mirror: 0 m_EditorCurves: - - curve: + - serializedVersion: 2 + curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 @@ -460,7 +505,9 @@ AnimationClip: path: Contact Tracker/Tracking Points classID: 1773428102 script: {fileID: 0} - - curve: + flags: 16 + - serializedVersion: 2 + curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 @@ -488,7 +535,9 @@ AnimationClip: path: Contact Tracker/Tracking Points classID: 1818360608 script: {fileID: 0} - - curve: + flags: 16 + - serializedVersion: 2 + curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 @@ -516,7 +565,9 @@ AnimationClip: path: Contact Tracker/Tracking Points classID: 1818360610 script: {fileID: 0} - - curve: + flags: 16 + - serializedVersion: 2 + curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 @@ -544,7 +595,9 @@ AnimationClip: path: Contact Tracker/Tracking Points/X+ classID: 114 script: {fileID: -1450912254, guid: 80f1b8067b0760e4bb45023bc2e9de66, type: 3} - - curve: + flags: 16 + - serializedVersion: 2 + curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 @@ -572,7 +625,9 @@ AnimationClip: path: Contact Tracker/Tracking Points/X- classID: 114 script: {fileID: -1450912254, guid: 80f1b8067b0760e4bb45023bc2e9de66, type: 3} - - curve: + flags: 16 + - serializedVersion: 2 + curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 @@ -600,7 +655,9 @@ AnimationClip: path: Contact Tracker/Tracking Points/Y+ classID: 114 script: {fileID: -1450912254, guid: 80f1b8067b0760e4bb45023bc2e9de66, type: 3} - - curve: + flags: 16 + - serializedVersion: 2 + curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 @@ -628,7 +685,9 @@ AnimationClip: path: Contact Tracker/Tracking Points/Y- classID: 114 script: {fileID: -1450912254, guid: 80f1b8067b0760e4bb45023bc2e9de66, type: 3} - - curve: + flags: 16 + - serializedVersion: 2 + curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 @@ -656,7 +715,9 @@ AnimationClip: path: Contact Tracker/Tracking Points/Z+ classID: 114 script: {fileID: -1450912254, guid: 80f1b8067b0760e4bb45023bc2e9de66, type: 3} - - curve: + flags: 16 + - serializedVersion: 2 + curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 @@ -684,7 +745,9 @@ AnimationClip: path: Contact Tracker/Tracking Points/Z- classID: 114 script: {fileID: -1450912254, guid: 80f1b8067b0760e4bb45023bc2e9de66, type: 3} - - curve: + flags: 16 + - serializedVersion: 2 + curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 @@ -712,12 +775,14 @@ AnimationClip: path: Contact Tracker/Tracking Points classID: 1818360608 script: {fileID: 0} - - curve: + flags: 16 + - serializedVersion: 2 + curve: serializedVersion: 2 m_Curve: - serializedVersion: 3 time: 0 - value: 0.005 + value: 1 inSlope: Infinity outSlope: Infinity tangentMode: 103 @@ -726,7 +791,7 @@ AnimationClip: outWeight: 0.33333334 - serializedVersion: 3 time: 0.016666668 - value: 0.005 + value: 1 inSlope: Infinity outSlope: Infinity tangentMode: 103 @@ -740,6 +805,7 @@ AnimationClip: path: Contact Tracker/Tracking Points/Culling classID: 1818360610 script: {fileID: 0} + flags: 16 m_EulerEditorCurves: [] m_HasGenericRootTransform: 0 m_HasMotionFloatCurves: 0 diff --git a/Resources/Animations/Reset Tracker.anim.meta b/Resources/Animations/Tracker Reset.anim.meta old mode 100755 new mode 100644 similarity index 100% rename from Resources/Animations/Reset Tracker.anim.meta rename to Resources/Animations/Tracker Reset.anim.meta diff --git a/Resources/Animations/Tracking Lost.anim b/Resources/Animations/Tracking Lost.anim index 6dd5f1d..e95fd7e 100644 --- a/Resources/Animations/Tracking Lost.anim +++ b/Resources/Animations/Tracking Lost.anim @@ -302,7 +302,7 @@ AnimationClip: m_Curve: - serializedVersion: 3 time: 0 - value: 0 + value: 1 inSlope: Infinity outSlope: Infinity tangentMode: 103 @@ -311,7 +311,7 @@ AnimationClip: outWeight: 0.33333334 - serializedVersion: 3 time: 0.016666668 - value: 0 + value: 1 inSlope: Infinity outSlope: Infinity tangentMode: 103 @@ -321,9 +321,9 @@ AnimationClip: m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 - attribute: m_Sources.Array.data[0].weight - path: Contact Tracker/Tracking Points - classID: 1818360608 + attribute: m_Weight + path: Contact Tracker/Tracking Points/Culling + classID: 1818360610 script: {fileID: 0} - curve: serializedVersion: 2 @@ -331,25 +331,25 @@ AnimationClip: - serializedVersion: 3 time: 0 value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 time: 0.016666668 value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 - attribute: m_Sources.Array.data[1].weight + attribute: m_Sources.Array.data[5].weight path: Contact Tracker/Tracking Points classID: 1818360608 script: {fileID: 0} @@ -359,18 +359,18 @@ AnimationClip: - serializedVersion: 3 time: 0 value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 time: 0.016666668 value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 @@ -387,18 +387,18 @@ AnimationClip: - serializedVersion: 3 time: 0 value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 time: 0.016666668 value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 @@ -415,18 +415,18 @@ AnimationClip: - serializedVersion: 3 time: 0 value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 time: 0.016666668 value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 @@ -443,25 +443,25 @@ AnimationClip: - serializedVersion: 3 time: 0 value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 time: 0.016666668 value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 - attribute: m_Sources.Array.data[5].weight + attribute: m_Sources.Array.data[1].weight path: Contact Tracker/Tracking Points classID: 1818360608 script: {fileID: 0} @@ -470,28 +470,28 @@ AnimationClip: m_Curve: - serializedVersion: 3 time: 0 - value: 1 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 time: 0.016666668 - value: 1 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 - attribute: m_Weight - path: Contact Tracker/Tracking Points/Culling - classID: 1818360610 + attribute: m_Sources.Array.data[0].weight + path: Contact Tracker/Tracking Points + classID: 1818360608 script: {fileID: 0} m_PPtrCurves: [] m_SampleRate: 60 @@ -572,15 +572,15 @@ AnimationClip: customType: 31 isPPtrCurve: 0 - serializedVersion: 2 - path: 3695631678 - attribute: 12 + path: 3870528620 + attribute: 4294967283 script: {fileID: 0} - typeID: 1818360608 - customType: 31 + typeID: 1818360610 + customType: 33 isPPtrCurve: 0 - serializedVersion: 2 path: 3695631678 - attribute: 28 + attribute: 92 script: {fileID: 0} typeID: 1818360608 customType: 31 @@ -608,17 +608,17 @@ AnimationClip: isPPtrCurve: 0 - serializedVersion: 2 path: 3695631678 - attribute: 92 + attribute: 28 script: {fileID: 0} typeID: 1818360608 customType: 31 isPPtrCurve: 0 - serializedVersion: 2 - path: 3870528620 - attribute: 4294967283 + path: 3695631678 + attribute: 12 script: {fileID: 0} - typeID: 1818360610 - customType: 33 + typeID: 1818360608 + customType: 31 isPPtrCurve: 0 pptrCurveMapping: [] m_AnimationClipSettings: @@ -927,7 +927,7 @@ AnimationClip: m_Curve: - serializedVersion: 3 time: 0 - value: 0 + value: 1 inSlope: Infinity outSlope: Infinity tangentMode: 103 @@ -936,7 +936,7 @@ AnimationClip: outWeight: 0.33333334 - serializedVersion: 3 time: 0.016666668 - value: 0 + value: 1 inSlope: Infinity outSlope: Infinity tangentMode: 103 @@ -946,9 +946,9 @@ AnimationClip: m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 - attribute: m_Sources.Array.data[0].weight - path: Contact Tracker/Tracking Points - classID: 1818360608 + attribute: m_Weight + path: Contact Tracker/Tracking Points/Culling + classID: 1818360610 script: {fileID: 0} - curve: serializedVersion: 2 @@ -956,25 +956,25 @@ AnimationClip: - serializedVersion: 3 time: 0 value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 time: 0.016666668 value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 - attribute: m_Sources.Array.data[1].weight + attribute: m_Sources.Array.data[5].weight path: Contact Tracker/Tracking Points classID: 1818360608 script: {fileID: 0} @@ -984,18 +984,18 @@ AnimationClip: - serializedVersion: 3 time: 0 value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 time: 0.016666668 value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 @@ -1012,18 +1012,18 @@ AnimationClip: - serializedVersion: 3 time: 0 value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 time: 0.016666668 value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 @@ -1040,18 +1040,18 @@ AnimationClip: - serializedVersion: 3 time: 0 value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 time: 0.016666668 value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 @@ -1068,25 +1068,25 @@ AnimationClip: - serializedVersion: 3 time: 0 value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 time: 0.016666668 value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 - attribute: m_Sources.Array.data[5].weight + attribute: m_Sources.Array.data[1].weight path: Contact Tracker/Tracking Points classID: 1818360608 script: {fileID: 0} @@ -1095,28 +1095,28 @@ AnimationClip: m_Curve: - serializedVersion: 3 time: 0 - value: 1 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 time: 0.016666668 - value: 1 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 - attribute: m_Weight - path: Contact Tracker/Tracking Points/Culling - classID: 1818360610 + attribute: m_Sources.Array.data[0].weight + path: Contact Tracker/Tracking Points + classID: 1818360608 script: {fileID: 0} m_EulerEditorCurves: [] m_HasGenericRootTransform: 0 diff --git a/package.json b/package.json index 26283d0..3fbb087 100644 --- a/package.json +++ b/package.json @@ -1,19 +1,30 @@ { - "name" : "com.vrlabs.contact-tracker", - "displayName" : "Contact Tracker", - "version" : "master", - "unity" : "2019.4", - "description" : "Tracking for contacts, by contacts.", - "author" : { - "name" : "VRLabs", - "email" : "mail@vrlabs.dev", - "url" : "https://github.vrlabs.dev" + "name": "dev.vrlabs.contact-tracker", + "displayName": "Contact Tracker", + "version": "1.4.999", + "license": "MIT", + "unity": "2019.4", + "description": "Tracking for contacts, by contacts.", + "author": { + "name": "VRLabs", + "email": "mail@vrlabs.dev", + "url": "https://vrlabs.dev" }, - "vpmDependencies" : { - "com.vrchat.avatars" : "3.1.0" + "siteUrl": "https://github.com/VRLabs/Contact-Tracker", + "vpmDependencies": { + "dev.vrlabs.instancer": "1.x" }, - "url" : "https://github.com/VRLabs/Contact-Tracker/releases/download/master/Contact_Tracker_master.zip", - "legacyFolders" : { - "Assets\\VRLabs\\Contact Tracker" : "9cd56b450009343a99b606696779825a" + "legacyFolders": { + "Assets\\VRLabs\\Contact Tracker": "9cd56b450009343a99b606696779825a" + }, + "unityPackageDestinationFolder": "Assets/VRLabs/Contact Tracker", + "vccRepoCategory": "components", + "media": { + "previewImage": "https://raw.githubusercontent.com/VRLabs/Contact-Tracker/main/Media/Web/Preview.webp", + "previewGif": "https://raw.githubusercontent.com/VRLabs/Contact-Tracker/main/Media/Web/PreviewGif.webp" + }, + "unityPackageDestinationFolderMetas": { + "Assets/VRLabs": "652a1ba5b00554143bc9a76307dbc4e8", + "Assets/VRLabs/Contact Tracker": "9cd56b450009343a99b606696779825a" } } \ No newline at end of file