前々からやりたかったScratchをやっと触ってみました。
Scratch自体はMITメディアラボが開発している、ブロックを組み合わせることでプログラムできるツールのようです。AndroidのAppInventorのPC版という感じでしょうか(どっちが先かは知りません)。
このScratchにKinectからの入力を入れられるようなので、さっそく試してみました。
Scratchをインストールする
Scratchをインストールします。ダウンロードページから環境にあったインストーラーを取得します。今回はKinectを使うのでWindows版です。ログインしていない場合など、メールアドレスなどの情報入力することもあります。
インストーラーを取得したら、そのままインストールを行います。
Kinect2Scratchを使う
Kinect2Scratchを使ってみます。
Scratch側の準備
Scratchを起動したら「調べる|<スライダー>センサーの値」を右クリックし、「遠隔センサーを有効にする」を押します。遠隔センサーとはソケットで通信を行うので、Windowsのファイアーウォールの画面が出てきます。適切に選択してください。
接続の受け入れが整うと、有効になった旨のメッセージが表示されます。これでScratch側の準備はOKです。
Kinect2Scratch側の準備
Kinect2Scratchのサイトからダウンロードします。
解凍するとexeとDLLが出てきますので、Kinect2Scratch SDK 1.5.exeを実行します。
起動します。とりあえず、「CONFIGURE SKELETON」を押します。
設定画面が出ます。2人のスケルトンをもらう場合には「Two player mode enabled」をチェックします。「3D mode (z axis) enabled」はZ座標の取得だと思いますが、今日やった限りでは取得できませんでした。
設定したら「LAUNCH KINECT」を押します。Kinectが起動します。
「CONNECT TO SCRATCH」を押すとScratchにデータを配信し始めます。ここでもWindowsのファイアーウォールの設定が出るかと思います。
Scratchでデータを取得する
ここまででKinectのスケルトンデータをScratchで取得できるようになりました。先ほどの「調べる|<スライダー>センサーの値」をスクリプトに設置します。コンボボックスを開くと、既定のセンサーのほかにKinectから取得されたスケルトンのジョイントデータが選択可能になります。
簡単なアプリを作ってみましょう。次のようにX座標およびY座標にKinectからデータを設定することで、プレイヤーの動きをスプライトに反映することができます。
簡単なゲームを作ってみた
キャラを移動させて、ボールを捕まえるゲームを作ってみました。
データはこちらにあります。
娘ちゃんに遊ばせてみたところ、楽しそうにしてましたw