VRC to CVR: Difference between revisions

From VR Wiki
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{CVRStatus}}
This is now a second draft. Much of the items here I've had a chance to actually test and trial out in CVR.


Note: This is an extremely rushed first draft. This is a wiki so feel free to polish up a bit, and I'll be changing this as I do more testing and get sick of how awful this is laid out. However, I have tested everything here on an example kikyo so it should all work for most people.
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.


== Converison Process ==
== Conversion Process ==
Have VRC asset, want to convert to CVR.


First consult these resources:
=== tl ; dr ===


CVR dev kit (CCK). Make account, goes through generic avatar upload process in brief: (Note you should use unity 2019.4.31f1 (same as vrc))  
* Copy project
* Convert physbones back to dynamic bones
* Install CCK (CVR dev sdk)
* Run a conversion tool on your avatar
* 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)


* https://developers.abinteractive.net/cck/setup/
* https://developers.abinteractive.net/cck/setup/
* https://forums.abinteractive.net/d/93-uploading-your-first-chilloutvr-avatar/7 (Unity version quoted is out of date)


VRC to CVR conversion tools:  
VRC to CVR conversion tools:  


* https://fluffs.gumroad.com/l/sdk3-to-cck
* https://fluffs.gumroad.com/l/sdk3-to-cck (recommended)
* https://github.com/imagitama/vrc3cvr
* https://github.com/imagitama/vrc3cvr
* https://github.com/Narazaka/VRC2CVR
* https://github.com/Narazaka/VRC2CVR
Line 22: Line 31:
Physbone Conversion:
Physbone Conversion:


* https://github.com/Dreadrith/PhysBone-Converter (Recommended)
* https://fluffs.gumroad.com/l/VRCDynamicBoneToPhysicsBoneConverter
* https://booth.pm/ja/items/4032295
* https://booth.pm/ja/items/4032295
* https://github.com/Dreadrith/PhysBone-Converter
* https://fluffs.gumroad.com/l/VRCDynamicBoneToPhysicsBoneConverter


Bonus resources:
==== Other Related Guides ====


* https://forums.abinteractive.net/t/chilloutvr-tutorials (Most are outdated but they contain information!)
* https://forums.abinteractive.net/t/chilloutvr-tutorials (Most are outdated but they contain information!)
Line 32: Line 41:
* 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)
 
* General avatar upload process https://forums.abinteractive.net/d/93-uploading-your-first-chilloutvr-avatar/7 (Unity version quoted is out of date)
=== tl ; dr ===
 
* Copy project
* Convert physbones back to dynamic bones (I know) (I suggest Dreadrith's)
* Install CCK (CVR dev sdk)
* Run a conversion tool on your avatar (imagitama works okay which is a shame since I hate furries)
* Delete VRC components on avatar
* Upload to CVR (Tag honestly, you will not get banned for (almost) anything if it's tagged properly)


== Starting out ==
== Starting out ==


For the below instructions I basically went through converting two avatars: The optimized kikyo from the optimization page (still applies to CVR), and off the shelf dynamic bones kikyo. Both uploaded fine.
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: ===
=== FAQ: ===
Line 52: Line 53:
* '''Do I need to remove the VRC SDK and stuff?''' I didn't remove all VRC shit from my old project. VRC stuff mostly doesn't break anything but large projects can be fragile when copied regardless. There's one script that should be removed (see later in the article)
* '''Do I need to remove the VRC SDK and stuff?''' I didn't remove all VRC shit from my old project. VRC stuff mostly doesn't break anything but large projects can be fragile when copied regardless. There's one script that should be removed (see later in the article)
* '''Does my <insert shader here> work?''' All your shaders and stuff will work. That includes DPS.
* '''Does my <insert shader here> work?''' All your shaders and stuff will work. That includes DPS.
* '''Toggles and sliders and stuff?''' Toggles work with the converter but I'll need to double check the converter tools. Chances are better ones are coming. I don't think it converts submenus, but CVR supports loads of things on the 'main menu'.
* '''Toggles and sliders and stuff?''' The fluff converter will preserve your toggles, sliders, submenu toggles and even your custom gestures (like from CGE).
* '''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.


=== Admin ===
=== Create an Account ===
   
   
* Make an account on their website ( https://hub.abinteractive.net/ good luck it's overloaded) , download the CCK (their SDK) (https://developers.abinteractive.net/cck/setup/). Or use the account you made a while ago that you reserved your username with. Right?
* Make an account on their website ( https://hub.abinteractive.net/ ) , download the CCK (their SDK) (https://developers.abinteractive.net/cck/setup/). Or use the account you made a while ago that you reserved your username with. Right?
* 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.
* 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.


== From Existing project ==
== From Existing project ==


I'm working from the same project I did in [Optimization].
Goal number 1 is to produce a stable project from your existing work.
 
You basically have two options:
* Copy your existing project, then just use that.
* Create fresh project and import in pieces until it works.
 
What I recommend depends on how big your existing project is. For huge projects you will want to pull pieces out, but for small ones a whole copy will be perfectly fine.
 
You can work on your existing project without copying, but having backups of 'known working project' is highly recommended. If you 7zip compress copies they take up a lot less space.
 
The importing pieces section looks way longer but it's still quicker for large projects. Especially if you mess something up and have to restore from a backup.
 
=== Full Copy ===
 
* Find the location on disk where your project is, and copy and paste that sucker. For me this took like an hour for my big project to finish.  
* Open this project as a new project (Same Unity Version as VRC)
 


* Copy your existing project and rename it.
=== Importing Pieces ===
* Open project (same unity version!) in  unity hub.


=== Conversion ===
* Create a new fresh project with the same unity version as before ( currently 2019.4.31f1)
* 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 bones.
* 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.
** Rightclikc 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.
** 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.


For this I am converting a kikyo to CVR. I'm using the optimized one but I plan to later port the unoptimised one just to check more complex dynamics and toggles and all that stuff.
== Conversion ==
 
Conversion tools got pretty good.


Main things to do:
Main things to do:


* Convert physbones to Dynamic bones or make dynamic bones from somewhere
* Convert physbones to Dynamic bones (Or copy from older/remake)
* Run a conversion script
* Run a conversion script for the AV3 animator controlled components (Gestures, Toggles)
* Upload
* Upload


Line 80: Line 109:
You have options:
You have options:


* Run a converter tool and hope to god it works (will probably not work with godawful nip physbones)
* Run a converter tool (Varying results, japanese folded 1000 times physbone will convert way worse than simple not godawful ones)
* Copy dynamic bones from an old project
* Copy dynamic bones from an old project
* Make new dynamic bones that are similar enough
* Make new dynamic bones that are similar enough


None are optimal, but hey ho physbones were actually pretty good. Note that on runtime dynamic bones in CVR are more multithreaded so you don't have to be super strict like yo were back in VRC. Try not to go overboard though please.
Converting back from physbones you will lose a few things; like angle limits. However, dynamic bones in CVR supports multithreading and multplayer dynamic bones in the game vanilla so boob touching still on, grabbing not.
 
* <b>First install dynamic bones again (1.2)</b>. The latest version (1.3) is probably not supported; and it doesn't work with some converters regardless.
 
==== Use Converter ====


* Make sure you have dynamic bones package in your project again! Reinstall that. (not the latest version, the pre-multithread version (1.2), although CVR might support that latest version I haven't checked)
The converter I recommend is Dreadrith's, but fluff's might be good too:


* Download script from : https://booth.pm/ja/items/4032295 (it's free) (tested, janky)
* https://github.com/Dreadrith/PhysBone-Converter (tested, better than the one above)
* https://github.com/Dreadrith/PhysBone-Converter (tested, better than the one above)
* Or try https://fluffs.gumroad.com/l/VRCDynamicBoneToPhysicsBoneConverter (also free) (Untested, said to be better, try this one first maybe. Note that 2.0 added the reverse process)
* Or try https://fluffs.gumroad.com/l/VRCDynamicBoneToPhysicsBoneConverter (also free) (Untested, said to be better, try this one first maybe. Note that 2.0 added the reverse process)


* Run the converter
After running, check and tweak in playmode. You'll likely need to clean up some wonky colliders and set some radiuses so people can interact with your bones.
 
For me this didn't work so I had to do it manually.


Okay due to extreme laziness I used pumpkin tools to:
==== More manually ====


* Remove the physbones from my kikyo
Pumkin's tools (https://github.com/rurre/PumkinsAvatarTools requires the VRC SDK)  can help you copy dynamic bones and delete physbones from avatars.
* Copy over the dynamic bones from the prefab Kikyo_DB.
* Cleaned them up manually.


However, the default bones are so fucking bad I redid all the bones anyway. I just did quick placeholder ones so for tuning you'd want to put some more effort in.  
* Copy dynamic bones from another version of the avatar using component copying or pumkin's tools. Pumkins will also help you clean out physbone stuff.
* Tweak to fit.


Yeah I know, put effort into dynamic bones, then put effort into converting to physbones, and now going back again. It took me like 15 minutes though to get them reasonable. Chances are you already are familiar with dynbones.
Most of the effort here is just remaking the settings which is a pain.  


For multiplayer touching, add radiuses in dynamic bones; you have default colliders in hands in CVR which are like the physbones ones in VRC, so people can touch your boobs in vanilla.
For Skirts, and other 'clothlikes', forget dynamic bones and use MagicaCloth.


'''Sidenote about skirts and stuff'''
'''Sidenote about skirts and stuff'''
Line 112: Line 141:
CVR supports magia cloth physics: https://assetstore.unity.com/packages/tools/physics/magica-cloth-160144
CVR supports magia cloth physics: https://assetstore.unity.com/packages/tools/physics/magica-cloth-160144


I haven't tried it but it's worth considering if you're looking at your skirt and going UGH DYNAMIC BONES AGAIN. There's a guide here too: https://forums.abinteractive.net/d/21-magica-cloth-installation-guide-for-cvr
I gave this a try and it's great.


A video says a thousand words 30 times a second:
A video says a thousand words 30 times a second:
Line 118: Line 147:
https://streamable.com/edxyus
https://streamable.com/edxyus


'''Magica Cloth copypasta'''


https://forums.abinteractive.net/d/21-magica-cloth-installation-guide-for-cvr
==== Magica Cloth ====
 
I'd leave this until you have the rest working.
 
tl;dr:
 
* Install magica cloth normally (I didn't need to do extras but you might)
* https://magicasoft.jp/en/magicaclothmeshclothstart-2/ follow that
* Add the ABI.MODS folder into Assets (https://files.catbox.moe/527036.7z)
 
<b>Installation</b>
 
* Download magica cloth from the unity store in exchange for currency. It's a paid asset so I can't just link it here.
* Download ABI.MODS folder https://files.catbox.moe/527036.7z - This is a workaround for their modules download being broken as fuck
* Install, fix broken stuff, put an ABI.MODS folder in your Assets folder. Basically these are modules and without it, it will work in the editor but not in CVR.
 
CVR's install guide:
 
* https://forums.abinteractive.net/d/21-magica-cloth-installation-guide-for-cvr
 
<b>Usage</b>
 
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/
https://magicasoft.jp/en/magicaclothmeshclothstart-2/


Might as well give the settings too.
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>
<pre>
>Uses a Magica MeshCloth. BoneCloth can be used like Dynamic Bone, but will generally look worse than MeshCloth, and collision is better on MeshCloth too. Select the Skirt preset, many of the these values were unchanged from it, but I did tweak a few.
>Mass: 15, 1, -0.4
>Mass: 15, 1, -0.4
>Drag: 0.01. Controls amount of movement. Lower numbers leads to more movement as far as I can tell.
>Drag: 0.01. Controls amount of movement. Lower numbers leads to more movement as far as I can tell.
Line 135: Line 206:
>Restore rotation: 0.02-0.005, 0.1
>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.
>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.
Deformer settings
>Merge vertex distance 0.03 (will vary on how many tris you have on the original and how much you want it decimated to), this is used for the collision mesh
Other notes
>Make a bit of the top "fixed point" or red when doing point selection, everything below it should be green. Don't forget to press the "create" button. The top moving usually leads to clipping.
>Colliders can fit the legs properly. No need for big colliders to stop bone chains from slipping.
</pre>
</pre>


=== VRC to AV3 conversion ===
== VRC to AV3 conversion ==


There are a number of tools. In order of how well they worked for me try them in this order:
The best tool I've used is fluff's:


* https://fluffs.gumroad.com/l/sdk3-to-cck
* https://fluffs.gumroad.com/l/sdk3-to-cck


Best one is fluff's. Converts CGE, is submenu aware, and is pretty painless to use.
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 Eye and voice position (CVR comes with a voice location so sound actually comes from your mouth)
* 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. Note that toggles are a TODO for me at the moment, but the converter should have actually given you toggles if you had any. You also get more synced parameters too.
 
<b>Notes</b>


* Not much to worry about, fluff's does a good job.
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.  
 
==== Muh toggles ====


Fluff's Converter captures toggles in submenus. It even captured submenu submenu toggles for me too.  
Fluff's Converter captures toggles in submenus. It even captured submenu submenu toggles for me too.  


Toggles are simpler in CVR hilariously enough; the Parameter thing and the Menu thing are combined. The tl;dr is:
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.  


* Attach animator controller as Base Animator in "enable advanced settings" (clone it from the provided one lmao)
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.
* Add your animation layers to the animator and params
* In "Inputs" configure that like a combined menu item and parameter menu; basically just put in the parameter there. For toggles you don't need to worry about setting anything other than name, parameter, type and generate type (maybe).
* That's it.


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]]
 
==== Muh Gestures ====


Fluff's converter captures CGE as well; worked fine.
More manual guidance will/is available here: [[Manual_CVR_Conversion]] (might be wrong)


Hai is working on a version of CGR for CVR but I don't think it's ready yet.
=== Gestures ===


=== Bugfixing ===
Fluff's converter captures CGE as well!


==== Ahh my project is such a fucking mess it breaks whenever I try anything and I don't want to keep copying massive backups ====
Hai is working on a version of CGE for CVR but I don't think it's ready yet.


I feel you man I'm trying this myself at the moment, stay tuned.
== Bugfixing ==


What I tried so far:
===Ahh my project is such a fucking mess it breaks whenever I try anything and I don't want to keep copying massive backups===


* Make a fresh project
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:
* Import most of the things I think I'll need (Shaders mostly)
* On the old project, drag and drop your scene into the project folder somewhere. This will make a .unity file.
* Right click on this file and 'Export'. It should make a massive package of your scene and dependencies.
** Honestly it's best to export without dependencies and then import dependencies from their packages seperately to avoid errors. `
* Import this into your new fresh project and move the scene in.
** Purple materials - Just set them to the same shader they were to 'reset' them. For me this was very tedious but it looked like it worked.
** Compiler errors - Install the things related to the errors as much as you can. Unity does not include dependencies very well.
** Delete that one VRC StripPostProcessing script. (see below)
* Then upload. It kinda worked.


<b> Things probably worth deleting</b>
<b> Things probably worth deleting</b>
Line 211: Line 254:




====Gestures====
===Gestures===


Hopefully they work; 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. However if you do want CGE level gestures or custom hand animations, you can do gestures in the animator controllers. I don't know how to though; maybe CGE works?
Note: Fluff's converter should have worked fine.


== Log in and upload ==
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.
 
Login to  https://hub.abinteractive.net (if you can), Get an API key (Home, API Key Management -> ABI content Creation Kit Master Key) and use that with your username to log in to the CCK Control panel


From there just hit upload avatar and it should work.
From there just hit upload avatar and it should work.


'''Tagging:'''
=== 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.
''Tags are not saved between uploads, make sure you retag each time.'' (for now, thisis something to raise with CVR devs when they're not drowning in not being on fire.)


'''Possible problems:
'''Possible problems:

Latest revision as of 12:06, 21 October 2022

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 avatar
  • 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:

Physbone Conversion:

Other Related Guides

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? I didn't remove all VRC shit from my old project. VRC stuff mostly doesn't break anything but large projects can be fragile when copied regardless. There's one script that should be removed (see later in the article)
  • Does my <insert shader here> work? All your shaders and stuff will work. That includes DPS.
  • Toggles and sliders and stuff? The fluff converter will preserve your toggles, sliders, submenu toggles and even your custom gestures (like from CGE).
  • 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

  • Make an account on their website ( https://hub.abinteractive.net/ ) , download the CCK (their SDK) (https://developers.abinteractive.net/cck/setup/). Or use the account you made a while ago that you reserved your username with. Right?
  • 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.

From Existing project

Goal number 1 is to produce a stable project from your existing work.

You basically have two options:

  • Copy your existing project, then just use that.
  • Create fresh project and import in pieces until it works.

What I recommend depends on how big your existing project is. For huge projects you will want to pull pieces out, but for small ones a whole copy will be perfectly fine.

You can work on your existing project without copying, but having backups of 'known working project' is highly recommended. If you 7zip compress copies they take up a lot less space.

The importing pieces section looks way longer but it's still quicker for large projects. Especially if you mess something up and have to restore from a backup.

Full Copy

  • Find the location on disk where your project is, and copy and paste that sucker. For me this took like an hour for my big project to finish.
  • Open this project as a new project (Same Unity Version as VRC)


Importing Pieces

  • Create a new fresh project with the same unity version as before ( currently 2019.4.31f1)
  • 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 bones.
  • 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.
    • Rightclikc 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.
    • 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 Dynamic bones (Or copy from older/remake)
  • Run a conversion script for the AV3 animator controlled components (Gestures, Toggles)
  • Upload

Physbones to Dynamic bones

You have options:

  • Run a converter tool (Varying results, japanese folded 1000 times physbone will convert way worse than simple not godawful ones)
  • Copy dynamic bones from an old project
  • Make new dynamic bones that are similar enough

Converting back from physbones you will lose a few things; like angle limits. However, dynamic bones in CVR supports multithreading and multplayer dynamic bones in the game vanilla so boob touching still on, grabbing not.

  • First install dynamic bones again (1.2). The latest version (1.3) is probably not supported; and it doesn't work with some converters regardless.

Use Converter

The converter I recommend is Dreadrith's, but fluff's might be good too:

After running, check and tweak in playmode. You'll likely need to clean up some wonky colliders and set some radiuses so people can interact with your bones.

More manually

Pumkin's tools (https://github.com/rurre/PumkinsAvatarTools requires the VRC SDK) can help you copy dynamic bones and delete physbones from avatars.

  • Copy dynamic bones from another version of the avatar using component copying or pumkin's tools. Pumkins will also help you clean out physbone stuff.
  • Tweak to fit.

Most of the effort here is just remaking the settings which is a pain.

For Skirts, and other 'clothlikes', forget dynamic bones and use MagicaCloth.

Sidenote about skirts and stuff

CVR supports magia cloth physics: https://assetstore.unity.com/packages/tools/physics/magica-cloth-160144

I gave this a try and it's great.

A video says a thousand words 30 times a second:

https://streamable.com/edxyus


Magica Cloth

I'd leave this until you have the rest working.

tl;dr:

Installation

  • Download magica cloth from the unity store in exchange for currency. It's a paid asset so I can't just link it here.
  • Download ABI.MODS folder https://files.catbox.moe/527036.7z - This is a workaround for their modules download being broken as fuck
  • Install, fix broken stuff, put an ABI.MODS folder in your Assets folder. Basically these are modules and without it, it will work in the editor but not in CVR.

CVR's install guide:

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

https://forums.abinteractive.net/d/43-the-basics-in-how-to-upload-a-world

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.