Kinect風船割りゲーム(BodyImage2)

このプログラムについて

このプログラムの実行には,Microsoft社のKinect v2センサが必要です。

発達障害児に身体の動きがぎこちない子どもたちが多いので,その認知機能評価や発達支援ができないか,また,高齢者施設のリハビリの時間に楽しみながら身体を動かして,しかも脳トレになるような課題ができないか…という現場ニーズを踏まえて開発した風船割りゲームプログラムです。

下の動画のように,Kinectがカメラでとらえた映像の中に風船が現れるので,その風船にさわって割って遊ぶゲームとなっています。カメラの映像を左右反転させたり,風船に手の形が出るのでそれに勝つ手の形でないと割れないようにしたり(ノーマルじゃんけん),逆に負ける手でないと割れないようにしたり(後出しじゃんけん),いろいろな設定が可能になっています。単なる遊びとしてでなく,私のゼミでは,身体版「Stroop検査」として脳機能(前頭葉機能)の測定・評価・訓練に用いています(子どももお年寄りも楽しめるゲームでありながら,かなり有効な評価・訓練ツールとして使えます)。

このプログラムは,ゼミの卒論研究「ヒューマンセンシングを用いたボディイメージの評価」(峰知奈美・大和美紀,2016年度),「身体運動を用いた高齢者の認知機能の評価」(槇坂苑花,2017年度)で使用したものです。また,科学研究費助成事業(基盤研究(C),課題番号25380995「障害児者の認知機能評価と成長の可視化に関するアクションリサーチ」,課題番号16K04439「ヒューマンセンシングによる障害児の認知評価と発達支援に関する実践研究」,課題番号19K03389「センサ技術を活用した障害児の認知機能評価・発達支援プログラムの開発」)の補助を受けて開発,改良を続けてきています。

 

動作環境

ハードウェア

  • Windows PC(Microsoft Kinect v2が動作するもの)。
  • Microsoft Kinect for Windows v2センサ 必須!

 

OS

  • Windows 8以降(64ビット版)
  • Kinect20.dllがインストールされているなど,Kinect SDK 2.0のサンプルプログラムが動く状態になっている必要があります。

 

使い方

  • zipファイルをダウンロードした後,まず「右クリック」→「プロパティ」を選択して,「このファイルは他のコンピュータから取得したものです。…アクセスはブロックされる可能性があります。」という記述の横の「許可する」にチェックを入れて,ブロックを解除してください(これをしないと,実行時に「WindowsによってPCが保護されました…不明な発行元」というダイアログが出たり,プログラムが動作しない場合があります)。

  • 次に,プログラムを「BodyImage2_release2021」というフォルダごと,途中に日本語のフォルダ名を含まない場所に解凍します。本プログラムは,Kinect SDK 2.0(2014/10/22,1409最終版)で作成していますが,APIが日本語フォルダ名に対応していません。日本語のユーザ名だとデスクトップ上でも動かないことになるので気をつけてください(C:\Users\日本語名\Desktop\となるため)。
  • 解凍したら,「BodyImage2_release2021」というフォルダの中の「BodyImage2.exe」を実行してみてください。

 

条件設定ダイアログ

プログラムウィンドウ(地味ですみません。メッセージもSample Applicationのままになっている… ^^;)のメニューから,「Experiment」→「Start」を選ぶか,ウィンドウの中央あたりをクリックすると,下のような条件設定ダイアログが開きます。

  • Subject ID…参加者名を入力します。データファイルの名前になりますので,ファイル名として使えない文字(たとえば,”+”, “*”, “?”, “:”など)は絶対に使わないようにしてください。
  • じゃんけんモード
    • じゃんけんなし…どのような手の形でも,手が風船にさわりさえすれば風船が割れます。
    • ノーマルじゃんけん…風船にじゃんけんの手が表示され,それに勝つ手の形で触らなければ風船が割れません。
    • 後出しじゃんけん…風船にじゃんけんの手が表示され,それに負ける手の形で触らなければ風船が割れません。
  • ミラー表示…通常はミラー(ディスプレイに移る映像が鏡の状態)でやるのが簡単なのですが,チェックを消すと鏡とは左右が反転した状態になります。
  • 一人モード…チェックを入れると,複数の人物がKinectのセンシングエリアにいるときに,最もカメラに近い距離にいる人物だけにゲームが反応するようになります。
  • 制限時間…ゲームの制限時間を秒単位で入力します。
  • 乱数初期値…乱数のseedですが,このプログラムでは使用していません。0にしておいてください。
  • 頭,肩,肘,尻,膝,足…チェックを入れるとそれらの身体部位でも風船を割ることができるようになります。
  • MouseMove…風船をマウスで動かすことができるようになります。麻痺のある方の理学療法などで,身体の近くに風船をもって行くのに使っています。

条件を設定した後,[OK]ボタンを押すとゲームが始まります。なお,時間計測は最初の風船を割ったときに開始されるようにプログラムされています。

 

ゲーム中のキー

  • [M]キー…ミラー表示を切り替えます。
  • [Space]キー…デバッグモードに移行して,Kinectがとらえた関節の位置や手の形状分析の結果が画面に表示されるようになります。

 

データファイルなど

BodyImage2.ini

条件設定ダイアログの内容を保持しているファイルです。削除すると設定がリセットされて初期設定に戻ります。

 

[参加者名]_[日付]_[時刻].csv

ゲームごとの記録データです。

  • Subject…参加者名
  • Date…日付
  • Time…時刻
  • Trial…試行番号(風船の番号,0は最初の風船)
  • Cond_J…じゃんけん条件(0:じゃんけんなし,1:ノーマル,2:後出し)
  • Cond_M…ミラー条件(0:反転ミラー表示,1:ミラー表示)
  • BodyID…Kinectセンサがとらえた人物ID(複数人物の識別コード)
  • TgtHand…じゃんけん条件でのターゲットの手の形(0:なし,1:グー,2:チョキ,3:パー)
  • Tgt_X…風船が表示された位置(X座標)
  • Tgt_Y…風船が表示された位置(Y座標)
  • Hand_L…風船を割ったときの左手の形(0:判定不能,1:グー,2:チョキ,3:パー)
  • Hand_LX…風船を割ったときの左手の位置(X座標)
  • Hand_LY…風船を割ったときの左手の位置(Y座標)
  • Hand_R…風船を割ったときの右手の形(0:判定不能,1:グー,2:チョキ,3:パー)
  • Hand_RX…風船を割ったときの右手の位置(X座標)
  • Hand_RY…風船を割ったときの右手の位置(Y座標)
  • Resp…風船を触った手(Hand_L:左手,Hand_R:右手…など)
  • RT…反応時間(ミリ秒単位)
  • TotalRT…ゲーム開始時からの反応時の時間(ミリ秒単位)

 

[参加者名]_[日付]_[時刻]_B.csv(BodyのBがつく)

ゲーム中の身体座標の記録です。膨大なデータ量になるので,不要な場合は適宜削除してください。私の研究室では,このデータを分析することで,対象者の多動性や衝動抑制機能の評価を行ったり(反応側と反対側の手の不要な動きがどの程度見られるか,反転ミラー時には不要な動きがどのように変わるか,じゃんけんのときにそれぞれの手の形がどのように変化しているかなど),運動のぎこちなさの評価などに利用しています(手の運動軌跡が直線的か,それとも関節の固さがみられて円弧を描いているかなど)。

  • Count…データカウント(行番号)
  • Clock…ゲーム開始からの時間(ミリ秒単位)
  • Trial…試行番号
  • TgtHand…じゃんけん条件でのターゲットの手の形(0:なし,1:グー,2:チョキ,3:パー)
  • Target_x…風船が表示された位置(X座標)
  • Target_y…風船が表示された位置(Y座標)
  • ID…Kinectセンサがとらえた人物ID
  • Spine_base_x,Spine_base_y…腰の座標
  • Spine_mid_x,Spine_mid_y…胸付近の座標
  • Spine_shoulder_x,Spine_shoulder_y…首の付け根付近の座標
  • Head_x,Head_y…頭の座標
  • Hand_l…左手の形(0:判定不能,1:グー,2:チョキ,3:パー)
  • Hand_lx,Hand_ly…左手の座標
  • Hand_r…右手の形(0:判定不能,1:グー,2:チョキ,3:パー)
  • Hand_rx,Hand_ry…右手の座標
  • Elbow_lx,Elbow_ly…左ひじの座標
  • Elbow_rx,Elbow_ry…右ひじの座標
  • Shoulder_lx,Shoulder_ly…左肩の座標
  • Shoulder_rx,Shoulder_ry…右肩の座標
  • Hip_lx,Hip_ly…左臀部の座標
  • Hip_rx,Hip_ry…右臀部の座標
  • Knee_lx,Knee_ly…左ひざの座標
  • Knee_rx,Knee_ry…右ひざの座標
  • Foot_lx,Foot_ly…左足の座標
  • Foot_rx,Foot_ry…右足の座標

下の図は,Spine_base(腰:黒),Hand_l(左手:緑),Hand_r(右手:赤)の運動軌跡を分析した結果の一例です。

【定型発達】体幹が動かず,反応側の手のみが直線的にターゲットをとらえに移動している。

【PDD】無駄な動きは少ないが,肘関節が固く曲がっていないために手の運動軌跡が曲線になっている(小学生にはよく見られるパターンではあります)。

【ADHD】体幹や反応と逆側の手に無駄な動きが顕著にみられる。

 

制限事項等

  • 作者(吉田)は,このプログラムの動作を一切保証するものではありません。また,このプログラムを動作させたことによる一切の損失・損害に責任を持ちません。ご自身の責任のもとでお使いいただくようお願いします。
  • 課題実行中に中断したいときには[ESC]キーを押してください。このプログラムでは,中断したときもそれまでのデータが残るようになっています。

 

その他

  • v1.006w…web公開用(2021/6/20)

 

ダウンロード

プログラムは,「BodyImage2_release2021」という名前のフォルダごとzip形式で圧縮されて1つのファイルになっています。ダウンロードした後に,必ずフォルダごとすべてのファイルを解凍して,それを途中に日本語フォルダ名を一切含まないディスク上の場所に置いてください。