🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

7948閲覧

【Unity】input.getkey が反応しない。

ra7ra7_430

総合スコア5

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2019/10/07 04:54

編集2019/10/08 05:59

したいこと

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

simapiko

2019/10/07 06:02

時々反応する事があるとの事なので可能性は低そうですが、テンキーで取得しようとしていないでしょうか。Alpha~はテンキーではなく通常の数字キーでのみ返します。
ra7ra7_430

2019/10/07 06:51

通常の数字キーで入力しております。 逆に念のためテンキーも触ったのですが、反応なしでした。 Debug.Log(Input.Getkey(KeyCode.Alpha0)); も試してみましたがFalseしかでてこず、むしろなんで反応することがあったのかのほうが謎な状態です…
simapiko

2019/10/07 07:13

なるほど…。 通常問題無く動くので、おそらくUnity自体、もしくはプオジェクトが破損している可能性がありそうです。もう1度Unityの再インストール(念のため)や別バージョン、また新しくプロジェクトを立てる等、環境の差異によって問題が起きるかどうか確認してみてください。
ra7ra7_430

2019/10/07 07:56

新規プログラムでだめだったので、一度アンスト→再インストしてみます…!
ra7ra7_430

2019/10/08 01:13

Unityのアンインストールからの再インストールでも反応なしでした…
simapiko

2019/10/08 02:04

そうなると、原因が謎ですね…。 後は別バージョン(最新にアップデート前から起きているとの事なので望み薄ですが)やInput自体に問題があるのか(Getkey("0")等も試してみる)等地道に探っていくしかなさそうですね…。手っ取り早いのはPCの初期化なのですが、リスクが高いので個人的にはあまりおすすめは出来ないです。
ra7ra7_430

2019/10/08 03:46

情報足らずだったのですが、SteamVR Pluginをいれて制作しており、それを削除したら問題なく動作しました。 インプットモジュールをオーバライドしてるのではという結論に現在至っています・・・
simapiko

2019/10/08 04:10

あぁーなるほどVRという部分が完全に意識外でした…。プラグインを入れただけで使えなくなるというのは、ちょっと疑問ではありますが原因が分かったようでなによりです。
ra7ra7_430

2019/10/08 05:32

情報足らずで失礼しました。 私もそこは疑問なのですが(というか動作したタイミングもありましたし)、解決次第このページに記載しようと思います。 ありがとうございました。
guest

回答1

0

自己解決

SteamVR Plugin V2を入れていない新規プロジェクト内では動作の確認ができました。
SteamVR Pluginを入れた状態でのキーボード入力は未だうまくいっていないので、また別で質問させていただきます。

投稿2019/10/08 07:20

ra7ra7_430

総合スコア5

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問