Components

CVR Asset Info

Required component that is automatically added alongside CVR Avatar / CVR World / CVR Spawnable.

"Request failed. The provided content ID does not belong to your account."
You may run into this error if you've manually added the CVR Asset Info component to your asset!

Remove both the CVR Asset Info script and your CVR Avatar / CVR World / CVR Spawnable component.
Then readd only the CVR Avatar / CVR World / CVR Spawnable component and try again.

Unique Identifier

This field is used to identify your content when uploading. You can attach an existing Guid belonging to your account for updating existing content, or leave it empty to automatically generate a new Guid on upload.

CVR Avatar

The main component for a ChilloutVR avatar. This is required for an avatar upload. 

Some options listed below may be missing for generic (non-humanoid) avatars.

This component will automatically add the required CVR Asset Info component for you.
You may run into issues uploading if you've manually added the CVR Asset Info script before the CVR Avatar component!

Generic Avatar Settings

Property Description
View Position 🟢 Controls your avatars viewpoint in-game. This should be between both eyes.
Voice Position 🔴 Controls your avatars voice position in-game. This should be on your avatars mouth.
Voice Parent The humanoid bone which your Voice Position is attached to. It will follow the bone's position while you move your avatar around in world space. Head, Left Hand, Right Hand, Hips.

Avatar Customization

Animation Overrides

The Override Controller used to specify which Controller and Overrides to use on the avatar.

You can use this to quickly override animations on the default Controller included with the CCK, or alternatively reference your own custom Controller to use on the avatar instead.

Blinking and Visemes

You can configure your avatar to have eye movement, blinking and voice activated blendshapes called visemes.

Face Mesh

The Skinned Mesh Renderer to use for automatic blinking and visemes.

Use Eye Movement

Enables automatic eye movement that can focus on nearby players.

This requires eye bones to be mapped in your avatars Humanoid configuration!

This property is animatable during runtime.

Enables automatic blinking using the specified blendshapes. You are able to specify up to four blendshapes to use at once.
Any unneeded blendshapes can be left as -none-.

This property is animatable during runtime.

Use Lip Sync

Enables lip sync to be used on your avatar. You can choose between using Visemes, Single Blendshape, and Jaw Bone.

This property is animatable during runtime. It must be enabled by default when using the Visemes Lip Sync Mode.

Lip Sync Mode
Viseme Smoothing

A value between 1-100 to determine the smoothing of the Visemes Lip Sync Mode.
Lower values will snap to the currently recognized Viseme, and higher values will slowly smooth to it.

Advanced Tagging

With the advanced tagging feature, you can set content filter tags for specific gameobjects on your avatar. 
Press the + button to add an entry to your Tagged Gameobjects list.

Tags

List of content tags you want for this particular gameobject. You can tag Loud Audio, Long Range Audio, Screen Fx, Flashing Colors, Flashing Lights, Violence, Gore, and Horror.

GameObject

The specific gameobject you would like to add the above tags to.

Fallback GO (GameObject)

A fallback gameobject to use instead if the above gameobject is hidden by the content filter.

If you are using the Advanced Tagging System, you still need to Tag your Avatar appropriately on the upload screen!

Advanced Settings

CVR World

The main component for a ChilloutVR world. This is required for a world upload. 

CVR Spawnable

The main component for a ChilloutVR prop. This is required for a prop upload. 

CVR Distance Constraint

This component acts like a tether, keeping an object within a certain distance of a reference object.

Target

This is the transform of the reference object. It serves as an anchor point for the tether.

Min Distance

This is the minimum distance, in meters, to keep from the reference object. Defaults to zero (0).

Max Distance

This is the maximum distance, in meters, to keep from the reference object. Defaults to zero (0).

Current Distance

This is the current distance from the reference object.

CVR Pickup Object

This script allows an object to be picked up by a user.

Grip Type

This controls how a user will hold the object

Free

This mode specifies that the object can be grabbed anywhere, and will be held wherever the user grabs it.

Origin

This mode specifies that the object should be held in a specific orientation relative to the user's hand.

Grip Origin

This is the transform that is used to indicate where the object should be held. A gizmo will show a left-handed grip, around the transform.

The grip transform is arranged Z+ (blue arrow) forward and Y+ (green arrow) up.

If you require a separate origin for Desktop players, create a child GameObject on your Grip Origin, and name it [Desktop]. This transform uses Y+ (green arrow) forward, and Z+ (blue arrow) down.

Disallow Theft

Checking this box disallows other users from taking this item while it is currently being held.

Maximum Grab Distance

This is the maximum distance the user can be from the object and still interact with it. The setting defaults to 0, but 2-3 is usually a good starting point.

Snapping References

(This section requires more research.)

Auto Hold

This allows the object to stay in the hand indefinitely without requiring the user to actively hold onto it.

Desktop users can press G in order to release the held object.

VR users can hold Grip and down on the joystick to release the held object.

IK Reference

(This section requires more research.)

CVR Pointer

A component used to physically interact with the many different variations of triggers.

As the name suggests, this component marks a point that will activate triggers once they've come into contact.

Type

The string used to identify the pointer. Allows a trigger to specify what types of pointers should interact.

CVR Pointer will check for any existing colliders before adding its own Sphere Collider during runtime.
This allows you to change the pointer size or shape by adding your own Collider(s) with IsTrigger checked.

Trigger Types

 

There are different types of triggers that a pointer can interact with:

Avatar
World
Spawnable

CVR Advanced Avatar Settings Pointer

This component should be considered depricated. You can use CVR Pointer instead.

CVR Advanced Avatar Settings Pointer inherits from CVR Pointer internally, and as such will act the same.

CVR Toggle State Pointer

This component should be considered depricated. You can use CVR Pointer instead.

CVR Toggle State Pointer inherits from CVR Pointer internally, and as such will act the same.

CVR Parameter Stream

This component allows you to use a multitude of local variables as inputs for Animators, Variable Buffers, Avatar Parameters, and Spawnable parameters.

As of writing, this component is only officially supported on Avatars to set Avatar Parameters, but does function as intended on Spawnables and in Worlds.

This script is underdeveloped in its current state and likely will need a full rework in the future. It is incredibly powerful and functions, but note that some aspects of this script are easily abusable or not fully thought out.

Note on Update Rate

The script will update entries every 0.05s for performance reasons, so depending on your usecase you may notice values are choppy and need smoothing via Animator shinanigans.


Parameter Name
 

The string of the parameter you want to apply the value to.

Target
 

Depending on the selected TargetType, this GameObject is used to get the Animator or Variable Buffer components to set the outputted value to.

Type
 

The local variable used to drive the selected Animator Parameter.

Some Type entries are not fully developed, non-functional, or poorly implemented.

TargetType
 

The target you want to use the output for.

Avatar Animator is currently the only supported & selectable TargetType as defined in CCK3.4, but internally CVRParameterStream supports these other TargetTypes and are currently functional in-game.

CVRParameterStream runs locally for every player, so keep in mind Network Sync when utilizing on Spawnables via the Custom Float TargetType. It may be best to use the Animator TargetType instead to avoid the Spawnable's ownership constantly changing as every client attempts to sync parameters to the parent Spawnable.

Nothing prevents you from using Avatar Animator TargetType on Spawnables or Worlds, but the game will now refuse to set parameters if the target CVRAvatar is not your local CVRAvatar component. (this was abusable for a period of time)

Static Value
 

A float value used to adjust values based on the selected Application Type.

Application Type
 

Allows you to choose from a list of preset arithmetic to adjust the returned values.
For explanation sake, we will define a few variables:

StaticValue = the Static Value Float set above.
CurrentValue = the current Avatar Animator parameter value as a Float.
(This is always 0 for all other TargetTypes.)
ReturnedValue = the returned value from the above Type entry.
FinalValue = the final value after the Application Type arithmetic.