FC2ブログ
Wiiコン用プログラム!

Wiiコンソフト外観

wiiコン用ソフト画像

 以前から作成しているARシューティングゲームで使うラジコンを操作するために、Wiiコントローラを使います。そのためにWiiリモコンからラジコンを操作するためのインターフェースプログラムを作成しました!
 以前の記事でC#からWiコントローラを制御するための準備をしました。 そしてWPFで作成したのが上の画像(クリックして拡大)のようなソフトです!ソースはGithubにて公開しています。(ソースコードはこちら)次の章で各部の説明を簡単にします。

プログラム各部説明

 詳細はソースコードを見ていただくとして、ここでは簡単にこのソフトについて説明していきます。

 まず、WiiリモコンをPCとペアリングした状態でソフトのConnectボタンを押して下さい。(ペアリングに関してはこちらの記事も読んでみて下さい。)するとWiiリモコンが一度振動して、プログラムと繋がります。上手く接続すると、上の二つのテキストボックスの右側にヌンチャクの加速度が、左側にWiiリモコンの加速度が表示されます。もしデータを受信していないようなら、ヌンチャクを一度抜き差しすると大抵きちんと動作します。(このバグに関しては今のところ原因不明です(+_+))
 ヌンチャクとWiiリモコンはそれぞれ右手、左手に持って使うことをイメージしています。右手でラジコンの右車輪を、左手でラジコンの左車輪を操作します。左右の手に持ったリモコンの傾きに応じて、プログラム中央のラジコンイメージ図が変化します!
 その他の機能としては、プログラム中央左側のテキストボックスにヌンチャクジョイスティックの傾きセンサの値が表示されます。また、WiiリモコンのA,Bボタン、及びヌンチャクのC,Zボタンを押すと、それに応じて対応するテキストボックスの色が変化するので試してみてください!

今後の課題

 今後このプログラムをARゲームで利用するために、プログラム間通信を実装することが課題として挙げられます。現在ソケット通信について勉強中なので、ある程度知識がまとまったら、それについても記事を書きたいと思っています。

参考にさせていただいたページ

このプログラムの各部を作成するにあたって、以下のページを参考にさせていただきました。

 特に孤独な社会人の一人遊び-WiimoteLib-の記事にある、ライブラリには大変お世話になりました。wiimotelibのver1.7では、Wiiリモコンの接続時やヌンチャク接続時に原因不明のエラーが発生しましたが、こちらの筆者様のライブラリを使うと解決しました。ありがとうございます。

スポンサーサイト



テーマ:プログラミング - ジャンル:コンピュータ

[2013/11/25 19:15] | ARシューティングゲーム | トラックバック(0) | コメント(0) | page top
C#でWiiリモコン

Wiiリモコン

どうやってC#から使う?

以前から作成を進めているARシューティングゲームのラジコンコントローラとして、Wiiリモコンを採用しました!Wiiリモコンを制御する言語としてC#を採用しました。
最初はProcessingでゲームを作るので、WiiコントローラもProcessingで制御しようとしたのですが、Processing用のライブラリをどこから手に入れたらいいかわからなかったので、まぁまぁ得意なC#で制御することにしました。
C#から取得したWiiリモコンのセンサ値をProcessingで作ったゲームプログラムへHTTPかなんかで飛ばそうかと思っています。

さて、C#からの使い方を以下にまとめておこうと思います。
まずC#の開発環境として私は以下を使っています。
Visual Studio Express 2012 for Windows Desktop
上のページからダウンロード出来ます。インストール後、保存領域が約2GBぐらい消費されるので注意してください。ちなみに製品登録を行えば、無期限、無料で使えます。

続いてWiiリモコンをC#から使うためのライブラリをダウンロードします。以下のページから出来ます。
Wiimotelib
Wiimotelibを解凍したフォルダ内の WiimotLib_1.7\docs 内のヘルプファイルから、Wiimoteのドキュメントへアクセスできます。
また、VC#へのWiimotelibの設定方法についてはこちらのページを参考にさせていただきました。ジャンプ先ページではVC#2008を使っていらっしゃいますが、VC#2012でも同様の設定方法で可能です。

ここまで終われば、WiiリモコンをパソコンとペアリングしてC#でガシガシコードを書いていけばいいです!ということでWiiリモコンの接続に関して次の節で説明したいと思います。

自動接続できない!

WindowsマシンとWiiリモコンの接続自体は、Wiiリモコン側はWiiと接続するときと同様に、赤いボタンを押してペアリングモードにし、PC側ではコントロールパネル→デバイスとプリンター→デバイスの追加とかにすれば出来ます。これは通常のbluetoothデバイスのペアリングと同じです。
 しかし、Wiiリモコン-PC接続特有の問題が発生しました...。なんと、Wiiリモコンの電源を一度切って入れなおしても、PCとの接続を再確立してくれないのです!そこで以下のページを参考に、Wiiリモコンの自動再接続用の設定を行いました。
Wiiリモコン(バランスボード)とWindows PCとの再接続の話
上記ページの作者様が作成された、自動再接続設定用のソフトを用いて、設定を行いました。使用環境の前提条件等書かれていますが、私の環境でも動作しました。ちなみに私の環境は以下のものです。

  • Windows8 64bit
  • Visual Studio Express for Windows Desktop 2012
  • PC内蔵bluetoothアダプタ (何も設定等いじっていない状態で使用。)
  • Wiiリモコン

 先ほどのページの作者様も書かれているとおり、あらかじめビルドされているものを使うと、動作しないような気がします。(試していませんが。) 私はソースコードからビルドして使用しました。使い方は作者様が説明されているとおりに使っていけば、何の問題もないと思います。
 手順がすべて終わったら、私の環境では無事、自動再接続がされるようになりました!大変感謝です。ではまた。

テーマ:電子工作 - ジャンル:コンピュータ

[2013/10/21 21:47] | ARシューティングゲーム | トラックバック(0) | コメント(0) | page top
ARシューティングゲームイメージ図

現在作成しているARシューティングゲームのゲーム画面のイメージ図を作成しました!

ゲーム画面パワポ
ゲーム画面イメージ図 

画面内に映っている敵機は、実際にゲームプログラム側から制御されるラジコンとして制作します。ちなみに以前にも紹介しましたが、ゲーム画面の元となる映像は、wifiから送られてくるUSBカメラ映像です。
こんな感じで、現実とARを組み合わせたシューティングゲームを作っていこうと思っています。
ゲームとしては、ARで敵への攻撃を判別、敵から自機への攻撃は、現実の物理的な攻撃とし、現実とARの両方でゲーム要素が楽しめるようにしていこうと思っています。
今後の投稿を楽しみにしていてください!
それではまた!

[2013/10/10 00:30] | ARシューティングゲーム | トラックバック(0) | コメント(0) | page top
ARシューティングゲーム

プロジェクト始動!


長らく更新してませんでしたが、小規模チームでラジコンを使ったゲームを作ることになりました。
これからは、そこで学んだことをちょいちょい書いていこうと思っています。

そのゲームは、ラジコンとARを組み合わせたシューティングゲームとなる予定です!
まずはARシューティングゲーム関係の投稿第一弾として、以下に構成図を載せていこうと思います。

ARシューティングゲーム概要

ARシューティングゲームのシステムダイアグラムは下の画像のようなものになっています。


ちなみにシステムダイアグラムとは、システム(ここではゲーム全体を意味します。)の構成要素とそれぞれの関係を描くもので、設計のラフスケッチに使用します。
ゲームの構成要素とそれぞれの説明は以下です。
  • ラジコン
    • Wiiリモコンによりコントロールされる。Webカメラを積んでおり、そこからPCに映像を送る。PCは送られてきた映像をもとに、ARゲームを処理する。ラジコン上での処理はラズベリーパイを使用する。
  • 敵機
    • LPC1114FN28というマイコンにより制御される。マイコンにはmbed(mbed.org/)の環境から書き込む。敵機は自由に動き回る。ゲームプログラムとの連携はbluetoothを使用する。
こんな感じです。
敵機のライフは敵機本体に取り付けたARマーカーにより表現したり、フィールド上にアイテムをARでばらまいたりいろいろしたいと思っています。
Wiiリモコンをラジコンのコントローラーとして使用するつもりなので、せっかくならWiiコンを傾けたほうにラジコンが移動するとかもやってみたいと思っています!

今後はラズベリーパイ関係のこととか、LPC1114FN28のこととか(mbedが180円ほどで使える!)、ARプログラミングで使うProcessingのこととか書いていこうと思っています。

ではまた。

テーマ:電子工作 - ジャンル:コンピュータ

[2013/10/06 21:40] | ARシューティングゲーム | トラックバック(0) | コメント(0) | page top
| ホーム |