プログラミングとかブログ

Unity/C#/SRPGStudio/RPGツクールMVの情報とかその他気になったことを調べて書きます。

RI.Hidエラーとは

<RI.Hid> Failed to get preparsed data:システムに接続されたデバイスが機能していません。
<RI.Hid> Failed to create device file:
2 指定されたファイルが見つかりません。

f:id:shirakamisauto:20150703114711p:plain
というエラーが出たことがありました。
特に動作に支障はなかった*1のですが気になったので調べてみました。

まずRI.HidというのはRow Input Human interface deviceの略です。
Row Inputというのはデバイスから直接送られる生の入力らしいです。
たとえば、キーボードだと「A」キーを押してもAのアスキーコードが送られるわけではなく、キーから物理的な電気信号が送られます。*2
こういうデバイス固有の入力をRow Inputと言うようです。
Human interface deviceは人間と機械間でやりとりするためのデバイスのことなので、RI.Hidはマウスやキーボードなどのデバイスから直接送られる生の入力データといったところでしょうか。


RI.HidエラーはこのRow Inputの処理まわりのエラーのようです。
Failed to get preparsed dataエラーの場合、<RI.Hid> Failed to get preparsed data | Unity Communityの7つ目の公式コメントで、Unity4.6.2pでゲームパッドの接続と接続解除まわりの挙動を改善したことと関係していると回答しています。
Unityがデバイスからの概要データを復旧しようとしたけど、デバイスが利用可能なデータを持ってないので失敗したことを示すそうです。
また、このエラーに関しては無害と言っています。

Failed to create device fileの場合は、公式回答が見つからなかったのでわかりません。
デバイスが持ってるデータのファイルが参照できなかったとか?

開発チームが現在対応している模様で、アップデート時に修正をかけているみたいです。
RI.Hidエラーを直したいときはアップデートを試してみるといいんじゃないでしょうか。
実際、5.0.2にアップデートしたら直ったという人がいるようです。

RI.Hid Failed to Create Device File | Unity Community

 

参考

スキャンコード - Wikipedia

About Raw Input (Windows)

 

コンピュータはなぜ動くのか?知っておきたいハードウエア&ソフトウエアの基礎知識?

コンピュータはなぜ動くのか?知っておきたいハードウエア&ソフトウエアの基礎知識?

 

 



 

*1:Error Pauseにしてると邪魔なくらい

*2:正確には違うっぽいが電気回路は専門外なので・・・