だいぶ前に見かけて感動した、SAOのユイちゃんと鏡越しに手を合わせるコンテンツ
これを作りたくなったのでやってみる
【映像から構成を考える】
鏡は普通のモニターまたはタッチパネル搭載モニターで、鏡フィルムを貼ってる
(透過スクリーンに鏡フィルタ貼って鏡の裏にカメラあるかなーって思ったけど透過スクリーンだとここまで発色は良くないハズ)
映像には映ってないけど上の部分にkinectかrealsenseがありそう
手を振ると振り返す仕組みはジェスチャー入力
鏡越しに手を合わせる仕組みはFinalIK
足元になんかあるけど、これは普通にユイちゃんが小さいから高さを合わせるために置いてるんじゃないかなー
映像側に3Dの足場を表示するんじゃなくて現実側に置く事で映像が現実に溶け込みやすくなる
小さめサイズの展示もあったみたい
ここではleapmotionが見える、また鏡の側に棒状のものが突き抜けてるのでカメラは上に設置してるハズ
一旦ここまでの情報で自分でも出来そうな気がしたので作り始める
【作業】
いつものVRMミクさんで行うのでまずはUniVRMを入れる
https://vrm.dev/univrm/index.html
現時点のUniVRM確認したらUnity-2020.3.LTSが推奨
サイトには
>>UniGLTF_VRMShaders 、 UniVRM という順番で2つのパッケージをインストールしてください。
って書いてるけど、githubを見ると
>>v0.87.0 から UniGLTF_VRMShaders と UniVRM が合体してひとつになりました。
って書いてあるので普通にUniVRM~から始まるUnityパッケージ一つDLするだけで良い
前回(realsenseでヘッドトラッキング)、kinectのアセット使えるのが分かったのでrealsenseを使う。
体験者の動きを反映させるのはアバターシーンが手っ取り早そう
次はFinalIKをインストールしてサンプルシーンを選定
体験者の顔の位置を見るのはLookatIKシーンを参考
手の位置を合わせるのはFBBIK関連、手をつなぐとかのシーン
んで、色々コネコネして一晩でざっくり基本の動きは出来た。
何かを作ろうとしてる途中 pic.twitter.com/xJBFUuIvFp
— シロフード (@sirohood_exp) August 30, 2022
ここまで作って気づいた。
これ画面上にカメラ1台だと、角度的に画面に手を合わせる動きをとれない・・!
んで、検索して調べてみた
動画では写ってないんですがこうなってます。kinectで人の位置と手を振ってることを検知して、下向きのrealsenseで画面近くの手の位置を検知してます。本当はkinectは鏡の裏に隠せるんですが、この時は精度重視でこうなりました。動作は完全自律ですよー pic.twitter.com/djf2wLDSIg
— Mitake (Jumius) (@jugmit) March 29, 2019
kinectで人の位置と手を振るジェスチャーの検知
realsenseで手の位置を検知してるとのこと。
やっぱカメラ2台ないとダメだよねー!
縦モニターサイズならleapmotionで手合わせ位置検知だなー
Airbarでタッチパネル化してしまうのもありかもしれない。
個人的には等身大サイズもやりたいのでやはり同じようにカメラ2台構成か・・・
もう一台Kinect v1なので競合できなくね・・?会社にv2あった気がするので借りよう。(無かった)
realsense、垂直方向からでも骨格情報取れるらしい。
https://dev.classmethod.jp/articles/detecting-human-hands-entering-a-shelf-using-cubemos-skeleton-tracking-sdk-and-realsense-d435i/
モーションと反応の作りこみもしないといけないが、改めてこれ相当作りこんでるんだなって思った・・・
まずFinalIKで手を合わせるにしてもゆっくり合わせたり、手を合わせた時に視線を一瞬手に向けたり
キャラが手を合わせる前に体験者が手を動かすと怒る反応したり・・・ひぃぃ・・天才じゃあ~!
可愛い動きにするのは解説があがってるので見ておこう
とりあえず現状ここまで。
更新あったら追記します。
※コメントは承認後に表示されます。
コメントを公開されたくない場合、名前の後に「:非公開」とつけてください。