{"id":24958493,"url":"https://github.com/kusomaigo/deskymode","last_synced_at":"2025-07-22T15:32:53.301Z","repository":{"id":274216789,"uuid":"922096045","full_name":"kusomaigo/DeskyMode","owner":"kusomaigo","description":"Unity tool to generate components for head-source, IK-driven avatar motion in desktop VRChat","archived":false,"fork":false,"pushed_at":"2025-02-14T06:43:55.000Z","size":457,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-24T17:21:55.076Z","etag":null,"topics":["vrcft","vrchat","vrchat-avatars","vrchat-tool"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kusomaigo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-25T09:59:52.000Z","updated_at":"2025-03-14T08:14:16.000Z","dependencies_parsed_at":"2025-01-25T19:23:27.728Z","dependency_job_id":"c93be564-b688-4142-9a42-5c096bfc0798","html_url":"https://github.com/kusomaigo/DeskyMode","commit_stats":null,"previous_names":["kusomaigo/deskymode"],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kusomaigo%2FDeskyMode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kusomaigo%2FDeskyMode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kusomaigo%2FDeskyMode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kusomaigo%2FDeskyMode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kusomaigo","download_url":"https://codeload.github.com/kusomaigo/DeskyMode/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248283010,"owners_count":21077756,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["vrcft","vrchat","vrchat-avatars","vrchat-tool"],"created_at":"2025-02-03T07:27:12.981Z","updated_at":"2025-04-10T19:50:34.093Z","avatar_url":"https://github.com/kusomaigo.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DeskyMode\r\n\r\nVTube in VRChat: \r\nUnity tool to generate components for head-source, IK-driven avatar motion in desktop VRChat \r\n\r\nhttps://github.com/user-attachments/assets/42acdfec-d794-4d9c-a9b7-66f06b7ae274\r\n\r\n\u003cdetails\u003e\r\n\u003csummary\u003eStream Usage Example\u003c/summary\u003e\r\n\u003cbr\u003e\r\n\r\nhttps://github.com/user-attachments/assets/848ec761-f197-428c-b576-34f5eea21680\r\n\u003c/details\u003e\r\n\r\nUses proposed head tracking parameters in VRCFaceTracking [(Head Parameters PR)](https://github.com/benaclejames/VRCFaceTracking/pull/248)\r\n\r\n## Setup Instructions\r\n\r\n0. Make sure your VRC Avatar Project is up to date \r\n1. Add [VRCFury](https://vrcfury.com/download) to your project\r\n2. Add [VRLabs' Final-IK-Stub](https://github.com/VRLabs/Final-IK-Stub) to your project\r\n   - Alternatively, you can use the actual [Final IK](https://assetstore.unity.com/packages/tools/animation/final-ik-14290) from RootMotion ($$$). **YOU DO NOT NEED FINAL IK TO USE DESKYMODE**. The stub works perfectly fine for VRC. \r\n3. Add DeskyMode to your project\r\n   - Download the latest `.unitypackage` from the Releases tab and import it into your project\r\n   - Download the Package zip, unzip it, and add the package via [Unity Editor's Package manager](https://docs.unity3d.com/2022.3/Documentation/Manual/upm-ui-local.html)\r\n\r\n## Updating Instructions\r\n\r\n1. Import the updated package, or unzip the package zip contents over the original install, or pull this GitHub repo if that's how you downloaded the package\r\n2. In your Unity Editor top toolbar: `Tools -\u003e DeskyMode -\u003e Refresh Scripts`\r\n\r\n## DeskyMode Instructions\r\n\r\nDeskyMode can be added to any *humanoid* avatar that has been set up for VRChat. \r\n\r\n0. Make sure your *humanoid* avatar is properly set up for VRChat (with a VRCAvatarDescriptor)\r\n1. Open the DeskyMode tool menu in the top toolbar (`Tools -\u003e DeskyMode -\u003e DeskyMode Window`)\r\n\r\n![toolbar](imgs/toolbar.png)\r\n\r\n2. Drag your avatar into the Avatar slot \r\n   - (Optional) Avatar Scale is set automatically based on your avatar's height. You should only set this manually *if the motion of the targets seem too small/large for your avatar*. Generally, you should **not** need to modify this value!\r\n   - (Optional) Check the \"Debug\" checkbox to see the transforms DeskyMode uses in generating the FIK components (Avatar References and IK Targets)\r\n   - (Optional) Check the \"Add Mesh Renderers\" checkbox if you would like mesh primitive debug visualizers on the IK targets\r\n   - The default VRCFury prefab uses the synced parameters asset. Note that it will occupy 56 bits of synced avatar parameters space. You can drop in the other prefab (without the \"Sync\" suffix) that takes *no* synced parameters, but remote users will not see DeskyMode movement if you enter poses via stations or avatar animations or do anything that disables avatar IK Sync. \r\n\r\n![DeskyMode Window](imgs/dskym_window.png)\r\n\r\n3. Click the \"Apply All\" button to apply DeskyMode to your avatar\r\n\r\n## TODO\r\n\r\n - [ ] Massive code refactor because it's a mess\r\n - [x] ~~Workaround the import compilation issue~~ Find another hack for Package distribution\r\n - [ ] Better window UI \r\n - [ ] Add settings for control of certain FIK properties\r\n    - [ ] Spine stiffness\r\n    - [ ] Different \"presets\" \r\n    - [ ] ...\r\n - [ ] VCC package? \r\n\r\n## Notes\r\n\r\nBy overriding VRC IK, you lose on avatar IK Sync, thus causing weird remote-only issues with things like Gogoloco (and no synced movement to remote users who don't have your animations shown). \r\nOverriding VRC IK is useful to keep your head origin aligned with your mouse cursor (when *standing* only, as this does not apply when crouching/prone).\r\nDeskyMode now has checks in the default animator to disable the VRC IK Override if in any state that isn't \"standing\", including Gogoloco poses. \r\n\r\nThere will be some \"adjustment\" movement if you enable/disable DeskyMode as the head/body snaps to DeskyMode animated/regular position. This also happens if deskymode enable is cycled due to Auto Toggle (i.e. crouching). \r\nPart of the delay between the toggle and adjustment is due to what seems like some fixed time used by the Tracking Control state behavior, and another part is the recommended transition time. \r\n\r\nEntering GogoLoco poses with \"Hand Lock\" toggle enabled may sometimes cause the hands to lock in odd positions for remote users. This is because GogoLoco poses are updated by IK Sync, not animation for remote users. \r\nThus, the timing of the pose update for remote users is not always consistent. \r\n\r\nBe wary of avatar optimizers such as [d4rkAvatarOptimizer](https://github.com/d4rkc0d3r/d4rkAvatarOptimizer/tree/main) that can unintentially remove the Final IK components. \r\nSince the Final IK components are disabled and *stay* disabled as they're used by IK Execution Order components instead, optimizers like d4rk's will remove the IK components during the build for upload with its default settings!\r\n  \r\n## License\r\n\r\n**All of the source assets and all generated assets from DeskyMode fall under the [MIT License](https://github.com/kusomaigo/DeskyMode/blob/main/LICENSE)**.\r\n\r\n## Credits\r\n\r\n- [Titatitanium](https://www.twitch.tv/titatitanium) for streaming with early versions and being DeskyMode's #1 sales-gote\r\n- Azmidi's [OSCmooth](https://github.com/regzo2/OSCmooth)\r\n- [VRLabs](https://vrlabs.dev/) for Final IK Stub\r\n- [VRCFT Discord](https://discord.gg/vrcft) for constantly asking for desktop headtracking to be added to VRCFT\r\n\r\n- Video Credits\r\n\r\n    - Avatar: [Neri by Graelyth](https://graelyth.gumroad.com/l/rqenf)\r\n    - World: [Deep Blue by Fins](https://vrchat.com/home/world/wrld_f7a383bc-c925-4696-85c2-2996c0a40112/info)\r\n    - Pose Animations: [GoGo Loco by Franada](https://www.gogoloco.net/)\r\n\r\n- Icon Credits\r\n\r\n   - [Gh0st](https://digitalghostt.carrd.co/) for the white VRCFT icon\r\n   - [Desktop icon](https://www.flaticon.com/free-icon/desktop_17113391?term=round+desktop\u0026page=1\u0026position=1\u0026origin=search\u0026related_id=17113391) by [marun](https://www.flaticon.com/authors/marun)\r\n   - [Rotation icon](https://www.flaticon.com/free-icon/360_4352629?term=rotation\u0026page=1\u0026position=4\u0026origin=tag\u0026related_id=4352629) by [Freepik](https://www.flaticon.com/authors/freepik)\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkusomaigo%2Fdeskymode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkusomaigo%2Fdeskymode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkusomaigo%2Fdeskymode/lists"}