この記事はTDU CPSLab Advent Calendar 2022 - Adventarの5日目の記事です
前日の記事はこちら
目次
はじめに
努力 未来 A BEAUTIFUL STAR
努力 未来 A BEAUTIFUL STAR
こんにちは筋肉の悪魔です。
皆さんは最近人気のアニメ、チェンソーマンのオープニングをご存知でしょうか?
そう、米津玄師さんが歌っている kick back ですね。
制作には King Gnu の常田さんも関わっておりイントロから最高でした。
そんなかっこいい曲を出した米津玄師さんですが、曲だけではなくMVも毎回面白く素晴らしいものとなっています。
あるときには水没したり
米津玄師 - LOSER , Kenshi Yonezu - YouTube
あるときには落語家になったり
米津玄師 - 死神 Kenshi Yonezu - Shinigami - YouTube
今回のMVのを表す言葉は筋肉ですかね。
米津玄師 Kenshi Yonezu - KICKBACK - YouTube
また、最後(MV 3分あたり)に彼と同じ服を着た人がたくさん現れるのですが何かが足りません。
何かが足りない、、、
何が足りない、、、?
何が、、、?
そう筋肉です。
正確には腕の筋肉が足りません。
そこで今回は人類に筋肉を授けるアプリを作成しようと思います。
制作
ではどのようにして筋肉を授けましょうか?
まず、筋肉の3Dモデルを作成してARで筋肉を与えようと考えましたが、私の技術力がそれを許しませんでした。
少なくともアドベントカレンダーの期間内にモデルは作れません。
というわけでもう少し簡単なものを作ります。
骨格を認識して腕に相当する部分に筋肉の画像を重ねるというものです。
以前ジョジョ立ちしたらスタンドを呼ぶプログラムを作ったので似たような要領で作れるはずです。
【ジョジョの奇妙な冒険】スタンド出してみた【Python】 - YouTube
使用技術
以前は openpose を python で動かしたため動かすにはローカルで環境を用意する必要がありましたが、今回はみんなに手軽に筋肉を味わってほしいので web で作成しましょう。
骨格認識は Google が Apache License 2.0 で公開している MediaPipe を使います。
https://github.com/google/mediapipe
骨格認識
公開されているAPIを確認したところ画像を入力すると、各ランドマークのxyz座標とそのランドマークが正しく認識されているかを表す値が取得できます。
https://google.github.io/mediapipe/solutions/pose#javascript-solution-api
今回は腕を扱うので 12 14 16 20 11 13 15 19 の値だけ考えます。
筋肉貼り付け
画像を回転・拡大縮小して貼り付ける必要があります。
回転させる方法についてはこちらを参考にさせていただきました。
今回は右上腕について考えてみます。
対象となる二点の中心へ原点を移動し、
腕の角度に合わせ、
筋肉を貼り付け、
元の位置に戻します。
これを他の部位でもやれば完了です。
実践
では、早速試してみましょう
実際作ったもの: 腕だけムキムキweb
努力
未来
A BEAUTIFUL STAR
完璧です、これで皆を筋肉の悪魔にする計画、もとい全人類米津化計画が進められます。
終わりに
というわけで今回は筋肉を与えるサービス腕だけムキムキwebを作成しました。
それでは次回、腕だけムキムキARでお会いしましょう。
さようなら。