====== List of config.json settings ====== The **config.json** file is created when you configure VirtualCast on the settings screen.\\ The settings screen is displayed when you press the gear icon at the upper left of the title screen.\\ The contents of the file are in JSON format which defines various settings. \\ \\ The file is created in [Documents/My Games/VirtualCast/config.json].\\ \\ (The directory may be slightly different depending on the Windows environment, such as Document | My Document)\\ \\ {{:virtualcast:99f94ecddc6954fab7aed7c792829858.png?400|}} \\ config.json can be backed up, copied, or edited directly\\ \\ \\ ---- ====== Structure ====== **niconico**\\ ┠ **[[#broadcaster_comments]]** Add host comment for nico live\\ ┠ **[[#ng_score_threshold]]** nico live comment NG score threshold\\ ┠ **[[#background]]** Add panorama images as backgrounds\\ ┗ **source_urls** Image URLs\\ **persistent_object**\\ ┠ **[[#image_url]]** Add persistent images\\ ┠ **[[#double_sided_image_urls]]** Add double-sided images\\ ┠ **[[#hidden_image_urls]]** Add persistent images that are invisible to viewers\\ ┠ **[[#hidden_double_sided_image_urls]]** Add double-sided persistent images that are invisible to viewers\\ ┗ **[[#nicovideo_ids]]** Add niconico video IDs to spawn as DVDs\\ **item**\\ ┠ **[[#whiteboard]]** Add images for the whiteboard\\ ┃ ┗ **source_urls** List of image URLs\\ ┠ **[[#cue_card]]** Add images for the cue card\\ ┃ ┗ **source_urls** List of image URLs\\ ┠ **[[#capture_format]]** Save format for the capture and whiteboard\\ ┠ **[[#hide_camera_from_viewers]]** Whether to show camera to viewers or not\\ ┠ **[[#enable_displaycapture_chromakey]]** Enable the chroma key feature of display items\\ ┗ **[[#enable_nicovideo_chromakey]]** Enable the chroma key feature of niconico video player\\ **studio**\\ ┗ **[[#allow_direct_view]]** Allow entrance with the direct view mode\\ **humanoid**\\ ┗ **[[#use_fast_spring_bone]]** Use optimized SpringBone\\ **[[#VIVE Pro Eye Settings|enable_vivesranipal_eye]]** Synchronizes the eye movement from VIVE Pro Eye\\ **[[#VIVE Pro Eye Settings|enable_vivesranipal_blink]]** Synchronizes the blink from VIVE Pro Eye\\ **[[#VIVE Pro Eye Settings|vivesranipal_eye_adjust_x]]** Sets the amount of eye movement from VIVE Pro Eye\\ **[[#VIVE Pro Eye Settings|vivesranipal_eye_adjust_y]]** 〃\\ **[[#mode]]** Change the launch mode\\ **[[#direct_view_talk]]** Allow audio input with the direct view mode\\ **[[#enable_looking_glass]]** Enable rendering for The Looking Glass\\ ---- ===== broadcaster_comments ===== You can set host comments in this section to post it from within Virtual Cast.\\ { "niconico": { "broadcaster_comments": [ "Comment1", "Comment2", "Comment3", ] } } ---- ===== ng_score_threshold ===== You can set a threshold of nico live NG score for the comments to spawn in the studio.\\ Comments with scores below the set NG score will be ignored. ^Suggested NG scores|| ^None|Unlimited| ^Weak|Ignore below -10000| ^Medium|Ignore below -4800| ^Strong|Ignore below -1000| { "niconico": { "ng_score_threshold": -10000 } } ---- ===== background ===== Add panorama images as backgrounds.\\ Images are added with URLs. Make sure the image is accessible by everyone. In this example, we added the following panorama images. * [[https://www.virtualcast.jp/download/panoramas/IL_entrance.JPG|Infiniteloop entrance]] * [[https://www.virtualcast.jp/download/panoramas/chromakey.jpg|Green chroma key]] * [[https://www.virtualcast.jp/download/panoramas/chromakey_white.jpg|White background]] { "background": { "panorama": { "source_urls": [ "https://www.virtualcast.jp/download/panoramas/IL_entrance.JPG", "https://www.virtualcast.jp/download/panoramas/chromakey.jpg", "https://www.virtualcast.jp/download/panoramas/chromakey_white.jpg" ] } } } {{virtualcast:config:configjson_background.png?direct&600}} ---- ===== image_url ===== {{ virtualcast:config:configjson_imageurl.mp4|}} Place images that doesn't disappear by grip buttons.\\ Images are added by URLs. Make sure the image is **accessible by everyone**.\\ In the example below, we will place three images of chihuahua created by [[https://twitter.com/ane_il|Ane-L-tan]]. \\ \\ { "persistent_object": { "image_urls": [ "https://pbs.twimg.com/media/DXNT_9WV4AEqKqU.jpg", "https://pbs.twimg.com/media/DXNT_9WV4AEqKqU.jpg", "https://pbs.twimg.com/media/DXNT_9WV4AEqKqU.jpg" ] } } ---- ===== double_sided_image_urls ===== Place persistent images with a different image on both sides.\\ Images are added by URLs. Make sure the image is **accessible by everyone**.\\ Create an array containing two image URLs corresponding to each side. Create multiple arrays to spawn multiple image cards. In the example below, we will add two double-sided image cards. \\ \\ { "persistent_object": { "double_sided_image_urls ": [ [ "http://example.com/omote1.png", "http://example.com/ura1.png" ], [ "http://example.com/omote2.png", "http://example.com/ura2.png" ] ] } } ---- ===== hidden_image_urls ===== Place images that do not disappear. This type of image cannot be seen by viewers.\\ Images are added by URLs. Make sure the image is **accessible by everyone**.\\ In the example below, we will place three images of chihuahua created by [[https://twitter.com/ane_il|Ane-L-tan]]. { "persistent_object": { "hidden_image_urls": [ "https://pbs.twimg.com/media/DXNT_9WV4AEqKqU.jpg", "https://pbs.twimg.com/media/DXNT_9WV4AEqKqU.jpg", "https://pbs.twimg.com/media/DXNT_9WV4AEqKqU.jpg" ] } } ---- ===== hidden_double_sided_image_urls ===== Place persistent images with a different image on both sides. This type of image cannot be seen by viewers.\\ Images are added by URLs. Make sure the image is **accessible by everyone**.\\ Create an array containing two image URLs corresponding to each side. Create multiple arrays to spawn multiple image cards. In the example below, we will add two double-sided image cards. \\ \\ { "persistent_object": { "hidden_double_sided_image_urls": [ [ "http://example.com/omote1.png", "http://example.com/ura1.png" ], [ "http://example.com/omote2.png", "http://example.com/ura2.png" ] ] } } ---- ===== nicovideo_ids ===== {{ virtualcast:config:configjson_nicovideo_ids.mp4|}} Add DVDs to be played on niconico video player.\\ The DVDs registered here will respawn after it's been used or deleted. Add video IDs in format of **smXXXXXX**. \\ \\ \\ \\ \\ { "persistent_object": { "nicovideo_ids": [ "sm9", "sm33046552" ] } } ---- ===== whiteboard ===== {{ virtualcast:config:configjson_whiteboard_presentation.mp4|}} Add images for [[en:virtualcast:studio:ringmenu:item#whiteboard|whiteboard]].\\ To switch between images, point the ray of [[en:virtualcast:studio:ringmenu:item#Laser pointer|laser pointer]] on the whiteboard and press the grip button.\\ Images are added by URLs. Make sure the image is **accessible by everyone**. \\ \\ \\ \\ { "item": { "whiteboard": { "source_urls": [ "http://example/test1.png", "http://example/test2.png", "http://example/test3.png" ] } } } ---- ===== cue_card ===== {{ item_movie:item_cue_card.mp4|}} Add images for [[en:virtualcast:studio:ringmenu:item#Cue card|cue card]].\\ To switch between images, point the ray of [[en:virtualcast:studio:ringmenu:item#Laser pointer|laser pointer]] on the cue card and press the grip button. Images are added by URLs. Make sure the image is **accessible by everyone**. \\ \\ \\ { "item": { "cue_card": { "source_urls": [ "http://example.com/test1.png", "http://example.com/test2.png", "http://example.com/test3.png" ] } } } ---- ===== capture_format ===== Specify the image file format for [[en:virtualcast:studio:ringmenu:item#Capture|Capture]]、[[en:virtualcast:studio:ringmenu:item#Whiteboard|Whiteboard]].\\ You can choose from jpg or png. If not specified, jpg will be used. \\ { "item": { "capture_format": "png" } } ===== hide_camera_from_viewers ===== Set whether to show camera objects to viewers or not.\\ It will be shown, if this property is not specified. * **true**: Hide * **false**: Show (default) { "item": { "hide_camera_from_viewers": true } } ---- ===== enable_displaycapture_chromakey ===== {{ virtualcast:config:configjson_displaycapture_chromakey.mp4|}} Set whether or not to apply chroma key composition on [[en:virtualcast:studio:ringmenu:item#Display|display]] items.\\ For the setting of the chroma key itself, use [[en:virtualcast:studio:ringmenu:item#Laser pointer|laser pointer]] to change the HSV to be used as the chroma key.\\ **The setting is applied per user, if you need your guests to have the same setting, you must ask them to set it for themselves. ** When this property is not set, the chroma key will not take effect. * **true**: Apply chroma key * **false**: Not applied (default) { "item": { "enable_displaycapture_chromakey": true } } ---- ===== enable_nicovideo_chromakey ===== {{ virtualcast:config:configjson_nicovideo_chromakey.mp4}} Set whether or not to apply chroma key composition on [[en:virtualcast:studio:ringmenu:item#Niconico video|niconico video]] items.\\ For the setting of the chroma key itself, use [[en:virtualcast:studio:ringmenu:item#Laser pointer|laser pointer]] to change the HSV to be used as the chroma key.\\ **The setting is applied per user, if you need your guests to have the same setting, you must ask them to set it for themselves. ** When this property is not set, the chroma key will not take effect. * **true**: Apply chroma key * **false**: Not applied (default) { "item": { "enable_nicovideo_chromakey": true } } ---- ===== allow_direct_view ===== Set whether or not to allow entrance with direct view mode.\\ When this property is not set, it is considered disallowed. * **true**: Allow * **false**: Disallow (default) { "studio": { "allow_direct_view": true } } ---- ===== use_fast_spring_bone ===== Set whether or not to apply SpringBone optimization. The default setting is ON, which optimizes the movement of swingable objects of the character, making the computation lighter. However, some models may not work correctly with this setting. If you want to turn off the setting, use the following: { "humanoid": { "use_fast_spring_bone" : false } } ---- ===== VIVE Pro Eye Settings ===== Specify the settings related to VIVE Pro Eye.\\ For detailed information on how to set this up, refer to [[en:virtualcast:controller:viveproeye|Eye tracking (VIVE Pro Eye)]]. | enable_vivesranipal_eye | Whether to detect eyeball movement in VIVE Pro Eye | | enable_vivesranipal_blink | Whether to detect eyelid movement in VIVE Pro Eye | | vivesranipal_eye_adjust_x | Amount of eyeball movement | | vivesranipal_eye_adjust_x | Amount of eyelid movement | { "enable_vivesranipal_eye": true, "enable_vivesranipal_blink": true, "vivesranipal_eye_adjust_x": 1.0, "vivesranipal_eye_adjust_y": 1.0 } ---- ===== mode ===== Change the launch mode of the application. Currently, this property is only used for direct view mode. * direct-view: Direct view mode { "mode": "direct-view" } ---- ===== direct_view_talk ===== When you join a studio with direct view mode, you can send your voice over from your mic. { "mode": "direct-view", "direct_view_talk": true } ---- ===== enable_looking_glass ===== This allows you to render the image on [[https://lookingglassfactory.com|Looking Glass]].\\ When you have your Looking Glass connected and join a studio with direct view mode on, you will be able to see the characters and items in 3D. {{youtube>o70u47ay5tA?medium}} To use this feature, you need to launch the application in the "direct view mode." Therefore, you must also specify **"mode":"direct-view"**. { "mode": "direct-view", "enable_looking_glass": true } ---- ====== keyboard ====== Settings for the key inputs sent to VCIs. { "keycode_vci_forward": "UpArrow", "keycode_vci_backward": "DownArrow", "keycode_vci_left": "LeftArrow", "keycode_vci_right": "RightArrow", "keycode_vci_up": "U", "keycode_vci_down": "I", "keycode_vci_1": "Alpha1", "keycode_vci_2": "Alpha2", "keycode_vci_3": "Alpha3", "keycode_vci_4": "Alpha4" } The Unity KeyCode can be used, but there are some codes that cannot be used, so please set them from the VirtualCast settings screen. https://docs.unity3d.com/ja/2017.4/ScriptReference/KeyCode.html ---- ====== Template ====== Save the config.json below in the same folder as VirtualCast.exe. { "niconico": { "broadcaster_comments.description": "Host comments", "ng_score_threshold": 0, "ng_score_threshold.description": "NG score threshold" }, "persistent_object": { "image_urls": [], "image_urls.description": "List of persistent images to spawn from the start", "double_sided_image_urls": [ [] ], "double_sided_image_urls.description": "List of persistent images to spawn from the start", "hidden_image_urls": [], "hidden_image_urls.description": "List of persistent images not visible to viewers", "hidden_double_sided_image_urls": [ [] ], "hidden_double_sided_image_urls.description": "List of persistent images (double-sided) not visible to viewers", "nicovideo_ids": [], "nicovideo_ids.description": "List of niconico videos to spawn from the start" }, "background": { "panorama": { "source_urls": [], "source_urls.description": "List of URLs for panorama images in equirectangular format" } }, "item": { "whiteboard": { "source_urls": [], "source_urls.description": "List of URLs for images to be loaded into whiteboard, which can be switched with laser pointer." }, "cue_card": { "source_urls": [], "source_urls.description": "List of URLs for images to be loaded into cue card, which can be switched with laser pointer." }, "hide_camera_from_viewers": false, "hide_camera_from_viewers.description": "Show/hide camera objects to viewers", "enable_displaycapture_chromakey": false, "enable_displaycapture_chromakey.description": "Apply chroma key setting to display items", "enable_nicovideo_chromakey": false, "enable_nicovideo_chromakey.description": "apply chroma key setting to niconico video player" }, "humanoid": { "enable_teleport_move": false, "enable_teleport_move.description": "teleport movement", "enable_step_move": false, "enable_step_move.description": "step walk", "enable_comfort_turning": false, "enable_comfort_turning.description": "snap turn" }, "studio": { "allow_direct_view": false, "allow_direct_view.description": "Allow entrance with direct view mode" }, "mode": "", "enable_looking_glass": false } ---- ====== Cannot load config.json ====== === I couldn't see the load success message on the title screen === It appears the loading of config.json has failed. There are several possible causes: - The name of config.json file is not correct or the file is not placed in the same folder as VirtualCast.exe - There is an error in config.json {{virtualcast:config:coinfigjson_help1.png?direct&400|}} ---- === Cannot load VRM models === To load a model for the first time, you must agree with the terms of use associated with the model.\\ From niconico tab, login to niconico and enter the studio. (No need for streaming)\\ You will then see the terms of use for the model which you have to agree to use the model. Other users can not use a model whose use is limited to the owner of the model. ---- === Images added to whiteboard doesn't load === Make sure the URLs are correct.\\ As shown below, the image will not be loaded when you specify a URL for a Twitter post.\\ https://twitter.com/priramen/status/1078961465481060352 You can load images by specifying URLs that ends with ".jpg" or ".png".\\ Right-clicking on image and selecting "Open in new tab" will show you the URL for that image.\\ https://pbs.twimg.com/media/Dvk9ZvaU0AAt3yj.jpg