6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Oculus Questで物理キーボードを使用する

Last updated at Posted at 2019-07-08

はじめに

Oculus Questで文字入力する場合には、通常ソフトウェアキーボードが表示されて入力することになるのですが、あまり入力しやすくはないように思います。
そこで物理キーボードを使えないか調べてみたところ、Bluetoothでキーボード接続を実現されている方がいて、やり方を公開されていました。
[Oculus Quest も文章書き&開発マシンにする]
(https://wlog.flatlib.jp/?itemid=1878)
(2019/8/7追記)
Oculus Quest Build 7.0アップデート後は、普通に設定メニューからペアリングできるようになったため、上記の手順は不要と思われます(試してはいませんが、メニューに設定項目があることは確認しました)。

Oculus Questをつけた状態では当然キーボードが見えないのですが、自分はブラインドタッチは無理だったので、キーボードのモデルを作って物理キーボードと位置合わせして入力してみました。

#開発環境
Unity 2019.1.9f1
Oculus Integration for Unity - 1.37
TVLauncherGo 1.0
Logicool K380BK Bluetooth ワイヤレス キーボード

動作例

キーボードのモデルの位置を、物理キーボードの位置と合わせて・・・
com.oculus.vrshell-20190708-222938_Trim1_300x300_fps10.gif

testと入力
com.oculus.vrshell-20190708-222938_Trim2_300x300_fps10.gif

全然正しく入力できてません。
位置が微妙にずれているためか、思ったようにキーボードが押せていないです。

所感

キーボードのモデルは写真をテクスチャとして張り付けただけですが、VR空間中でのサイズが物理キーボードのサイズと一致するようにする調整が若干面倒でした。後から気が付いたのですが、VR空間内で調整すれば簡単だったかも・・
このままではとても実用に耐えないので、やはりソフトウェアキーボードを使うことになりそうです。

補足

キーボードの入力確認に使用したのは以下のコードです。
OVRDebugConsole.Logは通常はログ出力に使うものなので1文字入力ごとに改行されてしまいますが、とりあえず確認には使えるかと。

OVRDebugConsoleTest.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class OVRDebugConsoleTest : MonoBehaviour
{
    void Update()
    {
        if (Input.inputString != null && Input.inputString != "")
        {
            OVRDebugConsole.Log(Input.inputString);
        }
    }
}

追記

カメラで手元のキーボードを見えるようにすると、多少操作しやすいような気がします。

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?