カメラを使わない『なんちゃってVtuber』の紹介【Python】

昨日の配信にてお披露目しました、『なんちゃってVTuber

f:id:kikyou_kiki:20200510210052p:plain
実際の画像(配信アーカイブより)一時間たったくらいのところに登場。

 

VTuberって、最近では手軽に参入できるアプリが出来はじめたものの、自分オリジナルのキャラを使いたい!と思うとすごーく手間とお金がかかるってイメージですよね。

まずキャラクターをデザインして…

3Dだったらモデリングして、モーションキャプチャーして…

2Dでもグラフィックを細かくパーツ分けして…

配信を賑やかにしたいけどちょっとそこまでは厳しい…って思いながらひそかにバーチャルアバター配信を見て(最低限どんな動作があればぎりぎりそれっぽく見えるのか)研究しつつ、考えたものがこちら。

 

『なんちゃってVTuber』基本仕様

・2Dイラストのみ対応
・一定時間ごとにイラストが目パチ(瞬き)する
・マイク入力に合わせて口パクする

これだけ。カメラも使わない音声検知だけ簡単なんちゃってVTuber

なんか…どっかで見たような絵面だなと思ってたらゆっくりだこれ。

…これでVTuberなんて言ったらファンに怒られますかね?

でもやっぱり、自分の動画内でキャラクターが反応してくれるって面白いね…口パクと目パチだけでだいぶ印象違う。リアルタイム感が出た気がします。

技術的な話。

動作ツールはPython、使用した画像も顔のベース、目と口それぞれ二種、目と口より上に来るパーツの透明情報入り画像たった6枚だけ。

スッキリわかるPython入門 (スッキリシリーズ)

スッキリわかるPython入門 (スッキリシリーズ)

 

ウィンドウ画面表示に関しては、

OpenCVを使うかPygameにするか悩んだんだけど、FPSの調整とかがやりやすそうだなと思いPygameを使用。

将来的に凝った画像加工や認識を使いたいならOpenCVにする方がいいかもしれない。

Pythonでつくる ゲーム開発 入門講座

Pythonでつくる ゲーム開発 入門講座

  • 作者:廣瀬 豪
  • 発売日: 2019/07/20
  • メディア: 単行本
 

 

詳解 OpenCV 3 ―コンピュータビジョンライブラリを使った画像処理・認識
 

というか今の仕様なら画像の透明部分重ねて表示できればなんでもいい。

 

音声認識に関してはこちらを参考にしました。

qiita.com

Pygameの1ループに一回音声を検知して、入力があったら画像を切り替えるだけの雑な設定。

f:id:kikyou_kiki:20200510225537p:plain

f:id:kikyou_kiki:20200510210022p:plain

時間や音声の条件を元にばらばらだった画像が合成されるので、それで出力されたウィンドウをOBSに設定するだけ!

 

このプログラム、問題点は音ゲー配信と相性が悪いこと。

マイクが鍵盤の音を拾っちゃってそれで常に口パクしてる(うざい)という問題が発覚し、プレー配信時の合成画像は口パクのコードを削除した状態で撮った。

単指向性マイクにしたり音域カットしたりしたらマシになるのかもしれない。 

 

あとがき

調べたら出てきたものだけでなんとなく想像してたものが作れてPython様々でしたわ。

需要があれば自分用にも程がある部分を削除して扱いやすく変更したうえでソースコード公開しようかしら。

(6/17)

ソース公開しました。

marubodiary.hateblo.jp

…ただ特筆したような機能はないし、作ろうと思えば上記情報をもとにすぐ作れると思うので、ちょっとしたネタにいかがですか!?

やろうと思えばキャラをもっと動かしたり音声の音量で表情パターン変えたりとかいろいろできそうですね。…あんまり凝りすぎてももうそれLive2Dで良くね?ってなりそうですが!

ところで、配信では光る鍵盤も頑張って作ったポイントなのでそっちも見てね!