{"id":19599897,"url":"https://github.com/justsleightly/transformconverter","last_synced_at":"2026-05-06T13:37:24.610Z","repository":{"id":160286527,"uuid":"586786598","full_name":"JustSleightly/TransformConverter","owner":"JustSleightly","description":null,"archived":false,"fork":false,"pushed_at":"2023-08-09T21:50:36.000Z","size":449,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-26T15:27:14.194Z","etag":null,"topics":["unity","vrchat","vrchat-tool"],"latest_commit_sha":null,"homepage":"https://notes.sleightly.dev/misc-scripts","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JustSleightly.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-01-09T08:23:12.000Z","updated_at":"2023-09-07T01:55:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"6469d302-fc51-4c6c-85f9-fdfac2ad0220","html_url":"https://github.com/JustSleightly/TransformConverter","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/JustSleightly/TransformConverter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JustSleightly%2FTransformConverter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JustSleightly%2FTransformConverter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JustSleightly%2FTransformConverter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JustSleightly%2FTransformConverter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JustSleightly","download_url":"https://codeload.github.com/JustSleightly/TransformConverter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JustSleightly%2FTransformConverter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279000758,"owners_count":26082921,"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","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["unity","vrchat","vrchat-tool"],"created_at":"2024-11-11T09:12:52.512Z","updated_at":"2025-10-09T04:11:45.658Z","avatar_url":"https://github.com/JustSleightly.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TransformConverter [\u003cimg src=\"https://github.com/JustSleightly/Resources/raw/main/Icons/JSLogo.png\" width=\"30\" height=\"30\"\u003e](https://vrc.sleightly.dev/ \"JustSleightly\") [\u003cimg src=\"https://github.com/JustSleightly/Resources/raw/main/Icons/Discord.png\" width=\"30\" height=\"30\"\u003e](https://discord.sleightly.dev/ \"Discord\") [\u003cimg src=\"https://github.com/JustSleightly/Resources/raw/main/Icons/GitHub.png\" width=\"30\" height=\"30\"\u003e](https://github.sleightly.dev/ \"Github\") [\u003cimg src=\"https://github.com/JustSleightly/Resources/raw/main/Icons/Store.png\" width=\"30\" height=\"30\"\u003e](https://store.sleightly.dev/ \"Store\")\n\n[![GitHub stars](https://img.shields.io/github/stars/JustSleightly/TransformConverter)](https://github.com/JustSleightly/TransformConverter/stargazers) [![GitHub Tags](https://img.shields.io/github/tag/JustSleightly/TransformConverter)](https://github.com/JustSleightly/TransformConverter/tags) [![GitHub release (latest by date including pre-releases)](https://img.shields.io/github/v/release/JustSleightly/TransformConverter?include_prereleases)](https://github.com/JustSleightly/TransformConverter/releases) [![GitHub issues](https://img.shields.io/github/issues/JustSleightly/TransformConverter)](https://github.com/JustSleightly/TransformConverter/issues) [![GitHub last commit](https://img.shields.io/github/last-commit/JustSleightly/TransformConverter)](https://github.com/JustSleightly/TransformConverter/commits/main) [![Discord](https://img.shields.io/discord/780192344800362506)](https://discord.sleightly.dev/)\n\nA Unity editor extension that replaces all transform animation properties within selected animation clips with position/rotation/parent/~~scale~~ constraint offset properties. This is primarily developed to assist with avoiding transform animations on [VRChat Avatars due to complex issues with Avatar Masks on Animator Controllers](https://docs.vrchat.com/docs/playable-layers#fx).\n\nWhile transform animations can mostly be emulated with constraint offset animations, this script only handles replacing the properties of animation clips and does not create the constraint components on your animated gameobjects in your hierarchy.\n\n**Scale Transform Animations do not convert nicely so they have been removed from functionality until a better solution is implemented.**\n\n---\n\n### **[Download Here!](https://github.com/JustSleightly/TransformConverter/releases)**\n\n---\n​\n![Demo gif](https://github.com/JustSleightly/TransformConverter/raw/main/Examples/Demo.gif)\n\n## Constraint Setup\n\nFor any gameobject that you would normally animate transforms for, add a constraint component instead for the respective transform you are trying to emulate. If you are animating both position and rotation, you can opt to use a parent constraint instead and toggle the option for `Using Parent Constraints` in the TransformConverter editor window.\n\nFor each constraint, you will typically set the constraint settings so that the `At Rest` and `Offset` values match your default transform values for that transform property.\n\nFor each constraint source, you will typically set the immediate parent gameobject from the hierarchy as the only source. ~~with the exception of _**Scale Constraints**_ which should use a _WorldTransform_ prefab of _(1,1,1)_ scale instead. This prefab should not exist in your hierarchy/scene and only exist in your project assets instead so as to maintain absolute values. Note that the actual transform value of your scale may deviate from your animated offset when not a power of 2.~~\n\nAn example prefab can be found in the [examples](https://github.com/JustSleightly/TransformConverter/tree/main/Examples) folder.\n\n\u003cdetails\u003e\n\n  \u003csummary\u003e Position Constraint Example \u003c/summary\u003e\n​\n\u003cblockquote\u003e\n\n![Position Constraint png](https://github.com/JustSleightly/TransformConverter/raw/main/Examples/PositionConstraint.png)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\n  \u003csummary\u003e Rotation Constraint Example \u003c/summary\u003e\n​\n\u003cblockquote\u003e\n\n![Rotation Constraint png](https://github.com/JustSleightly/TransformConverter/raw/main/Examples/RotationConstraint.png)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\n  \u003csummary\u003e Parent Constraint Example \u003c/summary\u003e\n​\n\u003cblockquote\u003e\n\n![Parent Constraint png](https://github.com/JustSleightly/TransformConverter/raw/main/Examples/ParentConstraint.png)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\n  \u003csummary\u003e \u003cs\u003e Scale Constraint Example \u003c/s\u003e \u003c/summary\u003e\n​\n\u003cblockquote\u003e\n\n![Scale Constraint png](https://github.com/JustSleightly/TransformConverter/raw/main/Examples/ScaleConstraint.png)\n\n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjustsleightly%2Ftransformconverter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjustsleightly%2Ftransformconverter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjustsleightly%2Ftransformconverter/lists"}