NKD Protogen Setup Notes

I'm Macil, and this is my page of notes about working with the NKD Protogen VRChat avatar made by Nukude.

I made some public VRChat avatars based on the model, and people ask me for help with making their own avatars often, so I decided to make a webpage with information that I've found has been useful for some people. If you want to contact me, my Discord is Macil#5633 and other contact info is on my homepage.


The store page mentions that you need to use Xiexe's Unity Shaders, but it fails to mention that you want version 2.5 specifically in order to use the pre-built materials. You may want to upgrade this on your own (or switch to the more featureful Poiyomi shader), but you may want to start with the pre-built materials to compare your new materials to.

Some of the included model variants (Long, Nuku, Short, and Tech Nub tails) currently have their Body material incorrectly set to use the Specular Map from the standard tail model, which will cause improper reflections on the tail. You must remove the Specular map and set the Specular Intensity to 0 on the Body material of these variants to fix this. (You do not need to replace the Specular map with anything; these variants do not benefit from a Specular map. Only the standard and Aqua-Tech tail variants use the specular map and they use it on their unique non-fur parts of the tail.)

PhysBones Configuration

The NKD Protogen is released with physbone support, but before it was released with physbone support, I set up my own physbone configuration for it that you can see here if you want. The included physbone support is pretty good, but I think I slightly prefer my setup for the tail and ears.

Screenshot of the PhysBone configuration in Unity

The TailRoot radius setting here is sized for the nuku tail variant. For the default/banded/long tail variants, you might want to bump it up a bit to 0.0011.

Configuring the PhysBones is a delicate balance between making the bones floppy enough that they look interestingly dynamic and rigid enough that they don't spaz out distractingly when the character moves quickly. Feel free to experiment to find what works best for you. Some people may prefer the ears on the protogen to be floppier than my own setup.

If you have any animations/toggles affecting the ears or tail, make sure you set the "is animated" option on that physbone. You should clear it from any physbones that don't need it.

The "allow posing" setting allows players to freeze a bone in a new position while holding it by pulling the trigger. The default configuration makes all physbones grabbable and poseable, but in my own configuration pictured above, I prefer to keep only the ears and tail grabbable, and make only the tail poseable. Having the hair and fluff physbones grabbable can be distracting and cause them to get in the way of players grabbing other items in-game.

Expressions Configuration

In my own avatar world, all of the protogen avatars are set up so that the VRChat expressions menu can be used to control the facial expression and adjust parts of the body. If you want the same expressions menu setup on your own protogen avatar, then download this zip file and extract it into your project's Assets/NKD Protogen directory. It will overwrite some files in order to set up the expressions menu like mine.

Screenshot of the avatar in-game with the expression menu open

More screenshots of the expressions menu

Screenshot of the avatar in-game with the expression menu open

Screenshot of the avatar in-game with the expression menu open

Screenshot of the avatar in-game with the expression menu open

Note that by default, my own expressions configuration entirely moves all avatar expressions off of hand gestures and into the expressions menu. If you want my config but want hand gestures to also be able to activate expressions, then it's possible to re-enable hand gestures. There's a disabled layer in the _ProtoFX animator already configured to support hand gestures. If and only if you want to support this, then in the Project tab at the bottom of Unity, double-click the _ProtoFX file, go to the "Hand Gestures" layer, scroll out in the Animator view so you can see the gray rectangle labeled "Start", right-click on it, and pick "Set as Layer Default State". The avatar now supports the same hand gestures as the original 2.0 release of the Protogen avatar did.

Enabling hand gestures