2010年2月12日 星期五

Wiimote + PPJoy + GlovePIE = 藍芽無線搖桿

2010年2月12日 星期五
我家沒有 Wii 主機,卻有兩支 Wiimote (Wii Remote, 右把手),當初買這兩支把手是為了 Wiimote 電子白板而買的,其中一支已經固定在自己班上當電子白板的紅外線接收器,另外一支則是放在家裡當我的「觸控螢幕」。最近一位噗友分享了他設計的 Flash 遊戲,下載後也想要試玩一下,不過,它鎖死輸入裝置,只能用搖桿來玩,雖然我玩電腦很多年了,但是我們家並沒有搖桿,Wiimote 雖然透過藍芽連線以後,它的身份也是「搖桿」,但是應用程式似乎不認得它。今天利用 PPJoy 和 GlovePIE 讓 Wiimote 可以在 Windows 當搖桿來用了,比較炫的是:如同在玩 Wii 遊戲,它控制方向是用「搖」的。這樣的功能,只靠三個免費的工具即可擁有:



安裝 PPJoy

先將下載回來的 PPJoy 解開來後安裝。安裝完以後在控制台會多出一個 [Parallel Port Joysticks] 的圖示,對準它快按兩下即可進入設定畫面。



在 PPJoy 中新增搖桿:
  • 按 [Add] 鈕

  • [Controller Configuration] 中的 [Parallel port] 選取 [Virtual port] 後,按 [Add]

    好了以後,Windows 應該會偵測到新硬體,並且出現 [尋找新增硬體精靈] ,只要選取 [不,現在不要] ,然後按 [下一步] 讓它自動安裝驅動程式即可。

    這個歷程會遇到兩次,第一次安裝 [Parallel Port Joysticks 1] ,第二次則會安裝 [HID-compliant game controller]。

    如果有第二支 Wiimote ,PPJoy 新增搖桿的步驟就再做一次,都好了就可以按 [done] 的按鈕結束設定。

    完成以後,就準備讓 Glove PIE 正式登場。


    編寫 Glove PIE 腳本

    將 Glove PIE 下載並解壓縮以後,執行裡面的 [GlovePIE.exe]。
    • 在主選單中的 [TroubleShooter] 中點選 [Bluetooth Fix] 和 [No Auto Bluetooth Connect]

    • 在 主選單中的 [CP Settings] 中點選 [PPJoy] 以後,進入 PPJoy 的設定畫面。

      首先,當然是要讓 Wiimote 和電腦的藍芽搭上線,這部份和 Wiimote 電子白板一樣,要看 Windows 上裝的驅動程式是什麼,這部份可以參考我之前整理的一點資料
      如果 Wiimote 已經透過藍芽和電腦搭上線,我們就可以啟動 Glove PIE,然後叫出 Wiimote 的腳本檔(script),或是自行編寫腳本。

      按主選單中的 [File] ,然後點選 [New],接著就以輸入需要的腳本。

      我利用 GlovePIE 0.28 中 [WiimoteScripts] 裡附的腳本檔 [Generic Joystick Driver.PIE] ,將它改成支援兩支 Wiimote 的腳本:

      PPJoy1.Digital0 = wiimote1.Up
      PPJoy1.Digital2 = wiimote1.Down
      PPJoy1.Digital3 = wiimote1.Left
      PPJoy1.Digital1 = wiimote1.Right
      PPJoy1.Digital9 = Wiimote1.A
      PPJoy1.Digital8 = Wiimote1.B
      PPJoy1.Digital6 = Wiimote1.Minus
      PPJoy1.Digital7 = Wiimote1.Plus
      PPJoy1.Digital4 = Wiimote1.Home
      PPJoy1.Digital5 = wiimote1.One
      PPJoy1.Digital10 = wiimote1.Two

      PPJoy1.Analog0 = -(wiimote1.RawForceX + 6) / 20
      PPJoy1.Analog1 = (wiimote1.RawForceZ - 3) / 15


      PPJoy2.Digital0 = wiimote2.Up
      PPJoy2.Digital2 = wiimote2.Down
      PPJoy2.Digital3 = wiimote2.Left
      PPJoy2.Digital1 = wiimote2.Right
      PPJoy2.Digital9 = Wiimote2.A
      PPJoy2.Digital8 = Wiimote2.B
      PPJoy2.Digital6 = Wiimote2.Minus
      PPJoy2.Digital7 = Wiimote2.Plus
      PPJoy2.Digital4 = Wiimote2.Home
      PPJoy2.Digital5 = wiimote2.One
      PPJoy2.Digital10 = wiimote2.Two

      PPJoy2.Analog0 = -(wiimote2.RawForceX + 6) / 20
      PPJoy2.Analog1 = (wiimote2.RawForceZ - 3) / 15

      只要把上面的內容貼入腳本編輯區,並另存新檔,以後就可以直接套用。

      腳本載入畫面以後,按上方的 [Run] 按鈕就可以開始測試 Wiimote 搖桿了。



      調整搖桿的順序

      原本以為可以順利的來玩 "雙打" ,結果有兩支 Wiimote ,卻因為利用 PPJoy 模擬了搖桿,遊戲程式居然偵側到四支搖桿。又因為順序的關係,有一個 PPJoy (Wiimote) 的 ID 被排到較後面,最後只能用一支來玩。既然知道原因,應該就有解決之道,google 了一下,找到了 JoyIDs 可以幫忙更換搖桿在系統中的順序。把 JoyIDsInstall.exe 下載回來以後只有一支小程式,直接快按兩下執行安裝程序即可利用 JoyIDs 來更換搖桿的順序。
      更換 ID 的順序很簡單,先對準要換的用滑鼠點一下,再對準另一個點一下,兩個就可以互換位置。由於我們的 Wiimote 是用 PPJoy ,所以重點是要把 PPJoy xxxx 換到上面一點,這樣,遊戲程式才抓得到它們。
       

      註1:GlovePIE 0.29 以前的版本,主選單中 [TroubleShooter] 中才有  [Bluetooth Fix],新版的已經沒有這個選項。
      註2:GlovePIE 自 0.4x 版以後,下載回來的壓縮檔內腳本範例檔少很多,可以利用 0.28, 0.29 的來補足。

      2 則留言:

      1. 你好,

        我按照你的步驟做,但最後貼上腳本後,按下「RUN」,並沒有跑出什麼結果。請問,是什麼原因呢?

        謝謝回答 :)

        回覆刪除
      2. 我也是耶, 這部份不曉得要去哪裡找答案

        回覆刪除

       
      雄::gsyan © 2009. Design by Pocket