3D修行 PoseAI LiveLinkを使う
Unreal Engine4+iPhoneでモーションキャプチャーを行うPoseAIを使ってみました。
公式サイト https://www.poseai.co.uk/
導入の参考にさせて頂いたブログ
【UE4】PoseAI LiveLinkプラグインとiPhone(iPad)を使ってフィギュアからポーズアセットを作ろう!
ブログ記事を参考にしてプラグインとソフトを導入、サンプルプログラムを4.27で開いてグレイマンを表示しました。しかしなかなか動かず、UE4からLiveLinkウインドウを開いてみたりプラグインを眺めてみたりごちゃごちゃやっていたのですが分からず……トラブルシューティングも(翻訳しながら)一つ一つやってみたのですが、動かない。ふと4.26で開いてみたらさくっと動いて「おお、4.27では動かないのか」と思いつつ今度は4.27で開いたら動いて……ううむ、何が悪かったのだろう。その後は特に問題無く動いています。
さてこの記事の本題は「グレイマンを他のキャラクターにする方法」です。女性型のグレイマンにするのは単に使うメッシュを変更するだけで行けたのですが、マーケットプレイスから購入したアクタを使いたいのです。
なお自分はUE4を使い始めてから一週間くらいしか経験がなく、まだぜーんぜん詳しい事はわかっていません。3Dソフトって六角大王と3Dインテリアデザイナーとか使ったことがある程度で……とりあえず必要なのは背景代わりの静止画なのでそれを作るためのところだけなんとか勉強している状態です。なのでこの後の説明も「とりあえず出来た」というだけでなんで出来たのかとかはよくわかっていません。
前述のブログが日本語では唯一に近いドキュメントで、あとは英語のドキュメントをなんとか読みながらやっていましたが、それもほとんど役に立つものが見つかりませんでした。試行錯誤しながらなんとかかんとか動かしているだけですので、詳しい人がもっとちゃんとした記事を作ってくれると嬉しいです。
今回使おうと思ったのは
Paragon: Shinbi
この無料アセットをPoseAIと連動させてモーションキャプチャーをしたいなという話です。
サンプルプロジェクトを開くとグレイマンが表示されます。
Shinbiアセットをプロジェクトに追加します。
使用するメッシュをShinbiに変更します。
グレイマンがShinbiに変更されます。
カメラは後ろからの撮影になっているのでちょっとわかりにくいと思い、前から撮影するように位置を変更しています。
このままではどんなにiPhoneの前でポーズを取ってもキャラは微動だにしませんので、ブループリントを用意します。
メッシュをダブルクリックしてエディタを起動、「アセットを作成」から「Animブループリント」を選択します。
自分はブループリントなどほとんど理解出来ていない素人なので、「なあにグレイマンは動くんだ、じゃあそれと同じブループリントを用意すればよいのではないか」と考え、グレイマンと比較しました。
うむ、きっとイベントグラフ-イベント Blueprint Update Animationとアニメーショングラフ-AnimGraphがあれば良いはず。
というわけでコピー&ペーストです。
イベントグラフを貼付けて……
AnimGraphも貼付けて……
グレイマンと同じようにLive Link ポーズの出力を出力ポーズのResultに繋げたらいいはず。
コンパイルエラーになりました。ログを見ると変数がないとか言われて「LiveLinkSubjectName」にwarningが出ているのでこれを右クリック。
「変数"LiveLinkSubjectName"を作成」とかいうのがあるのでこれをクリックして変数を作成。よくわかっていませんがとにかくこれでwarningは消えました。
で、コンパイルして保存。
なんかみょんみょんと動き出したので多分OK。
コンテンツブラウザに「Shinbe_Skeleton_Anim Blueprint」というのが出来ています。ビューポートに戻ってアクタをクリック、詳細のアニメーション-Anim Classにこれを設定します。
ここまで出来たらPIEを実行してiPhoneでposeAIを実行しておもむろにカメラの前でポーズを取ります。
動いた!
あとはTake Recorderでストリームを用意してビューポートに表示されたポーズからスタティックメッシュを作ってマテリアルとかと一緒に必要なプロジェクトに移行して配置して……とすればモーションキャプチャーしたポーズでアクタを配置できるというわけです。
とにかく知識も経験もなくプログラムもほとんどわかっていない素人なのであれこれやってみてなんとかこのあたりまで出来たようですが、実は正しい方法があるのではないかと思っています。まあ動けばなんでもいいか……。