
あなたのパソコンにはBluetooth(ブルートゥース)がついていますか?
もしついていたら、WiiリモコンをつかってScratchのゲームをつくってみましょう!
今回は、Wiiリモコンをつかうために、どんなソフトがいるのか?を
せつめいしていきます。
Bluetoothをつかうには
もし、つかっているパソコンにBluetoothがついていなければBluetoothのレシーバーが必要です。
うちのパソコンは古くて当然Bluetoothなんてついていないので
http://www2.elecom.co.jp/network/bluetooth/lbt-uan05c2/
これを買いました。1500円ぐらいでした。

別にこれじゃなくてもいいんですが
電気屋さんに行って「Bluetoothのアダプタください」って言えばわかるとおもいます。
でも「オーディオレシーバー」とか用途が限られているのだと
Wiiリモコンが読み取れない場合があるので、なるべく色んな機器に対応しているやつがいいと思います。
価格.comとかで検索したらもっと安いのがあるかもしれないです。
そして、これを買ったら、Bluetoothを使うためのソフトをインストールします。
ダウンロードするURLは、買ったアダプタの説明書に書かれていると思います。
もし上記とおなじ型番なら
http://www.elecom.co.jp/support/download/network/bluetooth/lbt-uan05c2/
ここからダウンロードできます。
ダウンロードしたらzipファイルを解凍して、インストールしましょう。
ダウンロード・インストールのしかたがわからないひとは、おうちの人にききましょう。
つぎは、BluetoothとWiiリモコンを通信させていきます。
BluetoothとWiiリモコンを通信させる
つぎに、インストールしたソフト(うちの場合はBlueSoleil)を起動して Wiiリモコンと通信しましょう。
BluetoothのアダプタをUSBの穴にさしてください。
そしてWiiリモコンを用意して下さい。電池もちゃんといれてくださいね。
Wiiリモコンは、新しい「Wiiモーションプラス」よりも、
旧Wiiリモコン のほうがちゃんと通信できる。というようなネット上の情報がありましたので
できたら旧Wiiリモコンをご用意ください。
ここからさきは「BlueSoleil」のソフトの説明なので
ちがうソフトを使っている人はあんまり参考にならないと思います。
まず、まんなかのオレンジの丸をみぎクリックして
「Bluetoothをオンにする」をクリックします。

Bluetoothデバイスがオンになったら
もういちど、まんなかの丸いオレンジをみぎクリックして
「デバイスの検索」をクリックします。

デバイスの検索をクリックしたら、すぐに
「Wiiリモコンの①と②キーを同時押し」します
★なんか反応悪いなーとおもったら、Wiiリモコンのうらがわにある
(旧Wiiリモコンの場合は、電池カバーをあけたところにある)
赤いボタンを押してみて下さい。
検索しているときに、この通信をしておかないと
パソコンがWiiリモコンを見つけてくれません。

しばらくすると、「デバイスが見つかりました」というメッセージと
ゲームのコントローラのようなアイコンがあらわれます。
さらに、もうすこし待つと・・・

デバイス名が「Nintendo RVL-CNT-01」という名前になります。
つぎに、「Nintendo RVL-CNT-01」のアイコンをみぎクリックして
「接続 Bluetoothヒューマンインターフェイスデバイス」
というメニューをクリックします。
クリックしたらまたWiiリモコンの①+②をおすか、赤いボタンを押してください。

なんかたまに、この「接続」のメニューが出てこない時があるんですが
そのときは「サービスの検索」というメニューをクリックして
もういちどWiiリモコンと通信(①+②か赤いボタンをおす)してみてください。

接続中はこんなウィンドウがでます。
Wiiリモコンのほうも、ランプがチカチカしています。
そして、中央のまるいオレンジと、Nintendo RVL-CNT-01のアイコンが
てんせんでつながれたら、接続完了です。

GlovePIEをつかうには
さて、Wiiリモコンの信号をPCでキャッチできるようになったのでこの信号をきちんと使えるようにしていきましょう。
色々ソフトは出ていますが、今回は汎用性の高さから
GlovePIEをつかってみましょう。
まずGlovePIE公式ページから、GlovePIEをダウンロードしましょう
GlovePIEのトップページ
http://glovepie.org/
ダウンロードのアドレスはこちら
http://glovepie.org/lpghjkwer.php
ダウンロードページの
「Click here to Download GlovePIE 0.45 Free」というリンクをクリックします。

「GlovePIE045Free.zip」というファイルがダウンロードされますので
わかりやすい場所に解凍しましょう。
解凍すると、なかに
「PIEFree.exe」というファイルがありますので、これをひらきます。

すると、こんな画面がひらきます。
この// Type your script here とかかれている部分に
スクリプトを書いていくわけです。

たとえば、Wiiリモコンの上下左右キーを、キーボードのテンキーに割り当てたい時は
Key.NUMPAD4 = Wiimote1.Up
Key.NUMPAD8 = Wiimote1.Right
Key.NUMPAD6 = Wiimote1.Down
Key.NUMPAD2 = Wiimote1.Left
こんなかんじにかきます。
テンキーがNUMPADで、テンキーの4をWiiリモコンのUP(うえ)ボタンにわりあてる…
というかんじです。
ただ今回は、Wiiリモコンの傾きなんかも取りたいので
初めてで、いちからスクリプトを書くのはハードルが高いですね。
すでにスクリプトを組んでくれている先人がいますので
そのひとのスクリプトをつかってみましょう。
J0nas1さんがつくったスクリプトはこちら
http://pastebin.com/T5NiKWGt
こんなかんじにかきます。
テンキーがNUMPADで、テンキーの4をWiiリモコンのUP(うえ)ボタンにわりあてる…
というかんじです。
ただ今回は、Wiiリモコンの傾きなんかも取りたいので
初めてで、いちからスクリプトを書くのはハードルが高いですね。
すでにスクリプトを組んでくれている先人がいますので
そのひとのスクリプトをつかってみましょう。
J0nas1さんがつくったスクリプトはこちら
http://pastebin.com/T5NiKWGt
//J0nas1's Scratch Wiimote connection script: if clicked(space) if var.var var.var = false else var.var = true key.AnyKey = false endif endif if not var.var debug = "No remote connected" else if wiimote1.Exists var.Batt = wiimote.Battery / 48 debug = "Battery: " + 100*48*var.Batt/192 + "% (Script is stopped)" else debug = "Script is stopped" endif endif if wiimote1.Exists and not var.var var.Batt = wiimote.Battery / 48 debug = "Battery: " + 100*48*var.Batt/192 + "%" //gx if wiimote1.gx < 0 one = true else one = false endif if (wiimote1.gx > 0.55) or (wiimote1.gx < -0.55) two = true else two = false endif if (wiimote1.gx < -0.04 and wiimote1.gx > -0.15) or (wiimote1.gx > 0.04 and wiimote1.gx < 0.15) or (wiimote1.gx < -0.54 and wiimote1.gx > -0.65) or (wiimote1.gx > 0.54 and wiimote1.gx < 0.65) three = true else three = false endif if (wiimote1.gx < -0.14 and wiimote1.gx > -0.25) or (wiimote1.gx > 0.14 and wiimote1.gx < 0.25) or (wiimote1.gx < -0.64 and wiimote1.gx > -0.75) or (wiimote1.gx > 0.64 and wiimote1.gx < 0.75) four = true else four = false endif if (wiimote1.gx < -0.24 and wiimote1.gx > -0.35) or (wiimote1.gx > 0.24 and wiimote1.gx < 0.35) or (wiimote1.gx < -0.74 and wiimote1.gx > -0.85) or (wiimote1.gx > 0.74 and wiimote1.gx < 0.85) five = true else five = false endif if (wiimote1.gx < -0.34 and wiimote1.gx > -0.45) or (wiimote1.gx > 0.34 and wiimote1.gx < 0.45) or (wiimote1.gx < -0.84 and wiimote1.gx > -0.95) or (wiimote1.gx > 0.84 and wiimote1.gx < 0.95) six = true else six = false endif if (wiimote1.gx < -0.44 and wiimote1.gx > -0.55) or (wiimote1.gx > 0.44 and wiimote1.gx < 0.55) or (wiimote1.gx < -0.94) or (wiimote1.gx > 0.94) seven = true else seven = false endif //gy if wiimote1.gy < 0 eight = true else eight = false endif if (wiimote1.gy > 0.55) or (wiimote1.gy < -0.55) nine = true else nine = false endif if (wiimote1.gy < -0.04 and wiimote1.gy > -0.15) or (wiimote1.gy > 0.04 and wiimote1.gy < 0.15) or (wiimote1.gy < -0.54 and wiimote1.gy > -0.65) or (wiimote1.gy > 0.54 and wiimote1.gy < 0.65) zero = true else zero = false endif if (wiimote1.gy < -0.14 and wiimote1.gy > -0.25) or (wiimote1.gy > 0.14 and wiimote1.gy < 0.25) or (wiimote1.gy < -0.64 and wiimote1.gy > -0.75) or (wiimote1.gy > 0.64 and wiimote1.gy < 0.75) q = true else q = false endif if (wiimote1.gy < -0.24 and wiimote1.gy > -0.35) or (wiimote1.gy > 0.24 and wiimote1.gy < 0.35) or (wiimote1.gy < -0.74 and wiimote1.gy > -0.85) or (wiimote1.gy > 0.74 and wiimote1.gy < 0.85) w = true else w = false endif if (wiimote1.gy < -0.34 and wiimote1.gy > -0.45) or (wiimote1.gy > 0.34 and wiimote1.gy < 0.45) or (wiimote1.gy < -0.84 and wiimote1.gy > -0.95) or (wiimote1.gy > 0.84 and wiimote1.gy < 0.95) e = true else e = false endif if (wiimote1.gy < -0.44 and wiimote1.gy > -0.55) or (wiimote1.gy > 0.44 and wiimote1.gy < 0.55) or (wiimote1.gy < -0.94) or (wiimote1.gy > 0.94) r = true else r = false endif //gz if wiimote1.gz < 0 t = true else t = false endif if (wiimote1.gz > 0.55) or (wiimote1.gz < -0.55) y = true else y = false endif if (wiimote1.gz < -0.04 and wiimote1.gz > -0.15) or (wiimote1.gz > 0.04 and wiimote1.gz < 0.15) or (wiimote1.gz < -0.54 and wiimote1.gz > -0.65) or (wiimote1.gz > 0.54 and wiimote1.gz < 0.65) u = true else u = false endif if (wiimote1.gz < -0.14 and wiimote1.gz > -0.25) or (wiimote1.gz > 0.14 and wiimote1.gz < 0.25) or (wiimote1.gz < -0.64 and wiimote1.gz > -0.75) or (wiimote1.gz > 0.64 and wiimote1.gz < 0.75) i = true else i = false endif if (wiimote1.gz < -0.24 and wiimote1.gz > -0.35) or (wiimote1.gz > 0.24 and wiimote1.gz < 0.35) or (wiimote1.gz < -0.74 and wiimote1.gz > -0.85) or (wiimote1.gz > 0.74 and wiimote1.gz < 0.85) o = true else o = false endif if (wiimote1.gz < -0.34 and wiimote1.gz > -0.45) or (wiimote1.gz > 0.34 and wiimote1.gz < 0.45) or (wiimote1.gz < -0.84 and wiimote1.gz > -0.95) or (wiimote1.gz > 0.84 and wiimote1.gz < 0.95) p = true else p = false endif if (wiimote1.gz < -0.44 and wiimote1.gz > -0.55) or (wiimote1.gz > 0.44 and wiimote1.gz < 0.55) or (wiimote1.gz < -0.94) or (wiimote1.gz > 0.94) a = true else a = false endif //buttons: s = wiimote1.One d = wiimote1.Two f = wiimote1.A g = wiimote1.B h = wiimote1.Down j = wiimote1.Home k = wiimote1.Left l = wiimote1.Minus z = wiimote1.Plus x = wiimote1.Right c = wiimote1.Up //Shakiness: v = wiimote1.Shakiness > 1 and wiimote1.Shakiness < 10 b = wiimote1.Shakiness > 10 and wiimote1.Shakiness < 20 n = wiimote1.Shakiness > 20 and wiimote1.Shakiness < 50 m = wiimote1.Shakiness > 50 endif
このJ0nas1さんがつくったスクリプトを、GlovePIEのスクリプトエリアに貼り付けます。
これでGlovePIEがわの準備は完了です。
コピペしたスクリプトは「File(ファイル)」の「Save(保存)」から保存することができます。
なんども使うスクリプトになりますので、保存しておくと良いと思います。
つぎにScratchでの動作を確認するためのプロジェクトをみてみましょう。
https://scratch.mit.edu/projects/93300177/

元プロジェクトはJ0nas1さんがつくったものです。
日本語の説明をのせたかったのでリミックスしました。
プロジェクトをひらいたら、GlovePIEの「Run(実行)」のスイッチを押します。

そのあと、Scratchのプロジェクトも

スタートしましょう。
ステージにある、Wiiリモコンのシルエットが動くのが
確認できたでしょうか?

ryは左右のかたむき
rzがひねり
rxが上下のかたむき
shakinessで、コントローラをふっているかどうか
をかくにんできます。
そのほか、Wiiリモコンにあるボタンが各変数に表示されています。
これでWiiリモコンとScratchを連動することができました。
このプロジェクトをリミックスすれば、Wiiリモコンをつかったゲームを
つくることができますね。
はじめは、Wiiリモコンのボタンをつかってキャラを動かすなど
かんたんな操作から作ってみると良いと思います。
太鼓の達人のタタコンをつかう
ヌンチャクやクラッシックコントローラなども、つなげて操作することができますが太鼓の達人のタタコンもつかうことができます。
まずは、 タタコンをつながずにWiiリモコンをPCに接続します。
(タタコンをつないだまま接続するとうまくいかないことがあったので)
接続できたら、タタコンをつないで、GlovePIEを起動しましょう。
GlovePIEのタタコンのスクリプトは、このコメント欄のURLからダウンロードできます。
http://alter7.blog40.fc2.com/?mode=edit&rno=10321
(これがスクリプトのDLアドレスです。
http://www1.axfc.net/uploader/He/so/310535.dat )
debug = wiimote.InByteString + Wiimote.Expansionvar.drum_nohit = wiimote1.inByte18=0xFF
var.drum_right_middle = wiimote1.inByte18=0xEF
var.drum_left_middle = wiimote1.inByte18=0xBF
var.drum_right_up = wiimote1.inByte18=0xF7
var.drum_left_up = wiimote1.inByte18=0x9F
var.drum_left_middle_right_up=wiimote1.inbyte18=0xb7
var.drum_right_middle_left_up=wiimote1.inbyte18=0x8f
var.drum_right_middle_drum_right_up=wiimote1.inbyte18=0xe7
var.drum_left_middle_drum_left_up=wiimote1.inbyte18=0x5f
var.drum_up = wiimote1.inbyte18=0x97
var.drum_middle = wiimote1.inbyte18=0xafkey.k=var.drum_right_up
key.f=var.drum_right_middle
key.j=var.drum_left_middle
key.d=var.drum_left_upkey.j=var.drum_middle
key.f=var.drum_middle
key.k=var.drum_up
key.d=var.drum_upkey.j=var.drum_left_middle_right_up
key.d=var.drum_right_middle_left_up
key.k=var.drum_left_middle_right_up
key.f=var.drum_right_middle_left_up
key.k=var.drum_right_middle_drum_right_up
key.f=var.drum_right_middle_drum_right_up
key.d=var.drum_left_middle_drum_left_up
key.j=var.drum_left_middle_drum_left_up
このスクリプトをGlovePIEのスクリプトエリアにはりつけます。
タタコンをテストする用のScratchプロジェクトも用意したので開いてみて下さい。
https://scratch.mit.edu/projects/93317165/

そして、GlovePIEの「Run」をおして実行してみましょう。
Scratchのほうも

タタコンをたたくと、変数の値が1にかわります。
一瞬のことでよく見えないので、ネコに「ドン」とか「カッ」とか言わせてみました。
右ドンのときは右向き、左ドンの時は左向きになります。
単純な連打ゲームでも、タタコンをつかうと盛り上がりそうですね!
さて、 今回は右ドン左ドン右カッ左カッの4種類しかつかいませんでしたが
同時押しなんかも取れるみたいです。
drum_right_middle(右ドン)
drum_left_middle(左ドン)
drum_middle(両方ドン)
drum_up(両方カッ)
drum_right_up(右カッ)
drum_left_up(左カッ)
drum_left_middle_right_up(左ドン右カッ)
drum_right_middle_left_up(右ドン左カッ)
drum_right_middle_drum_right_up(右ドン右カッ)
drum_left_middle_drum_left_up(左ドン左カッ)
こんなかんじですね。
今は同時押しも同じキーになるように設定されていますが
キーを変更したいときは、たとえば
key.j=var.drum_left_middle
この「 Key.j 」のjの部分をちがうキーに変えれば、そのキーにわりあてられます。
個人的には、Wiiリモコン本体よりも、クラッシックコントローラや、タタコンのほうが
初心者には断然使いやすそう!と思いました。
GlovePIEがめんどくさい!!!と思った方はこんなソフトもあります。
Wey
http://www.geocities.jp/takomiku39hp/wiimote.html
これはソフト上でキー割り当てをしてくれるので、スクリプトもいらず、超カンタンです。
傾きにこだわらなければこちらの方が直感的に使いやすいと思います。
ヌンチャクやクラッシックコントローラにも対応しています。
GlovePIEとWeyを同時に使うことはできません。
今回は記事がかなりの量になってしまいました。
やっぱりこういうときは動画のほうがいいのかなって思いますね。
わかりづらい部分がありましたら、コメントへどうぞ。
こんなかんじですね。
今は同時押しも同じキーになるように設定されていますが
キーを変更したいときは、たとえば
key.j=var.drum_left_middle
この「 Key.j 」のjの部分をちがうキーに変えれば、そのキーにわりあてられます。
おわりに -GlovePIEがめんどくさい人はこちら-
どうでしたか?Wiiリモコンがちゃんとつながったでしょうか?個人的には、Wiiリモコン本体よりも、クラッシックコントローラや、タタコンのほうが
初心者には断然使いやすそう!と思いました。
GlovePIEがめんどくさい!!!と思った方はこんなソフトもあります。
Wey
http://www.geocities.jp/takomiku39hp/wiimote.html
これはソフト上でキー割り当てをしてくれるので、スクリプトもいらず、超カンタンです。
傾きにこだわらなければこちらの方が直感的に使いやすいと思います。
ヌンチャクやクラッシックコントローラにも対応しています。
GlovePIEとWeyを同時に使うことはできません。
今回は記事がかなりの量になってしまいました。
やっぱりこういうときは動画のほうがいいのかなって思いますね。
わかりづらい部分がありましたら、コメントへどうぞ。
コメント
コメント一覧 (5)
Wiiモーションプラスだと上手くいかない場合があるようです。
お手数ですが,”GlovePIE045Free.zip”を小生のメールアドレスに添付して送信していただけないでしょうか?お願いします
GlovePIEが公開終了してしまったのですかね…
WEYでもWiiリモコンを使うことはできますので
http://www.geocities.jp/takomiku39hp/wiimote.html
こちらを試してみて頂けますか?
GlovePIEで検索すると公式ではないダウンロードサイトが
表示されることがあります。
こちらは非公式なのでダウンロードしないほうがよいと思います。