Welcome! VizVid is a general-purpose video player frontend for use in VRChat. It aims to cover many use cases, from watch-together video/live stream player in lounges, to large event venue for music performances, or even booths for exhibitions or showcases. Due to its target customers, it has a flexible architecture, just like a factory made electronic but with a easy to open back lid, make it easier to let users mess them around for their needs.
[!NOTE] This documentation is for V1.1.0 or later, some guidelines are different to older versions.
You may just right-click anywhere in hierarchy, and select VizVid > Video Player
.
Here is a glance of the difference between the variants:
Alternatively, the playlist attached on separated controls can be moved or disabled like this:
VizVid supports adjust playback speed for non-live videos, but it requies AVPro or a “stub program” (a minimal piece of code that make sures the things properly wired up) to be imported.
You have these options:
You may just right-click on the player object in hierarchy, and select VizVid > Additional Controls > Screen
.
[!NOTE] Extra: If your screen has special configuration such as using a custom shader, you may need to change the values in the inspector. If you are adopting shaders that designed to work with iwaSync3, you could leave it as-is, VizVid defaults to a configuration which compatible with those shaders.
You can add more audio sources (speakers) to make something like multi-channel surrounded audio, but these extra audio sources only works with AVPro player but not Built-in Unity video players.
To add it, right-click on the player object in hierarchy, and select VizVid > Additional Controls > Audio Source
.
Then, click the “Setup Speakers” button on the player component inspector.
VizVid is aim to be flexible, so do the controllers. We have provide 3 variants to fit in different cases, and these controllers can be linked to one single core. Before we started, let me introduce these 3 variants:
Screen With Overlay
.Default UI
.Default UI (Narrow)
.Default UI Dual Input (Narrow)
.To add them, right-click on the player object in hierarchy, and select one of these depends which type of controls you want to add:
VizVid > Additional Controls > On Screen With Controls with Overlay
VizVid > Additional Controls > Separated Controls
VizVid > Additional Controls > Separated Controls (Narrow)
VizVid > Additional Controls > Separated Controls (With Alt. URL Input, Narrow)
Playlists are pre-defined lists that the player will plays. All playlists associated to a video player instance are defined and controlled in a “Playlist Queue Handler” game object, unlike how some other video player designs, whatever amount of controllers you added for a player, you are still interacting with the same list of the queued videos. Here is how you can manipulate Playlists:
Current supported Playlists / video players to be imported directly:
To import above listed Playlists, drag the game object containing their Playlists to this Playlist editor.
[!NOTE] Beware it is sightly different when you drop it between the left panel and the right: If you dropped on the left, new Playlists will be added; and if you dropped on the right, it will append to current selected Playlist if applicable.
This component was originally created by Yama Buta, which is a local-only pickupable screen with scaling feature, and it is rewrited to use with VizVid.
To add it, right-click on the player object in hierarchy, and select VizVid > Additional Controls > Pickupable Screen
.
This is a component that spawns a mini controller on every user’s wrist (VR mode) or a overlay UI on screen (PC mode). User can adjust the players volume and reload current video using laser pointer (VR) or keyboard input (PC).
To add it, right-click on the player object in hierarchy, and select VizVid > Additional Controls > Overlay Controls
.
This component is an alternative to the wrist / overlay UI screen resync button control, to let users resyncs your live stream in an event venue. There are 2 variants: Re-Sync Button
and Global Sync Button
, the difference is one is local only and another one is a global trigger.
To add it, right-click on the player object in hierarchy, and select VizVid > Additional Controls > Resync Button
or Global Resync Button
.
Yes, you can change the UI color in nearly one-click. Every UI components comes with VizVid has attached a component called Color Config
, what you have to do is change the color you like in this component, and click the Apply
or Apply to All
button below. The Apply
button only applies the color to current selected UI, and Apply to All
will copy the settings to other VizVid UIs and apply to them as well.
VizVid built-in supports auto plays when a user goes into a specific region and stops when exits, it is for video playback in exhibition venues.
To enable this feature, right-click on the player object in hierarchy, and select VizVid > Additional Controls > Auto Play On Near (Local Only)
. You can then either set the distance (if you don’t want to use the collider), or adjust the size of the collider to match your needs.
As we all know, leaving background music playing in the world while watching/listening other video/music within the player is not a good experience. To solve this problem, we introduce BGM Volume Control component. This component is designed to attach to any background music audio source in your world.
To add this, select your existing background music audio source game object, then click “Add Component” in inspector, select VizVid > Components > BGM Volume Control
.
Next, click on the “Find” button next to the core field, or drag your video player to here. And you may want to change the volume and/or other settings here.
And thats it!
Both Unity and VRChat SDK encourages to use TextMeshPro (TMPro) instead of legacy Text components for all UIs in your scene for readability and aesthetics in VR. To upgrade VizVid to use TMPro instead of legacy Text, starting from v1.0.32, you can do the following:
Tools > JLChnToZ VRCW Foundation > Migrate TMPro Components
in menu, the script will do the thing.[!NOTE] Please note this only applies to currently what you have on the scene, if the player is upgraded in the future and new UI components are added, or you have added/replaced any UIs of the player afterwards, you will have to do this again.
If you want to test the player within Unity Editor but find out all non-English text become tofu after migration, you may refer to this article: TextMeshPro in VRChat.
As we are also music event organizers/performers, we all know the pain to find a convenient place to start our streaming, better with provided stream keys to copy, but also not interfere with other instances or users. This component is the solution already built with the video player, starting from v1.3.0. To use this, you can follow this instructions:
VizVid > Additional Controls > Stream Key Assigner
.In the prefab, it should look like this in hierarchy:
Let me explain one by one.
This is the “brain” of the system, it controls and synchronizes the player (if enabled) between users within the same world instance. If you open the inspector, you will find theres many options that let you to fiddle around:
These are the video player / image viewer modules. The purpose of these game objects are interfaces from the undely video player / image loader components to the core. The following are the options could be changed here:
1080
.This is an optional component that manages the queue of the playback. You can pre-define playlist and/or enabling player queue options here.
0
, a “Playback History” entry beside queue list and playlists will appeared. When the player plays a user-input URL, the URL and who entered will append here, allowing it to be quickly re-queued afterwards.0
will entirely disable this feature.
(URLs selected in playlists will not recorded)5
to stagger the loading time.On tutorial on how to add playlist, plese see How to Add a New Playlist? section.
The locale manager. You can add/modify the texts in it with the language editor.
Also for advanced usage, it is capable to use without the VizVid player. You may use the Language Receiver
with any text components to make your own localized interface.
This module is for reducing rate limit errors by debouncing (on holds and wait for certain time) video switching requests across VizVid instances. There is no adjustable options for this module.
This is the default screen, you can resize and move it to anywhere you want. For details and guides, please see How to Add Extra Screen section above.
This is the default audio source. For details and guides, please see How to Add Extra Audio Source section above.
This is default UI, it provides all basic interface of the player to let user interact with it. For details and guides, please see How to Add Extra Controllers section above.
VizVid built-in supports integration with Udon Auth, the later one is a paid asset available on my Booth, which is an OTP solution for locking out certain gimmicks in your world, typically staff-only locks for event venues.
In the other hand, you can program your own locks instead of using my paid asset, just send the _OnUnlock
custom event to the Udon attached on Playlist Queue Handler, and it will become unlocked.
This player provides basic integration to Audio Link, basic setup please refer to the “Audio Link” option above.
Additionally, if you want to use together with multiple channel audio sources provided from AVPro, you will need an audio source that don’t controlled by the player, which will emits basic stereo output.
You have 2 ways to do this:
0.01
.-999999
.VizVid provides integration to LTCGI.
Since v1.3.2, the most simple way to integrate LTCGI with VizVid is using the one-click setup button.
First, assume you have already setup your VizVid screens and added LTCGI Controller to your scene according to LTCGI documentation,
then you will find there are extra button(s) says “Auto-Configure XXX” on the LTCGI Controller’s inspector.
Make sure the “XXX” matches your player’s name (if you have multiple of them), and click on it,
VizVid is now ready to serve LTCGI with video signals.
If you are not using built-in screens, this one-click auto setup may not detect it and you may need to add LTCGI Screen manually.
You may need to configurate the reflected objects to use supported shaders, also for screen intensity settings and optionally bake shadow map, but for these parts, please refer to their documention.
If you are using version v1.3.1 or below, or any reason you are unable to use above method, please use the provided “VideoCRT” CustomRenderTexture in Materials folder as video texture input inside LTCGI controller, then assigns this CustomRenderTexture to “Add Video Screen Target” option in the VVMW core to integrate with LTCGI.
YTTL (Video title viewer) is an addon for providing ability to display titles from several known sources (e.g. YouTube, Twitch, SoundCloud) in video players, it was created by ureishi and it is licensed with CC0. However, installing it on video players that are not originally supported, including VizVid, can be a bit tricky if you’re not familiar with the technical side of things. To make it easier, we’ve included a modified version of YTTL, but you’ll still need to follow a few steps to enable it:
Right-click on the player object in hierarchy, and select VizVid > YTTL
.
VizVid is capable to stream from Topaz Chat (and other streaming service). We don’t recommend to make multiple video player switches for “live stream mode” as this will make your world performance heavier and might bring more synchronizing bugs. To properly setup for Topaz Chat, you can follow the following instructions:
<Key>
to your stream key
rtspt://topaz.chat/live/<Key>
rtsp://topaz.chat/live/<Key>
It is differ from PC version, as Quest (or other Android clients) don’t support RTSPT protocol.<Key>
to the public key provided by VRCDN.
rtspt://stream.vrcdn.live/live/<Key>
(RTSP URL provided by VRCDN)https://stream.vrcdn.live/live/<Key>.live.ts
(MPEG-TS URL provided by VRCDN)[!NOTE] Please read the streaming providers’ documentations as we can’t guarantee above endpoint are valid all the time.
When user want to live stream in your world, they can use the stream key you provided and select the entry in the playlist to get started.
idv.jlchntoz.vvmw
未設定
1.3.5
2019.4 以降
なし
なし