UnityでBinaryVRを使ってみる
UnityでBinaryVRを使う機会があったので導入までを書いてきたいと思います.
BinaryVRとは "フェイストラッキングカメラ" でVRデバイスと併用することで口周りの表情が取得できます.
取得した表情を3Dモデルへ反映させることで
・喋る言葉に合わせてモデルが口パクをしてくれるスクリプト...なんていうを書かずにすむ!
・声を出していない状態でニヤリとしたり梅干し食べた時のすっぱいリアクションがリアルに表現できるようになる!
うれしいですね.
こちらがBinaryVRの公式サイトです,詳しくはこちらで.
HTC Vive や Oculus Rift 等にも対応しており(テープで貼るだけ)
目線もモデルへ反映させたいという方にはFOVEなんていうVRデバイスなんかもあります.
本題のUnityでBinaryを使うとのことですが公式でこのようなProjectを用意してくれているのでこれを使うまでをやります.
自分が行った環境は
VRデバイス : HTC Vive
Unity Version : Unity5.5.0
OS : Windows10
で行いました.
といってもドキュメントが付属しているので書いてある通りに進めればいんですけど全て英語で書かれている(^^;
...とにかく付属品は
・フェイストラッキングカメラ
・USBケーブル(Aタイプ, USB3.0)
・カメラ固定用のパーツ(Mount)の3つがあるのを確認.
まずHMDにカメラ固定用のパーツ(Mount)を両面テープで貼り付けます.
Viveの場合フロントのカメラが隠れてしまう(^^;
そしてカメラ本体とUSBを接続してUSB3.0側をUSBポートへ接続します.
Viveの方はHMDのとても固い蓋を開けるとUSBポートがあるのでそこに接続します.(蓋を締める時はスライドですんなり閉まる)
Oculus Rift の場合は外部からUSBポート引っ張ってきて接続?だと思います.
接続するとカメラとライトがHMDから飛び出しているか顔に向いているかを確認します.
※カメラとライトはこの位置にあります
物理的なセッティングは以上で次にカメラのドライバーをインストール.
BinaryVRは署名無しドライバーなので署名を一時無効化します.
今回はWindows10の方法を紹介します.
1.まずは "Windowsキー" もしくは左下の "Windowマーク" を左クリックし設定(歯車マーク)を左クリック.
2.「Windowsの設定」で "更新とセキュリティ" を左クリック.
3.左のタブにある "回復" を選択し「PCの起動をカスタマイズする」の項目にある "今すぐ再起動" のボタンを左クリック.
※ボタンをクリックしたら再起動されますので作業中ならばセーブ.
4.青い画面で「オプション選択」が出るので "トラブルシューティング" を左クリック.
5.「トラブルシューティング」では "詳細オプション" を左クリック.
6.「詳細オプション」では "スタートアップ設定" を左クリック.
7.「スタートアップ設定」の画面では "再起動" を左クリック.
8.再起動されると「スタートアップ設定」の画面が表示されるので "7キー" を押します.
9."7キー" を押したら通常通りに起動するのでドライバー署名の無効化が完了しました
起動が完了したら左下の "Windowマーク" を右クリック.
その後 "デバイスマネージャー" を左クリック.
10.PCもしくはHMDにフェイストラッキングカメラのUSBが接続されていれば 「他のデバイス」に "FX3" と表示されているので左クリック.
11."ドライバの更新" を左クリック.
12."コンピューターを参照" を左クリック.
13."参照" を左クリック
14.BibaryVRフォルダの中にあるドライバを選択します.
ディレクトリは "BibaryVR/driver/win7/x64" を選択して "OK" を左クリック.
その後 "参照" を選択した画面に戻るので "次へ" を左クリック.
15.ドライバーのインストールが始まりますが署名がないので警告の画面が出ます.
"インストールします" を左クリック.
16.少し待つと「ドライバーが正常に更新されました」と表示されるので,これでドライバーのインストールは完了です.
ではさっそくUnityで使いましょう.
Unityを開いていつもの画面が出てきたら "Open" を選択.
BibaryVRのフォルダーの中から用意されたProject "unity" を選択.
ディレクトリは "BinaryVR/examples/unity"
するとSampleのProjectが起動します...顔が怖い(^^;
開始するとUIが表示されて
"Open Device" ではカメラが起動.
"Calibrate and Start Tracking" では初期調整(セットアップ)を行いトラッキングを開始.
"Start Tracking" ではトラッキングを開始.
ドライバーが正しくインストールされていると "Open Device" クリック時にButton上の白い部分にカメラの映像が表示されます.
※"Open Device" → "Calibrate and Start Tracking" で動くので右のButton使わない...
実行すると感じになります.
カメラから出力された映像を表示したくない場合は「Hierarchy」の
"UI/Canvas" を選択して 「Inspector」のチェックを外して非表示にするといいと思います.
顔の構造を見てわかる通り顔のパーツが分離されており各パーツにアニメーションを設定されているようなので外部からインポートしたモデルに即適用とはいかない・・・?
モデリングのことがわかってないので適用するには自分でモデルを作るか改変OKのモデルのパーツを分解して適用するしかないのかな?
次はモデリングの勉強してモデルに適用する所まで書きたいなぁ...
RaspberryPi3のUbuntu16.04server初期設定
環境構築をするたびに手順を忘れている気がするので自分用のメモとして記述
キーボード設定・ユーザー設定・ssh接続・IPアドレスの設定をやっていきます
使用機材
・Raspberry Pi 3 Model B
・Lanケーブル1本(モデムやHGWとの接続用)
・HDMIケーブル
・モニター(HDMI接続できるもの)
OSインストールまでの実行環境はWindows10を使用
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.imgをmicroSDカードに書き込みます
今回imgを書き込む用のソフトはWin32 Disk Imagerを使用
Win32 Disk Imagerのダウンロード先↓
https://sourceforge.net/projects/win32diskimager/
使用方法については省略,使用方法は参考URLを確認してください
それではRaspberryPi3にmicroSDカードを挿入して起動.
黒い背景に白い文字が沢山流れると思うので止まるまで待機
文字が動かなくなったらエンターキーを押して
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つありますが,この違いは標準で入っている軽量のVimが vim.tyny 先程インストールしたVimがvim.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
最初は
~以下ipv6の設定~
と書かれているので
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 DNSのIPアドレス
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 補完されない」みたいな感じで調べると環境に合った解決法がでてくると思います