トマシープが学ぶ

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

コントローラーでキャラの手の形を変える。【WinMR】

animation機能で手の形を変えた.animを使い、コントローラーのトリガーで遷移させる。

はしょってます。

Animation機能でポーズを作る

この動画の1:52あたりから指の設定をしています。詳しくはこちらから

www.youtube.com

キャラのAnimatorからLeft.Hand.Index.1.Stretchedなどを選んで数値を変えると

f:id:bibinbaleo:20180211185531p:plain

指を動かせます。

f:id:bibinbaleo:20180211185534p:plain

めっちゃ大変だったので、何かしらのアセットか、MayaなどのCGソフトで作ったほうがいいと思いました。

Animation機能が使い悪すぎる。

あと最初の謎のポーズから手をまっすぐした状態を作って、片手ずつグーのポーズを作ったけど、片手を動かしたらもう片方も反映されてしまうことに気づいた。

結局同時にグーにすることにした。

 

Animator設定

こちらが詳しいです。

matudozer.blog.fc2.com

あらかじめParametersでguなどの名前のtriggerを作り、

make transitionでanim間に線を引っ張って

Conditionsでさっきのパラメーターを選択

f:id:bibinbaleo:20180211185747p:plain

スクリプトでAnimatorを読み込んだうえで、

public Animator pro;

pro.SetTrigger("gu_L");

 のような感じでSetTriggerが呼ばれたら遷移先のアニメーションが始まる。

Unity標準のVR機能でトリガー取得

今日初めて知ったのですが、Unity標準のVR機能があるそうです。

framesynthesis.jp

SteamVR入れなくてもトリガーとかを取得できるそうです。

こちらを参考にやりました。

qiita.com

トリガーはこんな感じで取れました。

Input.GetAxisでコントローラーの押し込まれ具合が取れます。一番押し込まれると1

if (Input.GetAxis("Trigger R") == 1F)
{
pro.SetTrigger("gu_R");
}

trigger Rというのは自分でInput Managerで設定した名前です。Project SettingのInputから設定できます。

 

 

f:id:bibinbaleo:20180211190250p:plain

f:id:bibinbaleo:20180211190252p:plain

Axisでそれぞれのコントローラーの番号を決めれます。ここに書いています。

docs.unity3d.com

左手のtriggerが9で右が10thです。

 

steamVR Pluginでやる場合はこちらから

cycling.hateblo.jp

完成

そんなこんなで一応トリガー引いたらグーはできました。

f:id:bibinbaleo:20180211185540p:plain

f:id:bibinbaleo:20180211185545p:plain

あんまりうまくいかなかった。

どんどんプロジェクトファイルが壊れていく