x.pg14
センサーと制御とプログラム
システム構成: 写真
F201情報実習室内LAN
Scratch1.4(ローカルPC) OSCのアドレスパターンをメッセージとして、値をセンサー値として受信)
Scratch OSC Bridge (スクラッチからOSCのメッセージを送受信する中継アプリ)
Kinect v2 OSC (kinect のモーションキャプチャデータをOSCで実習室内にブロードキャスト配信。複数のプレイヤーに対応)
↑※ ソースコードが公開されているので、本来複数のプレイヤーを識別可能のものを、プレイヤー1名のみ識別するように修正した。
カメラに2名のプレイヤーが映ると、「分身」したようにプレイヤーの座標が2つ送信される
準備:
Scratch の起動
レポートフォルダ → プログラミング入門(こばし) → Scratch → Scratch.exe
Scratch-bridge-tuio.sb をデスクトップにコピー (これを後ほど提出)
Scratch-bridge-tuio.sb を Scratchにドラッグ&ドロップ
遠隔センサーを有効にする
Scratch_OSC_Bridgeの起動
レポートフォルダ → プログラミング入門(こばし) → Scratch_OSC_Bridge → Scratch_OSC_Bridge.exe
※起動と接続の確認: Scratch と Scratch_OSC_Bridge.exe が通信を始めると、スクラッチのプログラムの
ずっと の繰り返し処理が動き出す。
処理内容は、
「センサーの値を読み出し、センサーの値に滑らかさを加えて、スプライトのXY座標に設定する」
というもの。
Scratch で利用するKinectカメラと、センサーで取得する身体部位の情報を↓のように設定する。
ポートの設定
12345 SAを撮影する予定のカメラ (教室の前方 水曜5時間目はPepperを撮影)
※最初は、接続の練習のため、こちらを利用します。
54321 教卓の教員を撮影する予定のカメラ
65432 教室後方に設置したカメラ。受講生で、自由に利用してください。
※プレイヤーを交代した際に、プレイヤーIDが切り替わるので設定をしなおす必要があり。
↑の3台のカメラのうち、どれかを ADD PORT する。(最初は 12345)
OSCメッセージの選択 最初は1選択するメッセージは 1つに。 うまく動いたら、複数の身体部位の取得を試す。
※ 3つ目の部位を追加すると、不具合発生。使用する部位は、「2つ」までにしてください。
/BODIES/ プレイヤーID番号 /JOINTS/HEAD 頭の位置 ※← 最初はこちらで練習してみます。
/BODIES/ プレイヤーID番号 /JOINTS/HANDRIGHT 右手の位置
など。
設定例)
Scratchのセンサーの対象を設定しなおす。
※ ↑の「ずっと」が止まってしまったら、クリックして動かし続けておく(センサーの値を観察するため)
※Kinect で、HEADの値を1,2,3つ取得している。 X Y Z 座標 に対応する。
今回の演習では、XY座標のみ利用している。
Z座標を利用する場合は、スプライトの 大きさ の変更に Z座標を用いると、擬似3Dの表現ができる。
(接近→ 拡大、 離れる → 縮小)
課題制作
接続先のカメラを変更したり、取得する身体部位を 頭から 右手 などに修正したり、など、モーションキャプチャの
対象に応じて、スプライトのコスチューム(画像)を変更し、
・ゲーム
・楽器
などを企画して作成する。
※注意※ キャプチャーする身体部位の変更
・既に追加している部位をクリックして削除する
・その後、新しい部位を追加する
例) 避けゲーム。ゴーストのXY座標は、プレイヤーの頭の位置にリンクしている。
2対の敵キャラクターが画面を動き回るので、当たらないように、避け続ける。
重要: Kinect の撮影画面外にプレイヤーが外れると、プレイヤーが交代したように処理が進む。
プレイヤーIDが切り替わるので、センサーの設定をしなおす必要がある。
・ Scratch_OSC_Bridge で プレイヤーIDと部位の設定をしなおす
・ Scratch のセンサーの値を変更する。
↑※ Kinect V2 OSC を改造して、プレイヤーIDを000に統一した。今回の演習では複数のプレイヤーを識別しない。
衝突判定つきのキャラクターの作成例)
※キャラクターには、衝突したときのコスチュームを追加して、設定しておくこと。
※※ 動きブロックの「回す」コマンドで敵キャラクターの向きを斜めに設定すると、複雑に跳ね回るキャラクターになる。
※※※キャラクターの数を増やしてみよう。
課題の提出先:
WebClassの 第14回課題に、デスクトップの Scratch-bridge-tuio.sb をアップロード