VRC to CVR: Difference between revisions
dead |
|||
(21 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
This is now a second draft. Much of the items here I've had a chance to actually test and trial out in CVR. | |||
With the right tools the conversion process is relatively painless, most of the hassle I had to fight with is having a fragile unity project. | |||
== | == Conversion Process == | ||
=== tl;dr === | |||
* Copy project | |||
* Convert physbones back to dynamic bones | |||
* Install CCK (CVR dev sdk) | |||
* <s>Run a conversion tool on your avatar</s> Don't do this anymore. Converting by hand works better. | |||
* Delete VRC components on avatar | |||
* Upload to CVR (Tag honestly) | |||
=== Resources === | |||
This section contains links to tools or whatnot you will likely find useful. Feel free to glaze over and use this as a reference later. | |||
CVR dev kit (CCK) | ==== CVR dev kit (CCK) ==== | ||
* https://developers.abinteractive.net/cck/setup/ | * https://developers.abinteractive.net/cck/setup/ | ||
VRC to CVR conversion tools | ==== VRC to CVR conversion tools ==== | ||
* https://github.com/imagitama/vrc3cvr | * https://fluffs.gumroad.com/l/sdk3-to-cck (recommended) | ||
* https://github.com/Narazaka/VRC2CVR | * <s>https://github.com/imagitama/vrc3cvr</s> | ||
* https://github.com/ZettaiVR/VRC2CVR | * <s>https://github.com/Narazaka/VRC2CVR</s> | ||
* <s>https://github.com/ZettaiVR/VRC2CVR</s> | |||
Physbone Conversion: | ==== <s>Physbone Conversion:</s> ==== | ||
* | * <s>https://github.com/Dreadrith/PhysBone-Converter (Recommended)</s> | ||
* <s>https://fluffs.gumroad.com/l/VRCDynamicBoneToPhysicsBoneConverter</s> | |||
* https://fluffs.gumroad.com/l/VRCDynamicBoneToPhysicsBoneConverter | * <s>https://booth.pm/ja/items/4032295</s> | ||
==== Other Related Guides ==== | |||
* A more manual focused guide by some furry: https://docs.google.com/document/d/1vWB3VN98i7erA8anywUxxGoT39hrh8oHMmU6uaAnGu0/edit | * A more manual focused guide by some furry: https://docs.google.com/document/d/1vWB3VN98i7erA8anywUxxGoT39hrh8oHMmU6uaAnGu0/edit | ||
* Basic Avatar tutorial (Import to upload, not a conversion) : https://www.youtube.com/watch?v=qkmRsS9fB1A | * Basic Avatar tutorial (Import to upload, not a conversion) : https://www.youtube.com/watch?v=qkmRsS9fB1A | ||
* Avatar emulator for local testing: https://booth.pm/en/items/4042017 (Note, builds an avatar then uses a CVR mod to load the bundle into the game) | * Avatar emulator for local testing: https://booth.pm/en/items/4042017 (Note, builds an avatar then uses a CVR mod to load the bundle into the game) | ||
* An image guide (2023) was made by someone else that you can have a look at https://vrwiki.nexisonline.net/wiki/File:Shitty_conversion_guide_cvr.png | |||
=== | == Starting out == | ||
In my testing I started with a pair of VRC projects. One was simple and contained a basic kikyo, and the other was horribly big and buggy containing my actual avatars. I managed to get both converted. | |||
== | === FAQ: === | ||
If you have any questions and get them answered please add them here, it's a wiki! | |||
* '''Do I need to remove the VRC SDK and stuff?''' CVR runs on an older version of Unity, so you cannot use the same project. | |||
* '''Does my <insert shader here> work?''' Most of your shaders and stuff will work. That includes DPS. Anything that relies on the VRC SDK package will not. | |||
* '''Toggles and sliders and stuff?''' Some converters can convert toggles to AAS, but they're kinda flaky. You're better off doing it by hand in most cases. | |||
* '''Do I need to publish to use my avatar?''' Publishing is for when you want your avatar to be public. If you just want to use it for yourself there's no need. In addition, you can share your avatar without publishing with specific people on a whitelist basis. | |||
=== | === Create an Account === | ||
You now have two options: Steam Link and the old ABI Hub. We recommend using the Hub. | |||
* | ==== via Alpha Blend Interactive Hub ==== | ||
* Make an account on [https://hub.abinteractive.net/ the CVR Hub] . | |||
* | * Download [https://developers.abinteractive.net/cck/setup/ the CVR CCK] (their SDK) and Unity 2021.3.23f1 from the links on the same page. | ||
* Make an API key on the hub (Home > Access Key Manager) and copy that and keep it somewhere safe. It's basically a password to all the content on your account. | |||
=== | ==== via Steam (in-game) ==== | ||
Just click on the Steam button below the login form. You'll get an automatically-created account with some gibberish after your name. You'll be able to request a name change on the website afterwards. | |||
== From Existing project == | == From Existing project == | ||
Goal number 1 is to produce a stable project from your existing work. | |||
Because VRC is now using a newer version of Unity and a different way of packaging things, you have to make a new project for CVR. | |||
=== Importing Pieces === | |||
* Create a new fresh project with the same unity version as before (currently 2021.3.23f1) | |||
* Import the CCK https://developers.abinteractive.net/cck/setup/ <s>and the VRC SDK.</s> | |||
* Import from installers things you think you'll need, like shaders, DPS, <s>dynamic bones</s> Magica Cloth 2. | |||
** Dynamic Bones has been superceded by Magica Cloth 2. | |||
** Physbones are a VRC product and cannot be used on CVR. Use Magica Cloth 2, constraints, and pointers/triggers instead. | |||
* Export an avatar or an entire scene of avatars from your old project: | |||
** Open up your old project and then in this old project: | |||
** Drag the entire scene, or the avatar from the scene into your project section. | |||
** Rightclick on it in the project and hit "export". | |||
** Before hitting okay and making the package, note down what it's pulling in; what shaders, what scripts. '''Make sure you don't pull in the VRC SDK or your shit will explode.''' | |||
** Export as a unitypackage. | |||
* Before importing into your new project, ensure you have all the things fully installed from what you noted earlier. An export doesn't pull in dependencies of dependencies so it's likely missing stuff. | |||
* Import in your exported unitypackage. Drag it into the scene and your stuff is ready. | |||
== Conversion == | |||
Conversion tools got pretty good. | |||
Main things to do: | Main things to do: | ||
* Convert physbones to | * Convert physbones to Magica Cloth 2 bonecloth (Or copy from older/remake) | ||
* Run a conversion script | * Run a conversion script for the AV3 animator controlled components (Gestures, Toggles) | ||
* Upload | * Upload | ||
=== Physbones to | === Physbones to Magica Cloth 2 === | ||
CVR recommends that people use Magica Cloth 2 for their wigglies these days, since it's way less laggy and offers more features, and properly supports gravity. | |||
Most converters do not handle Magica (nor dynbones) properly, so it's recommended to do it by hand. There are presets available for most use cases. | |||
To get started, follow the instructions by the creator: https://magicasoft.jp/en/magicaclothmeshclothstart-2/ | |||
'''Usage''' | |||
The overall flow is: | |||
* | * Create a "MagicaRenderDeformer" on the meshes you want to deform | ||
* | ** Click Create | ||
* | * Create a "Magica Virtual Deformer" as an empty game object on your armature | ||
** Configure and create a 'virtual mesh' by messing with the reduction settings. | |||
** Click Create | |||
* Create a "Magica Mesh Cloth" Object on your armature | |||
** Start point selection and configure all the bits you do and do not want to move. | |||
** Tweak the parameters to your liking. There are some presets you can start with. | |||
** Create Colliders (Sphere, plane and capsule are available). Usually a case of adding them for leg and butt. | |||
** Add Colliders to the Magia Mesh cloth object | |||
** Tweak colliders to look nice (Skin-tight and close fits take a lot of tweaking) | |||
** ...Click Create | |||
* Upload to CVR | |||
They provide a tutorial for the details: | |||
https://magicasoft.jp/en/magicaclothmeshclothstart-2/ | |||
Notes: | |||
* | * Red point selection pins the cloth to your model, you'll want everything not move = red, everything move = green. It's pretty easy. If you see LOADS of points, you need to have less polygons on your virtual mesh. | ||
* | * If you get a zero vertex error or it doesn't work for some reason, make sure you clicked 'create' on the entire chain of components. | ||
Notes on settings (for a skirt for example):<pre> | |||
>Mass: 15, 1, -0.4 | |||
>Drag: 0.01. Controls amount of movement. Lower numbers leads to more movement as far as I can tell. | |||
>World Influence: Hips, Max Speed 3, Movement 0.6, Rotation 0.7. This is basically the opposite of "Inert" from Dynamic Bone. Lowering this will lower how much it moves too. | |||
>Reset after teleport on | |||
>Clamp rotation: 30-50. This is like max angle from PhysBone as far as I can tell. | |||
>Restore distance stiffness: 0.5 | |||
>Restore rotation: 0.02-0.005, 0.1 | |||
>Collision penetration: Surface, Distance 0.01-0.02, Moving 0.3-1. Making the distance numbers lower seems to make the mesh further away from the collider to prevent clipping more. | |||
</pre> | |||
== VRC to AV3 conversion == | |||
The best tool I've used is fluff's: | |||
* https://fluffs.gumroad.com/l/sdk3-to-cck | |||
Converts CGE, is submenu aware, and is pretty painless to use. | |||
* Install tool | * Install tool | ||
* run tool on your avatar | * run tool on your avatar | ||
* remove vrc component(s) if not deleted | * remove vrc component(s) if not deleted | ||
* set the | * set the viewball and voiceball position (CVR comes with a voice location so sound actually comes from your mouth) | ||
* You're done | |||
Main differences to VRC: CVR is basically AV 2.0 but with animation controllers part of 3.0. That means toggles, fun effects, gestures, everything. It's unity. | |||
Fluff's Converter captures toggles in submenus. It even captured submenu submenu toggles for me too. | |||
How Fluff's work is it creates a CVR animator and a CVR override in a folder somewhere for you. It then applies the override to the CVR descriptor, and puts the animator controller in the override, and that's the controller that will apply on your avatar in game. | |||
Things added in the Advanced Avatar System will apply to this animator (well it does some funny things on upload to slap it all together behind the scenes) but basically you can change parameters with the AAS. | |||
Notes: | Notes: | ||
* The UI is built to enable people to plug in options and then have CVR generate the animator layer for it. What you want is to name the Input the same as the parameter you already made so it doesn't create anything and just uses your existing animator controllers. | * The CCK UI is built to enable people to plug in options and then have CVR generate the animator layer for it. What you want is to name the Input the same as the parameter you already made so it doesn't create anything and just uses your existing animator controllers. | ||
More manual guidance will/is available here: [[Manual_CVR_Conversion]] (might be wrong) | |||
=== | === Gestures === | ||
Fluff's converter captures CGE as well! | |||
I | Hai is working on a version of CGE for CVR but I don't think it's ready yet. | ||
== Bugfixing == | |||
===Ahh my project is such a fucking mess it breaks whenever I try anything and I don't want to keep copying massive backups=== | |||
Best you can do is address the problems one by one. Most likely solution: Install the right version of the thing that's making the error. Sometimes just deleting stuff works too. I had to delete the following: | |||
'''Things probably worth deleting''' | |||
* AV3 emulator. No good here. (Assets\Lyuma) | * AV3 emulator. No good here. (Assets\Lyuma) | ||
* Assets/VRCSDK/Dependencies/VRChat/Scripts/ShaderStripping/StripPostProcessing <- This script cursed my project for a while so delete this. (It breaks shader compiling) | * Assets/VRCSDK/Dependencies/VRChat/Scripts/ShaderStripping/StripPostProcessing <- This script cursed my project for a while so delete this. (It breaks shader compiling) | ||
===Gestures=== | |||
Note: Fluff's converter should have worked fine. | |||
If not, read https://forums.abinteractive.net/d/656-how-to-add-facial-expressions-hand-gestures-to-your-avatar . If you've ever done 2.0 gestures it's the same - You don't need to fuck around with animator controllers to add gestures, just add face animations to the slots. | |||
From there just hit upload avatar and it should work. | From there just hit upload avatar and it should work. | ||
=== Uploading and Tagging === | |||
Tag your shit correctly. | Tag your shit correctly. | ||
CVR works differently than VRC: They rely on the tagging system to keep content away from minors, and if you mis tag it is treated seriously. The upside is if you DO tag stuff with the right tags, they won't do shit to you if you spoop someone with them, or take your dick out. | CVR works differently than VRC: They rely on the tagging system to keep content away from minors, and if you mis tag it is treated seriously. The upside is if you DO tag stuff with the right tags, they won't do shit to you if you spoop someone with them, or take your dick out. | ||
'' | '''Possible problems:''' | ||
* No rights to upload content ID. This is the generic failed error messages. | |||
** Server just down. Try again later. | |||
* No rights to upload content ID. This is the generic failed error messages. | |||
** | |||
** Possible causes: you hit the 10 avatar limit for free users. | ** Possible causes: you hit the 10 avatar limit for free users. | ||
* Gets stuck on "being encrypted": This happens when the avatar isn't written to disk; IE the shader compile failed, or out of disk space, or something. Symptoms include not being able to generate file size estimates and an error in the console saying it couldn't write/find the file. | * Gets stuck on "being encrypted": This happens when the avatar isn't written to disk; IE the shader compile failed, or out of disk space, or something. Symptoms include not being able to generate file size estimates and an error in the console saying it couldn't write/find the file. | ||
= Worlds = | = Worlds = | ||
{{Warning|There was a link here that went to CVR's forums, but the forums have been retired.}} | |||
And some greentext: | And some greentext:<pre> | ||
<pre> | |||
>make a copy of your vrc project | >make a copy of your vrc project | ||
>remove vrc sdk | >remove vrc sdk | ||
Line 213: | Line 209: | ||
>you now have to redo all buttons and teleports etc, so i recommend putting your vrc project on a second monitor as reference | >you now have to redo all buttons and teleports etc, so i recommend putting your vrc project on a second monitor as reference | ||
>upload form the menu "Alpha Blend Interactive" you find at the top | >upload form the menu "Alpha Blend Interactive" you find at the top | ||
</pre> | </pre>You can find everything essential by searching components for "CVR". CVR Interactible is the button for example. | ||
You can find everything essential by searching components for "CVR". CVR Interactible is the button for example. | |||
[[Category:ChilloutVR]] | [[Category:ChilloutVR]] | ||
[[Category:Tutorials]] | [[Category:Tutorials]] | ||
[[Category:VRChat]] | [[Category:VRChat]] |
Latest revision as of 13:38, 29 August 2024
This is now a second draft. Much of the items here I've had a chance to actually test and trial out in CVR.
With the right tools the conversion process is relatively painless, most of the hassle I had to fight with is having a fragile unity project.
Conversion Process
tl;dr
- Copy project
- Convert physbones back to dynamic bones
- Install CCK (CVR dev sdk)
Run a conversion tool on your avatarDon't do this anymore. Converting by hand works better.- Delete VRC components on avatar
- Upload to CVR (Tag honestly)
Resources
This section contains links to tools or whatnot you will likely find useful. Feel free to glaze over and use this as a reference later.
CVR dev kit (CCK)
VRC to CVR conversion tools
- https://fluffs.gumroad.com/l/sdk3-to-cck (recommended)
https://github.com/imagitama/vrc3cvrhttps://github.com/Narazaka/VRC2CVRhttps://github.com/ZettaiVR/VRC2CVR
Physbone Conversion:
https://github.com/Dreadrith/PhysBone-Converter (Recommended)https://fluffs.gumroad.com/l/VRCDynamicBoneToPhysicsBoneConverterhttps://booth.pm/ja/items/4032295
Other Related Guides
- A more manual focused guide by some furry: https://docs.google.com/document/d/1vWB3VN98i7erA8anywUxxGoT39hrh8oHMmU6uaAnGu0/edit
- Basic Avatar tutorial (Import to upload, not a conversion) : https://www.youtube.com/watch?v=qkmRsS9fB1A
- Avatar emulator for local testing: https://booth.pm/en/items/4042017 (Note, builds an avatar then uses a CVR mod to load the bundle into the game)
- An image guide (2023) was made by someone else that you can have a look at https://vrwiki.nexisonline.net/wiki/File:Shitty_conversion_guide_cvr.png
Starting out
In my testing I started with a pair of VRC projects. One was simple and contained a basic kikyo, and the other was horribly big and buggy containing my actual avatars. I managed to get both converted.
FAQ:
If you have any questions and get them answered please add them here, it's a wiki!
- Do I need to remove the VRC SDK and stuff? CVR runs on an older version of Unity, so you cannot use the same project.
- Does my <insert shader here> work? Most of your shaders and stuff will work. That includes DPS. Anything that relies on the VRC SDK package will not.
- Toggles and sliders and stuff? Some converters can convert toggles to AAS, but they're kinda flaky. You're better off doing it by hand in most cases.
- Do I need to publish to use my avatar? Publishing is for when you want your avatar to be public. If you just want to use it for yourself there's no need. In addition, you can share your avatar without publishing with specific people on a whitelist basis.
Create an Account
You now have two options: Steam Link and the old ABI Hub. We recommend using the Hub.
via Alpha Blend Interactive Hub
- Make an account on the CVR Hub .
- Download the CVR CCK (their SDK) and Unity 2021.3.23f1 from the links on the same page.
- Make an API key on the hub (Home > Access Key Manager) and copy that and keep it somewhere safe. It's basically a password to all the content on your account.
via Steam (in-game)
Just click on the Steam button below the login form. You'll get an automatically-created account with some gibberish after your name. You'll be able to request a name change on the website afterwards.
From Existing project
Goal number 1 is to produce a stable project from your existing work.
Because VRC is now using a newer version of Unity and a different way of packaging things, you have to make a new project for CVR.
Importing Pieces
- Create a new fresh project with the same unity version as before (currently 2021.3.23f1)
- Import the CCK https://developers.abinteractive.net/cck/setup/
and the VRC SDK. - Import from installers things you think you'll need, like shaders, DPS,
dynamic bonesMagica Cloth 2.- Dynamic Bones has been superceded by Magica Cloth 2.
- Physbones are a VRC product and cannot be used on CVR. Use Magica Cloth 2, constraints, and pointers/triggers instead.
- Export an avatar or an entire scene of avatars from your old project:
- Open up your old project and then in this old project:
- Drag the entire scene, or the avatar from the scene into your project section.
- Rightclick on it in the project and hit "export".
- Before hitting okay and making the package, note down what it's pulling in; what shaders, what scripts. Make sure you don't pull in the VRC SDK or your shit will explode.
- Export as a unitypackage.
- Before importing into your new project, ensure you have all the things fully installed from what you noted earlier. An export doesn't pull in dependencies of dependencies so it's likely missing stuff.
- Import in your exported unitypackage. Drag it into the scene and your stuff is ready.
Conversion
Conversion tools got pretty good.
Main things to do:
- Convert physbones to Magica Cloth 2 bonecloth (Or copy from older/remake)
- Run a conversion script for the AV3 animator controlled components (Gestures, Toggles)
- Upload
Physbones to Magica Cloth 2
CVR recommends that people use Magica Cloth 2 for their wigglies these days, since it's way less laggy and offers more features, and properly supports gravity.
Most converters do not handle Magica (nor dynbones) properly, so it's recommended to do it by hand. There are presets available for most use cases.
To get started, follow the instructions by the creator: https://magicasoft.jp/en/magicaclothmeshclothstart-2/
Usage
The overall flow is:
- Create a "MagicaRenderDeformer" on the meshes you want to deform
- Click Create
- Create a "Magica Virtual Deformer" as an empty game object on your armature
- Configure and create a 'virtual mesh' by messing with the reduction settings.
- Click Create
- Create a "Magica Mesh Cloth" Object on your armature
- Start point selection and configure all the bits you do and do not want to move.
- Tweak the parameters to your liking. There are some presets you can start with.
- Create Colliders (Sphere, plane and capsule are available). Usually a case of adding them for leg and butt.
- Add Colliders to the Magia Mesh cloth object
- Tweak colliders to look nice (Skin-tight and close fits take a lot of tweaking)
- ...Click Create
- Upload to CVR
They provide a tutorial for the details:
https://magicasoft.jp/en/magicaclothmeshclothstart-2/
Notes:
- Red point selection pins the cloth to your model, you'll want everything not move = red, everything move = green. It's pretty easy. If you see LOADS of points, you need to have less polygons on your virtual mesh.
- If you get a zero vertex error or it doesn't work for some reason, make sure you clicked 'create' on the entire chain of components.
Notes on settings (for a skirt for example):
>Mass: 15, 1, -0.4 >Drag: 0.01. Controls amount of movement. Lower numbers leads to more movement as far as I can tell. >World Influence: Hips, Max Speed 3, Movement 0.6, Rotation 0.7. This is basically the opposite of "Inert" from Dynamic Bone. Lowering this will lower how much it moves too. >Reset after teleport on >Clamp rotation: 30-50. This is like max angle from PhysBone as far as I can tell. >Restore distance stiffness: 0.5 >Restore rotation: 0.02-0.005, 0.1 >Collision penetration: Surface, Distance 0.01-0.02, Moving 0.3-1. Making the distance numbers lower seems to make the mesh further away from the collider to prevent clipping more.
VRC to AV3 conversion
The best tool I've used is fluff's:
Converts CGE, is submenu aware, and is pretty painless to use.
- Install tool
- run tool on your avatar
- remove vrc component(s) if not deleted
- set the viewball and voiceball position (CVR comes with a voice location so sound actually comes from your mouth)
- You're done
Main differences to VRC: CVR is basically AV 2.0 but with animation controllers part of 3.0. That means toggles, fun effects, gestures, everything. It's unity.
Fluff's Converter captures toggles in submenus. It even captured submenu submenu toggles for me too.
How Fluff's work is it creates a CVR animator and a CVR override in a folder somewhere for you. It then applies the override to the CVR descriptor, and puts the animator controller in the override, and that's the controller that will apply on your avatar in game.
Things added in the Advanced Avatar System will apply to this animator (well it does some funny things on upload to slap it all together behind the scenes) but basically you can change parameters with the AAS.
Notes:
- The CCK UI is built to enable people to plug in options and then have CVR generate the animator layer for it. What you want is to name the Input the same as the parameter you already made so it doesn't create anything and just uses your existing animator controllers.
More manual guidance will/is available here: Manual_CVR_Conversion (might be wrong)
Gestures
Fluff's converter captures CGE as well!
Hai is working on a version of CGE for CVR but I don't think it's ready yet.
Bugfixing
Ahh my project is such a fucking mess it breaks whenever I try anything and I don't want to keep copying massive backups
Best you can do is address the problems one by one. Most likely solution: Install the right version of the thing that's making the error. Sometimes just deleting stuff works too. I had to delete the following:
Things probably worth deleting
- AV3 emulator. No good here. (Assets\Lyuma)
- Assets/VRCSDK/Dependencies/VRChat/Scripts/ShaderStripping/StripPostProcessing <- This script cursed my project for a while so delete this. (It breaks shader compiling)
Gestures
Note: Fluff's converter should have worked fine.
If not, read https://forums.abinteractive.net/d/656-how-to-add-facial-expressions-hand-gestures-to-your-avatar . If you've ever done 2.0 gestures it's the same - You don't need to fuck around with animator controllers to add gestures, just add face animations to the slots.
From there just hit upload avatar and it should work.
Uploading and Tagging
Tag your shit correctly.
CVR works differently than VRC: They rely on the tagging system to keep content away from minors, and if you mis tag it is treated seriously. The upside is if you DO tag stuff with the right tags, they won't do shit to you if you spoop someone with them, or take your dick out.
Possible problems:
- No rights to upload content ID. This is the generic failed error messages.
- Server just down. Try again later.
- Possible causes: you hit the 10 avatar limit for free users.
- Gets stuck on "being encrypted": This happens when the avatar isn't written to disk; IE the shader compile failed, or out of disk space, or something. Symptoms include not being able to generate file size estimates and an error in the console saying it couldn't write/find the file.
Worlds
And some greentext:
>make a copy of your vrc project >remove vrc sdk >make sure you are on their unity version (currently its the same as vrc) >restart (just in case) >import cck: https://developers.abinteractive.net/cck/setup/ >you now have to redo all buttons and teleports etc, so i recommend putting your vrc project on a second monitor as reference >upload form the menu "Alpha Blend Interactive" you find at the top
You can find everything essential by searching components for "CVR". CVR Interactible is the button for example.