UMotion Proで荒ぶるモーキャプデータを修正!編集!
こちらはUnity アセット真夏のアドベントカレンダー 2019 Summer!の9日目の記事になります。
内容
Unityエディタ上でアニメーション編集できるソフトであるUMotion Proを使ってモーションキャプチャーデータを修正していきたいと思います。 UMotion ProはFKとIKの相互変換での編集を行いやすくなっており、 噛めば噛むほどハマって行きます。 皆さんも是非試してみてください。 使用したデータはこちらからダウンロードできます。
背景:荒ぶるモーキャプデータを修正したい
データを見てみるとわかると思いますが、元のモーキャプデータは結構乱れていて、人間では動かせないような角度に骨格が荒ぶっています。 今回はこれを直していきたいと思います。
手段:UMotion
UMotion ProはUnity Asset Storeに公開(有償)されているアニメーション編集ライブラリで、他のソフトウェアを使うことなくUnityエディタ上で簡単にアニメーションを編集することができるそうです。 特にモーションキャプチャのデータなどの既存のデータの手直しの際は群を抜いて利用しやすいそうです。 また、Uマニュアルや動画、フォーラムなども揃っており、困った時はこれをみると良さそうです(ダウンロードするとhtmlファイルが中に入っている)。
今回は既存のアニメーションデータ(fbx)の修正になりますので動画としてはこちらになります。
(2) Editing Existing Animations - UMotion In Practice - YouTube
日本語サイトとしては汗人柱さんのサイトが参考になりますので動画をみるのが面倒臭い方は参考にしてみてください。
サンプル:グランフェッテ
モーキャプを触らしてもらう機会があった時に、そこにいた友人に何かやってと頼んだらやってくれた大技。何回も回ります。
ただ大技すぎて回るごとにモーキャプ機材がずれていき、中のデータはなかなかひどいことになりました。 ただせっかくなので綺麗にして使いたい! そういうわけでUMotion Proです。
Unityちゃんモデルデータを入れる
とりあえず、元のデータを入れるまでの流れを説明したいと思います。 特に必要ない方は# UMotion Proをインポートしたらまずすること まで飛ばしていただいて結構です。
こちらからUnityちゃんのデータをダウンロード後、インポートしてください。 筆者の環境ではコンパイルエラーになりましたので、とりあえずautoblink.cs のusing System.Security.Policy;を消せば大丈夫なので気にせず進んでください。 インポート後、[UnityChan][Prefabs][unitychan_dynamic]を新しいシーンに入れてください。その後、Idle ChangerとFace Updateのチェックを外してください。
fbxをインポートする
先ほどのモーキャプデータのfbxファイルをAssetフォルダに入れてください。 この後、fbxデータを選択してInspecter上で[Rig]タブをクリックして、Animation TypeをGeneralからHumanoidにしてください。
この後、[Create]>[Animation Controller]を作成してAnimatorウィンドウにfbxファイルをドラッグアンドドロップした後、UnityちゃんのAnimatiorに作成したAnimation Controllerをアタッチすると元のデータがどのようなものか分かります。
UMotion Proをインポートしたらまずすること
ではお待ちかねUMotion Proを始めたいと思います。 筆者はこの時点で躓きました!
まずはじめに [Window]>[UMotion Editor]>[Clip Editor] [Window]>[UMotion Editor]>[Pose Editor] を両方とも開きます。 前者は下の画面に、後者は右の画面に配置すると良いそうです。 筆者はここで片方だけ開いて試そうとして何も動かず途方に暮れ、マニュアルを参照しました。
- Clip Editorウィンドウから[File]>[New Poject]>[Humanoid]からプロジェクト作成
- Pose Editorウィンドウの[Select a GameObject to animate]のフィールドにUnityちゃんをドラッグアンドドロップ
- Clip Editorウィンドウの[File]>[Import Clips]でfbxファイルをインポート
- Clip Editorの右下の方にレイヤーっぽいボタンがあるので、適宜レイヤーを追加して編集
これでとりあえずは編集できると思います。
他に重要な点としては
- 自動でモーション変更のためのkeyを作成したい場合はPose EditorウィンドウのAutoKeyを使う
- IK を使う場合はPoseModeからConfigModeにしてIK Setup Wizardを押す。
- IKを動かすためのオブジェクトは通常のモデル部位(FK)とまた別でIKとして用意されていて、そこでIKの重み付けなどを行う。
- FKは基本的にRotationで行う。IKの重みが1の場合は白色の骨格が動く。
- IKとFKはSet IK to FKとSet FK to IKで相互変換できる。前者はIKの骨格をそのままFKへ、後者はIKに関与するアンカーの位置を変える。
- 回転をカーブで変更させる場合はAnimated PropertiesのquatanionからEularにする必要が有る。
- FKモードとIKモードがあるという訳ではなく、FKのオブジェクトとIKのオブジェクトを選択して編集していく。ただし、FK骨格とIK骨格の画面表示を切り替えることで編集や選択がしやすくなる。
編集途中の画像
今回のデータを編集した時の画像です。 まだまだ改良の余地が残されているのですが、今回はここでおしまいにしました。 編集前のデータと編集後のデータはこちらに有りますので、皆さんもお試しください。何に使っていただいても結構です。
手があらぬ方向を向いているUnityちゃんさん
FKで修正
回っているうちに移動していくのを、骨盤の位置を原点付近にして修正 FKでは唯一のpositon
首を傾けながら回っていたので修正
画面上で編集してどの値を直すべきかを確認 x, y, zのうち一つだけ消して初期値にするということはできないので、 幅を狭めて擬似的に定数にする
腕はIKで編集
Editから元データをIKデータに編集することができる
最後の部分だけ修正しするため、汚い部分を消す
FKで先に編集してからSet IK to FKしている図
とりあえず決めポーズだけ作成