├── .github └── workflows │ ├── build-listing.yml │ └── release.yml ├── .gitignore ├── Assets └── .gitkeep ├── LICENSE ├── Packages ├── .gitignore ├── com.hhotatea.avatar-pose-library │ ├── Editor.meta │ ├── Editor │ │ ├── Inspector.meta │ │ ├── Inspector │ │ │ ├── AvatarPoseLibraryEditor.cs │ │ │ └── AvatarPoseLibraryEditor.cs.meta │ │ ├── Logic.meta │ │ ├── Logic │ │ │ ├── AnimationLayerBuilder.cs │ │ │ ├── AnimationLayerBuilder.cs.meta │ │ │ ├── AnimatorBuilder.cs │ │ │ ├── AnimatorBuilder.cs.meta │ │ │ ├── MenuBuilder.cs │ │ │ ├── MenuBuilder.cs.meta │ │ │ ├── MotionBuilder.cs │ │ │ ├── MotionBuilder.cs.meta │ │ │ ├── ParameterBuilder.cs │ │ │ ├── ParameterBuilder.cs.meta │ │ │ ├── ThumbnailGenerator.cs │ │ │ └── ThumbnailGenerator.cs.meta │ │ ├── Plugin.meta │ │ ├── Plugin │ │ │ ├── AutoThumbnailPlugin.cs │ │ │ ├── AutoThumbnailPlugin.cs.meta │ │ │ ├── AvatarPoseLibraryParameterProvider.cs │ │ │ ├── AvatarPoseLibraryParameterProvider.cs.meta │ │ │ ├── CacheSave.cs │ │ │ ├── CacheSave.cs.meta │ │ │ ├── DataConvertPlugin.cs │ │ │ └── DataConvertPlugin.cs.meta │ │ ├── ScriptableObject.meta │ │ ├── ScriptableObject │ │ │ ├── AvatarPoseSettings.cs │ │ │ ├── AvatarPoseSettings.cs.meta │ │ │ ├── CacheModel.cs │ │ │ ├── CacheModel.cs.meta │ │ │ ├── DynamicVariables.cs │ │ │ ├── DynamicVariables.cs.meta │ │ │ ├── InspectorContext.cs │ │ │ ├── InspectorContext.cs.meta │ │ │ ├── MenuContext.cs │ │ │ └── MenuContext.cs.meta │ │ ├── com.hhotatea.avatar-pose-library.Editor.asmdef │ │ └── com.hhotatea.avatar-pose-library.Editor.asmdef.meta │ ├── README.md │ ├── README.md.meta │ ├── Resources.meta │ ├── Resources │ │ ├── FollowViewPoint.png │ │ ├── FollowViewPoint.png.meta │ │ ├── InspectorContext_EN.asset │ │ ├── InspectorContext_EN.asset.meta │ │ ├── InspectorContext_JP.asset │ │ ├── InspectorContext_JP.asset.meta │ │ ├── InspectorContext_KR.asset │ │ ├── InspectorContext_KR.asset.meta │ │ ├── InspectorContext_zh-cn.asset │ │ ├── InspectorContext_zh-cn.asset.meta │ │ ├── InspectorContext_zh-hant.asset │ │ ├── InspectorContext_zh-hant.asset.meta │ │ ├── MenuContext_EN.asset │ │ ├── MenuContext_EN.asset.meta │ │ ├── MenuContext_JP.asset │ │ ├── MenuContext_JP.asset.meta │ │ ├── MenuContext_KR.asset │ │ ├── MenuContext_KR.asset.meta │ │ ├── MenuContext_zh-cn.asset │ │ ├── MenuContext_zh-cn.asset.meta │ │ ├── MenuContext_zh-hant.asset │ │ ├── MenuContext_zh-hant.asset.meta │ │ ├── NoneAnimation.anim │ │ ├── NoneAnimation.anim.meta │ │ ├── Settings.asset │ │ ├── Settings.asset.meta │ │ ├── arm.png │ │ ├── arm.png.meta │ │ ├── bg.png │ │ ├── bg.png.meta │ │ ├── finger.png │ │ ├── finger.png.meta │ │ ├── foot.png │ │ ├── foot.png.meta │ │ ├── fx.png │ │ ├── fx.png.meta │ │ ├── head.png │ │ ├── head.png.meta │ │ ├── height.png │ │ ├── height.png.meta │ │ ├── icom_main.png │ │ ├── icom_main.png.meta │ │ ├── icon_apl.png │ │ ├── icon_apl.png.meta │ │ ├── icon_white.png │ │ ├── icon_white.png.meta │ │ ├── locomotion.png │ │ ├── locomotion.png.meta │ │ ├── logo.png │ │ ├── logo.png.meta │ │ ├── mirror.png │ │ ├── mirror.png.meta │ │ ├── reset.png │ │ ├── reset.png.meta │ │ ├── settings.png │ │ ├── settings.png.meta │ │ ├── speed.png │ │ ├── speed.png.meta │ │ ├── tracking.png │ │ └── tracking.png.meta │ ├── Runtime.meta │ ├── Runtime │ │ ├── Component.meta │ │ ├── Component │ │ │ ├── AvatarPoseLibrary.cs │ │ │ └── AvatarPoseLibrary.cs.meta │ │ ├── Model.meta │ │ ├── Model │ │ │ ├── ConstVariables.cs │ │ │ ├── ConstVariables.cs.meta │ │ │ ├── ParameterModel.cs │ │ │ └── ParameterModel.cs.meta │ │ ├── com.hhotatea.avatar-pose-library.Runtime.asmdef │ │ └── com.hhotatea.avatar-pose-library.Runtime.asmdef.meta │ ├── package.json │ └── package.json.meta ├── com.vrchat.core.bootstrap │ ├── Editor.meta │ ├── Editor │ │ ├── Bootstrap.cs │ │ ├── Bootstrap.cs.meta │ │ ├── VRChat.Bootstrapper.Editor.asmdef │ │ └── VRChat.Bootstrapper.Editor.asmdef.meta │ ├── License.md │ ├── License.md.meta │ ├── package.json │ └── package.json.meta ├── com.vrchat.demo-template │ ├── Editor │ │ ├── ExampleEditorScript.cs │ │ └── VRChatPackageTemplate.Editor.asmdef │ └── package.json ├── manifest.json ├── packages-lock.json └── vpm-manifest.json ├── ProjectSettings ├── AudioManager.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── NavMeshAreas.asset ├── PackageManagerSettings.asset ├── Physics2DSettings.asset ├── PresetManager.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── TagManager.asset ├── TimeManager.asset ├── UnityConnectSettings.asset ├── VFXManager.asset └── XRSettings.asset ├── README.md └── Website ├── app.js ├── banner.png ├── icon.ico ├── index.html ├── main.js ├── products.json └── style.css /.github/workflows/build-listing.yml: -------------------------------------------------------------------------------- 1 | name: Build Repo Listing 2 | 3 | env: 4 | listPublishDirectory: Website 5 | pathToCi: ci 6 | 7 | on: 8 | workflow_dispatch: 9 | workflow_run: 10 | workflows: [Build Release] 11 | types: 12 | - completed 13 | release: 14 | types: [published, created, edited, unpublished, deleted, released] 15 | 16 | # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages 17 | permissions: 18 | contents: read 19 | pages: write 20 | id-token: write 21 | 22 | # Allow one concurrent deployment 23 | concurrency: 24 | group: "pages" 25 | cancel-in-progress: true 26 | 27 | jobs: 28 | 29 | # Build the VPM Listing Website and deploy to GitHub Pages 30 | build-listing: 31 | name: build-listing 32 | environment: 33 | name: github-pages 34 | url: ${{ steps.deployment.outputs.page_url }} 35 | runs-on: ubuntu-latest 36 | steps: 37 | 38 | # Checkout Local Repository 39 | - name: Checkout Local Repository 40 | uses: actions/checkout@v4 41 | 42 | # Checkout Automation Repository without removing prior checkouts 43 | - name: Checkout Automation Repository 44 | uses: actions/checkout@v4 45 | with: 46 | repository: vrchat-community/package-list-action 47 | path: ${{ env.pathToCi }} 48 | clean: false 49 | 50 | # Load cached data from previous runs 51 | - name: Restore Cache 52 | uses: actions/cache@v4 53 | with: 54 | path: | 55 | ${{ env.pathToCi }}/.nuke/temp 56 | ~/.nuget/packages 57 | key: ${{ runner.os }}-${{ hashFiles('**/global.json', '**/*.csproj') }} 58 | 59 | # Build Package Version Listing with Nuke 60 | - name: Build Package Version Listing 61 | run: ${{ env.pathToCi }}/build.cmd BuildRepoListing --root ${{ env.pathToCi }} --list-publish-directory $GITHUB_WORKSPACE/${{ env.listPublishDirectory }} --current-package-name ${{ vars.PACKAGE_NAME }} 62 | env: 63 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 64 | 65 | # Prepare for GitHub Pages deployment 66 | - name: Setup Pages 67 | uses: actions/configure-pages@v5 68 | 69 | # Upload the VPM Listing Website to GitHub Pages artifacts 70 | - name: Upload Pages Artifact 71 | uses: actions/upload-pages-artifact@v3 72 | with: 73 | path: ${{ env.listPublishDirectory }} 74 | 75 | # Deploy the uploaded VPM Listing Website to GitHub Pages 76 | - name: Deploy to GitHub Pages 77 | id: deployment 78 | uses: actions/deploy-pages@v4 -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Build Release 2 | 3 | on: 4 | workflow_dispatch: 5 | 6 | jobs: 7 | 8 | # Validate Repository Configuration 9 | config: 10 | runs-on: ubuntu-latest 11 | outputs: 12 | config_package: ${{ steps.config_package.outputs.configPackage }} 13 | steps: 14 | 15 | # Ensure that required repository variable has been created for the Package 16 | - name: Validate Package Config 17 | id: config_package 18 | run: | 19 | if [ "${{ vars.PACKAGE_NAME }}" != "" ]; then 20 | echo "configPackage=true" >> $GITHUB_OUTPUT; 21 | else 22 | echo "configPackage=false" >> $GITHUB_OUTPUT; 23 | fi 24 | 25 | # Build and release the Package 26 | # If the repository is not configured properly, this job will be skipped 27 | build: 28 | needs: config 29 | runs-on: ubuntu-latest 30 | permissions: 31 | contents: write 32 | env: 33 | packagePath: Packages/${{ vars.PACKAGE_NAME }} 34 | if: needs.config.outputs.config_package == 'true' 35 | steps: 36 | 37 | # Checkout Local Repository 38 | - name: Checkout 39 | uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac 40 | 41 | # Get the Package version based on the package.json file 42 | - name: Get Version 43 | id: version 44 | uses: zoexx/github-action-json-file-properties@b9f36ce6ee6fe2680cd3c32b2c62e22eade7e590 45 | with: 46 | file_path: "${{ env.packagePath }}/package.json" 47 | prop_path: "version" 48 | 49 | # Configure the Environment Variables needed for releasing the Package 50 | - name: Set Environment Variables 51 | run: | 52 | echo "zipFile=${{ vars.PACKAGE_NAME }}-${{ steps.version.outputs.value }}".zip >> $GITHUB_ENV 53 | echo "unityPackage=${{ vars.PACKAGE_NAME }}-${{ steps.version.outputs.value }}.unitypackage" >> $GITHUB_ENV 54 | echo "version=${{ steps.version.outputs.value }}" >> $GITHUB_ENV 55 | 56 | # Zip the Package for release 57 | - name: Create Package Zip 58 | working-directory: "${{ env.packagePath }}" 59 | run: zip -r "${{ github.workspace }}/${{ env.zipFile }}" . 60 | 61 | # Build a list of .meta files for future use 62 | - name: Track Package Meta Files 63 | run: find "${{ env.packagePath }}/" -name \*.meta >> metaList 64 | 65 | # Make a UnityPackage version of the Package for release 66 | - name: Create UnityPackage 67 | uses: pCYSl5EDgo/create-unitypackage@v1.2.3 68 | with: 69 | package-path: ${{ env.unityPackage }} 70 | include-files: metaList 71 | 72 | # Make a release tag of the version from the package.json file 73 | - name: Create Tag 74 | id: tag_version 75 | uses: rickstaa/action-create-tag@88dbf7ff6fe2405f8e8f6c6fdfd78829bc631f83 76 | with: 77 | tag: "${{ env.version }}" 78 | 79 | # Publish the Release to GitHub 80 | - name: Make Release 81 | uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 82 | with: 83 | files: | 84 | ${{ env.zipFile }} 85 | ${{ env.unityPackage }} 86 | ${{ env.packagePath }}/package.json 87 | tag_name: ${{ env.version }} 88 | 89 | # DiscordNotice 90 | - name: Notify Discord 91 | run: | 92 | curl -H "Content-Type: application/json" \ 93 | -X POST \ 94 | -d "{\"content\": \"AvatarPoseLibrary v${{ env.version }} のリリースが完了しました。\"}" \ 95 | ${{ secrets.DISCORD_WEBHOOK_URL }} -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # This .gitignore file should be placed at the root of your Unity project directory 2 | # 3 | # Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore 4 | # 5 | /[Aa]ssets/ 6 | /[Ll]ibrary/ 7 | /[Tt]emp/ 8 | /[Oo]bj/ 9 | /[Bb]uild/ 10 | /[Bb]uilds/ 11 | /[Ll]ogs/ 12 | /[Mm]emoryCaptures/ 13 | /[Pp]rojectSettings/ 14 | /[Uu]serSettings/ 15 | 16 | # Asset meta data should only be ignored when the corresponding asset is also ignored 17 | !/[Aa]ssets/**/*.meta 18 | 19 | # Uncomment this line if you wish to ignore the asset store tools plugin 20 | # /[Aa]ssets/AssetStoreTools* 21 | 22 | # Autogenerated Jetbrains Rider plugin 23 | [Aa]ssets/Plugins/Editor/JetBrains* 24 | 25 | # Visual Studio cache directory 26 | .vs/ 27 | 28 | # Gradle cache directory 29 | .gradle/ 30 | 31 | # Autogenerated VS/MD/Consulo solution and project files 32 | ExportedObj/ 33 | .consulo/ 34 | *.csproj 35 | *.unityproj 36 | *.sln 37 | *.suo 38 | *.tmp 39 | *.user 40 | *.userprefs 41 | *.pidb 42 | *.booproj 43 | *.svd 44 | *.pdb 45 | *.mdb 46 | *.opendb 47 | *.VC.db 48 | 49 | # Unity3D generated meta files 50 | *.pidb.meta 51 | *.pdb.meta 52 | *.mdb.meta 53 | 54 | # Unity3D generated file on crash reports 55 | sysinfo.txt 56 | 57 | # Builds 58 | *.apk 59 | *.unitypackage 60 | 61 | # Crashlytics generated file 62 | crashlytics-build.properties 63 | 64 | .idea/.idea.vpm-package-maker/.idea 65 | Assets/PackageMakerWindowData.asset* 66 | .idea 67 | .vscode 68 | -------------------------------------------------------------------------------- /Assets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HhotateA/AvatarPoseLibrary/153af0f36f4ef7853c08002292f974f980d7dc62/Assets/.gitkeep -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Files under Resources/ may only be redistributed as part of the official AvatarPoseLibrary package. Please remove any modifications. 2 | All other files are licensed under the MIT License. 3 | 4 | --- 5 | 6 | MIT License 7 | 8 | Copyright (c) 2025 HhotateA 9 | 10 | Permission is hereby granted, free of charge, to any person obtaining a copy 11 | of this software and associated documentation files (the "Software"), to deal 12 | in the Software without restriction, including without limitation the rights 13 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 14 | copies of the Software, and to permit persons to whom the Software is 15 | furnished to do so, subject to the following conditions: 16 | 17 | The above copyright notice and this permission notice shall be included in all 18 | copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 23 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 26 | SOFTWARE. -------------------------------------------------------------------------------- /Packages/.gitignore: -------------------------------------------------------------------------------- 1 | /*/ 2 | 3 | # Change this to match your new package name 4 | !com.hhotatea.avatar-pose-library 5 | !com.vrchat.core.*/ 6 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1e9d79cc8f1648b409ce0fd34a1cd5c3 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Editor/Inspector.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f09ab4f674def3948a0dc9200d22a6aa 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Editor/Inspector/AvatarPoseLibraryEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 83f05f802f5e9ee48a3d5a5530e84f8e 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Editor/Logic.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7132d15b2eb780d428c322a5673f8e60 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Editor/Logic/AnimationLayerBuilder.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4050bb4a453174f45a700b3cbba25583 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Editor/Logic/AnimatorBuilder.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dd98c617ef77801458d7bf32a04a804e 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Editor/Logic/MenuBuilder.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fa0af6ba88a21194c80da6325a89a6f1 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Editor/Logic/MotionBuilder.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ad80fd842ea611f418ffcdc16f83b401 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Editor/Logic/ParameterBuilder.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2c2f23789119e5441acaf8aea543f11c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Editor/Logic/ThumbnailGenerator.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bfe334047af23c04eab9cd8cb8706a49 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Editor/Plugin.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 13e910b853e122f43b84900438f97c9f 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Editor/Plugin/AutoThumbnailPlugin.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using com.hhotatea.avatar_pose_library.logic; 3 | using nadena.dev.ndmf; 4 | using com.hhotatea.avatar_pose_library.component; 5 | using com.hhotatea.avatar_pose_library.editor; 6 | using com.hhotatea.avatar_pose_library.model; 7 | using UnityEngine; 8 | using VRC.SDK3.Avatars.Components; 9 | using VRC.SDK3.Avatars.ScriptableObjects; 10 | using Object = UnityEngine.Object; 11 | 12 | [assembly: ExportsPlugin(typeof(AutoThumbnailPlugin))] 13 | namespace com.hhotatea.avatar_pose_library.editor 14 | { 15 | public class AutoThumbnailPlugin : Plugin 16 | { 17 | protected override void Configure() 18 | { 19 | InPhase(BuildPhase.Optimizing) 20 | .AfterPlugin("nadena.dev.modular-avatar") 21 | .BeforePlugin("com.anatawa12.avatar-optimizer") 22 | .Run("AvatarPose: Replace thumbnail...", ctx => 23 | { 24 | var settings = ctx.AvatarRootObject.GetComponentsInChildren(); 25 | foreach (var setting in settings) 26 | { 27 | using (var capture = new ThumbnailGenerator(ctx.AvatarRootObject)) 28 | { 29 | foreach (var category in setting.data.categories) 30 | { 31 | foreach (var pose in category.poses) 32 | { 33 | if(!pose.autoThumbnail) continue; 34 | var c = SearchMenu(ctx.AvatarDescriptor.expressionsMenu,pose); 35 | if (c == null) 36 | { 37 | continue; 38 | } 39 | c.icon = capture.Capture(pose.animationClip); 40 | } 41 | } 42 | } 43 | 44 | Object.DestroyImmediate(setting); 45 | } 46 | }); 47 | } 48 | 49 | VRCExpressionsMenu.Control SearchMenu(VRCExpressionsMenu menu,PoseEntry pose) 50 | { 51 | foreach (var control in menu.controls) 52 | { 53 | var c = SearchMenuRecursively(control,pose); 54 | if (c != null) return c; 55 | } 56 | 57 | return null; 58 | } 59 | 60 | VRCExpressionsMenu.Control SearchMenuRecursively(VRCExpressionsMenu.Control control,PoseEntry pose) 61 | { 62 | if (control == null) return null; 63 | switch (control.type) 64 | { 65 | case VRCExpressionsMenu.Control.ControlType.SubMenu: 66 | if (control.subMenu == null) return null; 67 | if (control.subMenu.controls == null) return null; 68 | foreach (var c in control.subMenu.controls) 69 | { 70 | var sc = SearchMenuRecursively(c,pose); 71 | if (sc != null) return sc; 72 | } 73 | break; 74 | case VRCExpressionsMenu.Control.ControlType.Toggle: 75 | if (control.parameter == null) return null; 76 | if (control.parameter.name == pose.Parameter && 77 | Math.Abs(control.value - pose.Value) < 0.01f) 78 | { 79 | return control; 80 | } 81 | break; 82 | } 83 | return null; 84 | } 85 | 86 | /// 87 | /// サムネイルの更新 88 | /// 89 | /// 90 | /// 91 | Texture2D UpdateThumbnail(GameObject obj,AnimationClip pose) 92 | { 93 | var avatar = obj.GetComponentInParent(); 94 | if(avatar == null) return null; 95 | 96 | using var capture = new ThumbnailGenerator(obj); 97 | return capture.Capture(pose); 98 | } 99 | } 100 | } -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Editor/Plugin/AutoThumbnailPlugin.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9f7242568755e0c4fb4b363158b06798 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Editor/Plugin/AvatarPoseLibraryParameterProvider.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using nadena.dev.ndmf; 3 | using nadena.dev.modular_avatar.core; 4 | using com.hhotatea.avatar_pose_library.component; 5 | using com.hhotatea.avatar_pose_library.model; 6 | using com.hhotatea.avatar_pose_library.editor; 7 | using Unity.Collections; 8 | using UnityEngine; 9 | using System.Linq; 10 | 11 | namespace com.hhotatea.avatar_pose_library.logic { 12 | // AvatarPoseLibrary のパラメータを提供するクラス 13 | [ParameterProviderFor(typeof(AvatarPoseLibrary))] 14 | public sealed class AvatarPoseLibraryParametersProvider : IParameterProvider 15 | { 16 | private readonly AvatarPoseLibrary _component; 17 | 18 | public AvatarPoseLibraryParametersProvider(AvatarPoseLibrary comp) 19 | { 20 | _component = comp; 21 | } 22 | 23 | public IEnumerable GetSuppliedParameters(BuildContext ctx = null) 24 | { 25 | // 最上位オブジェクトのみで実行 26 | if (!_component.IsRootComponent()) 27 | { 28 | yield break; 29 | } 30 | 31 | // データ抽出 32 | var data = AvatarPoseData.Combine( 33 | _component.GetComponentMember() 34 | .Select(e => e.data) 35 | .ToArray()) 36 | .FirstOrDefault(e=>e.name == _component.data.name); 37 | if (data == null) 38 | { 39 | yield break; 40 | } 41 | 42 | // パラメーターの最適化 43 | data.UpdateParameter(); 44 | // AvatarPoseLibrary のデータからパラメータ用の GameObject を構築 45 | var parameterGameObj = ParameterBuilder.BuildPoseParameter(data); 46 | // ModularAvatarParameters コンポーネントを取得 47 | var mParams = parameterGameObj.GetComponent(); 48 | 49 | foreach (var cfg in mParams.parameters) 50 | { 51 | var type = cfg.syncType switch { 52 | // syncType に応じて AnimatorControllerParameterType をマッピング 53 | ParameterSyncType.Bool => AnimatorControllerParameterType.Bool, 54 | ParameterSyncType.Int => AnimatorControllerParameterType.Int, 55 | ParameterSyncType.Float => AnimatorControllerParameterType.Float, 56 | _ => AnimatorControllerParameterType.Float 57 | }; 58 | 59 | // ProvidedParameter を生成して返却 60 | yield return new ProvidedParameter( 61 | name: cfg.nameOrPrefix, 62 | namespace_: ParameterNamespace.Animator, 63 | source: mParams, 64 | plugin: DataConvertPlugin.Instance, 65 | parameterType: type 66 | ) { 67 | // localOnly が false の場合は同期を希望 68 | WantSynced = !cfg.localOnly 69 | }; 70 | } 71 | 72 | // 使用後は GameObject を破棄 73 | Object.DestroyImmediate(parameterGameObj); 74 | } 75 | } 76 | } -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Editor/Plugin/AvatarPoseLibraryParameterProvider.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d87874fef2abb41429197fef59f2c506 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Editor/Plugin/CacheSave.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bd4b65eb47d667e4cb8c85aeda7a399d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Editor/Plugin/DataConvertPlugin.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cc1ef1148714e1b4e8c999f35f56d9b2 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Editor/ScriptableObject.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7d69f5eeaf2b9b34a8f54e7e09ec03c3 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Editor/ScriptableObject/AvatarPoseSettings.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UnityEngine; 3 | 4 | namespace com.hhotatea.avatar_pose_library.component 5 | { 6 | // [CreateAssetMenu(menuName = "HhotateA/AvatarPoseSettings")] 7 | public class AvatarPoseSettings : ScriptableObject 8 | { 9 | [SerializeField] MenuContext menuContext; 10 | public MenuContext Menu 11 | { 12 | get 13 | { 14 | foreach (var localContext in localContexts) 15 | { 16 | if (Application.systemLanguage == localContext.language) 17 | { 18 | // 言語ファイルが存在するなら使う! 19 | if (localContext.menuContext) 20 | return localContext.menuContext; 21 | } 22 | } 23 | 24 | if (menuContext != null) 25 | return menuContext; 26 | 27 | throw new NullReferenceException("MenuContextファイルが見つかりません。再インポートしてください。"); 28 | } 29 | } 30 | 31 | [SerializeField] InspectorContext inspectorContext; 32 | public InspectorContext Inspector 33 | { 34 | get 35 | { 36 | foreach (var localContext in localContexts) 37 | { 38 | if (Application.systemLanguage == localContext.language) 39 | { 40 | // 言語ファイルが存在するなら使う! 41 | if (localContext.inspectorContext) 42 | return localContext.inspectorContext; 43 | } 44 | } 45 | 46 | if (inspectorContext != null) 47 | return inspectorContext; 48 | 49 | throw new NullReferenceException("InspectorContextファイルが見つかりません。再インポートしてください。"); 50 | } 51 | } 52 | 53 | [SerializeField] 54 | LocalFile[] localContexts; 55 | 56 | /// 57 | /// サムネイル撮影用のレイヤー 58 | /// 59 | public int thumbnailLayer = 4; 60 | 61 | /// 62 | /// サムネイルテクスチャのサイズ 63 | /// 64 | public int texSize = 128; 65 | 66 | /// 67 | /// モーションにノイズを混ぜる 68 | /// 69 | public float motionLong = 15f; 70 | public float motionDuration = 0.5f; 71 | // public float motionNoiseTime = 0.1f; 72 | public float motionNoiseScale = 0.6f; 73 | 74 | public float minMaxHeight = 1f; 75 | 76 | /// 77 | /// サムネ撮影の設定 78 | /// 79 | public float lookAtFace = 0f; 80 | public float fieldOfView = 30f; 81 | public float cameraDistance = 1f; 82 | public Vector3 cameraOffset = Vector3.zero; 83 | 84 | /// 85 | /// AnimatorLayerに使うアセット群 86 | /// 87 | public AnimationClip defaultAnimation; 88 | 89 | /// 90 | /// キャッシュ用のパス 91 | /// 92 | public string cachePath = "Assets/_APLCache"; 93 | } 94 | 95 | [Serializable] 96 | public class LocalFile 97 | { 98 | public SystemLanguage language; 99 | public MenuContext menuContext; 100 | public InspectorContext inspectorContext; 101 | } 102 | } -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Editor/ScriptableObject/AvatarPoseSettings.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0590e1b030db8b84195bb25ea9128bd2 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Editor/ScriptableObject/CacheModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UnityEditor.Animations; 3 | using UnityEngine; 4 | 5 | namespace com.hhotatea.avatar_pose_library.component 6 | { 7 | public class CacheModel : ScriptableObject 8 | { 9 | public string libraryName; 10 | public AnimatorController locomotionLayer; 11 | public AnimatorController paramLayer; 12 | public AnimatorController trackingLayer; 13 | public GameObject menuObject; 14 | public GameObject paramObject; 15 | } 16 | } -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Editor/ScriptableObject/CacheModel.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a679abe7550a40b48a3ea8db9525fb01 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Editor/ScriptableObject/DynamicVariables.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Linq; 3 | using System.Threading.Tasks; 4 | using com.hhotatea.avatar_pose_library.component; 5 | using UnityEditor; 6 | using UnityEditor.PackageManager; 7 | using UnityEngine; 8 | using UnityEngine.Networking; 9 | 10 | namespace com.hhotatea.avatar_pose_library.editor 11 | { 12 | public static class DynamicVariables 13 | { 14 | private const string settingsGuid = "ca5572910cc499a4faf1a7986787d6e2"; 15 | private const string packageName = "com.hhotatea.avatar-pose-library"; 16 | 17 | private const string analyticsURL = 18 | "https://script.google.com/macros/s/AKfycbyIJ6zUa0LHzdZU5GSO7h0pDWUPCZ1xAKQxWNST88Y9KpgCSsw0fE2u00xHLWW9_S-eng/exec"; 19 | 20 | private static Version currentVersion, latestVersion; 21 | 22 | private static bool isFetchedLatestVersion = false; 23 | 24 | private static AvatarPoseSettings settingsBuff; 25 | 26 | public static AvatarPoseSettings Settings 27 | { 28 | get 29 | { 30 | if (settingsBuff) return settingsBuff; 31 | 32 | var filePath = AssetDatabase.GUIDToAssetPath(settingsGuid); 33 | if (string.IsNullOrEmpty(filePath)) 34 | { 35 | throw new NullReferenceException("Settingファイルが見つかりません。再インポートしてください。"); 36 | } 37 | 38 | settingsBuff = AssetDatabase.LoadAssetAtPath(filePath); 39 | return settingsBuff; 40 | } 41 | } 42 | 43 | public static Version CurrentVersion 44 | { 45 | get 46 | { 47 | if (currentVersion == null) 48 | { 49 | var request = Client.List(true, true); 50 | while (!request.IsCompleted) { } 51 | 52 | if (request.Status == StatusCode.Success) 53 | { 54 | var versionStr = request.Result.FirstOrDefault(pkg => 55 | pkg.name == packageName)?.version ?? ""; 56 | 57 | if (!string.IsNullOrWhiteSpace(versionStr)) 58 | { 59 | currentVersion = Version.Parse(versionStr); 60 | } 61 | else 62 | { 63 | currentVersion = new Version(0, 0, 0); // デフォルト 64 | } 65 | } 66 | } 67 | 68 | return currentVersion; 69 | } 70 | } 71 | 72 | public static Version LatestVersion 73 | { 74 | get 75 | { 76 | // 取得済みならそれを返す 77 | if (latestVersion != null) 78 | { 79 | return latestVersion; 80 | } 81 | 82 | // 取得中でなければタスクを開始 83 | if (!isFetchedLatestVersion) 84 | { 85 | isFetchedLatestVersion = true; 86 | FetchLatestVersionAsync(); 87 | } 88 | 89 | // 完了するまではCurrentVersionを返す 90 | return CurrentVersion; 91 | } 92 | } 93 | 94 | private static async Task FetchLatestVersionAsync() 95 | { 96 | using (UnityWebRequest request = UnityWebRequest.Get(analyticsURL)) 97 | { 98 | var tcs = new TaskCompletionSource(); 99 | 100 | var operation = request.SendWebRequest(); 101 | operation.completed += _ => tcs.SetResult(true); 102 | 103 | await tcs.Task; 104 | 105 | if (request.result == UnityWebRequest.Result.Success) 106 | { 107 | var data = JsonUtility.FromJson(request.downloadHandler.text); 108 | if (!string.IsNullOrWhiteSpace(data.version)) 109 | { 110 | latestVersion = Version.Parse(data.version); 111 | } 112 | else 113 | { 114 | latestVersion = CurrentVersion; 115 | } 116 | } 117 | else 118 | { 119 | Debug.LogError("Failed to fetch latest version: " + request.error); 120 | latestVersion = CurrentVersion; 121 | } 122 | } 123 | } 124 | 125 | class AnalyticsResponse 126 | { 127 | public string version; 128 | } 129 | } 130 | } -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Editor/ScriptableObject/DynamicVariables.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7538e6565b2a7ed44b747fe6a6fce229 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Editor/ScriptableObject/InspectorContext.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UnityEngine; 3 | 4 | namespace com.hhotatea.avatar_pose_library.component 5 | { 6 | // [CreateAssetMenu(menuName = "HhotateA/InspectorContext")] 7 | public class InspectorContext : ScriptableObject 8 | { 9 | public string libraryMenuLabel = "Library Name"; 10 | [Multiline] public string libraryMenuTooltip = "ここの文字列が同じメニューは統合されます。"; 11 | public string categoriesLabel = "Pose Categories"; 12 | [Multiline] public string categoriesTooltip = "カテゴリーのリストです。"; 13 | public string categoryIconLabel = ""; 14 | [Multiline] public string categoryIconTooltip = "メニューに表示される、カテゴリーアイコン。"; 15 | public string categoryTextLabel = "Category Name"; 16 | [Multiline] public string categoryTextTooltip = "メニューに表示される、カテゴリー名。"; 17 | public string openAllLabel = "Open All"; 18 | [Multiline] public string openAllTooltip = "Pose項目を全て開きます。"; 19 | public string closeAllLabel = "Close All"; 20 | [Multiline] public string closeAllTooltip = "Pose項目を全て閉じます。"; 21 | public string openLabel = "Open"; 22 | [Multiline] public string openTooltip = "Pose項目を展開して編集します。"; 23 | public string closeLabel = "Close"; 24 | [Multiline] public string closeTooltip = "Pose項目を閉じます。"; 25 | public string poseListLabel = "Pose List"; 26 | [Multiline] public string poseListTooltip = "登録されたポーズリストです。"; 27 | public string thumbnailAutoLabel = "Auto Thumbnail"; 28 | [Multiline] public string thumbnailAutoTooltip = "サムネイルの自動撮影機能を有効にします。"; 29 | public string animationClipLabel = "Animation Clip"; 30 | [Multiline] public string animationClipTooltip = "再生するアニメーションクリック。"; 31 | public string trackingSettingsLabel = "Tracking Settings"; 32 | [Multiline] public string trackingSettingsTooltip = "トラッキングの設定。"; 33 | public string isLoopLabel = "Is Loop"; 34 | [Multiline] public string isLoopTooltip = "アニメーションをループさせる。"; 35 | public string motionSpeedLabel = "Motion Speed"; 36 | [Multiline] public string motionSpeedTooltip = "アニメーションの再生速度。"; 37 | public string dropboxLabel = "Drop AnimationClips here to add Poses"; 38 | [Multiline] public string dropboxTooltip = "ここにアニメーションを一括ドロップすることでPoseを生成できます。"; 39 | [Multiline] public string mainThumbnailTooltip = "アバターポーズライブラリー by.HhotateA_xR"; 40 | [Multiline] public string poseThumbnailTooltip = "メニューに表示されるサムネイル画像のプレビューです。"; 41 | [Multiline] public string posePreviewTooltip = "メニューに表示されるサムネイル画像のプレビューです。\nプレビューでは服などの表示がずれるケースが有りますが、アップロード時に再撮影されます。"; 42 | 43 | public string enableHeightLabel = "Enable Height"; 44 | [Multiline] public string enableHeightTooltip = "高さ調整機能を有効にする。"; 45 | public string enableSpeedLabel = "Enable Speed"; 46 | [Multiline] public string enableSpeedTooltip = "スピード調整機能を有効にする。"; 47 | public string enableMirrorLabel = "Enable Mirror"; 48 | [Multiline] public string enableMirrorTooltip = "ミラー機能を有効にする。"; 49 | public string enableTrackingLabel = "Enable Tracking"; 50 | [Multiline] public string enableTrackingTooltip = "トラッキングメニューを有効にする。"; 51 | public string enableFxLabel = "Enable Fx"; 52 | [Multiline] public string enableFxTooltip = "表情用のレイヤーを有効にする。"; 53 | public string enablePoseSpace = "Enable Pose Space"; 54 | [Multiline] public string enablePoseSpaceTooltip = "カメラをアニメーションに追従する。"; 55 | public string enableUseCache = "Enable Use Cache"; 56 | [Multiline] public string enableUseCacheTooltip = "キャッシュを使用してビルドを高速化する。"; 57 | 58 | public string createCategoryLabel = "Create Category"; 59 | [Multiline] public string createCategoryTooltip = "カテゴリーを新規作成。"; 60 | public string deleteCategoryLabel = "Delete Category"; 61 | [Multiline] public string deleteCategoryTooltip = "選択中のカテゴリーを削除。"; 62 | public string copyCategoryLabel = "Copy Category"; 63 | [Multiline] public string copyCategoryTooltip = "選択中のカテゴリーをコピー。"; 64 | public string cutCategoryLabel = "Cut Category"; 65 | [Multiline] public string cutCategoryTooltip = "選択中のカテゴリーを切り取り。"; 66 | public string pasteCategoryLabel = "Paste Category"; 67 | [Multiline] public string pasteCategoryTooltip = "選択中のカテゴリーを上書き。"; 68 | public string pasteNewCategoryLabel = "Paste Category As New"; 69 | [Multiline] public string pasteNewCategoryTooltip = "ここにコピーを作成。"; 70 | public string clearPoseLabel = "Clear Pose"; 71 | [Multiline] public string clearPoseTooltip = "ポーズを全消去。"; 72 | public string createPoseLabel = "Create Pose"; 73 | [Multiline] public string createPoseTooltip = "ポーズを新規作成。"; 74 | public string deletePoseLabel = "Delete Pose"; 75 | [Multiline] public string deletePoseTooltip = "選択中のポーズを削除。"; 76 | public string copyPoseLabel = "Copy Pose"; 77 | [Multiline] public string copyPoseTooltip = "選択中のポーズをコピー。"; 78 | public string cutPoseLabel = "Cut Pose"; 79 | [Multiline] public string cutPoseTooltip = "選択中のポーズを切り取り。"; 80 | public string pastePoseLabel = "Paste Pose"; 81 | [Multiline] public string pastePoseTooltip = "選択中のポーズを上書き。"; 82 | public string pasteNewPoseLabel = "Paste Pose As New"; 83 | [Multiline] public string pasteNewPoseTooltip = "ここにコピーを作成。"; 84 | 85 | public string autoThumbnailMenu = "Auto Thumbnail"; 86 | 87 | public string disableMenuLabel = "Disable All Pose"; 88 | [Multiline] public string disableMenuTooltip = "一括で有効化。"; 89 | public string enableMenuLabel = "Enable All Pose"; 90 | [Multiline] public string enableMenuTooltip = "一括で無効化。"; 91 | 92 | 93 | [Multiline] public string updateMessage = "最新版アップデートがあります。VCCを確認してください。"; 94 | 95 | public Texture2D thumbnailBg; 96 | 97 | public string headTrackingOption = "Head Lock"; 98 | public string armTrackingOption = "Arm Lock"; 99 | public string fingerTrackingOption = "Finger Lock"; 100 | public string footTrackingOption = "Foot Lock"; 101 | public string locomotionTrackingOption = "Move Lock"; 102 | public string fxTrackingOption = "Fx Active"; 103 | 104 | } 105 | } -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Editor/ScriptableObject/InspectorContext.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: facf1bf2fe40e384a9ddc0645a18be6b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Editor/ScriptableObject/MenuContext.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UnityEngine; 3 | 4 | namespace com.hhotatea.avatar_pose_library.component 5 | { 6 | // [CreateAssetMenu(menuName = "HhotateA/MenuContext")] 7 | public class MenuContext : ScriptableObject 8 | { 9 | public MenuItem main; 10 | public MenuItem category; 11 | public MenuItem pose; 12 | public MenuItem tracking; 13 | 14 | public MenuItem reset; 15 | public MenuItem setting; 16 | public MenuItem height; 17 | public MenuItem head; 18 | public MenuItem arm; 19 | public MenuItem foot; 20 | public MenuItem finger; 21 | public MenuItem face; 22 | public MenuItem speed; 23 | public MenuItem locomotion; 24 | public MenuItem mirror; 25 | public MenuItem poseSpace; 26 | 27 | [Serializable] 28 | public class MenuItem 29 | { 30 | public string title; 31 | public Texture2D thumbnail; 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Editor/ScriptableObject/MenuContext.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f3b7836422066d745a4b37d64dde53ea 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Editor/com.hhotatea.avatar-pose-library.Editor.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "com.hhotatea.avatar-pose-library.Editor", 3 | "rootNamespace": "", 4 | "references": [ 5 | "com.hhotatea.avatar-pose-library.Runtime", 6 | "VRC.SDK3A", 7 | "VRC.SDKBase", 8 | "nadena.dev.ndmf", 9 | "nadena.dev.ndmf.runtime", 10 | "nadena.dev.ndmf.vrchat", 11 | "nadena.dev.modular-avatar.core" 12 | ], 13 | "includePlatforms": [ 14 | "Editor" 15 | ], 16 | "excludePlatforms": [], 17 | "allowUnsafeCode": false, 18 | "overrideReferences": true, 19 | "precompiledReferences": [ 20 | "VRCSDKBase.dll", 21 | "VRCSDK3A.dll" 22 | ], 23 | "autoReferenced": false, 24 | "defineConstraints": [], 25 | "versionDefines": [], 26 | "noEngineReferences": false 27 | } -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Editor/com.hhotatea.avatar-pose-library.Editor.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 86cc58e7586794841a216682a1765932 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/README.md: -------------------------------------------------------------------------------- 1 | # Avatar Pose Library (APL) 2 | 3 | **AvatarPoseLibrary (APL)** は、Unity 上で VRChat 向けのアバター用のポーズを管理・適用するためのツールです。アバターのポーズを効率的に制御し、VRChat アバターの制作やカスタマイズを支援します。 4 | 5 | --- 6 | 7 | ## ✨ 特徴 8 | 9 | - **パラメーター数を最小限に最適化** 10 | 複数のメニューを統合し、制御する Int パラメーターを最小限にします。 11 | 12 | - **サムネイル撮影機能** 13 | アニメーションごとに自動でサムネイルを撮影し、メニュー画像を差し替え可能。 14 | 15 | - **トラッキング抑制** 16 | アニメーションごとに異なるトラッキング設定が可能。指だけを動かしたり、操作を完全に無効化することもできます。 17 | 18 | - **コンポーネントで設定完了** 19 | 設定はコンポーネントベース。プレハブ化可能で再利用性も高いです。 20 | 21 | - **より人間らしい動きに** 22 | 動きのないポーズを、自動で動画撮影に最適化された自然な動きに変換します。 23 | 24 | - **許諾なしで再配布OK** 25 | アニメーションやポーズデータの配布に、商用・非商用問わず許諾なしで使うことができます。 26 | 27 | --- 28 | 29 | ## 📦 導入方法 30 | 31 | APL は 2つの方法で導入することができます。 32 | **VCC (VRChat Creator Companion)** 経由の導入がおすすめです。 33 | 34 | ### 1. VCC 経由での導入 35 | 36 | 1. VCC を開き、**Settings** に移動 37 | 2. **Packages** タブをクリック 38 | 3. **Add Repository** をクリック 39 | 4. 入力欄に以下の URL を貼り付け 40 | ```text 41 | https://HhotateA.github.io/AvatarPoseLibrary/index.json 42 | ``` 43 | 5. **Add** をクリック 44 | 6. リポジトリ情報を確認し、**I Understand** をクリック 45 | 7. 任意のプロジェクトの **Manage Project** から APL を追加 46 | 47 | ### 2. UnityPackage 経由での導入 48 | 49 | 1. あらかじめ以下の依存パッケージをプロジェクトに追加しておく 50 | ```json 51 | "com.vrchat.avatars": "3.8.0", 52 | "nadena.dev.ndmf": "1.7.9", 53 | "nadena.dev.modular-avatar": "1.12.5" 54 | ``` 55 | 2. 下記 URL から UnityPackage を取得 56 | ```text 57 | https://github.com/HhotateA/AvatarPoseLibrary/releases/latest/ 58 | ``` 59 | 3. 任意の Unity プロジェクトを開き、UnityPackage をドラッグ&ドロップ 60 | 4. 追加ファイルを確認し、**Import** をクリック 61 | 62 | --- 63 | 64 | ## 🤝 PRの作成方法 65 | 66 | 1. フォークの作成 67 | 68 | リポジトリ右上の「Fork」ボタンをクリックし、自分のアカウントにコピーします。 69 | 70 | 2. ブランチを作成 71 | 72 | フォークしたリポジトリをクローンし、新しいブランチを切ります。 73 | 74 | ```git checkout -b feature/your-feature-name``` 75 | 76 | 3. 変更を加える 77 | 78 | 必要な修正や追加を行い、コミットメッセージは明確に書きます。 79 | 80 | ```git add .``` 81 | の後、 82 | 83 | ``` 84 | git commit -m "Add: 追加したアセットの概要" 85 | git commit -m "Feature: 追加した機能の概要" 86 | git commit -m "Fix: 修正したバグの概要" 87 | ``` 88 | 89 | のように、カンタンに変更内容を記述してください。 90 | 91 | 4. プッシュ 92 | 93 | 作成したブランチをリモートにプッシュします。 94 | 95 | ```git push origin feature/your-feature-name``` 96 | 97 | 5. プルリクエストを作成 98 | 99 | オリジナルリポジトリのページに移動し、「Compare & pull request」をクリック。 100 | 101 | - タイトルと詳細な説明を入力 102 | 103 | - 関連 Issue があればリンクを貼る 104 | 105 | 6. レビューとマージ 106 | 107 | メンテナーがレビューを行い、問題なければマージされます。 108 | 109 | フィードバックがあれば、追加コミットで修正してください。 110 | 111 | ※ バージョンコードの更新は行わないでください。 112 | 113 | - メジャーバージョン:互換性のない変更・機能追加 114 | - マイナーバージョン:互換性のある変更・機能追加 115 | - パッチバージョン:軽微なバグ修正 116 | 117 | --- 118 | 119 | ## 💰 開発支援のお願い 120 | 121 | APLは、完全無料・無償利用OKのツールとして公開されています。 商用・非商用問わず再配布も可能で、アニメーション販売やアバター改変で自由にご活用いただけます。 122 | 123 | もしAPLを利用したコンテンツ(アバター、衣装、ポーズ集など)で一定以上の収益や反響があった場合は、 開発者の活動継続のために投げ銭・宣伝などでご支援いただけると嬉しいです! 124 | 125 | Donation => https://hhotatea.booth.pm/items/6902222 126 | 127 | 皆さんの支援が、APLのさらなるアップデートや新機能開発につながります。 128 | 129 | --- 130 | 131 | ## 📄 ライセンス 132 | 133 | このプロジェクトは **MIT ライセンス** の下で提供されます。 134 | 135 | - 商用・非商用問わず利用することが可能です。 136 | - 再配布する場合も、許諾は必要ありません。 137 | 138 | バグ報告・機能提案・プルリクエストは歓迎です! 139 | GitHub の Issues や PR を通じてご参加ください。 140 | 141 | ライセンスファイルは、 [LICENCE](https://github.com/HhotateA/AvatarPoseLibrary/blob/main/Packages/com.hhotatea.avatar-pose-library/LICENCE) を参照してください。 142 | 143 | --- 144 | 145 | ## 👯 共同製作メンバー 146 | 147 | - ロゴ作成:lowteq 148 | https://x.com/lowteq_neko 149 | 150 | - ストア作成:meron-farm 151 | https://meronfarm.booth.pm/ 152 | 153 | --- 154 | 155 | ## 📞 連絡先 156 | 157 | 質問は、以下の連絡先にお願いします。 158 | 159 | - ほたてねこまじん @HhotateA_xR 160 | https://x.com/HhotateA_xR 161 | 162 | --- 163 | 164 | 2025-05-15 v1.0.0 -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/README.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6c5db38c1fe5a5647a6e634775e1e0f3 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2fdc4d43f387fa342a0ccc7c832aed68 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/FollowViewPoint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HhotateA/AvatarPoseLibrary/153af0f36f4ef7853c08002292f974f980d7dc62/Packages/com.hhotatea.avatar-pose-library/Resources/FollowViewPoint.png -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/FollowViewPoint.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2a78f551d4dcbdf4cb7aa6567dd6b12d 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | flipGreenChannel: 0 24 | isReadable: 0 25 | streamingMipmaps: 0 26 | streamingMipmapsPriority: 0 27 | vTOnly: 0 28 | ignoreMipmapLimit: 0 29 | grayScaleToAlpha: 0 30 | generateCubemap: 6 31 | cubemapConvolution: 0 32 | seamlessCubemap: 0 33 | textureFormat: 1 34 | maxTextureSize: 2048 35 | textureSettings: 36 | serializedVersion: 2 37 | filterMode: 1 38 | aniso: 1 39 | mipBias: 0 40 | wrapU: 1 41 | wrapV: 1 42 | wrapW: 0 43 | nPOTScale: 0 44 | lightmap: 0 45 | compressionQuality: 50 46 | spriteMode: 1 47 | spriteExtrude: 1 48 | spriteMeshType: 1 49 | alignment: 0 50 | spritePivot: {x: 0.5, y: 0.5} 51 | spritePixelsToUnits: 100 52 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 53 | spriteGenerateFallbackPhysicsShape: 1 54 | alphaUsage: 1 55 | alphaIsTransparency: 1 56 | spriteTessellationDetail: -1 57 | textureType: 8 58 | textureShape: 1 59 | singleChannelComponent: 0 60 | flipbookRows: 1 61 | flipbookColumns: 1 62 | maxTextureSizeSet: 0 63 | compressionQualitySet: 0 64 | textureFormatSet: 0 65 | ignorePngGamma: 0 66 | applyGammaDecoding: 0 67 | swizzle: 50462976 68 | cookieLightType: 0 69 | platformSettings: 70 | - serializedVersion: 3 71 | buildTarget: DefaultTexturePlatform 72 | maxTextureSize: 128 73 | resizeAlgorithm: 0 74 | textureFormat: -1 75 | textureCompression: 1 76 | compressionQuality: 50 77 | crunchedCompression: 0 78 | allowsAlphaSplitting: 0 79 | overridden: 0 80 | ignorePlatformSupport: 0 81 | androidETC2FallbackOverride: 0 82 | forceMaximumCompressionQuality_BC6H_BC7: 0 83 | - serializedVersion: 3 84 | buildTarget: Standalone 85 | maxTextureSize: 2048 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | ignorePlatformSupport: 0 94 | androidETC2FallbackOverride: 0 95 | forceMaximumCompressionQuality_BC6H_BC7: 0 96 | - serializedVersion: 3 97 | buildTarget: Android 98 | maxTextureSize: 2048 99 | resizeAlgorithm: 0 100 | textureFormat: -1 101 | textureCompression: 1 102 | compressionQuality: 50 103 | crunchedCompression: 0 104 | allowsAlphaSplitting: 0 105 | overridden: 0 106 | ignorePlatformSupport: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | spriteSheet: 110 | serializedVersion: 2 111 | sprites: [] 112 | outline: [] 113 | physicsShape: [] 114 | bones: [] 115 | spriteID: 5e97eb03825dee720800000000000000 116 | internalID: 0 117 | vertices: [] 118 | indices: 119 | edges: [] 120 | weights: [] 121 | secondaryTextures: [] 122 | nameFileIdTable: {} 123 | mipmapLimitGroupName: 124 | pSDRemoveMatte: 0 125 | userData: 126 | assetBundleName: 127 | assetBundleVariant: 128 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/InspectorContext_EN.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: facf1bf2fe40e384a9ddc0645a18be6b, type: 3} 13 | m_Name: InspectorContext_EN 14 | m_EditorClassIdentifier: 15 | libraryMenuLabel: "\u3010 Library Name \u3011" 16 | libraryMenuTooltip: The name displayed in the menu. 17 | categoriesLabel: Category List 18 | categoriesTooltip: The list of categories. 19 | categoryIconLabel: 20 | categoryIconTooltip: The category icon displayed in the menu. 21 | categoryTextLabel: "\u3010 Category Name \u3011" 22 | categoryTextTooltip: The category name displayed in the menu. 23 | openAllLabel: Open All 24 | openAllTooltip: Open all Pose items. 25 | closeAllLabel: Close All 26 | closeAllTooltip: Close all Pose items. 27 | openLabel: Open 28 | openTooltip: Expand and edit Pose items. 29 | closeLabel: Close 30 | closeTooltip: Close Pose items. 31 | poseListLabel: Pose List 32 | poseListTooltip: The list of registered poses. 33 | thumbnailAutoLabel: Auto 34 | thumbnailAutoTooltip: Enables automatic thumbnail capturing. 35 | animationClipLabel: Animation Clip 36 | animationClipTooltip: The animation clip to be played. 37 | trackingSettingsLabel: Tracking Settings 38 | trackingSettingsTooltip: Tracking configuration. 39 | isLoopLabel: Is Loop 40 | isLoopTooltip: Loops the animation. 41 | motionSpeedLabel: Motion Speed 42 | motionSpeedTooltip: The playback speed of the animation (initial value). 43 | dropboxLabel: Drop AnimationClips here to add Poses 44 | dropboxTooltip: You can generate poses by dropping animation clips here in bulk. 45 | mainThumbnailTooltip: 'AvatarPoseLibrary Staff 46 | 47 | 48 | Main Program: Hotate Nekomajin 49 | 50 | https://www.hhotatea.com/work/ 51 | 52 | 53 | Logo: 54 | lowteq 55 | 56 | https://x.com/lowteq_neko 57 | 58 | 59 | Store: meron-farm 60 | 61 | https://meronfarm.booth.pm/' 62 | poseThumbnailTooltip: Preview of the thumbnail image displayed in the menu. 63 | posePreviewTooltip: 'Preview of the thumbnail image displayed in the menu. 64 | 65 | Some 66 | display shifts (like clothing) may occur in the preview, but it will be recaptured 67 | during upload.' 68 | enableHeightLabel: Enable Height 69 | enableHeightTooltip: Enables height adjustment function. 70 | enableSpeedLabel: Enable Speed 71 | enableSpeedTooltip: Enables speed adjustment function. 72 | enableMirrorLabel: Enable Mirror 73 | enableMirrorTooltip: Enables mirror function. 74 | enableTrackingLabel: Enable Tracking 75 | enableTrackingTooltip: Enables tracking menu. 76 | enableFxLabel: Enable FX 77 | enableFxTooltip: Enable facial animation. 78 | enablePoseSpace: Follow View Point 79 | enablePoseSpaceTooltip: Move the camera according to the pose. 80 | enableUseCache: Enable Use Cache 81 | enableUseCacheTooltip: Use caching to speed up builds. 82 | createCategoryLabel: Create Category 83 | createCategoryTooltip: Create New Category. 84 | deleteCategoryLabel: Delete Category 85 | deleteCategoryTooltip: Delete Select Category. 86 | copyCategoryLabel: Copy 87 | copyCategoryTooltip: Copy Select Category. 88 | cutCategoryLabel: Cut 89 | cutCategoryTooltip: Cut Select Category. 90 | pasteCategoryLabel: Paste 91 | pasteCategoryTooltip: Paste to Select Category. 92 | pasteNewCategoryLabel: Paste As New 93 | pasteNewCategoryTooltip: Create Copy Category to here. 94 | clearPoseLabel: Clear Pose List 95 | clearPoseTooltip: Delete All Pose. 96 | createPoseLabel: Create Pose 97 | createPoseTooltip: Create New Pose. 98 | deletePoseLabel: Delete Pose 99 | deletePoseTooltip: Delete Select Pose. 100 | copyPoseLabel: Copy 101 | copyPoseTooltip: Copy Select Pose. 102 | cutPoseLabel: Cut 103 | cutPoseTooltip: Cut Select Pose. 104 | pastePoseLabel: Paste 105 | pastePoseTooltip: Paste Select Pose. 106 | pasteNewPoseLabel: Paste As New 107 | pasteNewPoseTooltip: Paste Pose As New. 108 | autoThumbnailMenu: Auto Thumbnail 109 | disableMenuLabel: Disable All 110 | disableMenuTooltip: Disable all items. 111 | enableMenuLabel: Enable All 112 | enableMenuTooltip: Enable all items. 113 | updateMessage: "\u6700\u65B0\u7248\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u304C\u3042\u308A\u307E\u3059\u3002VCC\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002" 114 | thumbnailBg: {fileID: 2800000, guid: 9c605c794272c614d8cf187acf554b3a, type: 3} 115 | headTrackingOption: Head Lock 116 | armTrackingOption: Arm Lock 117 | fingerTrackingOption: Finger Lock 118 | footTrackingOption: Foot Lock 119 | locomotionTrackingOption: Move Lock 120 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/InspectorContext_EN.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e93ff86eafc589649aa3d6cc401a5719 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/InspectorContext_JP.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9115fecda4a9e894ea0d03a34da878e4 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/InspectorContext_KR.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: facf1bf2fe40e384a9ddc0645a18be6b, type: 3} 13 | m_Name: InspectorContext_KR 14 | m_EditorClassIdentifier: 15 | libraryMenuLabel: "\u3010 Library Name \u3011" 16 | libraryMenuTooltip: "\uBA54\uB274\uC5D0 \uD45C\uC2DC\uB418\uB294 \uC774\uB984\uC785\uB2C8\uB2E4." 17 | categoriesLabel: Category List 18 | categoriesTooltip: "\uCE74\uD14C\uACE0\uB9AC\uC758 \uB9AC\uC2A4\uD2B8\uC785\uB2C8\uB2E4." 19 | categoryIconLabel: 20 | categoryIconTooltip: "\uBA54\uB274\uC5D0 \uD45C\uC2DC\uB418\uB294 \uCE74\uD14C\uACE0\uB9AC 21 | \uC544\uC774\uCF58\uC785\uB2C8\uB2E4." 22 | categoryTextLabel: "\u3010 Category Name \u3011" 23 | categoryTextTooltip: "\uBA54\uB274\uC5D0 \uD45C\uC2DC\uB418\uB294 \uCE74\uD14C\uACE0\uB9AC 24 | \uC774\uB984\uC785\uB2C8\uB2E4." 25 | openAllLabel: Open All 26 | openAllTooltip: "\uD56D\uBAA9\uC744 \uBAA8\uB450 \uC5FD\uB2C8\uB2E4." 27 | closeAllLabel: Close All 28 | closeAllTooltip: "\uD56D\uBAA9\uC744 \uBAA8\uB450 \uB2EB\uC2B5\uB2C8\uB2E4." 29 | openLabel: Open 30 | openTooltip: "\uD56D\uBAA9\uC744 \uB2EB\uC2B5\uB2C8\uB2E4." 31 | closeLabel: Close 32 | closeTooltip: "\uB4F1\uB85D\uB41C \uD3EC\uC988 \uB9AC\uC2A4\uD2B8\uC785\uB2C8\uB2E4." 33 | poseListLabel: Pose List 34 | poseListTooltip: "\uC378\uB124\uC77C \uC790\uB3D9 \uCD2C\uC601 \uAE30\uB2A5\uC744 35 | \uD65C\uC131\uD654\uD569\uB2C8\uB2E4." 36 | thumbnailAutoLabel: Auto 37 | thumbnailAutoTooltip: "\uC7AC\uC0DD\uD560 \uC560\uB2C8\uBA54\uC774\uC158 \uD074\uB9BD\uC785\uB2C8\uB2E4." 38 | animationClipLabel: Animation Clip 39 | animationClipTooltip: The animation clip to be played. 40 | trackingSettingsLabel: Tracking Settings 41 | trackingSettingsTooltip: "\uD2B8\uB798\uD0B9 \uC124\uC815\uC785\uB2C8\uB2E4." 42 | isLoopLabel: Is Loop 43 | isLoopTooltip: "\uC560\uB2C8\uBA54\uC774\uC158\uC744 \uBC18\uBCF5 \uC7AC\uC0DD\uD569\uB2C8\uB2E4." 44 | motionSpeedLabel: Motion Speed 45 | motionSpeedTooltip: "\uC560\uB2C8\uBA54\uC774\uC158\uC758 \uC7AC\uC0DD \uC18D\uB3C4 46 | (\uCD08\uAE30\uAC12)\uC785\uB2C8\uB2E4." 47 | dropboxLabel: Drop AnimationClips here to add Poses 48 | dropboxTooltip: "\uC560\uB2C8\uBA54\uC774\uC158\uC744 \uD55C\uAEBC\uBC88\uC5D0 49 | \uB4DC\uB86D\uD558\uBA74 \uD3EC\uC988\uB97C \uC0DD\uC131\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4." 50 | mainThumbnailTooltip: "AvatarPoseLibrary \uC81C\uC791 \uC2A4\uD0DC\uD504\n\n\uBA54\uC778 51 | \uD504\uB85C\uADF8\uB7A8 \uC81C\uC791: Hotate Nekomajin\nhttps://www.hhotatea.com/work/\n\n\uB85C\uACE0 52 | \uC81C\uC791: lowteq\nhttps://x.com/lowteq_neko\n\n\uC0C1\uC810 \uC81C\uC791: 53 | meron-farm\nhttps://meronfarm.booth.pm/" 54 | poseThumbnailTooltip: "\uBA54\uB274\uC5D0 \uD45C\uC2DC\uB420 \uC378\uB124\uC77C 55 | \uC774\uBBF8\uC9C0\uC758 \uBBF8\uB9AC \uBCF4\uAE30\uC785\uB2C8\uB2E4." 56 | posePreviewTooltip: "\uBA54\uB274\uC5D0 \uD45C\uC2DC\uB420 \uC378\uB124\uC77C \uC774\uBBF8\uC9C0\uC758 57 | \uBBF8\uB9AC \uBCF4\uAE30\uC785\uB2C8\uB2E4.\n\uBBF8\uB9AC \uBCF4\uAE30\uC5D0\uC11C\uB294 58 | \uC758\uC0C1 \uB4F1\uC758 \uD45C\uC2DC\uAC00 \uC5B4\uAE0B\uB0A0 \uC218 \uC788\uC9C0\uB9CC, 59 | \uC5C5\uB85C\uB4DC \uC2DC \uB2E4\uC2DC \uCD2C\uC601\uB429\uB2C8\uB2E4." 60 | enableHeightLabel: "\uB192\uC774 \uC870\uC808 \uD65C\uC131\uD654" 61 | enableHeightTooltip: "\uB192\uC774 \uC870\uC808 \uAE30\uB2A5\uC744 \uD65C\uC131\uD654\uD569\uB2C8\uB2E4." 62 | enableSpeedLabel: "\uC18D\uB3C4 \uC870\uC808 \uD65C\uC131\uD654" 63 | enableSpeedTooltip: "\uC18D\uB3C4 \uC870\uC808 \uAE30\uB2A5\uC744 \uD65C\uC131\uD654\uD569\uB2C8\uB2E4." 64 | enableMirrorLabel: "\uBBF8\uB7EC \uAE30\uB2A5 \uD65C\uC131\uD654" 65 | enableMirrorTooltip: "\uBBF8\uB7EC \uAE30\uB2A5\uC744 \uD65C\uC131\uD654\uD569\uB2C8\uB2E4." 66 | enableTrackingLabel: "\uD2B8\uB798\uD0B9 \uAE30\uB2A5 \uD65C\uC131\uD654" 67 | enableTrackingTooltip: "\uD2B8\uB798\uD0B9 \uBA54\uB274\uB97C \uD65C\uC131\uD654\uD569\uB2C8\uB2E4." 68 | enableFxLabel: "\uD45C\uC815 \uAE30\uB2A5 \uD65C\uC131\uD654" 69 | enableFxTooltip: "\uD45C\uC815 \uC560\uB2C8\uBA54\uC774\uC158\uC744 \uD65C\uC131\uD654\uD569\uB2C8\uB2E4." 70 | enablePoseSpace: Follow View Point 71 | enablePoseSpaceTooltip: Move the camera according to the pose. 72 | enableUseCache: Enable Use Cache 73 | enableUseCacheTooltip: Use caching to speed up builds. 74 | createCategoryLabel: Create Category 75 | createCategoryTooltip: Create New Category. 76 | deleteCategoryLabel: Delete Category 77 | deleteCategoryTooltip: Delete Select Category. 78 | copyCategoryLabel: Copy 79 | copyCategoryTooltip: Copy Select Category. 80 | cutCategoryLabel: Cut 81 | cutCategoryTooltip: Cut Select Category. 82 | pasteCategoryLabel: Paste 83 | pasteCategoryTooltip: Paste to Select Category. 84 | pasteNewCategoryLabel: Paste As New 85 | pasteNewCategoryTooltip: Create Copy Category to here. 86 | clearPoseLabel: Clear Pose List 87 | clearPoseTooltip: Delete All Pose. 88 | createPoseLabel: Create Pose 89 | createPoseTooltip: Create New Pose. 90 | deletePoseLabel: Delete Pose 91 | deletePoseTooltip: Delete Select Pose. 92 | copyPoseLabel: Copy 93 | copyPoseTooltip: Copy Select Pose. 94 | cutPoseLabel: Cut 95 | cutPoseTooltip: Cut Select Pose. 96 | pastePoseLabel: Paste 97 | pastePoseTooltip: Paste Select Pose. 98 | pasteNewPoseLabel: Paste As New 99 | pasteNewPoseTooltip: Paste Pose As New. 100 | autoThumbnailMenu: Auto Thumbnail 101 | disableMenuLabel: Disable All 102 | disableMenuTooltip: Disable all items. 103 | enableMenuLabel: Enable All 104 | enableMenuTooltip: Enable all items. 105 | updateMessage: "\u6700\u65B0\u7248\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u304C\u3042\u308A\u307E\u3059\u3002VCC\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002" 106 | thumbnailBg: {fileID: 2800000, guid: 9c605c794272c614d8cf187acf554b3a, type: 3} 107 | headTrackingOption: "\uD5E4\uB4DC" 108 | armTrackingOption: "\uD314 " 109 | fingerTrackingOption: "\uC190\uAC00\uB77D" 110 | footTrackingOption: "\uBC1C " 111 | locomotionTrackingOption: "\uC774\uB3D9 " 112 | fxTrackingOption: "\uD45C\uC815" 113 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/InspectorContext_KR.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fa0d715c573875c40a0fce8469baeb09 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/InspectorContext_zh-cn.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: facf1bf2fe40e384a9ddc0645a18be6b, type: 3} 13 | m_Name: InspectorContext_zh-cn 14 | m_EditorClassIdentifier: 15 | libraryMenuLabel: "\u3010 \u5E93\u540D\u79F0 \u3011" 16 | libraryMenuTooltip: "\u5728\u83DC\u5355\u4E2D\u663E\u793A\u7684\u540D\u79F0\u3002" 17 | categoriesLabel: "\u7C7B\u522B\u6E05\u5355" 18 | categoriesTooltip: "\u7C7B\u522B\u7684\u6E05\u5355\u3002" 19 | categoryIconLabel: 20 | categoryIconTooltip: "\u5728\u83DC\u5355\u4E2D\u663E\u793A\u7684\u7C7B\u522B\u56FE\u6807\u3002" 21 | categoryTextLabel: "\u3010\u7C7B\u522B\u540D\u79F0\u3011" 22 | categoryTextTooltip: "\u5728\u83DC\u5355\u4E2D\u663E\u793A\u7684\u7C7B\u522B\u540D\u79F0\u3002" 23 | openAllLabel: "\u5168\u90E8\u5C55\u5F00" 24 | openAllTooltip: "\u5C55\u5F00\u5168\u90E8\u59FF\u52BF\u9879\u3002" 25 | closeAllLabel: "\u5168\u90E8\u6536\u5408" 26 | closeAllTooltip: "\u6536\u5408\u5168\u90E8\u59FF\u52BF\u9879\u3002" 27 | openLabel: "\u5C55\u5F00" 28 | openTooltip: "\u5C55\u5F00\u4EE5\u67E5\u770B\u3001\u7F16\u8F91\u59FF\u52BF\u9879\u3002" 29 | closeLabel: "\u6536\u5408" 30 | closeTooltip: "\u6536\u5408\u59FF\u52BF\u9879\u3002" 31 | poseListLabel: "\u59FF\u52BF\u6E05\u5355" 32 | poseListTooltip: "\u5DF2\u8BB0\u5F55\u7684\u59FF\u52BF\u7684\u6E05\u5355\u3002" 33 | thumbnailAutoLabel: "\u81EA\u52A8" 34 | thumbnailAutoTooltip: "\u542F\u7528\u81EA\u52A8\u62CD\u6444\u56FE\u6807\u3002" 35 | animationClipLabel: "\u52A8\u753B" 36 | animationClipTooltip: "\u8981\u64AD\u653E\u7684\u52A8\u753B\uFF08Animation Clip\uFF09\u3002" 37 | trackingSettingsLabel: "\u8FFD\u8E2A\u70B9\u8BBE\u5B9A" 38 | trackingSettingsTooltip: "\u8FFD\u8E2A\u70B9\u8BBE\u5B9A" 39 | isLoopLabel: "\u5FAA\u73AF" 40 | isLoopTooltip: "\u5FAA\u73AF\u52A8\u753B\u3002" 41 | motionSpeedLabel: "\u8FD0\u52A8\u901F\u5EA6" 42 | motionSpeedTooltip: "\u52A8\u753B\u521D\u59CB\u64AD\u653E\u901F\u5EA6" 43 | dropboxLabel: "\u5C06\u52A8\u753B\uFF08Animation Clip\uFF09\u62D6\u5165\u81F3\u6B64\u4EE5\u65B0\u589E\u4E3A\u59FF\u52BF" 44 | dropboxTooltip: "\u53EF\u5C06\u52A8\u753B\uFF08Animation Clip\uFF09\u62D6\u5165\u81F3\u6B64\u533A\u57DF\u4EE5\u65B0\u589E\u4E3A\u59FF\u52BF\u3002" 45 | mainThumbnailTooltip: 'AvatarPoseLibrary Staff 46 | 47 | 48 | Main Program: Hotate Nekomajin 49 | 50 | https://www.hhotatea.com/work/ 51 | 52 | 53 | Logo: 54 | lowteq 55 | 56 | https://x.com/lowteq_neko 57 | 58 | 59 | Store: meron-farm 60 | 61 | https://meronfarm.booth.pm/' 62 | poseThumbnailTooltip: "\u9884\u89C8\u5728\u83DC\u5355\u4E2D\u663E\u793A\u7684\u56FE\u6807" 63 | posePreviewTooltip: "\u9884\u89C8\u5728\u83DC\u5355\u4E2D\u663E\u793A\u7684\u56FE\u6807\u3002\n\u9884\u89C8\u65F6\u53EF\u80FD\u4F1A\u51FA\u73B0\u4E00\u4E9B\u663E\u793A\u504F\u79FB\uFF08\u5982\u670D\u88C5\u4F4D\u7F6E\uFF09\uFF0C\u5728\u4E0A\u4F20\u65F6\u4F1A\u91CD\u65B0\u62CD\u6444\u3002" 64 | enableHeightLabel: "\u542F\u7528\u9AD8\u5EA6\u8C03\u6574" 65 | enableHeightTooltip: "\u542F\u7528\u9AD8\u5EA6\u8C03\u6574\u529F\u80FD\u3002" 66 | enableSpeedLabel: "\u542F\u7528\u901F\u5EA6\u8C03\u6574" 67 | enableSpeedTooltip: "\u542F\u7528\u901F\u5EA6\u8C03\u6574\u529F\u80FD\u3002" 68 | enableMirrorLabel: "\u542F\u7528\u955C\u50CF" 69 | enableMirrorTooltip: "\u542F\u7528\u955C\u50CF\u529F\u80FD\u3002" 70 | enableTrackingLabel: "\u542F\u7528\u8FFD\u8E2A\u70B9" 71 | enableTrackingTooltip: "\u542F\u7528\u8FFD\u8E2A\u70B9\u83DC\u5355\u3002" 72 | enableFxLabel: "\u542F\u7528\u9762\u90E8\u8868\u60C5" 73 | enableFxTooltip: "\u542F\u7528\u9762\u90E8\u52A8\u753B\u3002" 74 | enablePoseSpace: Follow View Point 75 | enablePoseSpaceTooltip: Move the camera according to the pose. 76 | enableUseCache: Enable Use Cache 77 | enableUseCacheTooltip: Use caching to speed up builds. 78 | createCategoryLabel: "\u521B\u5EFA\u7C7B\u522B" 79 | createCategoryTooltip: "\u65B0\u5EFA\u7C7B\u522B\u3002" 80 | deleteCategoryLabel: "\u5220\u9664\u7C7B\u522B" 81 | deleteCategoryTooltip: "\u5220\u9664\u9009\u5B9A\u7684\u7C7B\u522B\u3002" 82 | copyCategoryLabel: "\u590D\u5236" 83 | copyCategoryTooltip: "\u590D\u5236\u9009\u5B9A\u7684\u7C7B\u522B\u3002" 84 | cutCategoryLabel: "\u526A\u5207" 85 | cutCategoryTooltip: "\u526A\u5207\u9009\u5B9A\u7684\u7C7B\u522B\u3002" 86 | pasteCategoryLabel: "\u7C98\u8D34" 87 | pasteCategoryTooltip: "\u8986\u76D6\u9009\u5B9A\u7684\u7C7B\u522B\u3002" 88 | pasteNewCategoryLabel: "\u7C98\u8D34\u4E3A\u65B0" 89 | pasteNewCategoryTooltip: "\u5728\u6B64\u5904\u521B\u5EFA\u526F\u672C\u3002" 90 | clearPoseLabel: "\u6E05\u9664\u59FF\u52BF\u5217\u8868" 91 | clearPoseTooltip: "\u5B8C\u5168\u6E05\u9664\u59FF\u52BF\u3002" 92 | createPoseLabel: "\u521B\u5EFA\u59FF\u52BF" 93 | createPoseTooltip: "\u65B0\u5EFA\u59FF\u52BF\u3002" 94 | deletePoseLabel: "\u5220\u9664\u59FF\u52BF" 95 | deletePoseTooltip: "\u5220\u9664\u9009\u4E2D\u7684\u59FF\u52BF\u3002" 96 | copyPoseLabel: "\u590D\u5236" 97 | copyPoseTooltip: "\u590D\u5236\u9009\u5B9A\u59FF\u52BF\u3002" 98 | cutPoseLabel: "\u526A\u5207" 99 | cutPoseTooltip: "\u526A\u5207\u9009\u4E2D\u7684\u59FF\u52BF\u3002" 100 | pastePoseLabel: "\u7C98\u8D34" 101 | pastePoseTooltip: "\u8986\u76D6\u9009\u5B9A\u59FF\u52BF\u3002" 102 | pasteNewPoseLabel: "\u7C98\u8D34\u4E3A\u65B0" 103 | pasteNewPoseTooltip: "\u5728\u6B64\u5904\u521B\u5EFA\u526F\u672C\u3002" 104 | autoThumbnailMenu: "\u81EA\u52A8\u7F29\u7565\u56FE" 105 | disableMenuLabel: "\u5168\u90E8\u7981\u7528" 106 | disableMenuTooltip: "\u6279\u91CF\u542F\u7528\u3002" 107 | enableMenuLabel: "\u5168\u90E8\u542F\u7528" 108 | enableMenuTooltip: "\u6279\u91CF\u7981\u7528\u3002" 109 | updateMessage: "\u6709\u6700\u65B0\u7248\u66F4\u65B0\u3002VCC\u4E2D\u6240\u8FF0\u4FEE\u6539\u76F8\u5E94\u53C2\u6570\u7684\u503C\u3002" 110 | thumbnailBg: {fileID: 2800000, guid: 9c605c794272c614d8cf187acf554b3a, type: 3} 111 | headTrackingOption: "\u56FA\u5B9A\u5934" 112 | armTrackingOption: "\u56FA\u5B9A\u624B\u81C2" 113 | fingerTrackingOption: "\u56FA\u5B9A\u624B\u6307" 114 | footTrackingOption: "\u56FA\u5B9A\u8173" 115 | locomotionTrackingOption: "\u7981\u6B62\u79FB\u52A8" 116 | fxTrackingOption: "\u56FA\u5B9A\u8868\u60C5" 117 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/InspectorContext_zh-cn.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 74a5bf1b51430ec48897f7a9651964cd 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/InspectorContext_zh-hant.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: facf1bf2fe40e384a9ddc0645a18be6b, type: 3} 13 | m_Name: InspectorContext_zh-hant 14 | m_EditorClassIdentifier: 15 | libraryMenuLabel: "\u3010 \u5EAB\u540D\u7A31 \u3011" 16 | libraryMenuTooltip: "\u5728\u9078\u55AE\u4E2D\u986F\u793A\u7684\u540D\u7A31\u3002" 17 | categoriesLabel: "\u985E\u5225\u6E05\u55AE" 18 | categoriesTooltip: "\u985E\u5225\u7684\u6E05\u55AE\u3002" 19 | categoryIconLabel: 20 | categoryIconTooltip: "\u5728\u9078\u55AE\u4E2D\u986F\u793A\u7684\u985E\u5225\u5716\u793A\u3002" 21 | categoryTextLabel: "\u3010 \u985E\u5225\u540D\u7A31 \u3011" 22 | categoryTextTooltip: "\u5728\u9078\u55AE\u4E2D\u986F\u793A\u7684\u985E\u5225\u540D\u7A31\u3002" 23 | openAllLabel: "\u5168\u90E8\u5C55\u958B" 24 | openAllTooltip: "\u5C55\u958B\u5168\u90E8\u59FF\u52E2\u9805\u3002" 25 | closeAllLabel: "\u5168\u90E8\u6536\u5408" 26 | closeAllTooltip: "\u6536\u5408\u5168\u90E8\u59FF\u52E2\u9805\u3002" 27 | openLabel: "\u5C55\u958B" 28 | openTooltip: "\u5C55\u958B\u4EE5\u67E5\u770B\u3001\u7DE8\u8F2F\u59FF\u52E2\u9805\u3002" 29 | closeLabel: "\u6536\u5408" 30 | closeTooltip: "\u6536\u5408\u59FF\u52E2\u9805\u3002" 31 | poseListLabel: "\u59FF\u52E2\u6E05\u55AE" 32 | poseListTooltip: "\u5DF2\u8A18\u9304\u7684\u59FF\u52E2\u7684\u6E05\u55AE\u3002" 33 | thumbnailAutoLabel: "\u81EA\u52D5" 34 | thumbnailAutoTooltip: "\u555F\u7528\u81EA\u52D5\u62CD\u651D\u5716\u793A\u3002" 35 | animationClipLabel: "\u52D5\u756B" 36 | animationClipTooltip: "\u8981\u64AD\u653E\u7684\u52D5\u756B\uFF08Animation Clip\uFF09\u3002" 37 | trackingSettingsLabel: "\u8FFD\u8E64\u9EDE\u8A2D\u5B9A" 38 | trackingSettingsTooltip: "\u8FFD\u8E64\u9EDE\u8A2D\u5B9A" 39 | isLoopLabel: "\u5FAA\u74B0" 40 | isLoopTooltip: "\u5FAA\u74B0\u52D5\u756B\u3002" 41 | motionSpeedLabel: "\u904B\u52D5\u901F\u5EA6" 42 | motionSpeedTooltip: "\u52D5\u756B\u521D\u59CB\u64AD\u653E\u901F\u5EA6" 43 | dropboxLabel: "\u5C07\u52D5\u756B\uFF08Animation Clip\uFF09\u62D6\u5165\u81F3\u6B64\u4EE5\u65B0\u589E\u70BA\u59FF\u52E2" 44 | dropboxTooltip: "\u53EF\u5C07\u52D5\u756B\uFF08Animation Clip\uFF09\u62D6\u5165\u81F3\u6B64\u5340\u57DF\u4EE5\u65B0\u589E\u70BA\u59FF\u52E2\u3002" 45 | mainThumbnailTooltip: 'AvatarPoseLibrary Staff 46 | 47 | 48 | Main Program: Hotate Nekomajin 49 | 50 | https://www.hhotatea.com/work/ 51 | 52 | 53 | Logo: 54 | lowteq 55 | 56 | https://x.com/lowteq_neko 57 | 58 | 59 | Store: meron-farm 60 | 61 | https://meronfarm.booth.pm/' 62 | poseThumbnailTooltip: "\u9810\u89BD\u5728\u9078\u55AE\u4E2D\u986F\u793A\u7684\u5716\u793A" 63 | posePreviewTooltip: "\u9810\u89BD\u5728\u9078\u55AE\u4E2D\u986F\u793A\u7684\u5716\u793A\u3002\n\u9810\u89BD\u6642\u53EF\u80FD\u6703\u51FA\u73FE\u4E00\u4E9B\u986F\u793A\u504F\u79FB\uFF08\u5982\u670D\u88DD\u4F4D\u7F6E\uFF09\uFF0C\u5728\u4E0A\u50B3\u6642\u6703\u91CD\u65B0\u62CD\u651D\u3002" 64 | enableHeightLabel: "\u555F\u7528\u9AD8\u5EA6\u8ABF\u6574" 65 | enableHeightTooltip: "\u555F\u7528\u9AD8\u5EA6\u8ABF\u6574\u529F\u80FD\u3002" 66 | enableSpeedLabel: "\u555F\u7528\u901F\u5EA6\u8ABF\u6574" 67 | enableSpeedTooltip: "\u555F\u7528\u901F\u5EA6\u8ABF\u6574\u529F\u80FD\u3002" 68 | enableMirrorLabel: "\u555F\u7528\u93E1\u50CF" 69 | enableMirrorTooltip: "\u555F\u7528\u93E1\u50CF\u529F\u80FD\u3002" 70 | enableTrackingLabel: "\u555F\u7528\u8FFD\u8E64\u9EDE" 71 | enableTrackingTooltip: "\u555F\u7528\u8FFD\u8E64\u9EDE\u9078\u55AE\u3002" 72 | enableFxLabel: "\u555F\u7528\u9762\u90E8\u8868\u60C5" 73 | enableFxTooltip: "\u555F\u7528\u9762\u90E8\u52D5\u756B\u3002" 74 | enablePoseSpace: Follow View Point 75 | enablePoseSpaceTooltip: Move the camera according to the pose. 76 | enableUseCache: Enable Use Cache 77 | enableUseCacheTooltip: Use caching to speed up builds. 78 | createCategoryLabel: Create Category 79 | createCategoryTooltip: Create New Category. 80 | deleteCategoryLabel: Delete Category 81 | deleteCategoryTooltip: Delete Select Category. 82 | copyCategoryLabel: Copy 83 | copyCategoryTooltip: Copy Select Category. 84 | cutCategoryLabel: Cut 85 | cutCategoryTooltip: Cut Select Category. 86 | pasteCategoryLabel: Paste 87 | pasteCategoryTooltip: Paste to Select Category. 88 | pasteNewCategoryLabel: Paste As New 89 | pasteNewCategoryTooltip: Create Copy Category to here. 90 | clearPoseLabel: Clear Pose List 91 | clearPoseTooltip: Delete All Pose. 92 | createPoseLabel: Create Pose 93 | createPoseTooltip: Create New Pose. 94 | deletePoseLabel: Delete Pose 95 | deletePoseTooltip: Delete Select Pose. 96 | copyPoseLabel: Copy 97 | copyPoseTooltip: Copy Select Pose. 98 | cutPoseLabel: Cut 99 | cutPoseTooltip: Cut Select Pose. 100 | pastePoseLabel: Paste 101 | pastePoseTooltip: Paste Select Pose. 102 | pasteNewPoseLabel: Paste As New 103 | pasteNewPoseTooltip: Paste Pose As New. 104 | autoThumbnailMenu: Auto Thumbnail 105 | disableMenuLabel: Disable All 106 | disableMenuTooltip: Disable all items. 107 | enableMenuLabel: Enable All 108 | enableMenuTooltip: Enable all items. 109 | updateMessage: "\u6700\u65B0\u7248\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u304C\u3042\u308A\u307E\u3059\u3002VCC\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002" 110 | thumbnailBg: {fileID: 2800000, guid: 9c605c794272c614d8cf187acf554b3a, type: 3} 111 | headTrackingOption: "\u56FA\u5B9A\u982D" 112 | armTrackingOption: "\u56FA\u5B9A\u624B\u81C2" 113 | fingerTrackingOption: "\u56FA\u5B9A\u624B\u6307" 114 | footTrackingOption: "\u56FA\u5B9A\u8173" 115 | locomotionTrackingOption: "\u7981\u6B62\u79FB\u52D5" 116 | fxTrackingOption: "\u56FA\u5B9A\u8868\u60C5" 117 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/InspectorContext_zh-hant.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0f195295cf5691f48b89ef4fcc4866e7 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/MenuContext_EN.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: f3b7836422066d745a4b37d64dde53ea, type: 3} 13 | m_Name: MenuContext_EN 14 | m_EditorClassIdentifier: 15 | main: 16 | title: AvatarPoseLibrary 17 | thumbnail: {fileID: 2800000, guid: 53b2d5f6c8499b548ba31de9419a4a70, type: 3} 18 | category: 19 | title: New Category 20 | thumbnail: {fileID: 2800000, guid: 8967b7286c37ddc468abe07cbd5d1681, type: 3} 21 | pose: 22 | title: New Pose 23 | thumbnail: {fileID: 2800000, guid: aae77dadba1d9814cbdf7ab852731f6d, type: 3} 24 | tracking: 25 | title: Trackings 26 | thumbnail: {fileID: 2800000, guid: a66c1c8e3e5b04846b06ef9bc46eda0a, type: 3} 27 | reset: 28 | title: Reset 29 | thumbnail: {fileID: 2800000, guid: 59c1fcfb45762f449a016814ce5532f4, type: 3} 30 | setting: 31 | title: Settings 32 | thumbnail: {fileID: 2800000, guid: b48174cf50086494f91015e974b4406a, type: 3} 33 | height: 34 | title: Height 35 | thumbnail: {fileID: 2800000, guid: 2c83accf528124444b9519d50cf55a91, type: 3} 36 | head: 37 | title: Lock Head 38 | thumbnail: {fileID: 2800000, guid: 4cdc563ba62fc9b4188df6607f013c1e, type: 3} 39 | arm: 40 | title: Lock Arm 41 | thumbnail: {fileID: 2800000, guid: 8b85610814623144a8fce977626eccbf, type: 3} 42 | foot: 43 | title: Lock Foot 44 | thumbnail: {fileID: 2800000, guid: 21855590a2aeb014d878314f8a82b198, type: 3} 45 | finger: 46 | title: Lock Finger 47 | thumbnail: {fileID: 2800000, guid: 006e9ab6b4aaced41b1e418951fcdb54, type: 3} 48 | face: 49 | title: Face FX 50 | thumbnail: {fileID: 2800000, guid: a55e88444cd25474085328e4290fcb8f, type: 3} 51 | speed: 52 | title: Speed 53 | thumbnail: {fileID: 2800000, guid: 614dbb744a5622a4c8dd820707ee4eb0, type: 3} 54 | locomotion: 55 | title: Lock Move 56 | thumbnail: {fileID: 2800000, guid: dd6bb7f632fa6ee43ab5b5495099fc3b, type: 3} 57 | mirror: 58 | title: Mirror 59 | thumbnail: {fileID: 2800000, guid: 93f091fcd0da866409a5af967301e6c8, type: 3} 60 | poseSpace: 61 | title: FollowViewPoint 62 | thumbnail: {fileID: 2800000, guid: 2a78f551d4dcbdf4cb7aa6567dd6b12d, type: 3} 63 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/MenuContext_EN.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a379b4378865fdd44a067a6d733fc5f0 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/MenuContext_JP.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: f3b7836422066d745a4b37d64dde53ea, type: 3} 13 | m_Name: MenuContext_JP 14 | m_EditorClassIdentifier: 15 | main: 16 | title: "\u30A2\u30D0\u30BF\u30FC\u30DD\u30FC\u30BA\u30E9\u30A4\u30D6\u30E9\u30EA\u30FC" 17 | thumbnail: {fileID: 2800000, guid: 53b2d5f6c8499b548ba31de9419a4a70, type: 3} 18 | category: 19 | title: "\u65B0\u3057\u3044\u30AB\u30C6\u30B4\u30EA\u30FC" 20 | thumbnail: {fileID: 2800000, guid: 8967b7286c37ddc468abe07cbd5d1681, type: 3} 21 | pose: 22 | title: "\u65B0\u3057\u3044\u30DD\u30FC\u30BA" 23 | thumbnail: {fileID: 2800000, guid: aae77dadba1d9814cbdf7ab852731f6d, type: 3} 24 | tracking: 25 | title: "\u30C8\u30E9\u30C3\u30AD\u30F3\u30B0\u8A2D\u5B9A" 26 | thumbnail: {fileID: 2800000, guid: a66c1c8e3e5b04846b06ef9bc46eda0a, type: 3} 27 | reset: 28 | title: "\u30EA\u30BB\u30C3\u30C8" 29 | thumbnail: {fileID: 2800000, guid: 59c1fcfb45762f449a016814ce5532f4, type: 3} 30 | setting: 31 | title: "\u8A2D\u5B9A" 32 | thumbnail: {fileID: 2800000, guid: b48174cf50086494f91015e974b4406a, type: 3} 33 | height: 34 | title: "\u9AD8\u3055" 35 | thumbnail: {fileID: 2800000, guid: 2c83accf528124444b9519d50cf55a91, type: 3} 36 | head: 37 | title: "\u982D\u306E\u56FA\u5B9A" 38 | thumbnail: {fileID: 2800000, guid: 4cdc563ba62fc9b4188df6607f013c1e, type: 3} 39 | arm: 40 | title: "\u8155\u306E\u56FA\u5B9A" 41 | thumbnail: {fileID: 2800000, guid: 8b85610814623144a8fce977626eccbf, type: 3} 42 | foot: 43 | title: "\u811A\u306E\u56FA\u5B9A" 44 | thumbnail: {fileID: 2800000, guid: 21855590a2aeb014d878314f8a82b198, type: 3} 45 | finger: 46 | title: "\u6307\u306E\u56FA\u5B9A" 47 | thumbnail: {fileID: 2800000, guid: 006e9ab6b4aaced41b1e418951fcdb54, type: 3} 48 | face: 49 | title: "\u8868\u60C5\u306E\u6709\u52B9\u5316" 50 | thumbnail: {fileID: 2800000, guid: a55e88444cd25474085328e4290fcb8f, type: 3} 51 | speed: 52 | title: "\u518D\u751F\u901F\u5EA6" 53 | thumbnail: {fileID: 2800000, guid: 614dbb744a5622a4c8dd820707ee4eb0, type: 3} 54 | locomotion: 55 | title: "\u79FB\u52D5\u56FA\u5B9A" 56 | thumbnail: {fileID: 2800000, guid: dd6bb7f632fa6ee43ab5b5495099fc3b, type: 3} 57 | mirror: 58 | title: "\u5DE6\u53F3\u53CD\u8EE2" 59 | thumbnail: {fileID: 2800000, guid: 93f091fcd0da866409a5af967301e6c8, type: 3} 60 | poseSpace: 61 | title: FollowViewPoint 62 | thumbnail: {fileID: 2800000, guid: 2a78f551d4dcbdf4cb7aa6567dd6b12d, type: 3} 63 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/MenuContext_JP.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bb5aa47944eb7bc4d96b742e26164cfb 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/MenuContext_KR.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: f3b7836422066d745a4b37d64dde53ea, type: 3} 13 | m_Name: MenuContext_KR 14 | m_EditorClassIdentifier: 15 | main: 16 | title: AvatarPoseLibrary 17 | thumbnail: {fileID: 2800000, guid: 53b2d5f6c8499b548ba31de9419a4a70, type: 3} 18 | category: 19 | title: New Category 20 | thumbnail: {fileID: 2800000, guid: 8967b7286c37ddc468abe07cbd5d1681, type: 3} 21 | pose: 22 | title: New Pose 23 | thumbnail: {fileID: 2800000, guid: aae77dadba1d9814cbdf7ab852731f6d, type: 3} 24 | tracking: 25 | title: Trackings 26 | thumbnail: {fileID: 2800000, guid: a66c1c8e3e5b04846b06ef9bc46eda0a, type: 3} 27 | reset: 28 | title: Reset 29 | thumbnail: {fileID: 2800000, guid: 59c1fcfb45762f449a016814ce5532f4, type: 3} 30 | setting: 31 | title: Settings 32 | thumbnail: {fileID: 2800000, guid: b48174cf50086494f91015e974b4406a, type: 3} 33 | height: 34 | title: Height 35 | thumbnail: {fileID: 2800000, guid: 2c83accf528124444b9519d50cf55a91, type: 3} 36 | head: 37 | title: Lock Head 38 | thumbnail: {fileID: 2800000, guid: 4cdc563ba62fc9b4188df6607f013c1e, type: 3} 39 | arm: 40 | title: Lock Arm 41 | thumbnail: {fileID: 2800000, guid: 8b85610814623144a8fce977626eccbf, type: 3} 42 | foot: 43 | title: Lock Foot 44 | thumbnail: {fileID: 2800000, guid: 21855590a2aeb014d878314f8a82b198, type: 3} 45 | finger: 46 | title: Lock Finger 47 | thumbnail: {fileID: 2800000, guid: 006e9ab6b4aaced41b1e418951fcdb54, type: 3} 48 | face: 49 | title: Face FX 50 | thumbnail: {fileID: 2800000, guid: a55e88444cd25474085328e4290fcb8f, type: 3} 51 | speed: 52 | title: Speed 53 | thumbnail: {fileID: 2800000, guid: 614dbb744a5622a4c8dd820707ee4eb0, type: 3} 54 | locomotion: 55 | title: Lock Move 56 | thumbnail: {fileID: 2800000, guid: dd6bb7f632fa6ee43ab5b5495099fc3b, type: 3} 57 | mirror: 58 | title: Mirror 59 | thumbnail: {fileID: 2800000, guid: 93f091fcd0da866409a5af967301e6c8, type: 3} 60 | poseSpace: 61 | title: FollowViewPoint 62 | thumbnail: {fileID: 2800000, guid: 2a78f551d4dcbdf4cb7aa6567dd6b12d, type: 3} 63 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/MenuContext_KR.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f3244ee3166a7da4da95149d9ee33d2d 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/MenuContext_zh-cn.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: f3b7836422066d745a4b37d64dde53ea, type: 3} 13 | m_Name: MenuContext_zh-cn 14 | m_EditorClassIdentifier: 15 | main: 16 | title: AvatarPoseLibrary 17 | thumbnail: {fileID: 2800000, guid: 53b2d5f6c8499b548ba31de9419a4a70, type: 3} 18 | category: 19 | title: "\u65B0\u7C7B\u522B" 20 | thumbnail: {fileID: 2800000, guid: 8967b7286c37ddc468abe07cbd5d1681, type: 3} 21 | pose: 22 | title: "\u65B0\u59FF\u52BF" 23 | thumbnail: {fileID: 2800000, guid: aae77dadba1d9814cbdf7ab852731f6d, type: 3} 24 | tracking: 25 | title: "\u8FFD\u8E2A\u70B9" 26 | thumbnail: {fileID: 2800000, guid: a66c1c8e3e5b04846b06ef9bc46eda0a, type: 3} 27 | reset: 28 | title: "\u91CD\u7F6E" 29 | thumbnail: {fileID: 2800000, guid: 59c1fcfb45762f449a016814ce5532f4, type: 3} 30 | setting: 31 | title: "\u8BBE\u5B9A" 32 | thumbnail: {fileID: 2800000, guid: b48174cf50086494f91015e974b4406a, type: 3} 33 | height: 34 | title: "\u9AD8\u5EA6" 35 | thumbnail: {fileID: 2800000, guid: 2c83accf528124444b9519d50cf55a91, type: 3} 36 | head: 37 | title: "\u56FA\u5B9A\u5934\u90E8" 38 | thumbnail: {fileID: 2800000, guid: 4cdc563ba62fc9b4188df6607f013c1e, type: 3} 39 | arm: 40 | title: "\u56FA\u5B9A\u624B\u81C2" 41 | thumbnail: {fileID: 2800000, guid: 8b85610814623144a8fce977626eccbf, type: 3} 42 | foot: 43 | title: "\u56FA\u5B9A\u817F" 44 | thumbnail: {fileID: 2800000, guid: 21855590a2aeb014d878314f8a82b198, type: 3} 45 | finger: 46 | title: "\u56FA\u5B9A\u624B\u6307" 47 | thumbnail: {fileID: 2800000, guid: 006e9ab6b4aaced41b1e418951fcdb54, type: 3} 48 | face: 49 | title: "\u8868\u60C5" 50 | thumbnail: {fileID: 2800000, guid: a55e88444cd25474085328e4290fcb8f, type: 3} 51 | speed: 52 | title: "\u901F\u5EA6" 53 | thumbnail: {fileID: 2800000, guid: 614dbb744a5622a4c8dd820707ee4eb0, type: 3} 54 | locomotion: 55 | title: "\u7981\u6B62\u79FB\u52A8" 56 | thumbnail: {fileID: 2800000, guid: dd6bb7f632fa6ee43ab5b5495099fc3b, type: 3} 57 | mirror: 58 | title: "\u955C\u50CF" 59 | thumbnail: {fileID: 2800000, guid: 93f091fcd0da866409a5af967301e6c8, type: 3} 60 | poseSpace: 61 | title: FollowViewPoint 62 | thumbnail: {fileID: 2800000, guid: 2a78f551d4dcbdf4cb7aa6567dd6b12d, type: 3} 63 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/MenuContext_zh-cn.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ee34de5c05769784bb0812dabb5c1db3 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/MenuContext_zh-hant.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: f3b7836422066d745a4b37d64dde53ea, type: 3} 13 | m_Name: MenuContext_zh-hant 14 | m_EditorClassIdentifier: 15 | main: 16 | title: AvatarPoseLibrary 17 | thumbnail: {fileID: 2800000, guid: 53b2d5f6c8499b548ba31de9419a4a70, type: 3} 18 | category: 19 | title: "\u65B0\u985E\u5225" 20 | thumbnail: {fileID: 2800000, guid: 8967b7286c37ddc468abe07cbd5d1681, type: 3} 21 | pose: 22 | title: "\u65B0\u59FF\u52E2" 23 | thumbnail: {fileID: 2800000, guid: aae77dadba1d9814cbdf7ab852731f6d, type: 3} 24 | tracking: 25 | title: "\u8FFD\u8E64\u9EDE" 26 | thumbnail: {fileID: 2800000, guid: a66c1c8e3e5b04846b06ef9bc46eda0a, type: 3} 27 | reset: 28 | title: "\u91CD\u7F6E" 29 | thumbnail: {fileID: 2800000, guid: 59c1fcfb45762f449a016814ce5532f4, type: 3} 30 | setting: 31 | title: "\u8A2D\u5B9A" 32 | thumbnail: {fileID: 2800000, guid: b48174cf50086494f91015e974b4406a, type: 3} 33 | height: 34 | title: "\u9AD8\u5EA6" 35 | thumbnail: {fileID: 2800000, guid: 2c83accf528124444b9519d50cf55a91, type: 3} 36 | head: 37 | title: "\u56FA\u5B9A\u982D\u90E8" 38 | thumbnail: {fileID: 2800000, guid: 4cdc563ba62fc9b4188df6607f013c1e, type: 3} 39 | arm: 40 | title: "\u56FA\u5B9A\u624B\u81C2" 41 | thumbnail: {fileID: 2800000, guid: 8b85610814623144a8fce977626eccbf, type: 3} 42 | foot: 43 | title: "\u56FA\u5B9A\u817F" 44 | thumbnail: {fileID: 2800000, guid: 21855590a2aeb014d878314f8a82b198, type: 3} 45 | finger: 46 | title: "\u56FA\u5B9A\u624B\u6307" 47 | thumbnail: {fileID: 2800000, guid: 006e9ab6b4aaced41b1e418951fcdb54, type: 3} 48 | face: 49 | title: "\u8868\u60C5" 50 | thumbnail: {fileID: 2800000, guid: a55e88444cd25474085328e4290fcb8f, type: 3} 51 | speed: 52 | title: "\u901F\u5EA6" 53 | thumbnail: {fileID: 2800000, guid: 614dbb744a5622a4c8dd820707ee4eb0, type: 3} 54 | locomotion: 55 | title: "\u7981\u6B62\u79FB\u52D5" 56 | thumbnail: {fileID: 2800000, guid: dd6bb7f632fa6ee43ab5b5495099fc3b, type: 3} 57 | mirror: 58 | title: "\u93E1\u50CF" 59 | thumbnail: {fileID: 2800000, guid: 93f091fcd0da866409a5af967301e6c8, type: 3} 60 | poseSpace: 61 | title: FollowViewPoint 62 | thumbnail: {fileID: 2800000, guid: 2a78f551d4dcbdf4cb7aa6567dd6b12d, type: 3} 63 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/MenuContext_zh-hant.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c361ad81e0411e145adcce565a33ae44 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/NoneAnimation.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 24648a73074cb054f99273b4c9f44b43 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 7400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/Settings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: 0590e1b030db8b84195bb25ea9128bd2, type: 3} 13 | m_Name: Settings 14 | m_EditorClassIdentifier: 15 | menuContext: {fileID: 11400000, guid: a379b4378865fdd44a067a6d733fc5f0, type: 2} 16 | inspectorContext: {fileID: 11400000, guid: e93ff86eafc589649aa3d6cc401a5719, type: 2} 17 | localContexts: 18 | - language: 22 19 | menuContext: {fileID: 11400000, guid: bb5aa47944eb7bc4d96b742e26164cfb, type: 2} 20 | inspectorContext: {fileID: 11400000, guid: 9115fecda4a9e894ea0d03a34da878e4, type: 2} 21 | - language: 23 22 | menuContext: {fileID: 11400000, guid: f3244ee3166a7da4da95149d9ee33d2d, type: 2} 23 | inspectorContext: {fileID: 11400000, guid: fa0d715c573875c40a0fce8469baeb09, type: 2} 24 | - language: 41 25 | menuContext: {fileID: 11400000, guid: c361ad81e0411e145adcce565a33ae44, type: 2} 26 | inspectorContext: {fileID: 11400000, guid: 0f195295cf5691f48b89ef4fcc4866e7, type: 2} 27 | - language: 40 28 | menuContext: {fileID: 11400000, guid: ee34de5c05769784bb0812dabb5c1db3, type: 2} 29 | inspectorContext: {fileID: 11400000, guid: 74a5bf1b51430ec48897f7a9651964cd, type: 2} 30 | thumbnailLayer: 4 31 | texSize: 64 32 | motionLong: 15 33 | motionDuration: 0.5 34 | motionNoiseScale: 0.6 35 | minMaxHeight: 1.5 36 | lookAtFace: 0.8 37 | fieldOfView: 30 38 | cameraDistance: 0.8 39 | cameraOffset: {x: 0, y: 0.1, z: 0} 40 | defaultAnimation: {fileID: 7400000, guid: 24648a73074cb054f99273b4c9f44b43, type: 2} 41 | poseSpaceMenu: 1 42 | cachePath: Assets/~APLCache 43 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/Settings.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ca5572910cc499a4faf1a7986787d6e2 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/arm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HhotateA/AvatarPoseLibrary/153af0f36f4ef7853c08002292f974f980d7dc62/Packages/com.hhotatea.avatar-pose-library/Resources/arm.png -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/arm.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8b85610814623144a8fce977626eccbf 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | flipGreenChannel: 0 24 | isReadable: 0 25 | streamingMipmaps: 0 26 | streamingMipmapsPriority: 0 27 | vTOnly: 0 28 | ignoreMipmapLimit: 0 29 | grayScaleToAlpha: 0 30 | generateCubemap: 6 31 | cubemapConvolution: 0 32 | seamlessCubemap: 0 33 | textureFormat: 1 34 | maxTextureSize: 2048 35 | textureSettings: 36 | serializedVersion: 2 37 | filterMode: 1 38 | aniso: 1 39 | mipBias: 0 40 | wrapU: 0 41 | wrapV: 0 42 | wrapW: 0 43 | nPOTScale: 1 44 | lightmap: 0 45 | compressionQuality: 50 46 | spriteMode: 1 47 | spriteExtrude: 1 48 | spriteMeshType: 1 49 | alignment: 0 50 | spritePivot: {x: 0.5, y: 0.5} 51 | spritePixelsToUnits: 100 52 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 53 | spriteGenerateFallbackPhysicsShape: 1 54 | alphaUsage: 1 55 | alphaIsTransparency: 1 56 | spriteTessellationDetail: -1 57 | textureType: 8 58 | textureShape: 1 59 | singleChannelComponent: 0 60 | flipbookRows: 1 61 | flipbookColumns: 1 62 | maxTextureSizeSet: 0 63 | compressionQualitySet: 0 64 | textureFormatSet: 0 65 | ignorePngGamma: 0 66 | applyGammaDecoding: 0 67 | swizzle: 50462976 68 | cookieLightType: 0 69 | platformSettings: 70 | - serializedVersion: 3 71 | buildTarget: DefaultTexturePlatform 72 | maxTextureSize: 128 73 | resizeAlgorithm: 0 74 | textureFormat: -1 75 | textureCompression: 1 76 | compressionQuality: 50 77 | crunchedCompression: 0 78 | allowsAlphaSplitting: 0 79 | overridden: 0 80 | ignorePlatformSupport: 0 81 | androidETC2FallbackOverride: 0 82 | forceMaximumCompressionQuality_BC6H_BC7: 0 83 | - serializedVersion: 3 84 | buildTarget: Standalone 85 | maxTextureSize: 2048 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | ignorePlatformSupport: 0 94 | androidETC2FallbackOverride: 0 95 | forceMaximumCompressionQuality_BC6H_BC7: 0 96 | - serializedVersion: 3 97 | buildTarget: Android 98 | maxTextureSize: 2048 99 | resizeAlgorithm: 0 100 | textureFormat: -1 101 | textureCompression: 1 102 | compressionQuality: 50 103 | crunchedCompression: 0 104 | allowsAlphaSplitting: 0 105 | overridden: 0 106 | ignorePlatformSupport: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | spriteSheet: 110 | serializedVersion: 2 111 | sprites: [] 112 | outline: [] 113 | physicsShape: [] 114 | bones: [] 115 | spriteID: 5e97eb03825dee720800000000000000 116 | internalID: 0 117 | vertices: [] 118 | indices: 119 | edges: [] 120 | weights: [] 121 | secondaryTextures: [] 122 | nameFileIdTable: {} 123 | mipmapLimitGroupName: 124 | pSDRemoveMatte: 0 125 | userData: 126 | assetBundleName: 127 | assetBundleVariant: 128 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HhotateA/AvatarPoseLibrary/153af0f36f4ef7853c08002292f974f980d7dc62/Packages/com.hhotatea.avatar-pose-library/Resources/bg.png -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/bg.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9c605c794272c614d8cf187acf554b3a 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | flipGreenChannel: 0 24 | isReadable: 0 25 | streamingMipmaps: 0 26 | streamingMipmapsPriority: 0 27 | vTOnly: 0 28 | ignoreMipmapLimit: 0 29 | grayScaleToAlpha: 0 30 | generateCubemap: 6 31 | cubemapConvolution: 0 32 | seamlessCubemap: 0 33 | textureFormat: 1 34 | maxTextureSize: 2048 35 | textureSettings: 36 | serializedVersion: 2 37 | filterMode: 1 38 | aniso: 1 39 | mipBias: 0 40 | wrapU: 0 41 | wrapV: 0 42 | wrapW: 0 43 | nPOTScale: 0 44 | lightmap: 0 45 | compressionQuality: 50 46 | spriteMode: 1 47 | spriteExtrude: 1 48 | spriteMeshType: 1 49 | alignment: 0 50 | spritePivot: {x: 0.5, y: 0.5} 51 | spritePixelsToUnits: 100 52 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 53 | spriteGenerateFallbackPhysicsShape: 1 54 | alphaUsage: 1 55 | alphaIsTransparency: 0 56 | spriteTessellationDetail: -1 57 | textureType: 0 58 | textureShape: 1 59 | singleChannelComponent: 0 60 | flipbookRows: 1 61 | flipbookColumns: 1 62 | maxTextureSizeSet: 0 63 | compressionQualitySet: 0 64 | textureFormatSet: 0 65 | ignorePngGamma: 0 66 | applyGammaDecoding: 0 67 | swizzle: 50462976 68 | cookieLightType: 0 69 | platformSettings: 70 | - serializedVersion: 3 71 | buildTarget: DefaultTexturePlatform 72 | maxTextureSize: 256 73 | resizeAlgorithm: 0 74 | textureFormat: -1 75 | textureCompression: 1 76 | compressionQuality: 50 77 | crunchedCompression: 0 78 | allowsAlphaSplitting: 0 79 | overridden: 0 80 | ignorePlatformSupport: 0 81 | androidETC2FallbackOverride: 0 82 | forceMaximumCompressionQuality_BC6H_BC7: 0 83 | - serializedVersion: 3 84 | buildTarget: Standalone 85 | maxTextureSize: 2048 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | ignorePlatformSupport: 0 94 | androidETC2FallbackOverride: 0 95 | forceMaximumCompressionQuality_BC6H_BC7: 0 96 | - serializedVersion: 3 97 | buildTarget: Android 98 | maxTextureSize: 2048 99 | resizeAlgorithm: 0 100 | textureFormat: -1 101 | textureCompression: 1 102 | compressionQuality: 50 103 | crunchedCompression: 0 104 | allowsAlphaSplitting: 0 105 | overridden: 0 106 | ignorePlatformSupport: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | spriteSheet: 110 | serializedVersion: 2 111 | sprites: [] 112 | outline: [] 113 | physicsShape: [] 114 | bones: [] 115 | spriteID: 5e97eb03825dee720800000000000000 116 | internalID: 0 117 | vertices: [] 118 | indices: 119 | edges: [] 120 | weights: [] 121 | secondaryTextures: [] 122 | nameFileIdTable: {} 123 | mipmapLimitGroupName: 124 | pSDRemoveMatte: 0 125 | userData: 126 | assetBundleName: 127 | assetBundleVariant: 128 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/finger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HhotateA/AvatarPoseLibrary/153af0f36f4ef7853c08002292f974f980d7dc62/Packages/com.hhotatea.avatar-pose-library/Resources/finger.png -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/finger.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 006e9ab6b4aaced41b1e418951fcdb54 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | flipGreenChannel: 0 24 | isReadable: 0 25 | streamingMipmaps: 0 26 | streamingMipmapsPriority: 0 27 | vTOnly: 0 28 | ignoreMipmapLimit: 0 29 | grayScaleToAlpha: 0 30 | generateCubemap: 6 31 | cubemapConvolution: 0 32 | seamlessCubemap: 0 33 | textureFormat: 1 34 | maxTextureSize: 2048 35 | textureSettings: 36 | serializedVersion: 2 37 | filterMode: 1 38 | aniso: 1 39 | mipBias: 0 40 | wrapU: 0 41 | wrapV: 0 42 | wrapW: 0 43 | nPOTScale: 1 44 | lightmap: 0 45 | compressionQuality: 50 46 | spriteMode: 1 47 | spriteExtrude: 1 48 | spriteMeshType: 1 49 | alignment: 0 50 | spritePivot: {x: 0.5, y: 0.5} 51 | spritePixelsToUnits: 100 52 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 53 | spriteGenerateFallbackPhysicsShape: 1 54 | alphaUsage: 1 55 | alphaIsTransparency: 1 56 | spriteTessellationDetail: -1 57 | textureType: 8 58 | textureShape: 1 59 | singleChannelComponent: 0 60 | flipbookRows: 1 61 | flipbookColumns: 1 62 | maxTextureSizeSet: 0 63 | compressionQualitySet: 0 64 | textureFormatSet: 0 65 | ignorePngGamma: 0 66 | applyGammaDecoding: 0 67 | swizzle: 50462976 68 | cookieLightType: 0 69 | platformSettings: 70 | - serializedVersion: 3 71 | buildTarget: DefaultTexturePlatform 72 | maxTextureSize: 128 73 | resizeAlgorithm: 0 74 | textureFormat: -1 75 | textureCompression: 1 76 | compressionQuality: 50 77 | crunchedCompression: 0 78 | allowsAlphaSplitting: 0 79 | overridden: 0 80 | ignorePlatformSupport: 0 81 | androidETC2FallbackOverride: 0 82 | forceMaximumCompressionQuality_BC6H_BC7: 0 83 | - serializedVersion: 3 84 | buildTarget: Standalone 85 | maxTextureSize: 2048 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | ignorePlatformSupport: 0 94 | androidETC2FallbackOverride: 0 95 | forceMaximumCompressionQuality_BC6H_BC7: 0 96 | - serializedVersion: 3 97 | buildTarget: Android 98 | maxTextureSize: 2048 99 | resizeAlgorithm: 0 100 | textureFormat: -1 101 | textureCompression: 1 102 | compressionQuality: 50 103 | crunchedCompression: 0 104 | allowsAlphaSplitting: 0 105 | overridden: 0 106 | ignorePlatformSupport: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | spriteSheet: 110 | serializedVersion: 2 111 | sprites: [] 112 | outline: [] 113 | physicsShape: [] 114 | bones: [] 115 | spriteID: 5e97eb03825dee720800000000000000 116 | internalID: 0 117 | vertices: [] 118 | indices: 119 | edges: [] 120 | weights: [] 121 | secondaryTextures: [] 122 | nameFileIdTable: {} 123 | mipmapLimitGroupName: 124 | pSDRemoveMatte: 0 125 | userData: 126 | assetBundleName: 127 | assetBundleVariant: 128 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/foot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HhotateA/AvatarPoseLibrary/153af0f36f4ef7853c08002292f974f980d7dc62/Packages/com.hhotatea.avatar-pose-library/Resources/foot.png -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/foot.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 21855590a2aeb014d878314f8a82b198 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | flipGreenChannel: 0 24 | isReadable: 0 25 | streamingMipmaps: 0 26 | streamingMipmapsPriority: 0 27 | vTOnly: 0 28 | ignoreMipmapLimit: 0 29 | grayScaleToAlpha: 0 30 | generateCubemap: 6 31 | cubemapConvolution: 0 32 | seamlessCubemap: 0 33 | textureFormat: 1 34 | maxTextureSize: 2048 35 | textureSettings: 36 | serializedVersion: 2 37 | filterMode: 1 38 | aniso: 1 39 | mipBias: 0 40 | wrapU: 0 41 | wrapV: 0 42 | wrapW: 0 43 | nPOTScale: 1 44 | lightmap: 0 45 | compressionQuality: 50 46 | spriteMode: 1 47 | spriteExtrude: 1 48 | spriteMeshType: 1 49 | alignment: 0 50 | spritePivot: {x: 0.5, y: 0.5} 51 | spritePixelsToUnits: 100 52 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 53 | spriteGenerateFallbackPhysicsShape: 1 54 | alphaUsage: 1 55 | alphaIsTransparency: 1 56 | spriteTessellationDetail: -1 57 | textureType: 8 58 | textureShape: 1 59 | singleChannelComponent: 0 60 | flipbookRows: 1 61 | flipbookColumns: 1 62 | maxTextureSizeSet: 0 63 | compressionQualitySet: 0 64 | textureFormatSet: 0 65 | ignorePngGamma: 0 66 | applyGammaDecoding: 0 67 | swizzle: 50462976 68 | cookieLightType: 0 69 | platformSettings: 70 | - serializedVersion: 3 71 | buildTarget: DefaultTexturePlatform 72 | maxTextureSize: 128 73 | resizeAlgorithm: 0 74 | textureFormat: -1 75 | textureCompression: 1 76 | compressionQuality: 50 77 | crunchedCompression: 0 78 | allowsAlphaSplitting: 0 79 | overridden: 0 80 | ignorePlatformSupport: 0 81 | androidETC2FallbackOverride: 0 82 | forceMaximumCompressionQuality_BC6H_BC7: 0 83 | - serializedVersion: 3 84 | buildTarget: Standalone 85 | maxTextureSize: 2048 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | ignorePlatformSupport: 0 94 | androidETC2FallbackOverride: 0 95 | forceMaximumCompressionQuality_BC6H_BC7: 0 96 | - serializedVersion: 3 97 | buildTarget: Android 98 | maxTextureSize: 2048 99 | resizeAlgorithm: 0 100 | textureFormat: -1 101 | textureCompression: 1 102 | compressionQuality: 50 103 | crunchedCompression: 0 104 | allowsAlphaSplitting: 0 105 | overridden: 0 106 | ignorePlatformSupport: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | spriteSheet: 110 | serializedVersion: 2 111 | sprites: [] 112 | outline: [] 113 | physicsShape: [] 114 | bones: [] 115 | spriteID: 5e97eb03825dee720800000000000000 116 | internalID: 0 117 | vertices: [] 118 | indices: 119 | edges: [] 120 | weights: [] 121 | secondaryTextures: [] 122 | nameFileIdTable: {} 123 | mipmapLimitGroupName: 124 | pSDRemoveMatte: 0 125 | userData: 126 | assetBundleName: 127 | assetBundleVariant: 128 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/fx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HhotateA/AvatarPoseLibrary/153af0f36f4ef7853c08002292f974f980d7dc62/Packages/com.hhotatea.avatar-pose-library/Resources/fx.png -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/fx.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a55e88444cd25474085328e4290fcb8f 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | flipGreenChannel: 0 24 | isReadable: 0 25 | streamingMipmaps: 0 26 | streamingMipmapsPriority: 0 27 | vTOnly: 0 28 | ignoreMipmapLimit: 0 29 | grayScaleToAlpha: 0 30 | generateCubemap: 6 31 | cubemapConvolution: 0 32 | seamlessCubemap: 0 33 | textureFormat: 1 34 | maxTextureSize: 2048 35 | textureSettings: 36 | serializedVersion: 2 37 | filterMode: 1 38 | aniso: 1 39 | mipBias: 0 40 | wrapU: 0 41 | wrapV: 0 42 | wrapW: 0 43 | nPOTScale: 0 44 | lightmap: 0 45 | compressionQuality: 50 46 | spriteMode: 1 47 | spriteExtrude: 1 48 | spriteMeshType: 1 49 | alignment: 0 50 | spritePivot: {x: 0.5, y: 0.5} 51 | spritePixelsToUnits: 100 52 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 53 | spriteGenerateFallbackPhysicsShape: 1 54 | alphaUsage: 1 55 | alphaIsTransparency: 1 56 | spriteTessellationDetail: -1 57 | textureType: 8 58 | textureShape: 1 59 | singleChannelComponent: 0 60 | flipbookRows: 1 61 | flipbookColumns: 1 62 | maxTextureSizeSet: 0 63 | compressionQualitySet: 0 64 | textureFormatSet: 0 65 | ignorePngGamma: 0 66 | applyGammaDecoding: 0 67 | swizzle: 50462976 68 | cookieLightType: 0 69 | platformSettings: 70 | - serializedVersion: 3 71 | buildTarget: DefaultTexturePlatform 72 | maxTextureSize: 128 73 | resizeAlgorithm: 0 74 | textureFormat: -1 75 | textureCompression: 1 76 | compressionQuality: 50 77 | crunchedCompression: 0 78 | allowsAlphaSplitting: 0 79 | overridden: 0 80 | ignorePlatformSupport: 0 81 | androidETC2FallbackOverride: 0 82 | forceMaximumCompressionQuality_BC6H_BC7: 0 83 | - serializedVersion: 3 84 | buildTarget: Standalone 85 | maxTextureSize: 2048 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | ignorePlatformSupport: 0 94 | androidETC2FallbackOverride: 0 95 | forceMaximumCompressionQuality_BC6H_BC7: 0 96 | - serializedVersion: 3 97 | buildTarget: Android 98 | maxTextureSize: 2048 99 | resizeAlgorithm: 0 100 | textureFormat: -1 101 | textureCompression: 1 102 | compressionQuality: 50 103 | crunchedCompression: 0 104 | allowsAlphaSplitting: 0 105 | overridden: 0 106 | ignorePlatformSupport: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | spriteSheet: 110 | serializedVersion: 2 111 | sprites: [] 112 | outline: [] 113 | physicsShape: [] 114 | bones: [] 115 | spriteID: 5e97eb03825dee720800000000000000 116 | internalID: 0 117 | vertices: [] 118 | indices: 119 | edges: [] 120 | weights: [] 121 | secondaryTextures: [] 122 | nameFileIdTable: {} 123 | mipmapLimitGroupName: 124 | pSDRemoveMatte: 0 125 | userData: 126 | assetBundleName: 127 | assetBundleVariant: 128 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/head.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HhotateA/AvatarPoseLibrary/153af0f36f4ef7853c08002292f974f980d7dc62/Packages/com.hhotatea.avatar-pose-library/Resources/head.png -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/head.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4cdc563ba62fc9b4188df6607f013c1e 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | flipGreenChannel: 0 24 | isReadable: 0 25 | streamingMipmaps: 0 26 | streamingMipmapsPriority: 0 27 | vTOnly: 0 28 | ignoreMipmapLimit: 0 29 | grayScaleToAlpha: 0 30 | generateCubemap: 6 31 | cubemapConvolution: 0 32 | seamlessCubemap: 0 33 | textureFormat: 1 34 | maxTextureSize: 2048 35 | textureSettings: 36 | serializedVersion: 2 37 | filterMode: 1 38 | aniso: 1 39 | mipBias: 0 40 | wrapU: 0 41 | wrapV: 0 42 | wrapW: 0 43 | nPOTScale: 1 44 | lightmap: 0 45 | compressionQuality: 50 46 | spriteMode: 1 47 | spriteExtrude: 1 48 | spriteMeshType: 1 49 | alignment: 0 50 | spritePivot: {x: 0.5, y: 0.5} 51 | spritePixelsToUnits: 100 52 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 53 | spriteGenerateFallbackPhysicsShape: 1 54 | alphaUsage: 1 55 | alphaIsTransparency: 1 56 | spriteTessellationDetail: -1 57 | textureType: 8 58 | textureShape: 1 59 | singleChannelComponent: 0 60 | flipbookRows: 1 61 | flipbookColumns: 1 62 | maxTextureSizeSet: 0 63 | compressionQualitySet: 0 64 | textureFormatSet: 0 65 | ignorePngGamma: 0 66 | applyGammaDecoding: 0 67 | swizzle: 50462976 68 | cookieLightType: 0 69 | platformSettings: 70 | - serializedVersion: 3 71 | buildTarget: DefaultTexturePlatform 72 | maxTextureSize: 128 73 | resizeAlgorithm: 0 74 | textureFormat: -1 75 | textureCompression: 1 76 | compressionQuality: 50 77 | crunchedCompression: 0 78 | allowsAlphaSplitting: 0 79 | overridden: 0 80 | ignorePlatformSupport: 0 81 | androidETC2FallbackOverride: 0 82 | forceMaximumCompressionQuality_BC6H_BC7: 0 83 | - serializedVersion: 3 84 | buildTarget: Standalone 85 | maxTextureSize: 2048 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | ignorePlatformSupport: 0 94 | androidETC2FallbackOverride: 0 95 | forceMaximumCompressionQuality_BC6H_BC7: 0 96 | - serializedVersion: 3 97 | buildTarget: Android 98 | maxTextureSize: 2048 99 | resizeAlgorithm: 0 100 | textureFormat: -1 101 | textureCompression: 1 102 | compressionQuality: 50 103 | crunchedCompression: 0 104 | allowsAlphaSplitting: 0 105 | overridden: 0 106 | ignorePlatformSupport: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | spriteSheet: 110 | serializedVersion: 2 111 | sprites: [] 112 | outline: [] 113 | physicsShape: [] 114 | bones: [] 115 | spriteID: 5e97eb03825dee720800000000000000 116 | internalID: 0 117 | vertices: [] 118 | indices: 119 | edges: [] 120 | weights: [] 121 | secondaryTextures: [] 122 | nameFileIdTable: {} 123 | mipmapLimitGroupName: 124 | pSDRemoveMatte: 0 125 | userData: 126 | assetBundleName: 127 | assetBundleVariant: 128 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/height.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HhotateA/AvatarPoseLibrary/153af0f36f4ef7853c08002292f974f980d7dc62/Packages/com.hhotatea.avatar-pose-library/Resources/height.png -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/height.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2c83accf528124444b9519d50cf55a91 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | flipGreenChannel: 0 24 | isReadable: 0 25 | streamingMipmaps: 0 26 | streamingMipmapsPriority: 0 27 | vTOnly: 0 28 | ignoreMipmapLimit: 0 29 | grayScaleToAlpha: 0 30 | generateCubemap: 6 31 | cubemapConvolution: 0 32 | seamlessCubemap: 0 33 | textureFormat: 1 34 | maxTextureSize: 2048 35 | textureSettings: 36 | serializedVersion: 2 37 | filterMode: 1 38 | aniso: 1 39 | mipBias: 0 40 | wrapU: 1 41 | wrapV: 1 42 | wrapW: 0 43 | nPOTScale: 0 44 | lightmap: 0 45 | compressionQuality: 50 46 | spriteMode: 1 47 | spriteExtrude: 1 48 | spriteMeshType: 1 49 | alignment: 0 50 | spritePivot: {x: 0.5, y: 0.5} 51 | spritePixelsToUnits: 100 52 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 53 | spriteGenerateFallbackPhysicsShape: 1 54 | alphaUsage: 1 55 | alphaIsTransparency: 1 56 | spriteTessellationDetail: -1 57 | textureType: 8 58 | textureShape: 1 59 | singleChannelComponent: 0 60 | flipbookRows: 1 61 | flipbookColumns: 1 62 | maxTextureSizeSet: 0 63 | compressionQualitySet: 0 64 | textureFormatSet: 0 65 | ignorePngGamma: 0 66 | applyGammaDecoding: 0 67 | swizzle: 50462976 68 | cookieLightType: 0 69 | platformSettings: 70 | - serializedVersion: 3 71 | buildTarget: DefaultTexturePlatform 72 | maxTextureSize: 128 73 | resizeAlgorithm: 0 74 | textureFormat: -1 75 | textureCompression: 1 76 | compressionQuality: 50 77 | crunchedCompression: 0 78 | allowsAlphaSplitting: 0 79 | overridden: 0 80 | ignorePlatformSupport: 0 81 | androidETC2FallbackOverride: 0 82 | forceMaximumCompressionQuality_BC6H_BC7: 0 83 | - serializedVersion: 3 84 | buildTarget: Standalone 85 | maxTextureSize: 2048 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | ignorePlatformSupport: 0 94 | androidETC2FallbackOverride: 0 95 | forceMaximumCompressionQuality_BC6H_BC7: 0 96 | - serializedVersion: 3 97 | buildTarget: Android 98 | maxTextureSize: 2048 99 | resizeAlgorithm: 0 100 | textureFormat: -1 101 | textureCompression: 1 102 | compressionQuality: 50 103 | crunchedCompression: 0 104 | allowsAlphaSplitting: 0 105 | overridden: 0 106 | ignorePlatformSupport: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | spriteSheet: 110 | serializedVersion: 2 111 | sprites: [] 112 | outline: [] 113 | physicsShape: [] 114 | bones: [] 115 | spriteID: 5e97eb03825dee720800000000000000 116 | internalID: 0 117 | vertices: [] 118 | indices: 119 | edges: [] 120 | weights: [] 121 | secondaryTextures: [] 122 | nameFileIdTable: {} 123 | mipmapLimitGroupName: 124 | pSDRemoveMatte: 0 125 | userData: 126 | assetBundleName: 127 | assetBundleVariant: 128 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/icom_main.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HhotateA/AvatarPoseLibrary/153af0f36f4ef7853c08002292f974f980d7dc62/Packages/com.hhotatea.avatar-pose-library/Resources/icom_main.png -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/icom_main.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8967b7286c37ddc468abe07cbd5d1681 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | flipGreenChannel: 0 24 | isReadable: 0 25 | streamingMipmaps: 0 26 | streamingMipmapsPriority: 0 27 | vTOnly: 0 28 | ignoreMipmapLimit: 0 29 | grayScaleToAlpha: 0 30 | generateCubemap: 6 31 | cubemapConvolution: 0 32 | seamlessCubemap: 0 33 | textureFormat: 1 34 | maxTextureSize: 2048 35 | textureSettings: 36 | serializedVersion: 2 37 | filterMode: 1 38 | aniso: 1 39 | mipBias: 0 40 | wrapU: 1 41 | wrapV: 1 42 | wrapW: 0 43 | nPOTScale: 0 44 | lightmap: 0 45 | compressionQuality: 50 46 | spriteMode: 1 47 | spriteExtrude: 1 48 | spriteMeshType: 1 49 | alignment: 0 50 | spritePivot: {x: 0.5, y: 0.5} 51 | spritePixelsToUnits: 100 52 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 53 | spriteGenerateFallbackPhysicsShape: 1 54 | alphaUsage: 1 55 | alphaIsTransparency: 1 56 | spriteTessellationDetail: -1 57 | textureType: 8 58 | textureShape: 1 59 | singleChannelComponent: 0 60 | flipbookRows: 1 61 | flipbookColumns: 1 62 | maxTextureSizeSet: 0 63 | compressionQualitySet: 0 64 | textureFormatSet: 0 65 | ignorePngGamma: 0 66 | applyGammaDecoding: 0 67 | swizzle: 50462976 68 | cookieLightType: 0 69 | platformSettings: 70 | - serializedVersion: 3 71 | buildTarget: DefaultTexturePlatform 72 | maxTextureSize: 128 73 | resizeAlgorithm: 0 74 | textureFormat: -1 75 | textureCompression: 1 76 | compressionQuality: 50 77 | crunchedCompression: 0 78 | allowsAlphaSplitting: 0 79 | overridden: 0 80 | ignorePlatformSupport: 0 81 | androidETC2FallbackOverride: 0 82 | forceMaximumCompressionQuality_BC6H_BC7: 0 83 | - serializedVersion: 3 84 | buildTarget: Standalone 85 | maxTextureSize: 2048 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | ignorePlatformSupport: 0 94 | androidETC2FallbackOverride: 0 95 | forceMaximumCompressionQuality_BC6H_BC7: 0 96 | - serializedVersion: 3 97 | buildTarget: Android 98 | maxTextureSize: 2048 99 | resizeAlgorithm: 0 100 | textureFormat: -1 101 | textureCompression: 1 102 | compressionQuality: 50 103 | crunchedCompression: 0 104 | allowsAlphaSplitting: 0 105 | overridden: 0 106 | ignorePlatformSupport: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | spriteSheet: 110 | serializedVersion: 2 111 | sprites: [] 112 | outline: [] 113 | physicsShape: [] 114 | bones: [] 115 | spriteID: 5e97eb03825dee720800000000000000 116 | internalID: 0 117 | vertices: [] 118 | indices: 119 | edges: [] 120 | weights: [] 121 | secondaryTextures: [] 122 | nameFileIdTable: {} 123 | mipmapLimitGroupName: 124 | pSDRemoveMatte: 0 125 | userData: 126 | assetBundleName: 127 | assetBundleVariant: 128 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/icon_apl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HhotateA/AvatarPoseLibrary/153af0f36f4ef7853c08002292f974f980d7dc62/Packages/com.hhotatea.avatar-pose-library/Resources/icon_apl.png -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/icon_apl.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bbec61e13dab01742b9513f0a393e7d5 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | flipGreenChannel: 0 24 | isReadable: 0 25 | streamingMipmaps: 0 26 | streamingMipmapsPriority: 0 27 | vTOnly: 0 28 | ignoreMipmapLimit: 0 29 | grayScaleToAlpha: 0 30 | generateCubemap: 6 31 | cubemapConvolution: 0 32 | seamlessCubemap: 0 33 | textureFormat: 1 34 | maxTextureSize: 2048 35 | textureSettings: 36 | serializedVersion: 2 37 | filterMode: 1 38 | aniso: 1 39 | mipBias: 0 40 | wrapU: 1 41 | wrapV: 1 42 | wrapW: 0 43 | nPOTScale: 0 44 | lightmap: 0 45 | compressionQuality: 50 46 | spriteMode: 1 47 | spriteExtrude: 1 48 | spriteMeshType: 1 49 | alignment: 0 50 | spritePivot: {x: 0.5, y: 0.5} 51 | spritePixelsToUnits: 100 52 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 53 | spriteGenerateFallbackPhysicsShape: 1 54 | alphaUsage: 1 55 | alphaIsTransparency: 1 56 | spriteTessellationDetail: -1 57 | textureType: 8 58 | textureShape: 1 59 | singleChannelComponent: 0 60 | flipbookRows: 1 61 | flipbookColumns: 1 62 | maxTextureSizeSet: 0 63 | compressionQualitySet: 0 64 | textureFormatSet: 0 65 | ignorePngGamma: 0 66 | applyGammaDecoding: 0 67 | swizzle: 50462976 68 | cookieLightType: 0 69 | platformSettings: 70 | - serializedVersion: 3 71 | buildTarget: DefaultTexturePlatform 72 | maxTextureSize: 128 73 | resizeAlgorithm: 0 74 | textureFormat: -1 75 | textureCompression: 1 76 | compressionQuality: 50 77 | crunchedCompression: 0 78 | allowsAlphaSplitting: 0 79 | overridden: 0 80 | ignorePlatformSupport: 0 81 | androidETC2FallbackOverride: 0 82 | forceMaximumCompressionQuality_BC6H_BC7: 0 83 | - serializedVersion: 3 84 | buildTarget: Standalone 85 | maxTextureSize: 2048 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | ignorePlatformSupport: 0 94 | androidETC2FallbackOverride: 0 95 | forceMaximumCompressionQuality_BC6H_BC7: 0 96 | - serializedVersion: 3 97 | buildTarget: Android 98 | maxTextureSize: 2048 99 | resizeAlgorithm: 0 100 | textureFormat: -1 101 | textureCompression: 1 102 | compressionQuality: 50 103 | crunchedCompression: 0 104 | allowsAlphaSplitting: 0 105 | overridden: 0 106 | ignorePlatformSupport: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | spriteSheet: 110 | serializedVersion: 2 111 | sprites: [] 112 | outline: [] 113 | physicsShape: [] 114 | bones: [] 115 | spriteID: 5e97eb03825dee720800000000000000 116 | internalID: 0 117 | vertices: [] 118 | indices: 119 | edges: [] 120 | weights: [] 121 | secondaryTextures: [] 122 | nameFileIdTable: {} 123 | mipmapLimitGroupName: 124 | pSDRemoveMatte: 0 125 | userData: 126 | assetBundleName: 127 | assetBundleVariant: 128 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/icon_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HhotateA/AvatarPoseLibrary/153af0f36f4ef7853c08002292f974f980d7dc62/Packages/com.hhotatea.avatar-pose-library/Resources/icon_white.png -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/icon_white.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aae77dadba1d9814cbdf7ab852731f6d 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | flipGreenChannel: 0 24 | isReadable: 0 25 | streamingMipmaps: 0 26 | streamingMipmapsPriority: 0 27 | vTOnly: 0 28 | ignoreMipmapLimit: 0 29 | grayScaleToAlpha: 0 30 | generateCubemap: 6 31 | cubemapConvolution: 0 32 | seamlessCubemap: 0 33 | textureFormat: 1 34 | maxTextureSize: 2048 35 | textureSettings: 36 | serializedVersion: 2 37 | filterMode: 1 38 | aniso: 1 39 | mipBias: 0 40 | wrapU: 1 41 | wrapV: 1 42 | wrapW: 0 43 | nPOTScale: 0 44 | lightmap: 0 45 | compressionQuality: 50 46 | spriteMode: 1 47 | spriteExtrude: 1 48 | spriteMeshType: 1 49 | alignment: 0 50 | spritePivot: {x: 0.5, y: 0.5} 51 | spritePixelsToUnits: 100 52 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 53 | spriteGenerateFallbackPhysicsShape: 1 54 | alphaUsage: 1 55 | alphaIsTransparency: 1 56 | spriteTessellationDetail: -1 57 | textureType: 8 58 | textureShape: 1 59 | singleChannelComponent: 0 60 | flipbookRows: 1 61 | flipbookColumns: 1 62 | maxTextureSizeSet: 0 63 | compressionQualitySet: 0 64 | textureFormatSet: 0 65 | ignorePngGamma: 0 66 | applyGammaDecoding: 0 67 | swizzle: 50462976 68 | cookieLightType: 0 69 | platformSettings: 70 | - serializedVersion: 3 71 | buildTarget: DefaultTexturePlatform 72 | maxTextureSize: 128 73 | resizeAlgorithm: 0 74 | textureFormat: -1 75 | textureCompression: 1 76 | compressionQuality: 50 77 | crunchedCompression: 0 78 | allowsAlphaSplitting: 0 79 | overridden: 0 80 | ignorePlatformSupport: 0 81 | androidETC2FallbackOverride: 0 82 | forceMaximumCompressionQuality_BC6H_BC7: 0 83 | - serializedVersion: 3 84 | buildTarget: Standalone 85 | maxTextureSize: 2048 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | ignorePlatformSupport: 0 94 | androidETC2FallbackOverride: 0 95 | forceMaximumCompressionQuality_BC6H_BC7: 0 96 | - serializedVersion: 3 97 | buildTarget: Android 98 | maxTextureSize: 2048 99 | resizeAlgorithm: 0 100 | textureFormat: -1 101 | textureCompression: 1 102 | compressionQuality: 50 103 | crunchedCompression: 0 104 | allowsAlphaSplitting: 0 105 | overridden: 0 106 | ignorePlatformSupport: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | spriteSheet: 110 | serializedVersion: 2 111 | sprites: [] 112 | outline: [] 113 | physicsShape: [] 114 | bones: [] 115 | spriteID: 5e97eb03825dee720800000000000000 116 | internalID: 0 117 | vertices: [] 118 | indices: 119 | edges: [] 120 | weights: [] 121 | secondaryTextures: [] 122 | nameFileIdTable: {} 123 | mipmapLimitGroupName: 124 | pSDRemoveMatte: 0 125 | userData: 126 | assetBundleName: 127 | assetBundleVariant: 128 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/locomotion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HhotateA/AvatarPoseLibrary/153af0f36f4ef7853c08002292f974f980d7dc62/Packages/com.hhotatea.avatar-pose-library/Resources/locomotion.png -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/locomotion.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dd6bb7f632fa6ee43ab5b5495099fc3b 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | flipGreenChannel: 0 24 | isReadable: 0 25 | streamingMipmaps: 0 26 | streamingMipmapsPriority: 0 27 | vTOnly: 0 28 | ignoreMipmapLimit: 0 29 | grayScaleToAlpha: 0 30 | generateCubemap: 6 31 | cubemapConvolution: 0 32 | seamlessCubemap: 0 33 | textureFormat: 1 34 | maxTextureSize: 2048 35 | textureSettings: 36 | serializedVersion: 2 37 | filterMode: 1 38 | aniso: 1 39 | mipBias: 0 40 | wrapU: 1 41 | wrapV: 1 42 | wrapW: 0 43 | nPOTScale: 0 44 | lightmap: 0 45 | compressionQuality: 50 46 | spriteMode: 1 47 | spriteExtrude: 1 48 | spriteMeshType: 1 49 | alignment: 0 50 | spritePivot: {x: 0.5, y: 0.5} 51 | spritePixelsToUnits: 100 52 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 53 | spriteGenerateFallbackPhysicsShape: 1 54 | alphaUsage: 1 55 | alphaIsTransparency: 1 56 | spriteTessellationDetail: -1 57 | textureType: 8 58 | textureShape: 1 59 | singleChannelComponent: 0 60 | flipbookRows: 1 61 | flipbookColumns: 1 62 | maxTextureSizeSet: 0 63 | compressionQualitySet: 0 64 | textureFormatSet: 0 65 | ignorePngGamma: 0 66 | applyGammaDecoding: 0 67 | swizzle: 50462976 68 | cookieLightType: 0 69 | platformSettings: 70 | - serializedVersion: 3 71 | buildTarget: DefaultTexturePlatform 72 | maxTextureSize: 128 73 | resizeAlgorithm: 0 74 | textureFormat: -1 75 | textureCompression: 1 76 | compressionQuality: 50 77 | crunchedCompression: 0 78 | allowsAlphaSplitting: 0 79 | overridden: 0 80 | ignorePlatformSupport: 0 81 | androidETC2FallbackOverride: 0 82 | forceMaximumCompressionQuality_BC6H_BC7: 0 83 | - serializedVersion: 3 84 | buildTarget: Standalone 85 | maxTextureSize: 2048 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | ignorePlatformSupport: 0 94 | androidETC2FallbackOverride: 0 95 | forceMaximumCompressionQuality_BC6H_BC7: 0 96 | - serializedVersion: 3 97 | buildTarget: Android 98 | maxTextureSize: 2048 99 | resizeAlgorithm: 0 100 | textureFormat: -1 101 | textureCompression: 1 102 | compressionQuality: 50 103 | crunchedCompression: 0 104 | allowsAlphaSplitting: 0 105 | overridden: 0 106 | ignorePlatformSupport: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | spriteSheet: 110 | serializedVersion: 2 111 | sprites: [] 112 | outline: [] 113 | physicsShape: [] 114 | bones: [] 115 | spriteID: 5e97eb03825dee720800000000000000 116 | internalID: 0 117 | vertices: [] 118 | indices: 119 | edges: [] 120 | weights: [] 121 | secondaryTextures: [] 122 | nameFileIdTable: {} 123 | mipmapLimitGroupName: 124 | pSDRemoveMatte: 0 125 | userData: 126 | assetBundleName: 127 | assetBundleVariant: 128 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HhotateA/AvatarPoseLibrary/153af0f36f4ef7853c08002292f974f980d7dc62/Packages/com.hhotatea.avatar-pose-library/Resources/logo.png -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/logo.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 53b2d5f6c8499b548ba31de9419a4a70 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | flipGreenChannel: 0 24 | isReadable: 0 25 | streamingMipmaps: 0 26 | streamingMipmapsPriority: 0 27 | vTOnly: 0 28 | ignoreMipmapLimit: 0 29 | grayScaleToAlpha: 0 30 | generateCubemap: 6 31 | cubemapConvolution: 0 32 | seamlessCubemap: 0 33 | textureFormat: 1 34 | maxTextureSize: 2048 35 | textureSettings: 36 | serializedVersion: 2 37 | filterMode: 1 38 | aniso: 1 39 | mipBias: 0 40 | wrapU: 1 41 | wrapV: 1 42 | wrapW: 0 43 | nPOTScale: 0 44 | lightmap: 0 45 | compressionQuality: 50 46 | spriteMode: 1 47 | spriteExtrude: 1 48 | spriteMeshType: 1 49 | alignment: 0 50 | spritePivot: {x: 0.5, y: 0.5} 51 | spritePixelsToUnits: 100 52 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 53 | spriteGenerateFallbackPhysicsShape: 1 54 | alphaUsage: 1 55 | alphaIsTransparency: 1 56 | spriteTessellationDetail: -1 57 | textureType: 8 58 | textureShape: 1 59 | singleChannelComponent: 0 60 | flipbookRows: 1 61 | flipbookColumns: 1 62 | maxTextureSizeSet: 0 63 | compressionQualitySet: 0 64 | textureFormatSet: 0 65 | ignorePngGamma: 0 66 | applyGammaDecoding: 0 67 | swizzle: 50462976 68 | cookieLightType: 0 69 | platformSettings: 70 | - serializedVersion: 3 71 | buildTarget: DefaultTexturePlatform 72 | maxTextureSize: 256 73 | resizeAlgorithm: 0 74 | textureFormat: -1 75 | textureCompression: 1 76 | compressionQuality: 50 77 | crunchedCompression: 0 78 | allowsAlphaSplitting: 0 79 | overridden: 0 80 | ignorePlatformSupport: 0 81 | androidETC2FallbackOverride: 0 82 | forceMaximumCompressionQuality_BC6H_BC7: 0 83 | - serializedVersion: 3 84 | buildTarget: Standalone 85 | maxTextureSize: 2048 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | ignorePlatformSupport: 0 94 | androidETC2FallbackOverride: 0 95 | forceMaximumCompressionQuality_BC6H_BC7: 0 96 | - serializedVersion: 3 97 | buildTarget: Android 98 | maxTextureSize: 2048 99 | resizeAlgorithm: 0 100 | textureFormat: -1 101 | textureCompression: 1 102 | compressionQuality: 50 103 | crunchedCompression: 0 104 | allowsAlphaSplitting: 0 105 | overridden: 0 106 | ignorePlatformSupport: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | spriteSheet: 110 | serializedVersion: 2 111 | sprites: [] 112 | outline: [] 113 | physicsShape: [] 114 | bones: [] 115 | spriteID: 5e97eb03825dee720800000000000000 116 | internalID: 0 117 | vertices: [] 118 | indices: 119 | edges: [] 120 | weights: [] 121 | secondaryTextures: [] 122 | nameFileIdTable: {} 123 | mipmapLimitGroupName: 124 | pSDRemoveMatte: 0 125 | userData: 126 | assetBundleName: 127 | assetBundleVariant: 128 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/mirror.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HhotateA/AvatarPoseLibrary/153af0f36f4ef7853c08002292f974f980d7dc62/Packages/com.hhotatea.avatar-pose-library/Resources/mirror.png -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/mirror.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 93f091fcd0da866409a5af967301e6c8 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | flipGreenChannel: 0 24 | isReadable: 0 25 | streamingMipmaps: 0 26 | streamingMipmapsPriority: 0 27 | vTOnly: 0 28 | ignoreMipmapLimit: 0 29 | grayScaleToAlpha: 0 30 | generateCubemap: 6 31 | cubemapConvolution: 0 32 | seamlessCubemap: 0 33 | textureFormat: 1 34 | maxTextureSize: 2048 35 | textureSettings: 36 | serializedVersion: 2 37 | filterMode: 1 38 | aniso: 1 39 | mipBias: 0 40 | wrapU: 1 41 | wrapV: 1 42 | wrapW: 0 43 | nPOTScale: 0 44 | lightmap: 0 45 | compressionQuality: 50 46 | spriteMode: 1 47 | spriteExtrude: 1 48 | spriteMeshType: 1 49 | alignment: 0 50 | spritePivot: {x: 0.5, y: 0.5} 51 | spritePixelsToUnits: 100 52 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 53 | spriteGenerateFallbackPhysicsShape: 1 54 | alphaUsage: 1 55 | alphaIsTransparency: 1 56 | spriteTessellationDetail: -1 57 | textureType: 8 58 | textureShape: 1 59 | singleChannelComponent: 0 60 | flipbookRows: 1 61 | flipbookColumns: 1 62 | maxTextureSizeSet: 0 63 | compressionQualitySet: 0 64 | textureFormatSet: 0 65 | ignorePngGamma: 0 66 | applyGammaDecoding: 0 67 | swizzle: 50462976 68 | cookieLightType: 0 69 | platformSettings: 70 | - serializedVersion: 3 71 | buildTarget: DefaultTexturePlatform 72 | maxTextureSize: 128 73 | resizeAlgorithm: 0 74 | textureFormat: -1 75 | textureCompression: 1 76 | compressionQuality: 50 77 | crunchedCompression: 0 78 | allowsAlphaSplitting: 0 79 | overridden: 0 80 | ignorePlatformSupport: 0 81 | androidETC2FallbackOverride: 0 82 | forceMaximumCompressionQuality_BC6H_BC7: 0 83 | - serializedVersion: 3 84 | buildTarget: Standalone 85 | maxTextureSize: 2048 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | ignorePlatformSupport: 0 94 | androidETC2FallbackOverride: 0 95 | forceMaximumCompressionQuality_BC6H_BC7: 0 96 | - serializedVersion: 3 97 | buildTarget: Android 98 | maxTextureSize: 2048 99 | resizeAlgorithm: 0 100 | textureFormat: -1 101 | textureCompression: 1 102 | compressionQuality: 50 103 | crunchedCompression: 0 104 | allowsAlphaSplitting: 0 105 | overridden: 0 106 | ignorePlatformSupport: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | spriteSheet: 110 | serializedVersion: 2 111 | sprites: [] 112 | outline: [] 113 | physicsShape: [] 114 | bones: [] 115 | spriteID: 5e97eb03825dee720800000000000000 116 | internalID: 0 117 | vertices: [] 118 | indices: 119 | edges: [] 120 | weights: [] 121 | secondaryTextures: [] 122 | nameFileIdTable: {} 123 | mipmapLimitGroupName: 124 | pSDRemoveMatte: 0 125 | userData: 126 | assetBundleName: 127 | assetBundleVariant: 128 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/reset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HhotateA/AvatarPoseLibrary/153af0f36f4ef7853c08002292f974f980d7dc62/Packages/com.hhotatea.avatar-pose-library/Resources/reset.png -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/reset.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 59c1fcfb45762f449a016814ce5532f4 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | flipGreenChannel: 0 24 | isReadable: 0 25 | streamingMipmaps: 0 26 | streamingMipmapsPriority: 0 27 | vTOnly: 0 28 | ignoreMipmapLimit: 0 29 | grayScaleToAlpha: 0 30 | generateCubemap: 6 31 | cubemapConvolution: 0 32 | seamlessCubemap: 0 33 | textureFormat: 1 34 | maxTextureSize: 2048 35 | textureSettings: 36 | serializedVersion: 2 37 | filterMode: 1 38 | aniso: 1 39 | mipBias: 0 40 | wrapU: 1 41 | wrapV: 1 42 | wrapW: 0 43 | nPOTScale: 0 44 | lightmap: 0 45 | compressionQuality: 50 46 | spriteMode: 1 47 | spriteExtrude: 1 48 | spriteMeshType: 1 49 | alignment: 0 50 | spritePivot: {x: 0.5, y: 0.5} 51 | spritePixelsToUnits: 100 52 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 53 | spriteGenerateFallbackPhysicsShape: 1 54 | alphaUsage: 1 55 | alphaIsTransparency: 1 56 | spriteTessellationDetail: -1 57 | textureType: 8 58 | textureShape: 1 59 | singleChannelComponent: 0 60 | flipbookRows: 1 61 | flipbookColumns: 1 62 | maxTextureSizeSet: 0 63 | compressionQualitySet: 0 64 | textureFormatSet: 0 65 | ignorePngGamma: 0 66 | applyGammaDecoding: 0 67 | swizzle: 50462976 68 | cookieLightType: 0 69 | platformSettings: 70 | - serializedVersion: 3 71 | buildTarget: DefaultTexturePlatform 72 | maxTextureSize: 128 73 | resizeAlgorithm: 0 74 | textureFormat: -1 75 | textureCompression: 1 76 | compressionQuality: 50 77 | crunchedCompression: 0 78 | allowsAlphaSplitting: 0 79 | overridden: 0 80 | ignorePlatformSupport: 0 81 | androidETC2FallbackOverride: 0 82 | forceMaximumCompressionQuality_BC6H_BC7: 0 83 | - serializedVersion: 3 84 | buildTarget: Standalone 85 | maxTextureSize: 2048 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | ignorePlatformSupport: 0 94 | androidETC2FallbackOverride: 0 95 | forceMaximumCompressionQuality_BC6H_BC7: 0 96 | - serializedVersion: 3 97 | buildTarget: Android 98 | maxTextureSize: 2048 99 | resizeAlgorithm: 0 100 | textureFormat: -1 101 | textureCompression: 1 102 | compressionQuality: 50 103 | crunchedCompression: 0 104 | allowsAlphaSplitting: 0 105 | overridden: 0 106 | ignorePlatformSupport: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | spriteSheet: 110 | serializedVersion: 2 111 | sprites: [] 112 | outline: [] 113 | physicsShape: [] 114 | bones: [] 115 | spriteID: 5e97eb03825dee720800000000000000 116 | internalID: 0 117 | vertices: [] 118 | indices: 119 | edges: [] 120 | weights: [] 121 | secondaryTextures: [] 122 | nameFileIdTable: {} 123 | mipmapLimitGroupName: 124 | pSDRemoveMatte: 0 125 | userData: 126 | assetBundleName: 127 | assetBundleVariant: 128 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HhotateA/AvatarPoseLibrary/153af0f36f4ef7853c08002292f974f980d7dc62/Packages/com.hhotatea.avatar-pose-library/Resources/settings.png -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/settings.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b48174cf50086494f91015e974b4406a 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | flipGreenChannel: 0 24 | isReadable: 0 25 | streamingMipmaps: 0 26 | streamingMipmapsPriority: 0 27 | vTOnly: 0 28 | ignoreMipmapLimit: 0 29 | grayScaleToAlpha: 0 30 | generateCubemap: 6 31 | cubemapConvolution: 0 32 | seamlessCubemap: 0 33 | textureFormat: 1 34 | maxTextureSize: 2048 35 | textureSettings: 36 | serializedVersion: 2 37 | filterMode: 1 38 | aniso: 1 39 | mipBias: 0 40 | wrapU: 1 41 | wrapV: 1 42 | wrapW: 0 43 | nPOTScale: 0 44 | lightmap: 0 45 | compressionQuality: 50 46 | spriteMode: 1 47 | spriteExtrude: 1 48 | spriteMeshType: 1 49 | alignment: 0 50 | spritePivot: {x: 0.5, y: 0.5} 51 | spritePixelsToUnits: 100 52 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 53 | spriteGenerateFallbackPhysicsShape: 1 54 | alphaUsage: 1 55 | alphaIsTransparency: 1 56 | spriteTessellationDetail: -1 57 | textureType: 8 58 | textureShape: 1 59 | singleChannelComponent: 0 60 | flipbookRows: 1 61 | flipbookColumns: 1 62 | maxTextureSizeSet: 0 63 | compressionQualitySet: 0 64 | textureFormatSet: 0 65 | ignorePngGamma: 0 66 | applyGammaDecoding: 0 67 | swizzle: 50462976 68 | cookieLightType: 0 69 | platformSettings: 70 | - serializedVersion: 3 71 | buildTarget: DefaultTexturePlatform 72 | maxTextureSize: 128 73 | resizeAlgorithm: 0 74 | textureFormat: -1 75 | textureCompression: 1 76 | compressionQuality: 50 77 | crunchedCompression: 0 78 | allowsAlphaSplitting: 0 79 | overridden: 0 80 | ignorePlatformSupport: 0 81 | androidETC2FallbackOverride: 0 82 | forceMaximumCompressionQuality_BC6H_BC7: 0 83 | - serializedVersion: 3 84 | buildTarget: Standalone 85 | maxTextureSize: 2048 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | ignorePlatformSupport: 0 94 | androidETC2FallbackOverride: 0 95 | forceMaximumCompressionQuality_BC6H_BC7: 0 96 | - serializedVersion: 3 97 | buildTarget: Android 98 | maxTextureSize: 2048 99 | resizeAlgorithm: 0 100 | textureFormat: -1 101 | textureCompression: 1 102 | compressionQuality: 50 103 | crunchedCompression: 0 104 | allowsAlphaSplitting: 0 105 | overridden: 0 106 | ignorePlatformSupport: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | spriteSheet: 110 | serializedVersion: 2 111 | sprites: [] 112 | outline: [] 113 | physicsShape: [] 114 | bones: [] 115 | spriteID: 5e97eb03825dee720800000000000000 116 | internalID: 0 117 | vertices: [] 118 | indices: 119 | edges: [] 120 | weights: [] 121 | secondaryTextures: [] 122 | nameFileIdTable: {} 123 | mipmapLimitGroupName: 124 | pSDRemoveMatte: 0 125 | userData: 126 | assetBundleName: 127 | assetBundleVariant: 128 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/speed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HhotateA/AvatarPoseLibrary/153af0f36f4ef7853c08002292f974f980d7dc62/Packages/com.hhotatea.avatar-pose-library/Resources/speed.png -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/speed.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 614dbb744a5622a4c8dd820707ee4eb0 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | flipGreenChannel: 0 24 | isReadable: 0 25 | streamingMipmaps: 0 26 | streamingMipmapsPriority: 0 27 | vTOnly: 0 28 | ignoreMipmapLimit: 0 29 | grayScaleToAlpha: 0 30 | generateCubemap: 6 31 | cubemapConvolution: 0 32 | seamlessCubemap: 0 33 | textureFormat: 1 34 | maxTextureSize: 2048 35 | textureSettings: 36 | serializedVersion: 2 37 | filterMode: 1 38 | aniso: 1 39 | mipBias: 0 40 | wrapU: 1 41 | wrapV: 1 42 | wrapW: 0 43 | nPOTScale: 0 44 | lightmap: 0 45 | compressionQuality: 50 46 | spriteMode: 1 47 | spriteExtrude: 1 48 | spriteMeshType: 1 49 | alignment: 0 50 | spritePivot: {x: 0.5, y: 0.5} 51 | spritePixelsToUnits: 100 52 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 53 | spriteGenerateFallbackPhysicsShape: 1 54 | alphaUsage: 1 55 | alphaIsTransparency: 1 56 | spriteTessellationDetail: -1 57 | textureType: 8 58 | textureShape: 1 59 | singleChannelComponent: 0 60 | flipbookRows: 1 61 | flipbookColumns: 1 62 | maxTextureSizeSet: 0 63 | compressionQualitySet: 0 64 | textureFormatSet: 0 65 | ignorePngGamma: 0 66 | applyGammaDecoding: 0 67 | swizzle: 50462976 68 | cookieLightType: 0 69 | platformSettings: 70 | - serializedVersion: 3 71 | buildTarget: DefaultTexturePlatform 72 | maxTextureSize: 128 73 | resizeAlgorithm: 0 74 | textureFormat: -1 75 | textureCompression: 1 76 | compressionQuality: 50 77 | crunchedCompression: 0 78 | allowsAlphaSplitting: 0 79 | overridden: 0 80 | ignorePlatformSupport: 0 81 | androidETC2FallbackOverride: 0 82 | forceMaximumCompressionQuality_BC6H_BC7: 0 83 | - serializedVersion: 3 84 | buildTarget: Standalone 85 | maxTextureSize: 2048 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | ignorePlatformSupport: 0 94 | androidETC2FallbackOverride: 0 95 | forceMaximumCompressionQuality_BC6H_BC7: 0 96 | - serializedVersion: 3 97 | buildTarget: Android 98 | maxTextureSize: 2048 99 | resizeAlgorithm: 0 100 | textureFormat: -1 101 | textureCompression: 1 102 | compressionQuality: 50 103 | crunchedCompression: 0 104 | allowsAlphaSplitting: 0 105 | overridden: 0 106 | ignorePlatformSupport: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | spriteSheet: 110 | serializedVersion: 2 111 | sprites: [] 112 | outline: [] 113 | physicsShape: [] 114 | bones: [] 115 | spriteID: 5e97eb03825dee720800000000000000 116 | internalID: 0 117 | vertices: [] 118 | indices: 119 | edges: [] 120 | weights: [] 121 | secondaryTextures: [] 122 | nameFileIdTable: {} 123 | mipmapLimitGroupName: 124 | pSDRemoveMatte: 0 125 | userData: 126 | assetBundleName: 127 | assetBundleVariant: 128 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/tracking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HhotateA/AvatarPoseLibrary/153af0f36f4ef7853c08002292f974f980d7dc62/Packages/com.hhotatea.avatar-pose-library/Resources/tracking.png -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Resources/tracking.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a66c1c8e3e5b04846b06ef9bc46eda0a 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | flipGreenChannel: 0 24 | isReadable: 0 25 | streamingMipmaps: 0 26 | streamingMipmapsPriority: 0 27 | vTOnly: 0 28 | ignoreMipmapLimit: 0 29 | grayScaleToAlpha: 0 30 | generateCubemap: 6 31 | cubemapConvolution: 0 32 | seamlessCubemap: 0 33 | textureFormat: 1 34 | maxTextureSize: 2048 35 | textureSettings: 36 | serializedVersion: 2 37 | filterMode: 1 38 | aniso: 1 39 | mipBias: 0 40 | wrapU: 1 41 | wrapV: 1 42 | wrapW: 0 43 | nPOTScale: 0 44 | lightmap: 0 45 | compressionQuality: 50 46 | spriteMode: 1 47 | spriteExtrude: 1 48 | spriteMeshType: 1 49 | alignment: 0 50 | spritePivot: {x: 0.5, y: 0.5} 51 | spritePixelsToUnits: 100 52 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 53 | spriteGenerateFallbackPhysicsShape: 1 54 | alphaUsage: 1 55 | alphaIsTransparency: 1 56 | spriteTessellationDetail: -1 57 | textureType: 8 58 | textureShape: 1 59 | singleChannelComponent: 0 60 | flipbookRows: 1 61 | flipbookColumns: 1 62 | maxTextureSizeSet: 0 63 | compressionQualitySet: 0 64 | textureFormatSet: 0 65 | ignorePngGamma: 0 66 | applyGammaDecoding: 0 67 | swizzle: 50462976 68 | cookieLightType: 0 69 | platformSettings: 70 | - serializedVersion: 3 71 | buildTarget: DefaultTexturePlatform 72 | maxTextureSize: 128 73 | resizeAlgorithm: 0 74 | textureFormat: -1 75 | textureCompression: 1 76 | compressionQuality: 50 77 | crunchedCompression: 0 78 | allowsAlphaSplitting: 0 79 | overridden: 0 80 | ignorePlatformSupport: 0 81 | androidETC2FallbackOverride: 0 82 | forceMaximumCompressionQuality_BC6H_BC7: 0 83 | - serializedVersion: 3 84 | buildTarget: Standalone 85 | maxTextureSize: 2048 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | ignorePlatformSupport: 0 94 | androidETC2FallbackOverride: 0 95 | forceMaximumCompressionQuality_BC6H_BC7: 0 96 | - serializedVersion: 3 97 | buildTarget: Android 98 | maxTextureSize: 2048 99 | resizeAlgorithm: 0 100 | textureFormat: -1 101 | textureCompression: 1 102 | compressionQuality: 50 103 | crunchedCompression: 0 104 | allowsAlphaSplitting: 0 105 | overridden: 0 106 | ignorePlatformSupport: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | spriteSheet: 110 | serializedVersion: 2 111 | sprites: [] 112 | outline: [] 113 | physicsShape: [] 114 | bones: [] 115 | spriteID: 5e97eb03825dee720800000000000000 116 | internalID: 0 117 | vertices: [] 118 | indices: 119 | edges: [] 120 | weights: [] 121 | secondaryTextures: [] 122 | nameFileIdTable: {} 123 | mipmapLimitGroupName: 124 | pSDRemoveMatte: 0 125 | userData: 126 | assetBundleName: 127 | assetBundleVariant: 128 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Runtime.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cf9994fd246c2814e98f80a66a4386a8 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Runtime/Component.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: eeb60ec7dc416f649a71bb1be6cfab61 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Runtime/Component/AvatarPoseLibrary.cs: -------------------------------------------------------------------------------- 1 | using com.hhotatea.avatar_pose_library.model; 2 | using UnityEngine; 3 | using VRC.SDKBase; 4 | using VRC.SDK3.Avatars.Components; 5 | using System.Linq; 6 | 7 | namespace com.hhotatea.avatar_pose_library.component 8 | { 9 | /// 10 | /// アバターにアタッチすることでポーズカテゴリを設定可能にするコンポーネント 11 | /// 12 | [HelpURL("https://github.com/HhotateA/AvatarPoseLibrary/wiki")] 13 | public class AvatarPoseLibrary : MonoBehaviour, IEditorOnly 14 | { 15 | // データの本体。 16 | public AvatarPoseData data; 17 | 18 | // Editorで初期化処理を行いたいので、フラグを持っておく。 19 | public bool isInitialized; 20 | 21 | private void Reset() 22 | { 23 | isInitialized = false; 24 | } 25 | 26 | /* MenuSourceComponent参照でバグりそうなので将来的実装 27 | public override void Visit(NodeContext context) 28 | { 29 | if (Application.isPlaying) 30 | { 31 | // 再生モードでは早期リターン 32 | return; 33 | } 34 | context.PushControl(new VRCExpressionsMenu.Control() 35 | { 36 | name = data.name, 37 | icon = data.thumbnail, 38 | }); 39 | } 40 | 41 | public override void ResolveReferences() 42 | { 43 | // no-op 44 | } 45 | */ 46 | 47 | public AvatarPoseLibrary[] GetLibraries() 48 | { 49 | var avatar = transform.GetComponentInParent(); 50 | if (avatar) 51 | { 52 | return avatar.GetComponentsInChildren(); 53 | } 54 | return new[] { this }; 55 | } 56 | 57 | public AvatarPoseLibrary[] GetComponentMember() 58 | { 59 | return GetLibraries() 60 | .Where(e => e.data.name == this.data.name) 61 | .ToArray(); 62 | } 63 | 64 | public AvatarPoseLibrary GetComponentLeader() 65 | { 66 | return GetComponentMember().FirstOrDefault(); 67 | } 68 | 69 | public bool IsRootComponent() 70 | { 71 | return GetComponentLeader() == this; 72 | } 73 | } 74 | } -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Runtime/Component/AvatarPoseLibrary.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 50a4ff4bbe9d7e94d87e1d2b7eb12833 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: bbec61e13dab01742b9513f0a393e7d5, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Runtime/Model.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7c94f122e166e8a4e8417e33059c433c 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Runtime/Model/ConstVariables.cs: -------------------------------------------------------------------------------- 1 | namespace com.hhotatea.avatar_pose_library.model 2 | { 3 | public static class ConstVariables 4 | { 5 | public const string OnPlayParamPrefix = "AnimPosePlay"; 6 | 7 | /// 8 | /// パラメーター名 9 | /// 10 | public const string HeightParamPrefix = "AnimPoseHeight"; 11 | public const string BaseParamPrefix = "AnimPoseBase"; 12 | public const string HeadParamPrefix = "AnimPoseHead"; 13 | public const string ArmParamPrefix = "AnimPoseArm"; 14 | public const string FootParamPrefix = "AnimPoseFoot"; 15 | public const string FingerParamPrefix = "AnimPoseFinger"; 16 | public const string FaceParamPrefix = "AnimPoseFace"; 17 | public const string ActionParamPrefix = "AnimPoseAction"; 18 | public const string SpeedParamPrefix = "AnimPoseSpeed"; 19 | public const string ResetParamPrefix = "AnimPoseReset"; 20 | public const string MirrorParamPrefix = "AnimPoseMirror"; 21 | public const string FlagParamPrefix = "AnimPoseFlag"; 22 | public const string PoseSpaceParamPrefix = "AnimPoseSpace"; 23 | // public const string BlockIdleParamPrefix = "AnimPoseBlock"; // 動的アニメーションかどうかのフラグ 24 | 25 | public const string MotionAnimatorPrefix = "AnimPoseMotion"; 26 | public const string FxAnimatorPrefix = "AnimPoseFx"; 27 | public const string ParamAnimatorPrefix = "AnimPoseParam"; 28 | 29 | // 1つのIntパラメーターで管理するAnimationの最大数。 30 | public const int MaxAnimationState = 255; 31 | public const int PoseFlagCount = 2; 32 | public const int HashLong = 16; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Runtime/Model/ConstVariables.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 67e07a9450aef364d87e486c672c819b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Runtime/Model/ParameterModel.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8d5a377b4d3b82449ac96abb546736b7 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Runtime/com.hhotatea.avatar-pose-library.Runtime.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "com.hhotatea.avatar-pose-library.Runtime", 3 | "rootNamespace": "", 4 | "references": [ 5 | "VRC.SDK3A", 6 | "VRC.SDKBase", 7 | "nadena.dev.modular-avatar.core", 8 | "nadena.dev.ndmf.runtime" 9 | ], 10 | "includePlatforms": [], 11 | "excludePlatforms": [], 12 | "allowUnsafeCode": false, 13 | "overrideReferences": false, 14 | "precompiledReferences": [], 15 | "autoReferenced": true, 16 | "defineConstraints": [], 17 | "versionDefines": [], 18 | "noEngineReferences": false 19 | } -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/Runtime/com.hhotatea.avatar-pose-library.Runtime.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b3ff6e68f2a60744e84f2251c5a6f73a 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "com.hhotatea.avatar-pose-library", 3 | "displayName": "AvatarPoseLibrary", 4 | "version": "1.1.12", 5 | "description": "VRChat\u306e\u30a8\u30e2\u30fc\u30c8\u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3\u3092\u81ea\u52d5\u8a2d\u5b9a\u3059\u308b\u30c4\u30fc\u30eb\u7fa4\u3002", 6 | "gitDependencies": {}, 7 | "vpmDependencies": { 8 | "com.vrchat.avatars": ">=3.7.0", 9 | "nadena.dev.ndmf": ">=1.5.0", 10 | "nadena.dev.modular-avatar": ">=1.10.0" 11 | }, 12 | "author": { 13 | "name": "HhotateA", 14 | "url": "https://hhotatea.com/" 15 | }, 16 | "unity": "2022.3" 17 | } -------------------------------------------------------------------------------- /Packages/com.hhotatea.avatar-pose-library/package.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cf93c1d22ffb0be44a5905bee6c8f859 3 | PackageManifestImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Packages/com.vrchat.core.bootstrap/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5ee5eebf1b35bbd49ae7983db316180a 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/com.vrchat.core.bootstrap/Editor/Bootstrap.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | using System.Net; 4 | using System.Text.RegularExpressions; 5 | using System.Threading.Tasks; 6 | using UnityEditor; 7 | using UnityEngine; 8 | 9 | namespace VRC.PackageManagement.Core 10 | { 11 | public class Bootstrap 12 | { 13 | // JSON property names in Project Manifest 14 | public const string UNITY_PACKAGES_FOLDER = "Packages"; 15 | public const string UNITY_MANIFEST_FILENAME = "manifest.json"; 16 | 17 | // VRC Values 18 | public const string VRC_CONFIG = "https://api.vrchat.cloud/api/1/config"; 19 | public const string VRC_AGENT = "VCCBootstrap 1.0"; 20 | public const string VRC_RESOLVER_PACKAGE = "com.vrchat.core.vpm-resolver"; 21 | 22 | // Finds url for bootstrap package without using JSON 23 | private static Regex _bootstrapRegex = new Regex("\"bootstrap\"\\s*:\\s*\"(.+?(?=\"))\""); 24 | public static string ManifestPath => Path.Combine(Directory.GetCurrentDirectory(), UNITY_PACKAGES_FOLDER, UNITY_MANIFEST_FILENAME); 25 | 26 | // Path where we expect the target package to exist 27 | public static string ResolverPath => 28 | Path.Combine(Directory.GetCurrentDirectory(), UNITY_PACKAGES_FOLDER, VRC_RESOLVER_PACKAGE); 29 | 30 | [InitializeOnLoadMethod] 31 | public static async void CheckForRestore() 32 | { 33 | if (!new DirectoryInfo(ResolverPath).Exists) 34 | { 35 | try 36 | { 37 | await AddResolver(); 38 | } 39 | catch (Exception e) 40 | { 41 | Debug.LogError($"Could not download and install the VPM Package Resolver - you may be missing packages. Exception: {e.Message}"); 42 | } 43 | } 44 | } 45 | 46 | public static async Task AddResolver() 47 | { 48 | var configData = await GetRemoteString(VRC_CONFIG); 49 | if (string.IsNullOrWhiteSpace(configData)) 50 | { 51 | Debug.LogWarning($"Could not get VPM libraries, try again later"); 52 | return; 53 | } 54 | var bootstrapMatch = _bootstrapRegex.Match(configData); 55 | if (!bootstrapMatch.Success || bootstrapMatch.Groups.Count < 2) 56 | { 57 | Debug.LogError($"Could not find bootstrap in config, try again later"); 58 | return; 59 | } 60 | 61 | var url = bootstrapMatch.Groups[1].Value; 62 | 63 | var targetFile = Path.Combine(Path.GetTempPath(), $"resolver-{DateTime.Now.ToString("yyyyMMddTHHmmss")}.unitypackage"); 64 | 65 | // Download to dir 66 | using (var client = new WebClient()) 67 | { 68 | // Add User Agent or else CloudFlare will return 1020 69 | client.Headers.Add(HttpRequestHeader.UserAgent, VRC_AGENT); 70 | 71 | await client.DownloadFileTaskAsync(url, targetFile); 72 | 73 | if (File.Exists(targetFile)) 74 | { 75 | Debug.Log($"Downloaded Resolver to {targetFile}"); 76 | AssetDatabase.ImportPackage(targetFile, false); 77 | } 78 | } 79 | return; 80 | } 81 | 82 | public static async Task GetRemoteString(string url) 83 | { 84 | using (var client = new WebClient()) 85 | { 86 | // Add User Agent or else CloudFlare will return 1020 87 | client.Headers.Add(HttpRequestHeader.UserAgent, VRC_AGENT); 88 | return await client.DownloadStringTaskAsync(url); 89 | } 90 | } 91 | } 92 | } 93 | -------------------------------------------------------------------------------- /Packages/com.vrchat.core.bootstrap/Editor/Bootstrap.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: eea11c44cabdaaa43ac0a21dbbbd9824 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/com.vrchat.core.bootstrap/Editor/VRChat.Bootstrapper.Editor.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "VRChat.Bootstrapper.Editor", 3 | "references": [], 4 | "includePlatforms": [ 5 | "Editor" 6 | ], 7 | "excludePlatforms": [], 8 | "allowUnsafeCode": false, 9 | "overrideReferences": false, 10 | "precompiledReferences": [], 11 | "autoReferenced": true, 12 | "defineConstraints": [], 13 | "versionDefines": [], 14 | "noEngineReferences": false 15 | } -------------------------------------------------------------------------------- /Packages/com.vrchat.core.bootstrap/Editor/VRChat.Bootstrapper.Editor.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e0d8a3ed977bd0948b99f4bce8e56a07 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Packages/com.vrchat.core.bootstrap/License.md: -------------------------------------------------------------------------------- 1 | # VRCHAT INC. 2 | ### VRCHAT DISTRO LICENSE FILE 3 | Version: February 24, 2022 4 | 5 | **SUMMARY OF TERMS:** Any materials subject to this Distro Asset License may be distributed by you, with or without modifications, on a non-commercial basis (i.e., at no charge), in accordance with the full terms of the Materials License Agreement. 6 | 7 | This Distro License File is a "License File" as defined in the VRChat Materials License Agreement, found at https://hello.vrchat.com/legal/sdk (or any successor link designated by VRChat) (as may be revised from time to time, the "Materials License Agreement"). 8 | 9 | This Distro License File applies to all the files in the Folder containing this Distro License File and those in all Child Folders within that Folder (except with respect to files in any Child Folder that contains a different License File) (such files, other than this Distro License File, the "Covered Files"). All capitalized terms used but not otherwise defined in this Distro License File have the meanings provided in the Materials License Agreement. 10 | 11 | This Distro License File only provides a summary of the terms applicable to the Covered Files. To understand your rights and obligations and the full set of terms that apply to use of the Covered Files, please see the relevant sections of the Materials License Agreement, including terms applicable to Distro Materials. -------------------------------------------------------------------------------- /Packages/com.vrchat.core.bootstrap/License.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a84f4a071b4a7fa49985f447a0ce2fe2 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Packages/com.vrchat.core.bootstrap/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name" : "com.vrchat.core.bootstrap", 3 | "displayName" : "VRChat Package Bootstrapper", 4 | "version" : "0.1.15", 5 | "unity" : "2019.4", 6 | "description" : "Tool to Download VPM Packages", 7 | "vrchatVersion" : "2022.1.1", 8 | "author" : { 9 | "name" : "VRChat", 10 | "email" : "developer@vrchat.com", 11 | "url" : "https://github.com/vrchat/packages" 12 | }, 13 | "url" : "", 14 | "dependencies" : { 15 | "com.unity.nuget.newtonsoft-json" : "2.0.2" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Packages/com.vrchat.core.bootstrap/package.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6c5fffb4815ba9046ad0a2e878396439 3 | PackageManifestImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Packages/com.vrchat.demo-template/Editor/ExampleEditorScript.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor; 2 | 3 | public class ExampleEditorScript 4 | { 5 | [MenuItem("Example Editor Script/Test")] 6 | static void Test() 7 | { 8 | EditorUtility.DisplayDialog("Example Script", "Opened This Dialog", "OK"); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Packages/com.vrchat.demo-template/Editor/VRChatPackageTemplate.Editor.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "VRChatPackageTemplate.Editor", 3 | "references": [], 4 | "includePlatforms": [ 5 | "Editor" 6 | ], 7 | "excludePlatforms": [], 8 | "allowUnsafeCode": false, 9 | "overrideReferences": false, 10 | "precompiledReferences": [], 11 | "autoReferenced": true, 12 | "defineConstraints": [], 13 | "versionDefines": [], 14 | "noEngineReferences": false 15 | } -------------------------------------------------------------------------------- /Packages/com.vrchat.demo-template/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "com.vrchat.demo-template", 3 | "displayName": "VRChat Example Package", 4 | "version": "0.0.7", 5 | "unity": "2022.3", 6 | "description": "Simple Package for testing Automation", 7 | "vrchatVersion": "2022.1.1", 8 | "author": { 9 | "name": "Momo the Monster", 10 | "email": "momodmonster@gmail.com", 11 | "url": "https://mmmlabs.com" 12 | } 13 | } -------------------------------------------------------------------------------- /Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.ai.navigation": "1.1.5", 4 | "com.unity.ide.rider": "3.0.28", 5 | "com.unity.ide.visualstudio": "2.0.22", 6 | "com.unity.ide.vscode": "1.2.5", 7 | "com.unity.test-framework": "1.1.33", 8 | "com.unity.textmeshpro": "3.0.6", 9 | "com.unity.timeline": "1.7.6", 10 | "com.unity.ugui": "1.0.0", 11 | "com.unity.modules.ai": "1.0.0", 12 | "com.unity.modules.androidjni": "1.0.0", 13 | "com.unity.modules.animation": "1.0.0", 14 | "com.unity.modules.assetbundle": "1.0.0", 15 | "com.unity.modules.audio": "1.0.0", 16 | "com.unity.modules.cloth": "1.0.0", 17 | "com.unity.modules.director": "1.0.0", 18 | "com.unity.modules.imageconversion": "1.0.0", 19 | "com.unity.modules.imgui": "1.0.0", 20 | "com.unity.modules.jsonserialize": "1.0.0", 21 | "com.unity.modules.particlesystem": "1.0.0", 22 | "com.unity.modules.physics": "1.0.0", 23 | "com.unity.modules.physics2d": "1.0.0", 24 | "com.unity.modules.screencapture": "1.0.0", 25 | "com.unity.modules.terrain": "1.0.0", 26 | "com.unity.modules.terrainphysics": "1.0.0", 27 | "com.unity.modules.tilemap": "1.0.0", 28 | "com.unity.modules.ui": "1.0.0", 29 | "com.unity.modules.uielements": "1.0.0", 30 | "com.unity.modules.umbra": "1.0.0", 31 | "com.unity.modules.unityanalytics": "1.0.0", 32 | "com.unity.modules.unitywebrequest": "1.0.0", 33 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 34 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 35 | "com.unity.modules.unitywebrequesttexture": "1.0.0", 36 | "com.unity.modules.unitywebrequestwww": "1.0.0", 37 | "com.unity.modules.vehicles": "1.0.0", 38 | "com.unity.modules.video": "1.0.0", 39 | "com.unity.modules.vr": "1.0.0", 40 | "com.unity.modules.wind": "1.0.0", 41 | "com.unity.modules.xr": "1.0.0" 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /Packages/vpm-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "jp.lilxyzw.liltoon": { 4 | "version": "1.9.0" 5 | }, 6 | "vrchat.blackstartx.gesture-manager": { 7 | "version": "3.9.4" 8 | }, 9 | "nadena.dev.modular-avatar": { 10 | "version": "1.10.0" 11 | }, 12 | "com.vrchat.avatars": { 13 | "version": "3.7.0" 14 | }, 15 | "nadena.dev.ndmf": { 16 | "version": "1.5.0" 17 | } 18 | }, 19 | "locked": { 20 | "jp.lilxyzw.liltoon": { 21 | "version": "1.9.0", 22 | "dependencies": {} 23 | }, 24 | "vrchat.blackstartx.gesture-manager": { 25 | "version": "3.9.4", 26 | "dependencies": { 27 | "com.vrchat.avatars": ">=3.5.2 < 3.9.X" 28 | } 29 | }, 30 | "nadena.dev.modular-avatar": { 31 | "version": "1.10.0", 32 | "dependencies": { 33 | "com.vrchat.avatars": ">=3.7.0", 34 | "nadena.dev.ndmf": ">=1.5.0 <2.0.0-a" 35 | } 36 | }, 37 | "com.vrchat.avatars": { 38 | "version": "3.7.0", 39 | "dependencies": { 40 | "com.vrchat.base": "3.7.0" 41 | } 42 | }, 43 | "com.vrchat.base": { 44 | "version": "3.7.0", 45 | "dependencies": {} 46 | }, 47 | "nadena.dev.ndmf": { 48 | "version": "1.5.0", 49 | "dependencies": {} 50 | } 51 | } 52 | } -------------------------------------------------------------------------------- /ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Volume: 1 8 | Rolloff Scale: 1 9 | Doppler Factor: 1 10 | Default Speaker Mode: 2 11 | m_SampleRate: 48000 12 | m_DSPBufferSize: 1024 13 | m_VirtualVoiceCount: 64 14 | m_RealVoiceCount: 32 15 | m_EnableOutputSuspension: 1 16 | m_SpatializerPlugin: 17 | m_AmbisonicDecoderPlugin: 18 | m_DisableAudio: 0 19 | m_VirtualizeEffects: 1 20 | m_RequestedDSPBufferSize: 0 21 | -------------------------------------------------------------------------------- /ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 11 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_SleepThreshold: 0.005 11 | m_DefaultContactOffset: 0.01 12 | m_DefaultSolverIterations: 6 13 | m_DefaultSolverVelocityIterations: 1 14 | m_QueriesHitBackfaces: 0 15 | m_QueriesHitTriggers: 1 16 | m_EnableAdaptiveForce: 0 17 | m_ClothInterCollisionDistance: 0 18 | m_ClothInterCollisionStiffness: 0 19 | m_ContactsGeneration: 1 20 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 21 | m_AutoSimulation: 1 22 | m_AutoSyncTransforms: 0 23 | m_ReuseCollisionCallbacks: 1 24 | m_ClothInterCollisionSettingsToggle: 0 25 | m_ContactPairsMode: 0 26 | m_BroadphaseType: 0 27 | m_WorldBounds: 28 | m_Center: {x: 0, y: 0, z: 0} 29 | m_Extent: {x: 250, y: 250, z: 250} 30 | m_WorldSubdivisions: 8 31 | m_FrictionType: 0 32 | m_EnableEnhancedDeterminism: 0 33 | m_EnableUnifiedHeightmaps: 1 34 | m_DefaultMaxAngluarSpeed: 7 35 | -------------------------------------------------------------------------------- /ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: [] 8 | m_configObjects: 9 | Unity.XR.Oculus.Settings: {fileID: 11400000, guid: 522939899702e6849a09ce441ece045c, 10 | type: 2} 11 | com.unity.xr.management.loader_settings: {fileID: 11400000, guid: 5b6cce09a7f26544799c9e73182f8226, 12 | type: 2} 13 | -------------------------------------------------------------------------------- /ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 9 7 | m_ExternalVersionControlSupport: Visible Meta Files 8 | m_SerializationMode: 2 9 | m_LineEndingsForNewScripts: 0 10 | m_DefaultBehaviorMode: 0 11 | m_PrefabRegularEnvironment: {fileID: 0} 12 | m_PrefabUIEnvironment: {fileID: 0} 13 | m_SpritePackerMode: 0 14 | m_SpritePackerPaddingPower: 1 15 | m_EtcTextureCompressorBehavior: 1 16 | m_EtcTextureFastCompressor: 1 17 | m_EtcTextureNormalCompressor: 2 18 | m_EtcTextureBestCompressor: 4 19 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;rsp;asmref 20 | m_ProjectGenerationRootNamespace: 21 | m_CollabEditorSettings: 22 | inProgressEnabled: 1 23 | m_EnableTextureStreamingInEditMode: 1 24 | m_EnableTextureStreamingInPlayMode: 1 25 | m_AsyncShaderCompilation: 1 26 | m_EnterPlayModeOptionsEnabled: 0 27 | m_EnterPlayModeOptions: 3 28 | m_ShowLightmapResolutionOverlay: 1 29 | m_UseLegacyProbeSampleCount: 0 30 | m_AssetPipelineMode: 1 31 | m_CacheServerMode: 0 32 | m_CacheServerEndpoint: 33 | m_CacheServerNamespacePrefix: default 34 | m_CacheServerEnableDownload: 1 35 | m_CacheServerEnableUpload: 1 36 | -------------------------------------------------------------------------------- /ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!30 &1 4 | GraphicsSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 15 7 | m_Deferred: 8 | m_Mode: 1 9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} 10 | m_DeferredReflections: 11 | m_Mode: 1 12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} 13 | m_ScreenSpaceShadows: 14 | m_Mode: 1 15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} 16 | m_DepthNormals: 17 | m_Mode: 1 18 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} 19 | m_MotionVectors: 20 | m_Mode: 1 21 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} 22 | m_LightHalo: 23 | m_Mode: 1 24 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} 25 | m_LensFlare: 26 | m_Mode: 1 27 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} 28 | m_VideoShadersIncludeMode: 2 29 | m_AlwaysIncludedShaders: [] 30 | m_PreloadedShaders: [] 31 | m_PreloadShadersBatchTimeLimit: -1 32 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, 33 | type: 0} 34 | m_CustomRenderPipeline: {fileID: 0} 35 | m_TransparencySortMode: 0 36 | m_TransparencySortAxis: {x: 0, y: 0, z: 1} 37 | m_DefaultRenderingPath: 1 38 | m_DefaultMobileRenderingPath: 1 39 | m_TierSettings: [] 40 | m_LightmapStripping: 0 41 | m_FogStripping: 0 42 | m_InstancingStripping: 0 43 | m_BrgStripping: 0 44 | m_LightmapKeepPlain: 1 45 | m_LightmapKeepDirCombined: 1 46 | m_LightmapKeepDynamicPlain: 1 47 | m_LightmapKeepDynamicDirCombined: 1 48 | m_LightmapKeepShadowMask: 1 49 | m_LightmapKeepSubtractive: 1 50 | m_FogKeepLinear: 1 51 | m_FogKeepExp: 1 52 | m_FogKeepExp2: 1 53 | m_AlbedoSwatchInfos: [] 54 | m_LightsUseLinearIntensity: 1 55 | m_LightsUseColorTemperature: 1 56 | m_DefaultRenderingLayerMask: 1 57 | m_LogWhenShaderIsCompiled: 0 58 | m_SRPDefaultSettings: {} 59 | m_LightProbeOutsideHullStrategy: 0 60 | m_CameraRelativeLightCulling: 0 61 | m_CameraRelativeShadowCulling: 0 62 | -------------------------------------------------------------------------------- /ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshProjectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | m_LastAgentTypeID: -887442657 73 | m_Settings: 74 | - serializedVersion: 2 75 | agentTypeID: 0 76 | agentRadius: 0.5 77 | agentHeight: 2 78 | agentSlope: 45 79 | agentClimb: 0.75 80 | ledgeDropHeight: 0 81 | maxJumpAcrossDistance: 0 82 | minRegionArea: 2 83 | manualCellSize: 0 84 | cellSize: 0.16666667 85 | manualTileSize: 0 86 | tileSize: 256 87 | accuratePlacement: 0 88 | debug: 89 | m_Flags: 0 90 | m_SettingNames: 91 | - Humanoid 92 | -------------------------------------------------------------------------------- /ProjectSettings/PackageManagerSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | m_ScopedRegistriesSettingsExpanded: 1 16 | oneTimeWarningShown: 0 17 | m_Registries: 18 | - m_Id: main 19 | m_Name: 20 | m_Url: https://packages.unity.com 21 | m_Scopes: [] 22 | m_IsDefault: 1 23 | m_UserSelectedRegistryName: 24 | m_UserAddingNewScopedRegistry: 0 25 | m_RegistryInfoDraft: 26 | m_ErrorMessage: 27 | m_Original: 28 | m_Id: 29 | m_Name: 30 | m_Url: 31 | m_Scopes: [] 32 | m_IsDefault: 0 33 | m_Modified: 0 34 | m_Name: 35 | m_Url: 36 | m_Scopes: 37 | - 38 | m_SelectedScopeIndex: 0 39 | -------------------------------------------------------------------------------- /ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 4 7 | m_Gravity: {x: 0, y: -9.81} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_VelocityIterations: 8 10 | m_PositionIterations: 3 11 | m_VelocityThreshold: 1 12 | m_MaxLinearCorrection: 0.2 13 | m_MaxAngularCorrection: 8 14 | m_MaxTranslationSpeed: 100 15 | m_MaxRotationSpeed: 360 16 | m_BaumgarteScale: 0.2 17 | m_BaumgarteTimeOfImpactScale: 0.75 18 | m_TimeToSleep: 0.5 19 | m_LinearSleepTolerance: 0.01 20 | m_AngularSleepTolerance: 2 21 | m_DefaultContactOffset: 0.01 22 | m_JobOptions: 23 | serializedVersion: 2 24 | useMultithreading: 0 25 | useConsistencySorting: 0 26 | m_InterpolationPosesPerJob: 100 27 | m_NewContactsPerJob: 30 28 | m_CollideContactsPerJob: 100 29 | m_ClearFlagsPerJob: 200 30 | m_ClearBodyForcesPerJob: 200 31 | m_SyncDiscreteFixturesPerJob: 50 32 | m_SyncContinuousFixturesPerJob: 50 33 | m_FindNearestContactsPerJob: 100 34 | m_UpdateTriggerContactsPerJob: 100 35 | m_IslandSolverCostThreshold: 100 36 | m_IslandSolverBodyCostScale: 1 37 | m_IslandSolverContactCostScale: 10 38 | m_IslandSolverJointCostScale: 10 39 | m_IslandSolverBodiesPerJob: 50 40 | m_IslandSolverContactsPerJob: 50 41 | m_AutoSimulation: 1 42 | m_QueriesHitTriggers: 1 43 | m_QueriesStartInColliders: 1 44 | m_CallbacksOnDisable: 1 45 | m_ReuseCollisionCallbacks: 1 46 | m_AutoSyncTransforms: 0 47 | m_AlwaysShowColliders: 0 48 | m_ShowColliderSleep: 1 49 | m_ShowColliderContacts: 0 50 | m_ShowColliderAABB: 0 51 | m_ContactArrowScale: 0.2 52 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 53 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 54 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 55 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 56 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 57 | -------------------------------------------------------------------------------- /ProjectSettings/PresetManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1386491679 &1 4 | PresetManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_DefaultPresets: {} 8 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2022.3.22f1 2 | m_EditorVersionWithRevision: 2022.3.22f1 (887be4894c44) 3 | -------------------------------------------------------------------------------- /ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: [] 7 | layers: 8 | - Default 9 | - TransparentFX 10 | - Ignore Raycast 11 | - 12 | - Water 13 | - UI 14 | - 15 | - 16 | - 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | m_SortingLayers: 41 | - name: Default 42 | uniqueID: 0 43 | locked: 0 44 | -------------------------------------------------------------------------------- /ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.02 7 | Maximum Allowed Timestep: 0.33333334 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 1 7 | m_Enabled: 0 8 | m_TestMode: 0 9 | m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events 10 | m_EventUrl: https://cdp.cloud.unity3d.com/v1/events 11 | m_ConfigUrl: https://config.uca.cloud.unity3d.com 12 | m_TestInitMode: 0 13 | CrashReportingSettings: 14 | m_EventUrl: https://perf-events.cloud.unity3d.com 15 | m_Enabled: 0 16 | m_LogBufferSize: 10 17 | m_CaptureEditorExceptions: 1 18 | UnityPurchasingSettings: 19 | m_Enabled: 0 20 | m_TestMode: 0 21 | UnityAnalyticsSettings: 22 | m_Enabled: 0 23 | m_TestMode: 0 24 | m_InitializeOnStartup: 1 25 | UnityAdsSettings: 26 | m_Enabled: 0 27 | m_InitializeOnStartup: 1 28 | m_TestMode: 0 29 | m_IosGameId: 30 | m_AndroidGameId: 31 | m_GameIds: {} 32 | m_GameId: 33 | PerformanceReportingSettings: 34 | m_Enabled: 0 35 | -------------------------------------------------------------------------------- /ProjectSettings/VFXManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!937362698 &1 4 | VFXManager: 5 | m_ObjectHideFlags: 0 6 | m_IndirectShader: {fileID: 0} 7 | m_CopyBufferShader: {fileID: 0} 8 | m_SortShader: {fileID: 0} 9 | m_StripUpdateShader: {fileID: 0} 10 | m_RenderPipeSettingsPath: 11 | m_FixedTimeStep: 0.016666668 12 | m_MaxDeltaTime: 0.05 13 | -------------------------------------------------------------------------------- /ProjectSettings/XRSettings.asset: -------------------------------------------------------------------------------- 1 | { 2 | "m_SettingKeys": [ 3 | "VR Device Disabled", 4 | "VR Device User Alert" 5 | ], 6 | "m_SettingValues": [ 7 | "False", 8 | "False" 9 | ] 10 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Avatar Pose Library (APL) 2 | 3 | **AvatarPoseLibrary (APL)** は、Unity 上で VRChat 向けのアバター用のポーズを管理・適用するためのツールです。アバターのポーズを効率的に制御し、VRChat アバターの制作やカスタマイズを支援します。 4 | 5 | --- 6 | 7 | ## ✨ 特徴 8 | 9 | - **パラメーター数を最小限に最適化** 10 | 複数のメニューを統合し、制御する Int パラメーターを最小限にします。 11 | 12 | - **サムネイル撮影機能** 13 | アニメーションごとに自動でサムネイルを撮影し、メニュー画像を差し替え可能。 14 | 15 | - **トラッキング抑制** 16 | アニメーションごとに異なるトラッキング設定が可能。指だけを動かしたり、操作を完全に無効化することもできます。 17 | 18 | - **コンポーネントで設定完了** 19 | 設定はコンポーネントベース。プレハブ化可能で再利用性も高いです。 20 | 21 | - **より人間らしい動きに** 22 | 動きのないポーズを、自動で動画撮影に最適化された自然な動きに変換します。 23 | 24 | - **許諾なしで再配布OK** 25 | アニメーションやポーズデータの配布に、商用・非商用問わず許諾なしで使うことができます。 26 | 27 | --- 28 | 29 | ## 📦 導入方法 30 | 31 | APL は 2つの方法で導入することができます。 32 | **VCC (VRChat Creator Companion)** 経由の導入がおすすめです。 33 | 34 | ### 1. VCC 経由での導入 35 | 36 | 1. VCC を開き、**Settings** に移動 37 | 2. **Packages** タブをクリック 38 | 3. **Add Repository** をクリック 39 | 4. 入力欄に以下の URL を貼り付け 40 | ```text 41 | https://HhotateA.github.io/AvatarPoseLibrary/index.json 42 | ``` 43 | 5. **Add** をクリック 44 | 6. リポジトリ情報を確認し、**I Understand** をクリック 45 | 7. 任意のプロジェクトの **Manage Project** から APL を追加 46 | 47 | ### 2. UnityPackage 経由での導入 48 | 49 | 1. あらかじめ以下の依存パッケージをプロジェクトに追加しておく 50 | ```json 51 | "com.vrchat.avatars": "3.8.0", 52 | "nadena.dev.ndmf": "1.7.9", 53 | "nadena.dev.modular-avatar": "1.12.5" 54 | ``` 55 | 2. 下記 URL から UnityPackage を取得 56 | ```text 57 | https://github.com/HhotateA/AvatarPoseLibrary/releases/latest/ 58 | ``` 59 | 3. 任意の Unity プロジェクトを開き、UnityPackage をドラッグ&ドロップ 60 | 4. 追加ファイルを確認し、**Import** をクリック 61 | 62 | --- 63 | 64 | ## 🤝 PRの作成方法 65 | 66 | 1. フォークの作成 67 | 68 | リポジトリ右上の「Fork」ボタンをクリックし、自分のアカウントにコピーします。 69 | 70 | 2. ブランチを作成 71 | 72 | フォークしたリポジトリをクローンし、新しいブランチを切ります。 73 | 74 | ```git checkout -b feature/your-feature-name``` 75 | 76 | 3. 変更を加える 77 | 78 | 必要な修正や追加を行い、コミットメッセージは明確に書きます。 79 | 80 | ```git add .``` 81 | の後、 82 | 83 | ``` 84 | git commit -m "Add: 追加したアセットの概要" 85 | git commit -m "Feature: 追加した機能の概要" 86 | git commit -m "Fix: 修正したバグの概要" 87 | ``` 88 | 89 | のように、カンタンに変更内容を記述してください。 90 | 91 | 4. プッシュ 92 | 93 | 作成したブランチをリモートにプッシュします。 94 | 95 | ```git push origin feature/your-feature-name``` 96 | 97 | 5. プルリクエストを作成 98 | 99 | オリジナルリポジトリのページに移動し、「Compare & pull request」をクリック。 100 | 101 | - タイトルと詳細な説明を入力 102 | 103 | - 関連 Issue があればリンクを貼る 104 | 105 | 6. レビューとマージ 106 | 107 | メンテナーがレビューを行い、問題なければマージされます。 108 | 109 | フィードバックがあれば、追加コミットで修正してください。 110 | 111 | ※ バージョンコードの更新は行わないでください。 112 | 113 | - メジャーバージョン:互換性のない変更・機能追加 114 | - マイナーバージョン:互換性のある変更・機能追加 115 | - パッチバージョン:軽微なバグ修正 116 | 117 | --- 118 | 119 | ## 💰 開発支援のお願い 120 | 121 | APLは、完全無料・無償利用OKのツールとして公開されています。 商用・非商用問わず再配布も可能で、アニメーション販売やアバター改変で自由にご活用いただけます。 122 | 123 | もしAPLを利用したコンテンツ(アバター、衣装、ポーズ集など)で一定以上の収益や反響があった場合は、 開発者の活動継続のために投げ銭・宣伝などでご支援いただけると嬉しいです! 124 | 125 | Donation => https://hhotatea.booth.pm/items/6902222 126 | 127 | 皆さんの支援が、APLのさらなるアップデートや新機能開発につながります。 128 | 129 | --- 130 | 131 | ## 📄 ライセンス 132 | 133 | このプロジェクトは **MIT ライセンス** の下で提供されます。 134 | 135 | - 商用・非商用問わず利用することが可能です。 136 | - 再配布する場合も、許諾は必要ありません。 137 | 138 | バグ報告・機能提案・プルリクエストは歓迎です! 139 | GitHub の Issues や PR を通じてご参加ください。 140 | 141 | ライセンスファイルは、 [LICENCE](https://github.com/HhotateA/AvatarPoseLibrary/blob/main/Packages/com.hhotatea.avatar-pose-library/LICENCE) を参照してください。 142 | 143 | --- 144 | 145 | ## 👯 共同製作メンバー 146 | 147 | - ロゴ作成:lowteq 148 | https://x.com/lowteq_neko 149 | 150 | - ストア作成:meron-farm 151 | https://meronfarm.booth.pm/ 152 | 153 | --- 154 | 155 | ## 📞 連絡先 156 | 157 | 質問は、以下の連絡先にお願いします。 158 | 159 | - ほたてねこまじん @HhotateA_xR 160 | https://x.com/HhotateA_xR 161 | 162 | --- 163 | 164 | 2025-05-15 v1.0.0 -------------------------------------------------------------------------------- /Website/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HhotateA/AvatarPoseLibrary/153af0f36f4ef7853c08002292f974f980d7dc62/Website/banner.png -------------------------------------------------------------------------------- /Website/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HhotateA/AvatarPoseLibrary/153af0f36f4ef7853c08002292f974f980d7dc62/Website/icon.ico -------------------------------------------------------------------------------- /Website/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | AvatarPoseLibrary 7 | 8 | 9 | 13 | 14 | 15 | 22 | 23 | 24 |
25 |
26 | 30 | 35 |
36 |
37 | 38 |
39 |
40 | APL Banner 41 | 42 | 50 | 51 |

52 | AvatarPoseLibrary (APL) は、Unity 上で VRChat 向けのアバター用ポーズを管理・適用するためのツールです。アバターのポーズを効率的に制御し、VRChat アバターの制作やカスタマイズを支援します。 53 |

54 | 55 | 60 | 61 |
62 |
63 | 64 |
65 |
66 | 94 |
95 |
96 | 97 |
98 | 99 | 100 | 114 | 115 |
116 | 117 |
118 |

Site create by ほたてねこまじん

119 |

サイトの閲覧情報は、サイト管理者に送信される可能性があります。 — プライバシーポリシー PrivacyPolicy

120 |
121 | 122 | 123 | 124 | -------------------------------------------------------------------------------- /Website/main.js: -------------------------------------------------------------------------------- 1 | // Features カルーセルの自動スクロールを削除。CSSで2×3グリッド配置を行います。 2 | const gitURL = 'https://api.github.com/repos/HhotateA/AvatarPoseLibrary'; 3 | 4 | window.addEventListener('DOMContentLoaded', () => { 5 | // ===== UnityPackageリンクの作成 ===== 6 | const btn = document.querySelector('.unity-download'); 7 | fetch(`${gitURL}/releases/latest`) 8 | .then(res => { 9 | if (!res.ok) throw new Error('failed to fetch release'); 10 | return res.json(); 11 | }) 12 | .then(data => { 13 | const asset = data.assets.find(a => a.name.endsWith('.unitypackage')); 14 | if (asset) { 15 | btn.href = asset.browser_download_url; 16 | btn.title = `Download ${asset.name}`; 17 | } 18 | }) 19 | .catch(err => console.error('最新リリースの取得に失敗しました:', err)); 20 | 21 | // ===== Booth ギャラリーの自動スクロール設定 ===== 22 | const boothCarousel = document.querySelector('.booth-gallery .carousel'); 23 | const boothTrack = boothCarousel.querySelector('.carousel-track'); 24 | let boothSpeed = 0.5; 25 | let boothScroll = 0; 26 | 27 | fetch('https://script.google.com/macros/s/AKfycbzexlBYViKpPiYe56DxKL9t1dkZ1L3-manto_9RXOueMdH78Kh0cSJQmyqDfSsf_Ek9/exec') 28 | .then(res => { 29 | if (!res.ok) throw new Error('products.json の取得に失敗'); 30 | return res.json(); 31 | }) 32 | .then(items => { 33 | // ランダムにシャッフルして先頭15アイテムを選択 34 | const shuffled = [...items].sort(() => 0.5 - Math.random()); 35 | const selected = shuffled.slice(0, 15); 36 | // 同じ並びを複製して合計30アイテム 37 | const list = [...selected, ...selected]; 38 | 39 | list.forEach(item => { 40 | const a = document.createElement('a'); 41 | a.href = item.url; 42 | a.target = '_blank'; 43 | a.className = 'gallery-item'; 44 | 45 | const img = document.createElement('img'); 46 | img.src = item.thumbnail; 47 | img.alt = item.title; 48 | a.appendChild(img); 49 | 50 | const title = document.createElement('div'); 51 | title.className = 'title'; 52 | title.textContent = item.title; 53 | a.appendChild(title); 54 | 55 | boothTrack.appendChild(a); 56 | }); 57 | 58 | // 15アイテムを1ページ分として幅を定義 59 | const pageWidth = boothTrack.scrollWidth / 2; 60 | function stepBooth() { 61 | boothScroll += boothSpeed; 62 | // 1.5ページ分を超えたら0.5ページ分の位置へジャンプ 63 | if (boothScroll >= pageWidth * 1.5) { 64 | boothScroll = pageWidth * 0.5; 65 | } 66 | boothCarousel.scrollLeft = boothScroll; 67 | requestAnimationFrame(stepBooth); 68 | } 69 | requestAnimationFrame(stepBooth); 70 | 71 | // マウスホバーで一時停止/再開 72 | boothCarousel.addEventListener('mouseenter', () => boothSpeed = 0.5); 73 | boothCarousel.addEventListener('mouseleave', () => boothSpeed = 0.5); 74 | }) 75 | .catch(err => { 76 | console.error(err); 77 | boothTrack.innerHTML = '

商品の読み込みに失敗しました。

'; 78 | }); 79 | }); -------------------------------------------------------------------------------- /Website/products.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "title": "Avatar Pose Pack 1", 4 | "url": "https://hhotatea.booth.pm/items/6796326", 5 | "thumbnail": "https://booth.pximg.net/4fb745c3-074a-4dd3-a297-3f01ee3312c7/i/6796326/3dd37699-ee54-4d80-9e01-5f4f51b26f4f.png" 6 | }, 7 | { 8 | "title": "Avatar Pose Pack 2", 9 | "url": "https://hhotatea.booth.pm/items/3230947", 10 | "thumbnail": "https://booth.pximg.net/4fb745c3-074a-4dd3-a297-3f01ee3312c7/i/3230947/11b37175-ea4a-42aa-837c-f657d4c373e2.png" 11 | }, 12 | { 13 | "title": "Avatar Pose Pack 3", 14 | "url": "https://hhotatea.booth.pm/items/5341259", 15 | "thumbnail": "https://booth.pximg.net/4fb745c3-074a-4dd3-a297-3f01ee3312c7/i/5341259/4455a598-0f97-4e35-b8b5-d7791423b1e4.png" 16 | }, 17 | { 18 | "title": "Avatar Pose Pack 4", 19 | "url": "https://hhotatea.booth.pm/items/3003506", 20 | "thumbnail": "https://booth.pximg.net/4fb745c3-074a-4dd3-a297-3f01ee3312c7/i/3003506/787f0342-446b-4872-83c9-0507c845aa09.png" 21 | }, 22 | { 23 | "title": "Avatar Pose Pack 5", 24 | "url": "https://hhotatea.booth.pm/items/3103973", 25 | "thumbnail": "https://booth.pximg.net/4fb745c3-074a-4dd3-a297-3f01ee3312c7/i/3103973/2b1e2b7f-9f8b-4c25-a49a-910b204f6bce.png" 26 | }, 27 | { 28 | "title": "Avatar Pose Pack 1", 29 | "url": "https://hhotatea.booth.pm/items/6796326", 30 | "thumbnail": "https://booth.pximg.net/4fb745c3-074a-4dd3-a297-3f01ee3312c7/i/6796326/3dd37699-ee54-4d80-9e01-5f4f51b26f4f.png" 31 | }, 32 | { 33 | "title": "Avatar Pose Pack 2", 34 | "url": "https://hhotatea.booth.pm/items/3230947", 35 | "thumbnail": "https://booth.pximg.net/4fb745c3-074a-4dd3-a297-3f01ee3312c7/i/3230947/11b37175-ea4a-42aa-837c-f657d4c373e2.png" 36 | }, 37 | { 38 | "title": "Avatar Pose Pack 3", 39 | "url": "https://hhotatea.booth.pm/items/5341259", 40 | "thumbnail": "https://booth.pximg.net/4fb745c3-074a-4dd3-a297-3f01ee3312c7/i/5341259/4455a598-0f97-4e35-b8b5-d7791423b1e4.png" 41 | }, 42 | { 43 | "title": "Avatar Pose Pack 4", 44 | "url": "https://hhotatea.booth.pm/items/3003506", 45 | "thumbnail": "https://booth.pximg.net/4fb745c3-074a-4dd3-a297-3f01ee3312c7/i/3003506/787f0342-446b-4872-83c9-0507c845aa09.png" 46 | }, 47 | { 48 | "title": "Avatar Pose Pack 5", 49 | "url": "https://hhotatea.booth.pm/items/3103973", 50 | "thumbnail": "https://booth.pximg.net/4fb745c3-074a-4dd3-a297-3f01ee3312c7/i/3103973/2b1e2b7f-9f8b-4c25-a49a-910b204f6bce.png" 51 | }, 52 | { 53 | "title": "Avatar Pose Pack 1", 54 | "url": "https://hhotatea.booth.pm/items/6796326", 55 | "thumbnail": "https://booth.pximg.net/4fb745c3-074a-4dd3-a297-3f01ee3312c7/i/6796326/3dd37699-ee54-4d80-9e01-5f4f51b26f4f.png" 56 | }, 57 | { 58 | "title": "Avatar Pose Pack 2", 59 | "url": "https://hhotatea.booth.pm/items/3230947", 60 | "thumbnail": "https://booth.pximg.net/4fb745c3-074a-4dd3-a297-3f01ee3312c7/i/3230947/11b37175-ea4a-42aa-837c-f657d4c373e2.png" 61 | }, 62 | { 63 | "title": "Avatar Pose Pack 3", 64 | "url": "https://hhotatea.booth.pm/items/5341259", 65 | "thumbnail": "https://booth.pximg.net/4fb745c3-074a-4dd3-a297-3f01ee3312c7/i/5341259/4455a598-0f97-4e35-b8b5-d7791423b1e4.png" 66 | }, 67 | { 68 | "title": "Avatar Pose Pack 4", 69 | "url": "https://hhotatea.booth.pm/items/3003506", 70 | "thumbnail": "https://booth.pximg.net/4fb745c3-074a-4dd3-a297-3f01ee3312c7/i/3003506/787f0342-446b-4872-83c9-0507c845aa09.png" 71 | }, 72 | { 73 | "title": "Avatar Pose Pack 5", 74 | "url": "https://hhotatea.booth.pm/items/3103973", 75 | "thumbnail": "https://booth.pximg.net/4fb745c3-074a-4dd3-a297-3f01ee3312c7/i/3103973/2b1e2b7f-9f8b-4c25-a49a-910b204f6bce.png" 76 | } 77 | ] -------------------------------------------------------------------------------- /Website/style.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --bg-color: #0e0f14; 3 | --card-bg: #1c1d22; 4 | --text-color: #ffffff; 5 | --subtext-color: #bbbbbb; 6 | --accent-color: #79d3ff; 7 | --radius: 12px; 8 | } 9 | 10 | * { box-sizing: border-box; } 11 | 12 | body { 13 | margin: 0; 14 | font-family: 'Zen Kaku Gothic Antique', sans-serif; 15 | background-color: var(--bg-color); 16 | color: var(--text-color); 17 | } 18 | 19 | .container { max-width: 1100px; margin: 0 auto; padding: 0 1rem; } 20 | 21 | /* Header */ 22 | .header { background-color: #101216; box-shadow: 0 2px 8px rgba(0,0,0,0.6); } 23 | .header-container { display: flex; justify-content: space-between; align-items: center; padding: 1rem 0; } 24 | .logo { display: flex; align-items: center; font-size: 1.2rem; font-weight: bold; color: var(--accent-color); } 25 | .logo .icon { width: 28px; height: 28px; margin-right: 0.5rem; } 26 | .nav-links { list-style: none; display: flex; gap: 1.5rem; padding: 0; margin: 0; } 27 | .nav-links a { color: var(--text-color); text-decoration: none; font-weight: 500; transition: color 0.2s; } 28 | .nav-links a:hover { color: var(--accent-color); } 29 | 30 | /* Hero */ 31 | .hero { text-align: center; padding: 3rem 0; } 32 | .hero-banner { 33 | max-width: 50%; 34 | border-radius: var(--radius); 35 | box-shadow: 0 4px 15px rgba(0,0,0,0.4); 36 | margin-bottom: 2rem; } 37 | .hero-title { 38 | margin-bottom: 1rem; 39 | font-weight: 700; 40 | font-size: 2.2rem; 41 | line-height: 1.3; 42 | } 43 | .hero-description { color: var(--subtext-color); font-size: 1.1rem; margin-bottom: 2rem; } 44 | .hero-buttons { display: flex; justify-content: center; gap: 1rem; flex-wrap: wrap; } 45 | 46 | /* Buttons */ 47 | .btn { display: inline-block; background-color: var(--accent-color); color: var(--bg-color); text-decoration: none; font-weight: 500; padding: 0.75rem 1.5rem; border-radius: var(--radius); box-shadow: 0 2px 8px rgba(0,0,0,0.2); transition: transform 0.1s ease, box-shadow 0.2s ease; user-select: none; } 48 | .btn:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.3); } 49 | .btn:active { transform: scale(0.95); box-shadow: 0 2px 8px rgba(0,0,0,0.2); } 50 | 51 | /* Features Carousel */ 52 | .features { padding: 2rem 0; } 53 | .features .carousel { 54 | overflow: visible; 55 | } 56 | .features .carousel-track { 57 | display: grid; 58 | grid-template-columns: repeat(3, 1fr); 59 | grid-auto-rows: auto; 60 | gap: 1.5rem; 61 | } 62 | .carousel-track { display: flex; gap: 1.5rem; } 63 | .feature-card { flex: 0 0 260px; background-color: var(--card-bg); border-radius: var(--radius); padding: 1.5rem; box-shadow: 0 4px 12px rgba(0,0,0,0.3); transition: transform 0.2s, box-shadow 0.2s; } 64 | .feature-card:hover { transform: translateY(-4px); box-shadow: 0 6px 20px rgba(0,0,0,0.5); } 65 | .feature-card h3 { color: var(--accent-color); margin-top: 0; } 66 | .feature-card p { color: var(--subtext-color); font-size: 0.95rem; line-height: 1.5; } 67 | 68 | /* Responsive */ 69 | @media (max-width: 900px) { 70 | .features .carousel-track { 71 | grid-template-columns: repeat(2, 1fr); 72 | } 73 | } 74 | 75 | @media (max-width: 600px) { 76 | /* ヒーローバナー幅調整 */ 77 | .hero-banner { 78 | max-width: 90%; 79 | } 80 | /* ボタン縦並び */ 81 | .hero-buttons { 82 | flex-direction: column; 83 | gap: 0.75rem; 84 | } 85 | /* feature-card を横スクロール可能に */ 86 | .features .carousel { 87 | overflow-x: auto; 88 | -webkit-overflow-scrolling: touch; 89 | } 90 | .features .carousel-track { 91 | display: flex; 92 | gap: 1rem; 93 | } 94 | .feature-card { 95 | flex: 0 0 auto; 96 | width: 80%; 97 | min-width: 260px; 98 | } 99 | /* ナビリンク縦並び */ 100 | .nav-links { flex-direction: column; gap: 0.5rem; align-items: flex-end; } 101 | /* Boothギャラリーアイテム小さく */ 102 | .gallery-item { 103 | width: 100px; 104 | } 105 | /* フッター文字サイズ */ 106 | footer { 107 | font-size: 0.75rem; 108 | } 109 | } 110 | 111 | /* Booth ギャラリー */ 112 | .booth-gallery .carousel { 113 | overflow: hidden; 114 | } 115 | .booth-gallery .carousel-track { 116 | display: flex; 117 | gap: 1rem; 118 | } 119 | 120 | /* 各アイテムを正方形に */ 121 | .gallery-item { 122 | flex: 0 0 auto; 123 | width: 140px; 124 | aspect-ratio: 1 / 1; 125 | overflow: hidden; 126 | border-radius: var(--radius); 127 | box-shadow: 0 4px 12px rgba(0,0,0,0.3); 128 | transition: transform 0.2s, box-shadow 0.2s; 129 | } 130 | .gallery-item img { 131 | width: 100%; 132 | height: 100%; 133 | object-fit: cover; 134 | display: block; 135 | } 136 | .gallery-item:hover { 137 | transform: translateY(-4px); 138 | box-shadow: 0 6px 20px rgba(0,0,0,0.5); 139 | } 140 | 141 | /* Footer */ 142 | footer { 143 | background-color: var(--card-bg); 144 | padding: 1.5rem 0; 145 | text-align: center; 146 | color: var(--subtext-color); 147 | font-size: 0.875rem; 148 | } 149 | footer small { 150 | display: block; 151 | margin: 0.25rem 0; 152 | } 153 | footer a { 154 | color: var(--accent-color); 155 | text-decoration: none; 156 | transition: color 0.2s; 157 | } 158 | footer a:hover { 159 | color: var(--text-color); 160 | } 161 | 162 | /* form-link */ 163 | .form-link { 164 | text-align: right; /* 右寄せ */ 165 | margin-top: 1em; 166 | } 167 | 168 | .form-link a { 169 | position: relative; 170 | color: #007BFF; 171 | text-decoration: none; 172 | transition: color 0.3s ease; 173 | } 174 | 175 | .form-link a::after { 176 | content: ""; 177 | position: absolute; 178 | bottom: -2px; 179 | left: 0; 180 | width: 100%; 181 | height: 2px; 182 | background-color: #007BFF; 183 | transform: scaleX(0); 184 | transform-origin: left; 185 | transition: transform 0.3s ease; 186 | } 187 | 188 | .form-link a:hover { 189 | color: #0056b3; 190 | } 191 | 192 | .form-link a:hover::after { 193 | transform: scaleX(1); /* アニメーションで下線表示 */ 194 | } --------------------------------------------------------------------------------