したいこと
VRMのアバターの表情をキーボード入力で切り替えていきたいです。
SteamVR Plugin v2をインポートした環境です。
以下のコードを
http://prince9.hatenablog.com/entry/2018/11/16/194014
を参考に作成しましたが、キー入力が取得できません。
なぜか時々反応することもあるのですが、何が原因で反応したりしなかったりするのかがわかりません。
Visual Studio上でもUnity上でも何のエラーも出ていないのですが…
一度Debug.Logも試したのですが、コンソール上にも何も出てこないです。
作成したコード
using System.Collections; using System.Collections.Generic; using UnityEngine; using VRM; public class FaceChange : MonoBehaviour { private VRMBlendShapeProxy proxy; // Start is called before the first frame update void Start() { } // Update is called once per frame [System.Obsolete] void Update() { if (proxy == null) { proxy = GetComponent<VRMBlendShapeProxy>(); } else { //キーボード入力 if(Input.GetKey(KeyCode.Alpha0)) { //表情呼び出し proxy.SetValue("Neutral", 1.0f); } else { proxy.SetValue("Neutral", 0f); } if (Input.GetKey(KeyCode.Alpha1)) { proxy.SetValue("Fun", 1.0f); } else { proxy.SetValue("Fun", 0f); } if (Input.GetKey(KeyCode.Alpha2)) { proxy.SetValue("Angry", 1.0f); } else { proxy.SetValue("Angry", 0f); } if (Input.GetKey(KeyCode.Alpha3)) { proxy.SetValue("Joy", 1.0f); } else { proxy.SetValue("Joy", 0f); } if (Input.GetKey(KeyCode.Alpha4)) { proxy.SetValue("Sorrow", 1.0f); } else { proxy.SetValue("Sorrow", 0f); } if (Input.GetKey(KeyCode.Alpha5)) { proxy.SetValue("Suprised", 1.0f); } else { proxy.SetValue("Surprised", 0f); } if(Input.GetKey(KeyCode.R)) { proxy.SetValue("Blink_R", 1.0f); } else { proxy.SetValue("Blink_R", 0f); } if (Input.GetKey(KeyCode.L)) { proxy.SetValue("Blink_L", 1.0f); } else { proxy.SetValue("Blink_L", 0f); } } } }
試したこと
Unityになにかしてしまったかと思い、最新バージョンにアップデート、
またアンインストールからの再インストールを行いましたが問題解決しませんでした。
void Update() { if (Input.GetKey(KeyCode.Alpha0)) { Debug.Log("0を押した"); } }
上記のようなDebugLogすら反応せず、
Debug.Log(Input.GetKey(KeyCode.Alpha0));
もFalseを吐き出すだけでした…
数字だけでなくアルファベットキーも確認しましたが同様でした。
uploadも確認しましたが、それは問題なく動いているようです。
新規プロジェクトにてSteamVR Pluginをインポートせずに動作確認をしたところ
キー入力を取得できました。
SteamVRがキーボードからの入力を妨げているというのは間違いないと思うのですが
どこで妨害されているのか不明です。
環境
Unity 2019.2.8f
回答1件
あなたの回答
tips
プレビュー