VRC to CVR: Difference between revisions

From VR Wiki
Line 45: Line 45:
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.
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.


=== FAQ: === (If you have any questions and get them answered please add them here, it's a wiki!)
=== 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)
* '''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)

Revision as of 11:19, 2 August 2022

Warning: CVR has just moved to Unity 2021, so your stuff may be broken. -- 11:24, 26 July 2023 (UTC)(Edit)


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.

Converison Process

Have VRC asset, want to convert to CVR.

First consult these resources:

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))

VRC to CVR conversion tools:

Physbone Conversion:

Bonus resources:

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

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.

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? 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'.

Admin

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

I'm working from the same project I did in [Optimization].

  • Copy your existing project and rename it.
  • Open project (same unity version!) in unity hub.

Conversion

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.

Main things to do:

  • Convert physbones to Dynamic bones or make dynamic bones from somewhere
  • Run a conversion script
  • Upload

Physbones to Dynamic bones

You have options:

  • Run a converter tool and hope to god it works (will probably not work with godawful nip physbones)
  • Copy dynamic bones from an old project
  • 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.

  • Make sure you have dynamic bones package in your project again! Reinstall that. (not the latest version, the pre-multithread version, although CVR might support that latest version I haven't checked)
  • Run the converter

For me this didn't work so I had to do it manually.

Okay due to extreme laziness I used pumpkin tools to:

  • Remove the physbones from my kikyo
  • 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.

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.

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.

Sidenote about skirts and stuff

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

A video says a thousand words 30 times a second:

https://streamable.com/edxyus


VRC to AV3 conversion

I didn't get this one working : https://github.com/Narazaka/VRC2CVR

So I would recommend (reluctantly) this one: https://github.com/imagitama/vrc3cvr

  • Install tool
  • run tool on your avatar
  • 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)

That's all I needed to do on this basic one. TODO is try this process with more complex avatars and make notes of any extra work you need to do but it's not bad.

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.

Notes

  • This tool dumps the constructed animator controllers into a folder and does not rename them if it generates a new one. Running this tool on multiple avatars in a project can get real messy quickly.
  • Also for some reason it turns all your toggles into floats. I'd really recommend just making your toggles manually. In theory it's slapping a default CVR animator controller and your main animator controller (previously FX layer) together and then configuring toggles. It also changes all your transition states into weird float conditions too. Even the bools.

Muh toggles

Toggles are simpler in CVR hilariously enough; the Parameter thing and the Menu thing are combined. The tl;dr is:

  • Attach animator controller as Base Animator in "enable advanced settings" (clone it from the provided one lmao)
  • 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:

  • 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.

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

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

What I tried so far:

  • Make a fresh project
  • 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.

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

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?

Log in and upload

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.

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.

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:

  • 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.