Setting up a Screen
Setting up a screen is pretty simple. ProTV provides two mechanism for utilizing the video.
Material Target
The primary way is to use the Material Targets list.
ProTV will assign the video texture to the specified Texture Property of the provided Material in the entry. This allows it to work with any shader you want. For convenience, there is a Create Material button to automatically setup a new material for you, just choose where to save the asset.
If the material is using a ProTV shader, it'll default to the _VideoTex
property, otherwise it's typically _MainTex
. Other common properties are _Emission
and _EmissionMap
.
Once you setup the materials, you can just put them on whatever renderers you need to.
RenderTexture Target
The second way to use the video is with the RenderTexture Target. This is an explicit RenderTexture that can be used for various purposes. It is commonly used when dealing with LTCGI and AreaLit, but can be used in any situation where a material is insufficient or requires a texture.
There are some control settings for managing the RenderTexture's behavior. These settings typically do not need to be adjusted except for special circumstances. But should you need to, here's what they are for:
Allow Texture Resizing
allows the RenderTexture size to be modified. Disable if you need exact pixel size for the texture.
Texture Aspect Ratio
handles the expected ratio that the source video should be rescaled to. Set to 0 to ignore aspect concerns.
Apply Aspect to Resize
makes the RenderTexture size modified to match the ratio specified in a "fit-inside" style.
Bake Aspect into Texture
makes the RenderTexture adjust the video texture inside the blit operation such that it does a "fit-inside" scaling. This adds letter-boxing/pillar-boxing to the texture.
When no RenderTexture is present, there will be a "Create" button to the right of the reference box which you can click to auto-generate an RT for you, just choose where to save the asset. Once there is a RenderTexture reference present, the create button changes to a "Preview" button, which will temporarily force the attached materials to render the texture (this is generally used for checking LTCGI stuff).
Standby Textures
For the RenderTexture Target option, there are some additional fields to facilitate branding and placeholder images.
The Default Standby
texture will be shown when there is no active media playing. This is controlled by the to above Show Standby On Media End/Pause
options. When audio is detected without any video present, the Sound Only
texture will be used as the video stand-in. Both of these textures have corresponding options on the ProTV shaders as well for when using the Material Targets
option.
Global Texture
Lastly, ProTV exposes a global RenderTexture for use on avatars. You can read more here
Video Failure and Error Messages
As for the error messages themselves, the information that VRC provides udon when a video error happens is very little, so ProTV does a bit of heuristic extrapolation to try and guess as to what the error should mean. if ProTV "detects" the video to be a live-stream (internally checked as if the video has 0 or infinite duration) it will display slightly different messages. If there is a quirky edge case that pops up with a video not reporting it's duration for some reason, it would be interpreted as a live-stream and use the stream error messages instead of the regular video error messages. 3.0 should handle those edge cases much cleaner.