ぼっちプログラマのメモ

UE4とかVRとかについて書いたり書かなかったり。

【UE4】PoseAI LiveLinkプラグインとiPhone(iPad)を使ってフィギュアからポーズアセットを作ろう!

はじめに

Twitter経由で知ったiPhoneのカメラを使ってモーキャプできるPoseAI LiveLinkを検証してたら、フィギュアのポーズをUE4に持ってこれました!
(昔やりたかったことができて感動してます!

f:id:pafuhana1213:20220216234625j:plain

アクション人形やフィギュアを使ってポーズを作って…iPhoneで撮影するだけでUE4でポーズを作れる!

これはやばい!!!!!

みんなやろう!!!!!!!!!!

公式サイト
Motion Capture | Pose AI
公式ドキュメント
UE4 LiveLink | Pose AI
公式Q&A
FAQ | Pose AI

必要なもの

https://unrealengine.com/marketplace/en-US/product/poseai-livelink

  • Pose Cam アプリ ( 年間6 ~ 7ドル )

https://apps.apple.com/app/id1555012109#?platform=iphone

  • フィギュア( 人っぽいものならいけそう。ロボは駄目でした )

以降は雑に導入方法と使い方についてのメモ書きみたいなものです。
公式が配布しているサンプルを使いますが、ご自身のプロジェクトに導入したい場合は↑のドキュメントをどうぞ。
ちなみに、このプラグイン・アプリはカメラ一台からのモーキャプ用途がメインなのでご注意ください

導入

UE4

マーケットプレイス または GithubからプラグインをDLして、エンジンに導入
PoseAI LiveLink:コードプラグイン - UE マーケットプレイス
GitHub - PoseAI/PoseCameraAPI: Tools to work with the Pose Camera app

Githubから公式サンプルをDL。2種類ありますが、まずは1つ目のシンプルな方がオススメ
f:id:pafuhana1213:20220315172839p:plain
github.com
github.com

iPhone

PoseCamアプリをDL
https://apps.apple.com/app/id1555012109#?platform=iphone

起動すると支払いについての案内がでます。支払いが完了すると使えるようになります
月額 $0.99
年間(個人) $5.99
年間(複数人) $6.99 

その後、右上の設定アイコンをタップしPCのIPアドレスを設定します。このアプリはiPhoneUE4をLiveLinkという仕組みでデータをやり取りする関係でこの設定は必須です。

このIPアドレスコマンドプロンプトでipconfigというコマンドを使うことで確認できます。↓のページで紹介されている項目の「IPv4アドレス」ってやつです。
Windows10 - ネットワーク情報を表示(ipconfig) - コマンドプロンプト | PC設定のカルマ

ここまで来たらアプリ上では「tap to pair device」とか表示されてるはずです。たぶんこれで準備完了なはずです。

使い方

UE4エディタ上でサンプルプロジェクトを実行(PIE)します

次にアプリで画面タップします。設定がうまくいっていたら「Tap to Stream」や「rotate phone」という表示になります。ならずに「Pairing」とか「Try again」になってる場合はPCとの接続に失敗しています。エディタ実行忘れ、IPアドレスの設定ミス、PCと端末が同じネットワーク環境にいないなどが原因です

また、「rotate phone」と表示されていたら端末の向きを変えてください。サンプルプロジェクトのデフォルトの場合は端末を横向きにする必要があります

ここまで来たらiPhoneのカメラの映像が画面に出ているはずです。そして、フィギュア、自分自身、ポーズ写真などをカメラで捉えるとそのポーズがグレイマンに反映されます。

全身を捉えないと上手くポーズが認識されないようです。アプリ画面右にある棒人形から各部位の認識状況を確認できるので便利です
フロントカメラと背面カメラを切り替えたい場合は、アプリ画面右下にある更新ボタンをタップすればOKです

あとはUE4標準の録画機能を使えばこのポーズをアセットに変換できます
Take Recorder を使用する | Unreal Engine ドキュメント
UE4の標準機能とiPhoneXを使って、簡易フェイシャルキャプチャーシステムを実現してみた - ぼっちプログラマのメモ

追記:
簡単にですが動画にしてみました
youtu.be


あとはControl Rigなどを使って気になる所を調整すれば、それっぽいポーズ・モーションを作れてしまいます!
仮モーションやお絵かき用ポーズアセット用途には十分かなぁと思います!ぜひ試してみてくださいー!

おまけ

アプリを縦画面に使いたい

サンプルプロジェクトのThirdPersonCharacterにおける赤枠の部分をPortraitにすれば縦画面で起動するようになります。

f:id:pafuhana1213:20220216233752p:plain

Androidアプリは?

まだみたいです(公式Q&Aより

自分のプロジェクトに組み込みたい

公式ドキュメントに英語で書いてるのでご確認ください。ざっくり書くと…

プラグイン有効にして、プロジェクト設定のUDP Messaging の Enable Transportを有効にして、Pose AI MovementコンポーネントをCharacterのBPに追加して、

f:id:pafuhana1213:20220217000152p:plain
BeginPlay, EndPlayに専用のノードを追加して

f:id:pafuhana1213:20220217000231p:plain
AnimBPでLiveLink用の名前をとってきて

f:id:pafuhana1213:20220217000255p:plain
LiveLink Poseノードと一緒に使えばOKです。たしか

f:id:pafuhana1213:20220217000326p:plain


おしまい(もっと丁寧な記事を作る人が出てきますように