{"id":"revvy02/retarget-r15-to-r6","name":"retarget-r15-to-r6","scope":"revvy02","platform":"roblox","description":"Convert Roblox R15 KeyframeSequences to R6 poses","version":"0.1.0","latest":"0.1.0","versions":["0.1.0"],"license":"MIT","licenseRating":"safe","licenseCaveats":[],"licenseVerified":true,"dependencies":{},"integrity":"317b04ce8cb132d17b943b595e1e1e84b67de722ae1a31855565dc3f75ff26c2","likes":0,"downloads":0,"install":"forest install revvy02/retarget-r15-to-r6","url":"https://forest.dev/p/roblox/revvy02/retarget-r15-to-r6","files":"https://api.forest.dev/ai/package/roblox/revvy02/retarget-r15-to-r6/files","readme":"# R15 to R6 retargeting\n\nConvert an R15 `KeyframeSequence` into a new R6 sequence. No game hierarchy, asset fetching, plugin, or third-party dependencies are required.\n\n## Installation\n\nIn your `wally.toml`:\n\n```toml\n[dependencies]\nretarget_r15_to_r6 = \"revvy02/retarget-r15-to-r6@0.1.0\"\n```\n\nRun `wally install`, then require `Packages.retarget_r15_to_r6`.\n\nThe same source is available as the pesde Git package `rvy/retarget_r15_to_r6`:\n\n```toml\n[dependencies]\nretarget_r15_to_r6 = { repo = \"https://github.com/revvy02/r15-to-r6-animation-retargeter\", rev = \"<full-commit-sha>\", path = \"package\" }\n```\n\nGit installation requires repository access while the source repository is private.\n\n## Usage\n\n```luau\nlocal retarget = require(path.to.retarget_r15_to_r6)\nlocal converted = retarget(sequence, { counterWaistSwingOnLegs = false })\nif converted then\n    converted.Parent = destination\nend\n```\n\n`retarget(sequence: KeyframeSequence, options: Options?): KeyframeSequence?`\n\n- Returns a detached clone with R6 poses, or `nil` if the input has no recognized R15 body poses.\n- Leaves the input unchanged. The input and its relevant descendants must be Archivable.\n- Preserves sequence loop/priority, attributes, keyframe times/names, and keyframe markers through cloning. Names the result `<source>_Precise` for compatibility.\n- `counterWaistSwingOnLegs` defaults to `false`; enabling it adds compensating leg motion when the R15 waist animates but its legs do not.\n- Callers own and must eventually parent or destroy returned instances.\n\n## Scope\n\nThe joint definitions are calibrated to the repository's reference R15 and R6 rigs. This is a lossy mapping from articulated R15 limbs onto rigid R6 limbs, not a universal avatar-proportion solver. Facial, finger, and other non-body pose channels are not transferred. CurveAnimation inputs are not supported. Existing sampling and easing behavior is preserved by this extraction.\n\n## License\n\nMIT; see [LICENSE](LICENSE). The published package contains the converter, this documentation, its license, and package metadata. Roblox rigs, animation fixtures, videos, and the Studio plugin are not included.\n\n`private = true` in `pesde.toml` prevents publication to the pesde registry. Wally publication uses the separate `wally.toml` manifest.\n","readmeTruncated":false}