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/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.png b/Media/Preview.png new file mode 100644 index 0000000..23b6d2b Binary files /dev/null and b/Media/Preview.png differ diff --git a/Media/Web/Preview.webp b/Media/Web/Preview.webp new file mode 100644 index 0000000..fa2b7cf 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..2a1d2ab --- /dev/null +++ b/Media/Web/Preview.webp.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0dcbf27b7dfd9274482e5ca8fc5fe904 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/README.md b/README.md index e191b32..f742c66 100644 --- a/README.md +++ b/README.md @@ -1,28 +1,60 @@ +
+ # Dynamic Bones Stub - -[![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/Dynamic-Bones-Stub/blob/main/LICENSE) + [![Generic badge](https://img.shields.io/github/downloads/VRLabs/Dynamic-Bones-Stub/total?label=Downloads)](https://github.com/VRLabs/Dynamic-Bones-Stub/releases/latest) +[![Generic badge](https://img.shields.io/badge/License-MIT-informational.svg)](https://github.com/VRLabs/Dynamic-Bones-Stub/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) + +[![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/) + +Stub package for the [Dynamic Bones](https://assetstore.unity.com/packages/tools/animation/dynamic-bone-16743) components whitelisted by VRChat + +![Not Dynamic Bones](https://github.com/VRLabs/Dynamic-Bones-Stub/assets/76777936/1ace50c9-475f-41ac-9312-98105277b578) -Stub package for the VRChat and CVR whitelisted Dynamic Bones components. This package strips off everything that is not serialized, and only serves to preserve the serialized information in imported prefabs/scenes. +### ⬇️ [Download Latest Version](https://github.com/VRLabs/Dynamic-Bones-Stub/releases/latest) + + +### 📦 [Add to VRChat Creator Companion](https://vrlabs.dev/packages?package=dev.vrlabs.dynamic-bones-stub) + +
+ +--- ## How it works -By having the same GUID as original scripts, it makes the scripts automatically reference the stubs. By using the same variable names, the serialized information gets transferred properly. +* VRChat copies all component data into duplicate ones when your avatar is loaded. +* By employing identical variable names in the stubs, the serialized information seamlessly transfers to the duplicate component. -## Credit +## Additional notes -[Dreadrith](https://github.com/Dreadrith) +* You cannot use any of the Dynamic Bone components in the editor, as they lack executable code. +* Note that in VRChat, Dynamic Bones are automatically converted to PhysBones. If you have a recent Avatar VRChat SDK and this stub, you can use one of the following options to convert the Dynamic Bones into PhysBones and obtain the full functionality in the editor. + * The `Auto Fix` button in the VRChat SDK Build Control Panel + * `VRChat SDK -> Utilities -> Convert DynamicBones to PhysBones` from the [top toolbar](https://creators.vrchat.com/avatars/avatar-dynamics/physbones#manual-dynamic-bone-conversion) +* For testing in the editor, if Dynamic Bones are essential, we highly recommend purchasing the full software from the [Unity Asset Store](https://assetstore.unity.com/packages/tools/animation/dynamic-bone-16743). -## Downloads +## Contributors -You can grab the latest version of the Dynamic Bones Stub in [Releases](https://github.com/VRLabs/Dynamic-Bones-Stub/releases/latest). +* [Dreadrith](https://github.com/Dreadrith) ## License Dynamic Bones Stub is available as-is under MIT. For more information see [LICENSE](https://github.com/VRLabs/Dynamic-Bones-Stub/blob/main/LICENSE). -## Contact us +​ + +
+ +[](https://vrlabs.dev "VRLabs") + +[](https://discord.vrlabs.dev/ "VRLabs") + +[](https://patreon.vrlabs.dev/ "VRLabs") + +[](https://twitter.com/vrlabsdev "VRLabs") + +
-If you need help, our support channel is on [Discord](https://discord.vrlabs.dev). diff --git a/package.json b/package.json new file mode 100644 index 0000000..8c48807 --- /dev/null +++ b/package.json @@ -0,0 +1,28 @@ +{ + "name": "dev.vrlabs.dynamic-bones-stub", + "displayName": "Dynamic Bones Stub", + "version": "1.3.999", + "license": "MIT", + "unity": "2019.4", + "description": "Stub package for the Dynamic Bones components whitelisted by VRChat", + "author": { + "name": "VRLabs", + "email": "mail@vrlabs.dev", + "url": "https://vrlabs.dev" + }, + "siteUrl": "https://github.com/VRLabs/Dynamic-Bones-Stub", + "vpmDependencies": {}, + "legacyFolders": { + "Assets\\VRLabs\\Dynamic Bones Stub": "24380da05081e4d49a901e8269ea3b6d" + }, + "unityPackageDestinationFolder": "Assets/VRLabs/Dynamic Bones Stub", + "vccRepoCategory": "essentials", + "media": { + "previewImage": "https://raw.githubusercontent.com/VRLabs/Dynamic-Bones-Stub/main/Media/Web/Preview.webp", + "previewGif": "https://raw.githubusercontent.com/VRLabs/Dynamic-Bones-Stub/main/Media/Web/Preview.webp" + }, + "unityPackageDestinationFolderMetas": { + "Assets/VRLabs": "652a1ba5b00554143bc9a76307dbc4e8", + "Assets/VRLabs/Dynamic Bones Stub": "24380da05081e4d49a901e8269ea3b6d" + } +} \ No newline at end of file diff --git a/package.json.meta b/package.json.meta new file mode 100644 index 0000000..65260b6 --- /dev/null +++ b/package.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 253bdf1c8958162428a51f4a1e352d68 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: