[windows10] IBM トラベルキーボード USB ドライバ

windows10にアップグレードしたら、長年使用しているUSBキーボードが動かなくなったが、
ドライバーの設定変更でなんとか動くようになった。

  1. デバイスとプリンター
  2. 「IBM USB Travel Keyboard with UltraNav」を右クリック->プロパティ
  3. 「ハードウェア」タブ
  4. 「Synaptics Composit USB HID device」(1つ目)を選択 -> プロパティ
  5. 「設定の変更」-> 「ドライバの更新」 -> 「コンピューターを参照して…」->「コンピューター上のデバイス…」
  6. 「USB入力デバイス」を選択 -> 次へ
  7. 「Synaptics Composit USB HID device」(1つ目)を選択 -> プロパティ
  8. 「設定の変更」-> 「ドライバの更新」 -> 「コンピューターを参照して…」->「コンピューター上のデバイス…」
  9. 「USB入力デバイス」を選択 -> 次へ

 

なんとか動くように。

メモメモ。

 


windows10 無償アップグレードは7/29まで!

windows10への無償アップグレードの期限が迫ってきましたね。

弊社ではみなwindows7を利用しているので、windows8や10へのアップグレードに抵抗があるのか、
とうとうここまで来てしまいまいました。。

ここ最近は、windows10利用のお客様も増えてきたことから、
弊社も対象のOSはすべてwindows10へアップグレードするものとし、
この作業と合わせて、システムディスクのHDD->SSD変更も同時に行うことにしました。
また、32bitのユーザーも居るので、この際64bitマシンに統一します。

まとめると、以下の様な手順で実施予定です。

  • SSDの購入
  • Windows10 64bit用のクリーンインストールメディア作成
  • HDD->SSD交換
  • クリーンインストールメディアから新HDDへwindows10 64bitをインストール

詳細は次の記事にまとめていきます。


Three.js[r76] マウスピッキングが動作しない

three.jsを利用して3Dモデルのピッキングを実装しました。
下記はプログラムの一部です。

.
.
.
        .on("mousemove", containerId, function(e){
          e.preventDefault();
          var rect = e.target.getBoundingClientRect();
          ns.mouse.x =   ( (e.clientX - rect.left) / ns.width ) * 2 - 1;
          ns.mouse.y = - ( (e.clientY - rect.top) / ns.height ) * 2 + 1;
        })

.
.
.
    picking : function() {
      ns.raycaster.setFromCamera( ns.mouse, ns.camera );

      var intersects = ns.raycaster.intersectObjects( ns.models.children, true );
     if (!!ns.status.picked) {
        ns.fn._picking.setColor(ns.status.SELECTED);
      }

      if ( intersects.length > 0 ) {
        ns.vmarker = intersects[ 0 ].point;
        if ( ns.status.INTERSECTED != intersects[ 0 ].object.parent ) {
          if ( !ns.status.SELECTED || (ns.status.SELECTED && ns.status.SELECTED != ns.status.INTERSECTED) ) {
            ns.fn._picking.setColor(ns.status.INTERSECTED);
          }

          ns.status.INTERSECTED = intersects[ 0 ].object.parent;
          if (!ns.status.picked && ns.status.INTERSECTED != ns.status.SELECTED) {
            ns.fn._picking.setColor(ns.status.INTERSECTED,0x0000ff);
          }
        }
        if (!!ns.status.picked) {
          ns.fn._picking.select(ns.status.INTERSECTED);
        }

      } else {
        ns.vmarker = null;
        if ( !ns.status.SELECTED || (ns.status.SELECTED && ns.status.SELECTED != ns.status.INTERSECTED) ) {
          ns.fn._picking.setColor(ns.status.INTERSECTED);
        }
        ns.status.INTERSECTED = null;
        if (!!ns.status.picked) {
          ns.fn._picking.select(null);
        }

      }
      ns.status.picked = false;
    },

ただ、この実装では非常に大きいモデルの場合、実際のマウス位置と3D空間上のマウス位置で誤差が生じてしまい、期待した動作となりません。
次回以降、原因を考察していきたいと思います。
・そもそも、実装が間違っている?
・mousemoveイベントでの計算値の誤差
・three.js、raycaster等のバグ?