「脳波でうごくVTuber」の作り方
紹介
富士通インキュベーションセンターの「シュウゾウ」さんが、
「脳波で動くVTuber」を作成したので紹介します。
本記事について
- Youtubeに投稿した動画「脳波でうごくVTuber」の作り方の記事
- 上記リンクのVTuber動画作成の解説
- ユニティちゃんの頭についているリボンを脳波でうごかす
環境
- MacBook Pro 2017, macOS High Sierra 10.13.4
- MindWave自体はWindowsでも利用可能
- MindWave Mobile
- NeuroSky社の脳波計
背景
-
VTuberアセット紹介動画コンテストに投稿するためにVTuberを作成
- アセットの紹介が不十分であったため、あえなく失格
脳波でうごくVTuberとは?
- 脳波計を頭に装着し脳波を計測。脳波でVTuberをうごかす
脳波をVTuberに適用することで
- VTuberの表現の幅が広がる
- 手が離せない状況でも使える(ゲームプレイ中など)
- 自動的に感情表現してくれる
- 自分の今の感情を大まかに伝えることができる
- 脳波は正直?
使用したもの
構成と解説
①脳波計MindWaveから脳波を取得
1. PC上の環境構築
-
NeuroSkyのデベロッパーサイトのBrainwave Starter Kit Product Support
- 日本語版->MindWave Mobile Plus->Quick Start Guide - Japaneseを参照
使用したのはMindWave Mobileだが、MindWave Mobile Plusのほうが抜けなく書いてあると思われる。
Brainwave Starter Kit Product Supportの下の方にあるようにOSバージョンによる可能性がある。
筆者は環境構築中に試行錯誤した。上記手順でうまくいかない場合は以下のようなQ&Aを使う。 MindWave won't work on Mac or Windows
-
うまくいかない場合のチェック項目
- MindWave Managerはインストールされ、起動しているか(ステータスバーにアイコン)
- ThinkGear Connectorはインストールされ、起動しているか(ステータスバーにアイコン)
- 上記ソフトウェアはソースがいくつかある
- うまくいかない場合は別のソースでインストールし直す
- サポートサイトのQ&A MindWave won't work on Mac or Windows
2. Unityプロジェクトの作成
-
GitHub上のmindwave-unityプロジェクトをClone
MindWaveの公式にもUnityでうごかすチュートリアルがある。
しかし今回はうまく動かなかったためGitHub上のプロジェクトを利用させていただいた。
②Bluetooth通信
-
ユーザーガイドにあるように接続すると以下にポートができる
- Macの場合は以下コマンドで確認できる:
ls /dev/tty.*
- ただしscreen等で取得しても中身がよくわからないためThinkGear Connectorが必要
PCの場合、ThinkGearConnectorというソフトがプラットフォームになっています。
脳波の値はまずここで取得され、他のアプリへと送信されます。
- Macの場合は以下コマンドで確認できる:
③ユニティちゃん(のリボン)をうごかす
- 脳波を受け取る方法
- 以下のようにセンサデータを受け取りたいスクリプトにイベントを登録
- 今回は脳波のデータとしてMindWave独自のアルゴリズムに基づき出力されるattention値を利用
- attention値は集中度を示すとされている
void Start () {
MindwaveManager.Instance.Controller.OnUpdateMindwaveData += OnUpdateMindwaveData;
}
public void OnUpdateMindwaveData(MindwaveDataModel _Data)
{
sensorData = _Data.eSense.attention;
Debug.Log("nouha meditation : " + _Data.eSense.meditation);
Debug.Log("nouha attention : " + _Data.eSense.attention);
}
- ユニティちゃんのリボンをうごかす方法
- 以下で紹介されているRigBone.csのmulメソッドを改造したものを使用
- gameObjectはうごかす対象のGameObjectを入れる
public void mulObject(float a, float x, float y, float z) {
mulObject(Quaternion.AngleAxis(a, new Vector3(x,y,z)));
}
public void mulObject(Quaternion q) {
Transform tr = gameObject.transform;
tr.localRotation = q * tr.localRotation;
}
④REC(撮影)
- 録画はMacに標準で入っているQuick Time Playerを使用
- ファイル->新規画面収録 で画面内を撮影
- 編集はMacに標準で入っているiMovieを使用
まとめと所感
- 脳波に気持ちが(一部)反映されることを確認
- attention値は楽しんでいるときや、笑顔で会話しているときによく反応していた(主観)
- 大まかには気持ちに沿って反応しているように感じるが、反応しない場合もあるため今後の課題と感じた
考えすぎて自分の本当の気持ちがわからなくなる- 脳波はいまだ未知の部分が多い
- 脳波は人によっては制御可能
- 部署の先輩に自分の意志で脳波の値の上げ下げが可能なニュータイプな人がいる
- 環境構築に手間取った
- ソフトウェアのバージョンが古い記事が散見されるので注意
- 脳波計が頭に食い込んで少し痛む
- クリップで耳を挟む
- 装着がシビア
- 脳波取得のためピンポイントで装着する必要あり
- もう少し手軽に装着できるといいと思った
- 猫耳や尻尾を動かしたい
- きっとかわいいに違いない
Author And Source
この問題について(「脳波でうごくVTuber」の作り方), 我々は、より多くの情報をここで見つけました https://qiita.com/Fujitsu_IncubationCenter/items/111223ddbe01a23f9d68著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .