Home Artists Posts Import Register

Content

Before I begin, please note that I updated the game to v0.55.3 which fixes yet another sleeping bug that went under my nose, among other bugs. She shouldn't get stuck anymore. Also I included a new VR controller option to switch between "pressing" and "touching" when turning (Useful for joystick users [Vive Index/Oculus Rift]).

This post will address some of the capabilities and limitations of my custom character support.

Character customization is going to be a big update. This is why I believe it will take roughly a month to complete, hopefully less. The problem as to why it's so complicated deals with the fact that there are a ton of factors to take into account when importing 3D models. Things I've been asked:

Q.) Why can't you just change the model? Like VRChat. Just use another humanoid model.

A.) Because humanoid models vary in skeleton height and size and it would impose many technical issues. Example:

The smallest height difference would break a lot carefully crafted animations and produce a lot of clipping issues. Other models using the bathtub animations would not have the proper leg or spine sizes to make it seem like their feet are laying on the bathtub sides.

Unity's impressive animation retargetting system unfortunately does not take into account this sort of context. Proper animations for all sizes of characters is unfortunately not feasible at the moment. I do not want to re-animate for other character sizes.

 Q.) How would custom models work with custom clothing?

A.) They wouldn't. Using completely custom models would also break clothing customization since the clothing pieces would obviously not work with the different models.

Q.) Then, how are you going to allow custom characters?

 A.) Taking all of this into account. I have decided to restrict custom characters to only similar height anime characters (roughly 4 ft. 5 in lolis.). There are 2 parts to my approach for customization; the public and the development side.

For the public side, users will be able to download character cards that contain embedded 3d model information just like clothing textures. The difference is that there will be a card for the following pieces: The head mesh, the head texture, the eye texture, the hair mesh, and the hair texture. Meaning a complete character will be 5 cards (Easy to customize as well if you want to customize certain parts yourself). I've already opened #character-cards in the Discord as a teaser. I am looking into allowing different size cards so you dont end up with a massive PNG card for a tiny detail.

For the development side, users may need a bit of 3D modeling experience to port existing 3D models to a Viva Project friendly format. My goal is to make this porting pipeline (from modeling program to game) as easy and as fast as possible. The pipeline is still in development but it will be as follows:

1.) Find/create a model in any 3D modeling program

2.) Open it in Blender 2.8

3.) Run a Blender script which I will provide

4.) Script will provide you with errors if it encounters anything that isn't compatible and tell you how to fix it

4.) Script will produce a .viva3d file

5.) The game itself will automatically scan for newly created .viva3d files and import any files found

6.) Game will present a few settings to tweak the new model

7.) After tweaking the model, press "Create Character"

8.) Game will spit out a character card just like customizable clothing

9.) Upload it to the public discord server and share it with others

That's it! (Subject to change).

The Juicy Technical Details

viva3D file format is my own custom binary file format. It supports exporting the vertices, indices, vertex weights, custom normals, shape keys (blendshapes), bones for wiggly hair, and custom materials. Meaning you as a 3D modeler should not have to worry about missing the basic 3D model features. However, there are limitations due to the nature of packing this information into a PNG card. The numbers are not 100% accurate but napkin math says we are looking at:

Max vertices: ~40k

Max faces: 65535

Max bones: 255

Max bones per vertex: 4

Keep in mind that this applies to your model's head and hair mesh individually. It should be plenty to work with. I will open-source my Shinobu model file so you can attach your model's head to the existing Shinobu neck to ensure that your model's head looks good with my model's body.

Something you should be wary of is your model's eyes. They must match the format of my model to work properly. Most models have the classic eyeball in socket approach that is rotated by a bone. My model does not do this.

The eyes will have to be shape key driven (angry, sad, etc.). The pupil itself must be a flat plane with the pupil in the center (the pupil UV coordinates are translated in an in-game shader as she looks around). There will be a proper development guide as I build the pipeline. There is still tons to talk about. This is merely a taste of what kind of restrictions you will be dealing with.

If you have any questions, I'm all ears in the discord or in the comments below. It is very important that you ask right away. The earlier the better at this stage of development.

Stay tuned!

Files

Comments

No comments found for this post.