おおー
AirPods Proの加速度センサーを取得してUnityのCubeに入れて動かすやつ出来た!!!
— AIセバスちゃん (@SebasAi) 2020年9月22日
iOS14から動きます pic.twitter.com/Nb113NizVr
AirPods Proの加速度センサーでアバター動かすの出来た!!
— AIセバスちゃん (@SebasAi) 2020年9月23日
なかなか滑らかに動いてる。#VRM #Unity pic.twitter.com/dCUqQC3as8
これを叩けばいいって。よく分からないな〜
https://developer.apple.com/documentation/coremotion/cmheadphonemotionmanager
Unityのサンプルプロジェクト
耳につけた状態で動くんだ!片方でも動くのかな〜?
AirPodsのヘッドモーショントラッキングをUnityと連動。pic.twitter.com/q5qpGo98CK https://t.co/dkSevIXA9s
— Tetsuro Miyatake (@tmiyatake1) 2020年9月21日
このかたのライブラリがあった
Readmeで使い方をかなり詳しく説明してくれている
回転データに使用されているヘッドフォンは1つだけらしい
サンプルビルド
自分でプロジェクト作って、このリポジトリの中身をAssets下にコピーする。
ExampleのシーンをiOSビルドする。
XCodeで許可
iOS14のiPhoneやiPadにXcodeからビルドする。
1度目はアプリを立ち上げてもロゴが出終わったとにアプリが閉じる。
ログを見ると
[access] This app has crashed because it attempted to access privacy-sensitive data
without a usage description. The app's Info.plist must contain an NSMotionUsageDescription
key with a string value explaining to the user how the app uses this data.
とでてる。
これも公式ページに書いてて、MotionTrackingを使う許可をもらわないといけない。
Products>Info.plist
適当なところを右クリック>Add Row
NSMotionUsageDescriptionと入れる。自動でPrivacy~に変わる
Valueに何か書く。許可ダイアログに表示される文章
そしてビルドしなおすと、アプリ立ち上げ時に許可ダイアログが出る
OKすると動く!!
結果
本当にぬるぬるだ〜。この時は左のイヤホンの動きをもとに動いてた。
AirPodsProでキューブを動かすやつできた! pic.twitter.com/SAJuPkhpXv
— トマシープ (@tomasheep) 2020年9月29日
鏡じゃなくて、自分の動きを後ろから見ているようなイメージ
置き換え
HeadphoneMotionExampleのRotateObjectを置き換えれば変わる
ついでにカメラの位置も反対側にして、うなずいたらちゃんとモデルも前に頷くようにした。
トマシープちゃんでAirPodsPro+Unity https://t.co/jf6cqsjwlS pic.twitter.com/s8WF65cS4O
— トマシープ (@tomasheep) 2020年9月29日
いい感じ!
ちなみにイヤホンとしても同時にちゃんと使えた
ネイティブ
XCodeのネイティブでやっている方
最後に
これでアバター動かせるのめちゃくちゃいい!!
精度すごくいいし、つけてて全く苦痛じゃないしこれでマイクやイヤホンとしてもそのまま使えるし最強そう。
そういえば私のiPadは古くて空間オーディオには対応してなかったけど、これは動いた!よかった!
6Dofを実現した人がいる