Open1

アプリからかな漢字変換するための調査

Mitsuhiro KogaMitsuhiro Koga

VR内で文字入力したい場合はソフトキーボードを自作する必要があり、キーボードに印字された文字ならそのまま出力すればいいのでそんなに難しくない。しかし日本語変換を伴う場合はIMEを使えないのでどうにかしてアプリに変換エンジンを組込む必要がある。

Google CGI API for Japanese Input

Google日本語入力のCGIサービスが提供されているのでひらがなを送ると文節に区切ってそれぞれの変換候補を返してくれる。Android版がサポート終了したのでCGI版もいつまで使えるのか分からない。
https://www.google.co.jp/ime/cgiapi.html
解説ではjsonのみだがjsonp[1]も対応しているらしい。
商用利用についてフォーラム[2]に投稿されているが提示されたTerms of UseはDeprecatedなためこちら[3]の規約に従うものと思われる。

ローマ字入力の場合はローマ字→ひらがな変換が必要になるが「っ」、「ん」、ヘボン式、訓令式などのパターンが多く意外と面倒くさい。
これはVisual Studio International PackRomajiToHiragana[4]がいい感じに変換してくれるので再配布条項に適合するならおすすめだ。

利用できない場合はJIS X 4063:2000で規定されていた入力方式が参考になる。
また、【Unity】WebGL上で日本語入力【簡易IME】の方式も参考になる。

Yahooかな漢字変換サービス

Yahooもかな漢字変換サービスを提供してる。中身はVJE[5]で辞書は月1回更新されるらしい。ただし24時間で50000リクエスト制限とリリース時期が古いのでレスポンスがXMLなので若干扱いにくい。商用利用は問い合わせ[6]が必要なので注意。
https://developer.yahoo.co.jp/webapi/jlp/jim/v1/conversion.html

v2になりレスポンスがJSONになったAPI
v1は2022年1月末にサービス終了予定なので今から使うならこちら
https://developer.yahoo.co.jp/webapi/jlp/jim/v2/conversion.html

OpenWnn

Firefox Reality

Androidに組込まれているOpenWnnを利用している
https://github.com/MozillaReality/FirefoxReality/pull/1311

更にMozillaの中の人がフォークしてjcenterに登録してくれているのでAndroidなら簡単に組込む事ができる。
https://mvnrepository.com/artifact/jp.co.omronsoft.openwnn/openwnn
https://github.com/MozillaReality/OpenWnn

Qt Virtual Keyboard

Qt Virtual KeyboardはOpenWnnを変換エンジンとして取り込んでいる。

OpenWnnはJavaとCで作られているのでどうやっているのかと思ったらApache License 2なのでQt5向けにC++に移植されていた。[7]

Oculus Quest

Oculus Questのキーボードは日本語変換できるので色々調べるとiWnnが組込まれていた。これはNintendo Switchにも組込まれている。
利用には法人向けの窓口から問い合わせが必要なので大規模な商用利用ならアリかもしれない。

独自

Youtube VR

Daydream向けに用意されているGvrKeyboard[8]が組込まれている。

脚注
  1. https://webinlet.com/2013/google-cgi-api-for-japanese-input-を-jquery-で試してみた ↩︎

  2. https://support.google.com/ime/japanese/forum/AAAAWMow2iwMfa-lg0Kgxk/ ↩︎

  3. https://policies.google.com/terms?hl=ja ↩︎

  4. Visual Studio International Pack: Japanese Kana Conversion Libraryを使う ↩︎

  5. https://news.mynavi.jp/article/20080527-a034/ ↩︎

  6. https://developer.yahoo.co.jp/webapi/jlp/jim/v1/conversion.html ↩︎

  7. https://github.com/qt/qtvirtualkeyboard/tree/dev/src/plugins/openwnn/3rdparty/openwnn ↩︎

  8. https://developers.google.com/vr/reference/unity/prefab/GvrKeyboardCanvas ↩︎