改造版Scratchで、禰豆子になれるプログラムを作ってみた
使った環境
Stretch3 という改造版Scratchの拡張機能「PoseNet2Scratch」を使いました。
Stretch3は、通常のScratchの様に、作ったプログラムをWeb上に保存できないので、「ファイル」→「コンピューターに保存する」で、パソコンに保存します。
準備
改造版Scratch「Stretch3」へアクセス
Chrome ブラウザで、stretch3.github.io を開きます。
拡張機能を追加
独自の拡張機能「Posenet2Scratch」を追加します。
これで、カメラに写っている顔の、目や鼻や手のXY位置を取得できるようになります。
ただ、口の位置は取得できません。いろんな形に変わるので、認識精度が上がらないからかな?
スプライト作成
竹のスプライトを作成。画力が…(汗)。画像をダウンロードして、不要部分を消したほうが見栄えがいいものができそう。
口の位置は取得できないので、鼻の位置を取得して、そのすこし下に竹を表示するため、中心から下へずらします。
プログラム
鼻の位置に移動させ続けるだけです。
もっと顔についてくるように
ただ、今のままだと、顔を傾けても竹は水平のまま。
カメラから離れても近づいても、竹は同じ大きさのまま
大きさを変える
左右の目の距離を求めて、それを基準にスプライトの大きさを変えます。
2つの点の距離を求める公式は↓
Scratchに2乗のブロックは無いので、掛け算で代用します。
傾きを変える
同じく左右の目の位置で傾きを求めて、スプライトの傾きを変えます。
2つの点のを通る直線の傾きを求める公式は
計算結果で出る角度は0度水平だけど、Scratchの角度は垂直が0度なので、90足して角度を変換します。
全体
ん~ん~
ディスカッション
コメント一覧
まだ、コメントがありません