トマシープが学ぶ

Unity/VR/AR/デザイン好きのミーハー 記事内容は自分用のメモです

キタキツネ・ギンギツネと温泉宿VRを作る【表情変化機能】

最近VRかまくらを作ったばかりですが、キャベツ鉢さん作の温泉宿が投稿された上に、JAKさんがMMDモデルの表情を変えるVR動画を投稿されていたので、作るしかないと思いキタキツネ第2弾を作ります。

完成がこちらです。

youtu.be

 

基本的にはこちらの動画でされていることを真似て、表情をコントローラーの動作で変えます。

www.nicovideo.jp

また前作で、瞬きがなくて怖いというコメントがあったので瞬き機能も実装します。あと自分がギンギツネになる「憑依?」機能もつけます。

 前作

bibinbaleo.hatenablog.com

お借りするもの

seiga.nicovideo.jp

3d.nicovideo.jp

3d.nicovideo.jp

表情を変える

表情は、実行中にMorphに種類が表示されバーを動かすと変わります。私の環境では実行中しかバー表示されませんでした。

f:id:bibinbaleo:20170909211659p:plain

そして実行中にバーを変えると表情が変わります。

f:id:bibinbaleo:20170909211654p:plainf:id:bibinbaleo:20170909211645p:plainf:id:bibinbaleo:20170909212123p:plain

スクリプトで設定するにはMMD4 Moroh Helperスクリプトを使って、名前を指定して、weightにスライダーの値を入れておけば、その表情になります。

f:id:bibinbaleo:20170909211640p:plain

コントローラータッチで振動

コントローラーにInteractUse(ボタンが使える)とInteractTouch(触れる)をつける。そしてモデルにInteractableObjectとInteractHaptics(振動)をつける。

f:id:bibinbaleo:20170909214143p:plain

IntaractableObjectのIs Usableにチェック。

f:id:bibinbaleo:20170909213305p:plain

振動はstrengthの大きさを変えておく。

f:id:bibinbaleo:20170909213311p:plain

またrigidbodyとcolliderも必要。

コントローラーで表情を変化

「using VRTK;」で色々な関数が使えるようになっていました。

動画内で紹介していただいてたスクリプトを真似たら無事にできたので詳しいことは省略。

Animated GIFs - Find & Share on GIPHYwww.giphy.com

近づいたら目を閉じて、触ったらえーっていう顔をして、トリガーでニコってします。

瞬き

こちらのスクリプトをお借りしました。

udasankoubou.blogspot.jp

Sizeに設定する個数を入れて、Skinned Mesh Renderにそのキャラの顔の部分のMeshを入れて、Indexにモーフの番号を入れたら瞬きしてくれました!

f:id:bibinbaleo:20170912213941p:plain

何番が瞬きかわからなかったのですが、数字を入れたら名前を表示してくれるので1番から順に入れていきました。

 

ちなみにユニティちゃんにはデフォルトで瞬きスクリプトがあるようだが、プロ生ちゃんやクエリちゃんは目などの作りが違うらしく、スクリプトを書き換える必要があるらしい。

onoty3d.hatenablog.com

fantom1x.blog130.fc2.com

憑依

自分がギンギツネちゃんになりました。まだ未完成なので詳しくは別記事で書きますが、以前使ったIKスクリプトでギンギツネの手の位置をコントローラーの位置にして、体の位置をヘッドセットの位置にしたらとりあえずは憑依できました。

Animated GIFs - Find & Share on GIPHYwww.giphy.com

本当はキャラクターの頭の位置にヘッドセットをつけないといけないのですが、よくわからなかったのでVRTK内のヘッドセットの少し下に空のゲームオブジェクトをつけ、それをbodyにつけました。(意味不明) 

そのため頭を傾けると体ごと回転してしまいます。足元も見れない。

FinalIKという有料アセットを使ったらもう少し自然にできるらしいので、そこらへんも別記事でやりたい。

f:id:bibinbaleo:20170913191659p:plain

サムネ用