バーチャルキャストのconfig.jsonについて

# バーチャルキャストのconfig.jsonについて

みゅみゅです。　バーチャルキャストを作ってます。
よく、config.jsonわかんねー、GUIかなにかで出来ないの？？　と言われますが、
すみません。　諸般の事情でこうなってます。
でも慣れれば、ファイル一つで設定を他の人に渡したりバックアップとかも楽で慣れればさくっと編集もできるのでみんなこれを機会に覚えよう！
・・・すみません、開発の怠慢の部分もあります・・・

## JSONとは？
軽量なデータ記述言語の1つである。構文はJavaScriptにおけるオブジェクトの表記法をベースとしているが、JSONはJavaScript専用のデータ形式では決してなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しに使えるよう設計されている。
（[wikipediaより](https://ja.wikipedia.org/wiki/JavaScript_Object_Notation)）

要約すると、データを書くのに便利なフォーマットですという意味です。
データを書くのに便利かもしれませんが、人間様が書くにはちょっとした間違いもNGと出るので辛い言語かもしれません。

JSONの基本は "{}" （カッコ）で括るです。

```json
{
}
```

文字はダブルコーテーションで括る。

```json
{
  "niconico": {
  }
}
```
続けて書くときは　,（カンマ）を忘れずに。

```json
{
  "niconico": {
    "background_models": [43907,43367]
  }
}
```

## JSONを書くのに便利なツール
メモ帳でJSONを作るのは大変です。
何が大変かというと間違えがよくわからないからです。

### 便利ツールその１　JSON Pretty Linter Ver3

[JSON Pretty Linter Ver3](https://lab.syncer.jp/Tool/JSON-Viewer/)
オンラインのJSONチェッカーです。
書いたJSONをコピペで入れて問題なければ

![image.png](https://qiita-image-store.s3.amazonaws.com/0/79067/f5b26f92-0b44-a66e-d38c-dad3f916ea9d.png)

問題があれば

![image.png](https://qiita-image-store.s3.amazonaws.com/0/79067/21f6818e-c106-e8f9-8ed5-320205caef81.png)

こんな感じで教えてくれます

### 便利ツールその２　VSCode

[VSCode Download](https://code.visualstudio.com/Download)

エディタです。　便利です。
メモ帳変わりに使うのが良いかと思います。
拡張子が.jsonですとJSONフォーマットとして認識して、間違いがあると

![image.png](https://qiita-image-store.s3.amazonaws.com/0/79067/2a36567b-b776-715a-4b7b-57f474e320e0.png)

こんな感じで赤い波線で教えてくれます。

## config.jsonの作り方

https://qiita.com/miyumiyu/items/5cf729a67eb372de2630

こちらの記事を参照してください（丸投げ）

## バーチャルキャストで使えるconfig.jsonのパラメータ

2018/12/12現在、使えるパラメータになります。

```json
{
  "niconico": {
    "character_models": [32797],
    "background_models": [43907,43367]
  },
  "persistent_object": {
    "image_urls": ["URL"],
    "hidden_image_urls": ["URL"],
    "nicovideo_ids": ["sm123456","sm434356"]
  },
  "studio": {
    "allow_direct_view": false
  },
  "background": {
    "panorama": {
      "source_urls": ["URL"]
    }
  },
  "item": {
    "whiteboard": {
      "source_urls": ["URL"]
    },
    "cue_card": {
      "source_urls": ["URL"]
    },
    "hide_camera_from_viewers": true
  },
 
  "mode": "direct-view"
}
```

- niconico
    - character_models
        - 利用するVRMモデルのニコニ立体番号です
        - tdから始まる番号のtdの部分は除外します
        - 数字のみでダブルコーテーションはいりません
    - background_models
        - 利用する背景(GLB)のニコニ立体番号です
        - tdから始まる番号のtdの部分は除外します
        - 数字のみでダブルコーテーションはいりません
- persistent_object
    - image_url
        - 初期表示を行う画像を指定します
        - ダブルコーテーションでURLを囲みます
    - hidden_image_urls
        - 初期表示でなおかつ視聴者に見えない画像を指定します
        - ダブルコーテーションでURLを囲みます
    - nicovideo_ids　
        - 初期表示のニコニコ動画IDを指定します
        - smから始まる番号をダブルコーテーションで囲みます

- studio
    - allow_direct_view　
        - ダイレクトビューモードで凸を受け入れるかどうか（デフォルトは受け入れない）

- item
    - whiteboard
        - source_urls
            - ホワイトボードで使用する画像のURLを指定します
        - ダブルコーテーションでURLを囲みます
    - cue_card　
        - source_urls
            - カンペで使用する画像のURLを指定します
        - ダブルコーテーションでURLを囲みます
    - hide_camera_from_viewers
        - カメラアイテムを視聴者に見せるかどうか（デフォルトは見せる）
        - true / false どちらかを指定します
        - ダブルコーテーションで囲みません

- mode 
    - direct-view ダイレクトビューモードで起動します