Doscoinのブログ

忘れっぽいのでメモ用に

UnityでBinaryVRを使ってみる

UnityでBinaryVRを使う機会があったので導入までを書いてきたいと思います.

 

BinaryVRとは "フェイストラッキングカメラ" でVRデバイスと併用することで口周りの表情が取得できます.

 

取得した表情を3Dモデルへ反映させることで 

・喋る言葉に合わせてモデルが口パクをしてくれるスクリプト...なんていうを書かずにすむ!

・声を出していない状態でニヤリとしたり梅干し食べた時のすっぱいリアクションがリアルに表現できるようになる!

 

うれしいですね.

 

こちらがBinaryVRの公式サイトです,詳しくはこちらで.

 

HTC Vive や Oculus Rift 等にも対応しており(テープで貼るだけ)

f:id:Doscoin:20171223020934j:plain

目線もモデルへ反映させたいという方にはFOVEなんていうVRデバイスなんかもあります.

 

 本題のUnityでBinaryを使うとのことですが公式でこのようなProjectを用意してくれているのでこれを使うまでをやります.

 

自分が行った環境は

VRデバイス   : HTC Vive

Unity Version : Unity5.5.0

OS                 : Windows10

で行いました.

といってもドキュメントが付属しているので書いてある通りに進めればいんですけど全て英語で書かれている(^^;

 

 ...とにかく付属品は

・フェイストラッキングカメラ

・USBケーブル(Aタイプ, USB3.0

・カメラ固定用のパーツ(Mount)の3つがあるのを確認.

f:id:Doscoin:20171223021035j:plain

 

まずHMDにカメラ固定用のパーツ(Mount)を両面テープで貼り付けます.

Viveの場合フロントのカメラが隠れてしまう(^^;

f:id:Doscoin:20171223024155j:plain

 

そしてカメラ本体とUSBを接続してUSB3.0側をUSBポートへ接続します.

Viveの方はHMDのとても固い蓋を開けるとUSBポートがあるのでそこに接続します.(蓋を締める時はスライドですんなり閉まる)

f:id:Doscoin:20171223024444j:plain

Oculus Rift の場合は外部からUSBポート引っ張ってきて接続?だと思います.

接続するとカメラとライトがHMDから飛び出しているか顔に向いているかを確認します.

※カメラとライトはこの位置にあります

f:id:Doscoin:20171223025227j:plain

 

物理的なセッティングは以上で次にカメラのドライバーをインストール.

BinaryVRは署名無しドライバーなので署名を一時無効化します.

今回はWindows10の方法を紹介します.

1.まずは "Windowsキー" もしくは左下の "Windowマーク" を左クリックし設定(歯車マーク)を左クリック.

f:id:Doscoin:20171223040025j:plain

2.「Windowsの設定」で "更新とセキュリティ" を左クリック. f:id:Doscoin:20171223035949j:plain

 3.左のタブにある "回復" を選択し「PCの起動をカスタマイズする」の項目にある "今すぐ再起動" のボタンを左クリック.

※ボタンをクリックしたら再起動されますので作業中ならばセーブ.

f:id:Doscoin:20171223040319j:plain

 4.青い画面で「オプション選択」が出るので "トラブルシューティング" を左クリック. 

f:id:Doscoin:20171223040501j:plain

 5.「トラブルシューティング」では "詳細オプション" を左クリック.

f:id:Doscoin:20171223040758j:plain

6.「詳細オプション」では "スタートアップ設定" を左クリック.

f:id:Doscoin:20171223041012j:plain

7.「スタートアップ設定」の画面では "再起動" を左クリック.

f:id:Doscoin:20171223041028j:plain

8.再起動されると「スタートアップ設定」の画面が表示されるので "7キー" を押します.

f:id:Doscoin:20171223041037j:plain

9."7キー" を押したら通常通りに起動するのでドライバー署名の無効化が完了しました

起動が完了したら左下の "Windowマーク" を右クリック.

その後 "デバイスマネージャー" を左クリック.

f:id:Doscoin:20171223041053j:plain

10.PCもしくはHMDにフェイストラッキングカメラのUSBが接続されていれば 「他のデバイス」に "FX3" と表示されているので左クリック.

f:id:Doscoin:20171223041720j:plain

11."ドライバの更新" を左クリック.

f:id:Doscoin:20171223042149j:plain

12."コンピューターを参照" を左クリック.

f:id:Doscoin:20171223042201j:plain

13."参照" を左クリック

f:id:Doscoin:20171223042215j:plain

14.BibaryVRフォルダの中にあるドライバを選択します.

ディレクトリは "BibaryVR/driver/win7/x64" を選択して "OK" を左クリック.

その後 "参照" を選択した画面に戻るので "次へ" を左クリック.

f:id:Doscoin:20171223042225j:plain

 15.ドライバーのインストールが始まりますが署名がないので警告の画面が出ます.

"インストールします" を左クリック.

f:id:Doscoin:20171223042540j:plain

16.少し待つと「ドライバーが正常に更新されました」と表示されるので,これでドライバーのインストールは完了です.

f:id:Doscoin:20171223042556j:plain

 

ではさっそくUnityで使いましょう.

Unityを開いていつもの画面が出てきたら "Open" を選択.

f:id:Doscoin:20171223043547j:plain

BibaryVRのフォルダーの中から用意されたProject "unity" を選択.

ディレクトリは "BinaryVR/examples/unity"

f:id:Doscoin:20171223043723j:plain

するとSampleのProjectが起動します...顔が怖い(^^;

f:id:Doscoin:20171223044144j:plain

開始するとUIが表示されて

"Open Device" ではカメラが起動.

"Calibrate and Start Tracking" では初期調整(セットアップ)を行いトラッキングを開始.

"Start Tracking" ではトラッキングを開始.

ドライバーが正しくインストールされていると "Open Device" クリック時にButton上の白い部分にカメラの映像が表示されます.

※"Open Device" → "Calibrate and Start Tracking" で動くので右のButton使わない...

f:id:Doscoin:20171223044246j:plain

実行すると感じになります.

f:id:Doscoin:20171223044841j:plain

カメラから出力された映像を表示したくない場合は「Hierarchy」の

"UI/Canvas" を選択して 「Inspector」のチェックを外して非表示にするといいと思います.

顔の構造を見てわかる通り顔のパーツが分離されており各パーツにアニメーションを設定されているようなので外部からインポートしたモデルに即適用とはいかない・・・?

モデリングのことがわかってないので適用するには自分でモデルを作るか改変OKのモデルのパーツを分解して適用するしかないのかな?

 

次はモデリングの勉強してモデルに適用する所まで書きたいなぁ...

RaspberryPi3のUbuntu16.04server初期設定

環境構築をするたびに手順を忘れている気がするので自分用のメモとして記述

キーボード設定・ユーザー設定・ssh接続・IPアドレスの設定をやっていきます

使用機材

Raspberry Pi 3 Model B

・Lanケーブル1本(モデムやHGWとの接続用)

HDMIケーブル

・モニター(HDMI接続できるもの)

 

OSインストールまでの実行環境はWindows10を使用

ちなみにUbuntuで使用するエディタはVimを使用します

Vimって何それおいしいの?という方は下に参考URLを貼っておきますので基本的な使い方は学んでください

http://qiita.com/JpnLavender/items/fabcc79b4ab0d52e1f6d

 

 

まずはmicroSDカード(8GBあれば十分)にOSを入れましょう!

https://wiki.ubuntu.com/ARM/RaspberryPi

↑のURLからubuntu-16.04-preinstalled-server-armhf+raspi3.img.xzをダウンロード

解凍したimgファイルubuntu-16.04-preinstalled-server-armhf+raspi3.imgmicroSDカードに書き込みます

今回imgを書き込む用のソフトはWin32 Disk Imagerを使用

Win32 Disk Imagerのダウンロード先↓

https://sourceforge.net/projects/win32diskimager/

使用方法については省略,使用方法は参考URLを確認してください

 

 

それではRaspberryPi3にmicroSDカードを挿入して起動.

黒い背景に白い文字が沢山流れると思うので止まるまで待機

文字が動かなくなったらエンターキーを押して

ubuntu login:

と表示されたらユーザー名とパスワードを入力してログインします

初期ユーザー名およびパスワードは"ubuntu"です.

ubuntu login:ubuntu

password:ubuntu

※パスワードは入力しても画面上には表示されません

ユーザー名とパスワードの入力が完了したら

(current) UNIX password:

と表示されます.これは初回ログイン時にパスワードの変更を行う仕様となっており現在のパスワードを入力してくださいという意味になります

なので"ubuntu"と入力

※こちらもパスワードなので画面上では表示されません,以後のパスワード入力でも画面には表示されないのでご注意ください

続いて

Enter new UNIX password:

と表示されます.これはそのまま新しいパスワード(自身のパスワード)を入力

当然他人にはわからないような文字・数列を心がけましょう

新しいパスワードを入力すると

Retype new UNIX password:

これは新しいパスワードを再度入力してくださいとのことですので再度入力

 

 

これでUbuntu16.04serverへのログイン完了

まずは標準エディタをVimへ変更します

標準でVimは入っているのですが最小限の機能しか使用できないVimですので高機能なVimをインストール

$sudo apt-get update

$sudo apt-get install vim

インストールの途中で

Do you want to continue? [Y/n]

と表示されますがインストールを続けますか?的なことなので"y"を入力してエンターキーを押せばインストールが進みます

これでVimのインストールが完了

 

 

それでは標準エディタの設定をします

$sudo update-alternatives --config editor

コマンドを入力するとエディタのリストが表示されSelection番号の左に"*"が付いているのが現在の標準エディタとなります.現在は nano となっていることが確認できます

リストの中にvim.basicとvim.tinyとVimが2つありますが,この違いは標準で入っている軽量のVimvim.tyny 先程インストールしたVimvim.basicなので当然vim.basicを選択

選択方法はPathがvim.basicとなっているSelection番号を入力してエンターキーを押してください

再度 $sudo update-alternatives --config editor を入力すると vim.basic が標準エディタとなっていることが確認できます

 

 

次にubuntuが標準で日本語キーボードに対応していないので設定を行います

$sudo dpkg-reconfigure keyboard-configuration

コマンドを打つことで紫背景のキーボード設定画面が表示

最初の画面では"Dell"を選択

続いて"Japanese"を選択

次に"Japanese - Japanese (OADG 109A)"を選択

そして"The default for the keyboard layout"を選択

最後に"No compose key"を選択

これで日本語キーボードの設定は完了

少し待つとコマンドの打てる状態になります

手順がわからない方は参考URLを見ながら進めてください.

http://qiita.com/ktyubeshi/items/847b05b7879e2f45da54

 

 

それでは root ユーザーのパスワードを設定します

$sudo passwd root

と入力すると

Enter new UNIX password:

と表示されるので最初に設定したように自身のパスワードを入力

続いて再度パスワード入力が求められるので再度パスワードを入力

password: password updated successfully

と表示されると成功です

$su -

とコマンド入力してrootユーザーへ切り替わることを確認

確認が完了したら

#exit

で元のユーザーに戻しましょう

 

 

続いてホスト名を追加しましょうこの作業をしていない状態だと

sudo : unable to resolve host

と表示されてしまいます

まずはホスト名が設定されているファイル(/etc/hostname)をvimで開きます

$sudo vi /etc/hostname

すると"ubuntu"書かれているので

hostname

自身の設定したいホスト名に書き換えます

次に/etc/hostsファイルを開きます

$sudo vi /etc/hosts

最初は

127.0.0.1 localhost

~以下ipv6の設定~

と書かれているので

127.0.0.1 localhost

127.0.1.1 hostname #←この行を追加します

最後に再起動をかけるとホストの設定は完了

$sudo reboot

 

 

次にユーザーを追加(usernameは自身の設定したい名前)

$sudo useradd -m username

$sudo usermod -G sudo username

$sudo passwd username

"$sudo usermod -G sudo username"では作成したユーザーがsudoコマンドを実行できるようにしました

"$sudo passwd username" コマンドを打つと

Enter new UNIX password:

と表示されるのでいつものようにパスワードを設定

$cat /etc/passwd

コマンドを実行すると一番下に作成したユーザー名があることが確認

では早速ユーザーを切り替えてみましょう

$su - username

作成したユーザーに切り替わったら

$id

でユーザーIDまたsudoグループに所属していることが確認

使わなくなったユーザーは

$sudo userdel -r username

で削除することができます

 

 

SSH接続できるようにします

$sudo apt-get install openssh-server

コマンド入力をするだけでssh接続できるようになります

 

 

IPアドレスの設定を行います

$sudo vi /etc/network/interfaces

IPアドレスの設定が書かれたファイルを開きます

現在の設定では

auto lo

iface lo inet loopback

loopbackのみ設定されていますので固定IPとSSH接続用のIPを設定します

まずは

source /etc/network/interface.d/*.cfg

外部から設定を読み込む様になっているのでコメント化します

変更後

#source /etc/network/interface.d/*.cfg

続いてerh0のIPアドレスを固定IPにします

ファイルの下に記述

auto eth0

iface eth0 inet static

address 192.168.0.100

netmask 255.255.255.0

gateway 192.168.0.1

"address"には環境に合わせたIPアドレス

"netmask"には環境に合わせたサブネットマスク

"gateway"には環境に合わせたデフォルトゲートウェイを設定

 

 

以上で設定は完了です

保存して再起動をします

$sudo reboot

 

再起動できたら確認します

$ip address

または

$ifconfig

コマンドでinet(IPアドレス)の設定が反映されているのを確認できます

続いて

$ping -c 5 8.8.8.8

で外部ネットワークへ繋がるか確認します

※8.8.8.8 はGoogle Public DNSIPアドレス

64bytes from 8.8.8.8: icmp_seq=x ttl=xx time=xx.x ms

"x"は環境によって数値が異なります

と表示されると外部ネットワークへのアクセスが可能です

From x.x.x.x icmp_seq=x Destination Host Unreachable

ping: sendmsg: Network is unreachable

と表示される方は設定が間違っているかそもそもネットワークに繋がっていない可能性があるのでeth0の設定を

auto eth0

iface eth0 inet dhcp

と変更してpingが通るか

WindowsのPCが同じネットワーク内で使用のであれば

>ipconfig

を用いてネットワークの設定が間違っていないか確認してみましょう

http://www.atmarkit.co.jp/fnetwork/tanpatsu/26command/02.html

 

 

ssh接続するPCの設定をします

ssh接続するアプリケーションとしてTera Termを使用

https://ja.osdn.net/projects/ttssh2/releases/

ダウンロードするバージョンは最新版で問題ないかと思います

ssh接続する際のIPアドレスはeth0に設定されているIPアドレスです

ネットワークの設定参考URL

http://faq.buffalo.jp/app/answers/detail/a_id/15775

これで設定完了

 

 

$sudo apt-get update

やインストールを行うと"Temporary failure resolving 'xxx.ubuntu.com'"

とエラーが出てしまうがこれはDNSの問題なので

$echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf > /dev/null

を実行することでエラーが出ることなく実行できます

 

追記

Tera Term等でSSH接続した際にTabキーで補完されない・上キーを押しても履歴が見れないといった現象が起きてしまう

https://oshiete.goo.ne.jp/qa/5058986.html

$sudo usermod -s /bin/bash username

コマンドを打ちこんだコンソールは閉じずに新しいコンソールを起動してログイン

Tabで補完や上キーで履歴がみれるようになっていたら完了

もしコンソールでログインできない場合はコマンドを打ち込んだコンソールで

$sudo usermod -s /bin/sh username

を打ち込むことで設定を戻します

詳しくはサイトを参考にするか「Tab 補完されない」みたいな感じで調べると環境に合った解決法がでてくると思います