生放送駆動開発を1000日やったら進捗出たのでみんなもやろう！

　ドワンゴで声変換などを研究開発している、廣芝です。

　もう12月ですが、進捗どうですか。

　進捗を上げるには色んな方法があると思いますが、**人に見られているとやる気が出る**、もしくは**人から意見をもらうとやる気が出る**という方は、多くいらっしゃると思います。そういうときにぴったりな方法があります。

　**自分の作業の様子を生放送で配信する**ということです。

　僕はこの**生放送駆動開発**を1日1時間やる、ということをずっと続けており、3ヶ月前に1000日を突破しました。長くこれを続けるうちに、いろんな気付きやコツがありました。この開発スタイルは結構面白いと思うので、布教も兼ねて、自分の**生放送駆動開発**の環境を紹介したいと思います。

　参考までに、1000日に及ぶ配信でできあがった成果物をいくつか紹介します。

* [ディープラーニングの力で結月ゆかりの声になってみた](https://www.nicovideo.jp/watch/sm34712379)
* [ディープラーニングの力で人工知能になって結月ゆかりと会話してみた
](https://www.nicovideo.jp/watch/sm34712379)
* [「結月ゆかり」とお喋りできるイベントの舞台裏](https://blog.hiroshiba.jp/backstage-of-talking-event-with-yuzuki-yukari/)

## メリット・デメリット
　以降で生放送駆動開発をする方法を紹介していくのですが、その前にメリットやデメリットも紹介します。

### メリット
　一番のメリットは、**完成へのモチベーションが継続すること**です。配信の中で、これを作りますと言ったんだから作るし、いろんな人にアドバイス貰ったから完成させたいし、みたいな感じです。

　次に、**初学やアイデア出しの効率が高い**のがとても良いです。コメントで意見を貰ってブレストみたいな感じにできるので、自分１人の場合に比べて効率が上がります。

　ほかにも、進捗があってもなくてもフィードバックがもらえたり、あとたまに尊敬してる人がいらっしゃったりして新たな出会いがあったりします。

### デメリット
　配信に合わせて予定を考える必要がある、喋りすぎると喉が痛くなる、くらいです。毎日配信することに関しては、慣れてくると、家事しないといけないとかそんな程度の手間感です。

## 生放送駆動開発の始め方
　多くの人が気になるのが、「人が来てくれるのか」という点だと思います。これはすごく簡単な解決策があります。**予め来てくれそうな人に声をかけておく**ことです。
　サークルの人に言ってみたり、ツイッターで伏線ツイートしたり、仲のいい知り合いに声をかけたり。もしくは、一緒に作業配信してくれる仲間を募ってみたり。他にも、クリエイティブな集まりの場で、これみよがしにやり始めるなど、とにかく色んな人にアピールすることが大切です。

　僕の場合は最後のパターンで、ニコニコが昔運営していたSNS（friends.nico）にいる人達に来てもらえることを期待しつつ始めました。ちょっと前に流行ったマストドン（[best-friends.chat](https://best-friends.chat/)や[friends.cafe](https://friends.cafe/)）、VRChatなど、新興SNSは活発な人が多いのでおすすめです。
<img width="200px" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103491/b4a4aae1-4e58-c195-6e9b-3cc6218f3ccb.png">

## 配信環境（ハードウェア）
　生放送駆動開発をする場合、多くはPCで作業すると思うので、そのままそのPCで配信するのが手っ取り早いです。他にもいろいろ設備がいるので、足りない場合は購入する必要があります。

　ここでは、どういうのが良いかの所感と一緒に、機器を紹介します。

### 配信用PC
　配信するためには、映像をエンコードするためのちょっとしたGPUが必要で、フリーのソフトウェアも使えると便利です。GPUやexeソフトが全部使えるので**Windowsが絶対におすすめ**です。

　僕の場合は、趣味で開発するためのマシンとは別に、ゲームをするためのPCを持っていて、これを配信用のPCにしています。VRやゲームができ、ついでに配信できるマシンとしてWindows PCを買うと良いと思います。

### マイク
　セッティングが圧倒的に楽なので、ヘッドホンと一体化した**ヘッドセットマイク**がおすすめです。音量調整が意外と難しいですが、最初に配信するときに音量調整をネタとして視聴者とコミュニケーションを取る練習をすると一石二鳥です。

　ちなみに僕は（たぶん）[LogicoolのG431](https://gaming.logicool.co.jp/ja-jp/products/gaming-audio/g431-7-1-surround-sound-gaming-headset.981-000778.html)を使っています。

### モニター
　モニターは別になんでも良いですが、デュアルモニターにしておくと便利です。というのも、画面をそのまま配信することが多いと思うのですが、このとき画面が１つしかないと、配信したくない情報を見たいときにとても不便です。なので、画面は２つ以上あったほうが捗ります。
　ダイアログやツールバーの情報が出る方をサブ画面にして、そうじゃない方を配信用の画面にすると良いと思います。

　また、配信画面の拡大率も気をつけておきたいです。というのも、見てくださる方は画面の中の一部の枠で見てるので、拡大しておかないと何が書いてるか見えないためです。配信用の画面は拡大率を1.5倍ほど上げておくと良いと思います。

## 配信環境（ソフトウェア）
　昨今は本当に多くの人がストリーミングしており、ありがたいことに無料で配信周りのソフトウェアを揃えることができます。ここでは概念ごとに切り分けて定番のソフトウェアを紹介します。ニコ生を前提に話を進めていますが、別のサービスであっても「ソフトウェア名＋サービス」でググれば、似たようなものを探せると思います。

### 配信用ソフトウェア
　配信は、各生放送配信サービスが用意するURLに映像を送り続けることで行われます。配信ソフトウェアはこれができればなんでも良いのですが、個人的にはオープンソースベースの[OBS Studio](https://obsproject.com/ja)が色々カスタマイズできておすすめです。
　いろんな画面を表示したり、クロップしたり、グリーンバックを抜いたり、音量調整できたり、配信時のビットレートを調整できたりと一通りの機能が問題なく使えます。
　設定をどうすればいいか難しいと思います。自分の設定を載せるので、とりあえずこれを真似しておけば大丈夫だと思います。
<img width="300px" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103491/f1681728-ad91-f503-0e26-f62c2928ebd0.png">
<img width="300px" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103491/39fa787d-5220-cf7f-d1a9-047133ae27da.png">

　ニコ生用途であれば[N Air](https://n-air-app.nicovideo.jp/)も良いかもしれません（まだ使ったことがない）。

### コメントビューアー
　せっかく配信しているので、反応があったときのコメントを見たいと思います。コメントは生放送ページで見れますが、生放送ページを開きっぱなしにするとPCが重いので、コメントを見れるソフトウェアがあったほうが良いです。
　[NiconamaCommentViewer](https://www.posite-c.com/application/ncv/)が定番で、配信ごとにURLをコピペするだけでコメントが見れるのでとても楽です。後述する民安★TALKと連携することで、コメントを読み上げさせたりすることもできます
### 音声合成ソフトウェア
　基本的に、コメントが来て表示されるだけだと、作業中の場合はそれに気づけません。そこで、コメントを読み上げてもらうために、音声合成ソフトウェアを導入しておくのをおすすめします。
　無料の[SoftTalk](https://dic.nicovideo.jp/a/softalk)や、結月ゆかりなどの[VOICEROID](https://www.ah-soft.com/voiceroid/)、さとうささらなどの[CeVIO](http://cevio.jp/)などから好きな声を選べます。ちなみにVOICEROIDの京町セイカはふるさと納税で手に入るらしいです。

<img width="300px" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103491/ac270327-0a4c-0ca2-2f0c-3e643d931714.png">
（持っているボイロ・CeVIOです。なんか集めたくなります）

### 読み上げ外部ツール
　コメントを音声合成ソフトウェアに読み上げさせるときの、どの音声合成ソフトで読むかなどのアダプター的役割を果たすツールです。[民安★TALK](http://publish-tool.blogspot.com/)が定番で、ソフトウェアが選ばれる確率を変えられたり、定型文に対して特別な処理を入れたりすることもできます。とても便利です。


## 最初の生放送
### サービスの選び方
　準備が整ったので、いよいよ生放送です。
　せっかくやるので、少しでも多くの人に見てもらいたいと思います。最近は生放送できるサービスが増えていますが、気軽にコメントしてほしい場合は、多くの人がアカウントを持っているニコ生かYouTube Liveの二択だと思います。この2つであれば、**回遊しているユーザー数が多いニコ生が圧倒的におすすめ**です。
　ニコ生であれば、タイトルさえちゃんと付けておけば、1時間配信して誰も来ないなんてことは早々起きないと思います。

　あと、ニコ生は累計来場者数しか見えない一方、YouTube Liveはリアルタイムの視聴者数が見えちゃうので、誰も見ていないなかで配信していることがわかってしまい、残酷です。これはただの感覚値ですが、1時間配信すると、ツイッターのフォロワー数の100分の1くらいの人が累計で見に来てくれます。自身のフォロワーが多ければ、YouTube Liveでも良いと思います。

### 配信枠を作る
　生放送サービスはどこもかしこも開始までがちょっとややこしいです（間違えて開始されちゃっても嫌なので、ややこしいのは仕方ないと思います）。ニコ生の場合は、配信枠というのを作ったあと、映像をニコ生サービスに送って、配信開始ボタンを押すと生放送が始まります。

　まず配信枠を作る必要がありますが、それは簡単で、[ニコ生ページ](https://live.nicovideo.jp/)の右上のボタンを押すとすぐに配信できます（たぶん）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103491/4d10f18f-a422-2d01-802f-1bddc8523af8.png)

　タイトルの付け方にもコツがあるので、後ほど紹介します。

### 配信プレビュー
　最初配信するとき、自分の画面がどう見えるか、自分の声がどう聞こえてるかが気になると思います。放送開始前に映像を配信することで、配信プレビューを見ることができます。そこで見え方や音声をチェックできます。
　音声は基本的に最初はミュートになっているので、音声が聞こえないときはミュートが外れてるか確認すると良いと思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103491/1348457e-b047-9450-3c1c-4c0d1a240eb6.png)
（左下のスピーカーマークがミュート状態）

　ここでマウスカーソルが映像のエンコードにより潰れてしまっていないかを確認しておきます。特に、文字にマウスカーソルを当てると細長いマークに変わると思いますが、これは放送画面ではほとんど見えていない場合が多いです。そのときは、文字をドラッグしてカーソルの場所を示してあげるなどの工夫が必要です。
　あと、先ほどマイクのところでも書きましたが、良い感じに見えてるかを視聴者に聞いてみて、コミュニケーションを取ってみてもいいと思います。

### 初配信
　初配信はなんか変に緊張すると思います。そういうときは、誰か雑談配信してる人とかに、自分も出してもらって、慣れておくのもいいかもしれません。
　僕は最初に生配信したときは、慣れている人に急に誘われて、6時間ずっと雑談させられました。（意外となんとかなります）

　あとはやっぱり、周りの人に声をかけておくのが良いと思います。優しい人はコメントしてくれます。意外と配信見るのが好きな人がいるので、初心者オーラを出しておけば良い感じなコメントをしてくれるはずです。（逆に配信している人を見かけたときは、「元気ですか」とか「何してるんですか」とか、なんでもいいのでコメントしてあげてほしいです。）
　どうにかして5分ほど話せば、なんかエンジンかかると思います。

## 開発環境
　僕は配信環境のWindows PCでプログラミングして、その様子を放送しています。最近のWindowsはVSCodeとWSL2の登場により、開発が非常に楽になっています。docker.exeもWSL側から普通に見れるので、開発環境は全部dockerに乗せて、あとはwindowsで画面を配信するだけです。
　ただ、CUDAを使う場合だけはwindows側を実装しないといけません。WSL2でCUDAを使うのがプレビュー版であるので待ち遠しいです。

## 実践しているコツ
　1000回配信するなかでいろんなコツが身につきました。せっかくなのでこの場を借りて共有します。共通しているのは、**視聴してくれる人の立場から見て嬉しくなるようにする**ということです。

### 配信で何するのかをタイトルに書く
　ツイッターなどで配信が開始されたことを見たとき、大体の人はその内容によって見てみるかどうかを決めます。**何をやっているのかわかるタイトルにしておく**のが意外と大事です。
　たとえば「進捗放送」とだけタイトルを付けておくと、ずっと見てる以外の人は新たに見る気になりづらく、空気感がずっと一緒で新鮮さが失われてしまい、もったいないと思います。やっていることが変わったら、その都度タイトルも変えて、いろんな人に来てもらえるようにすると良いと思います。

### 比較的楽しい作業を配信でやる
　大体の作業は見ていてもとても退屈で、見てる側も何も言うことがないことが多いと思います。でも、設計を考えたり、創作物の見せ方を考えたりする作業は、意見をもらいやすいので盛り上がったり良い意見をもらえたりします。
　作業数と作業時間が多いときは、そういう見ていて楽しそうな作業を配信で行い、楽しくないのは配信外でやるのも良いと思います。

　他にもいろいろなコツを実践しているので、箇条書きで紹介します。

* なんとなくやる気がでないときは、配信時間を短くして配信する
* ネタがないときはYahooニュースなどを見て回る
* 配信時間を一定にして、見る側が予定をたてられるようにする
* 配信後に配信開始ツイートを消して、配信してるのかしてないのかわからない状況を失くす
* 配信後にやったことまとめツイートをして、前回の放送を見ていなくてもなんとなくわかるようにしておく

## モチベーションに関して
　配信は割と手間がかかるので、長く続けているとどうしてもモチベーションが下がってしまうかと思います。特に、来場者数やコメント数が少なかったときです。そういうときは、初心に立ち返って、何のために配信しているかを考えると良いと思います。

　自身の進捗のために配信しているのであれば、進捗がちゃんと出ているのであれば、来場者数などの値はそこまで気にしなくてもいいはずです。あとは、とにかく続けることだと思います。自分も昔は1時間やって10人来ないとかでしたが、今は非常にありがたいことに50人くらい見に来てくださいます。継続は力なり、です。

　意見をもらうために配信しているのであれば、ニーズのあるタスクを選んで配信するといいと思います。ディープラーニングやってみる、みたいな配信は、いろんな質問をもらえたりして結構ウケが良い印象があります。

## 終わりに
　以上です。ここまで読んで頂きありがとうございました。
　書いていくと書きたいことがどんどん思いついて、当初想定したよりずっと長くなってしまいました。駄文で本当に申し訳ないです。
　生放送駆動開発はやってみると面白く、発見も色々あるので、とてもおすすめです。ぜひ始めてみてください！

　最後に宣伝ですが、自分は[ここ](https://com.nicovideo.jp/community/co3686550)で毎日23時ごろから放送しています。
　（この記事も配信しながら執筆しました。）
　参考になると幸いです。

　それでは、よい進捗ライフを！！