EditMot
モーキャプ変換物理編集リターゲット
モーションキャプチャをブラシで盛るように編集 fbxにしてUnityへ
(bvh, fbx, Unity, Maya, VRoid対応)
動画0:EditMot 基本機能 モーキャプの動きを盛れ!
編集範囲の動きを潰さずに盛るアディショナルIK搭載
![]() 1.2.0.30 |
![]() 次バージョンに向けて 随時更新 |
EditMotとは何のためのツールなのか |
---|
![]() ゲーム用モーション作成 何も無いところから作る のは難しい モーキャプの動きを大げさに するだけなら簡単! 元のモーションを 潰さずに盛るように編集する方法で モーションキャプチャが ゲーム用モーションになる FBXファイルにしてUnityへ 全てのフレームにキーがあるモーションキャプチャの編集には専用ソフトが必要 EditMotはそのためのソフトです |
![]() 図2:パース+スケールで何かをつかもうとする図 |
![]() 図4:ワンボタンで自動で全身に(指先にも) 剛体が入るのであとはモーキャプで物理棒にぶつかるだけ |
![]() 1.2.0.30 |
![]() 次バージョンに向けて 随時更新 |
1,仕様について
Windows11対応(最新Windowsに対応)
Unity3D対応(Unity上でVRoidモデルにEditMotのモーキャプfbxをリターゲットテスト済)
DirectX11対応(ビデオカードによる高速レンダリング)
FBXSDK 2020.2対応(業界互換ファイルフォーマット)
Microsoft PPL対応(マルチスレッド)
ControlFlowGuard対応(セキュリティ)
Maya対応(出力ファイルはMayaでチェック済)
bullet physics(ver2.89 [2系最後のバージョン])による物理シミュレーション対応
4KTV対応(大ウインドウ起動またはランチャーで2つまたは4つ並べて起動)
SonyゲームパッドDualSence対応
VRoid対応(VRoidのヘアに物理を自動設定)
2,2012から2023/07までの11年間の研究開発の成果
(仕事したり仕事辞めたりしながらコツコツ作りました。現在はこれ自体も仕事になっています。)
成果1、double時間による滑らか再生
姿勢データと姿勢データの間の時間の姿勢を計算して再生
動画:0.07倍速でパンチしたら物理はどうなるんだろう?
成果2、リターゲット数式の開発
[クリックで元サイズ絵表示]
リターゲット条件:
0フレームの見かけ上の姿勢(ポーズ付可)同士が同じであること
人型モデルに限らず ジョイントとジョイントの対応を指定すれば
他のキャラクターのモーションを再生可能
モデル側とモーション側で ジョイントの向きが異なっていても
リターゲット可能
モデル側とモーション側で 大きさが異なっていても 自動調整
bvhファイルとRokokoモーションライブラリのfbxでテストしてOK
成果3、物理シミュレーションとそのベイク
図3:bullet physics物理シミュレーション搭載(動
bullet physicsという外部ライブラリを導入
自動で全身に剛体をセットアップ
(髪の毛の)ジョイント名をサーチして物理自動セットアップ
VRoidの髪の毛のジョイント名にも対応して自動セットアップ
bullet physicsの物理パラメータをGUIで設定可能
物理設定を保存読み込み可能
メニューから複数設定切り替え可能
物理再生結果をベイクすることで物理挙動の環境依存性を軽減
成果4、算術ライブラリ
DirectXのD3DXが無くても困らない程度の算術ライブラリを構築
成果5,ブレないIK軸とマニピュレータ軸
マニピュレータ軸をボーン軸にオートフィット
マニピュレータ軸中心のブレないIK回転
IK中とIK後に軸がねじれない
向きたい向きを向くIK回転処理の確立
成果6,ブラシによるフルフレーム編集機能
[クリックで元サイズ絵表示]
[クリックで元サイズ絵表示]
既存の動きを壊さずに調整したりアクセントを付けることが出来る
編集の重みのカーブを物理的カーブにすることでリアルな動き
重みカーブはプラグインSDK付でカスタマイズ可能
モーションキャプチャはフルフレームモーションなのでそれに対応
複数フレームを選択してその範囲に対して変化分をブラシで盛る
体が180度回転していく範囲に対して 足を開く編集をしても
足がクロスしないような数式を開発
成果7、制限角度機能と設定簡易化
既存モーションの可動範囲をそのまま制限角度に1ボタンで設定
制限角度無しモーションを保持しながら制限角度を施して再生
制限角度付きのモーションとして確定する場合には
fbx出力時に制限角度をベイクチェックボックスにチェック
成果8,カスタムリグ機能
[クリックで元サイズ絵表示]
マウス2軸入力それぞれに対して倍率を掛けて
ジョイント3軸のうちどれかの軸を回転
GUIにて設定可能
リグからリグを倍率付きで呼ぶことも可能
例えば 手の甲のリグから5個の指のリグを呼び出すことも可能
成果9、コピー履歴機能
[クリックで元サイズ絵表示]
アプリを終了しても消失しないコピー履歴
コピー実行時に 種類や重要度指定やメモを追加可能に
GUIによる 履歴選択と履歴検索機能
コピーしたフレーム長とペーストするフレーム長が異なっていても
フィットするようにペースト
EditMotを4つ並べて起動して
複雑なコピーペースト作業をすることも可能 EditMotC4.exe
成果10、高速プレビュー対応オイラーグラフ
オイラーグラフの描画は3Dモデル描画よりも重いことが多い
プレビュー時表示を工夫することで 高速プレビュー
成果11、ファイルオープンラジオボタン履歴
[クリックで元サイズ絵表示]
ファイルオープンダイアログに
履歴をラジオボタン付きで並べてスムーズにファイルオープン
参照ボタンでフォルダにスピードアクセス
成果12、4KTV対応
[クリックで元サイズ絵表示]
図12-1、4K解像度TV接続時にウインドウ大と小を選択可能に
[クリックで元サイズ絵表示]
図12-2、小を選んだ場合のレイアウト
[クリックで元サイズの65%の大きさの絵表示]
図12-3、大を選んだ場合のレイアウト
注意) 図12-2と図12-3を見比べてわかるのですが
解像度が高くても(大を選んでも)
画面の大きさが同じ場合は文字表示がとても小さくなります
TVが小さい場合には ウインドウ小の方が快適です
ウインドウ大を選んで快適に操作するためには
それなりに大きなTVが必要
作者は49型TVをゲットして ウインドウ大で作業しています
成果13,PlayStation5用DualSenceで操作可能
[クリックで元サイズ絵表示]
UFO表示によるマウス位置お知らせ機能付き
成果14,fbx入出力
入出力ファイルとして業界互換ファイル(fbxファイル)を採用
一般的開発ソフトであるところの UnityやMayaと連携可能
fbxの仕様の内モーションに関わる部分に対して限定的対応
バインドポーズ有無、ジョイントの向き指定などにも対応
Rokokoモーションライブラリのfbxに対応
リリースの際には出力ファイルを
MayaとUnityで読み込み再生可能であることを毎回確認
成果15、パーシャル(部分的)アンドゥリドゥ
1万フレームを越えるような大きなファイルも部分処理で高速化
選択範囲と編集部分だけに対して部分的にアンドゥリドゥ
ファイルの編集がスムーズに
成果16,トラブルシューティングメモ同梱
使ってみて遭遇したトラブルへの対処法をメモにして同梱
成果17,位置コンストレイント,角度制限の併用
図5-1 EditMot 1.2.0.12 位置コンストレイント 動画
動画5-2 EditMot 1.2.0.13 角度制限+位置コンストレイント
位置コンストレイントと角度制限の併用で
無理なポーズにならない
関節が無理な方向へ曲がらない
成果18,fbxを介してUnityとカメラアニメ互換
[クリックで元サイズ絵表示]
図18-1 ver.1.2.0.22 UnityAsset(TheHunt)fbxをカメラ付読込
[クリックで元サイズ絵表示]
図18-2 ver.1.2.0.22 UnityAssetのカメラをUnity上で設定
Unity2022LTS(2022.3.3)のカメラアニメで検証
ver1.2.0.24,対称コピー
[クリックで元サイズ絵表示]
図12024-1. 対称コピー
対称コピー機能がうまくいかなくなっていたので修正
他のモデルに対称コピーするには
自モデルに対して対称コピーペースト後 他モデルにリターゲット
ver1.2.0.24,編集用ライト設定
[クリックで元サイズ絵表示]
図12024-2. 編集用ライト
カメラと回転同期有無の設定可能な8つのライトを8スロット
向き、色、強度も設定可能
ver1.2.0.24,視野内判定で高速化
[クリックで元サイズ絵表示]
図12024-3. 視野内判定
視野内判定を行い視野外の処理をスキップ
UnityAsset JapaneaseCity描画速度が2から3倍速に。
モデルのhipsがモーションで大きく移動しても正しく判定
ボーン入りボーン無し混在fbxにも対応
ver1.2.0.24,ショートカットボタン&キー
[クリックで元サイズ絵表示]
図12024-4. ツールショートカットボタン
ToolWindowのボタンはマウス移動量が多いので
近くにショートカットボタンを配置
たくさんは並ばないので カエルボタンで3相切り替え
キーボードショートカットでも変化するように
Space : プレートメニュー種類変更
C+Space : プレート変更
V+Space : ツールショートカットボタン切り替え
ver1.2.0.24,高速ツールチップ
[クリックで元サイズ絵表示]
図12024-5. 高速ツールチップ
ハイレスポンス高速表示なツールチップ
ジョイントやスプライトの上にマウスをかざすと表示
ジョイントをドラッグする前にチップを確認することで
誤操作を防止
ver1.2.0.24,カメラドリー履歴
[クリックで元サイズ絵表示]
12024-6. カメラドリー履歴
カメラドリーボタンを押すと出る履歴ダイアログ
設定をメモ付きで履歴として保存可能
カメラの位置と向きの履歴をワンクリック復元
広いアセットの編集場所へカメラを素早く移動
ver1.2.0.24,カメラツイスト
[クリックで元サイズ絵表示]
12024-7. カメラツイスト
カメラボタン左ドラッグは通常のカメラ回転
右ドラッグするとカメラツイスト回転
ダブルクリックでツイスト初期化
ver1.2.0.24,ペーストディーパー
[クリックで元サイズ絵表示]
12024-8. ペーストディーパー
モーションの部分的ペーストをスピーディーに.
ペーストしたいジョイント右クリックでPasteDeeperを選ぶと
右クリックしたジョイントとその子供ジョイントに対してペースト
ver1.2.0.25,表示グループ(DispGroup)
[クリックで元サイズ絵表示]
12025-1, 表示グループ導入前後比較図
半透明は奥から順番に描画することできれいに表示される
メッシュ単位でグループ分け
グループ番号の小さい順に描画というルールで制御
グループ番号ごとに表示オンオフ可能
作業時の編集シーンの軽量化にも役立つ
0_TroubleShootingフォルダ内にドキュメント
DispGroupについて.docx
ver1.2.0.25,LasterTransparentタグ
[クリックで元サイズ絵表示]
12025-2, LaterTransparentタグ導入前後比較図
半透明は奥から描画するのがルール
メッシュ内に複数マテリアルが存在する場合には
マテリアル単位での描画順制御が必要
LaterTransparentはそのためのタグ
プロジェクトファイル(*.cha)にタグ指定
0_TroubleShootingフォルダ内にドキュメント
パンツの表示が欠ける場合.docx
ver1.2.0.25,dest Hips起点ペースト
12025-3, 動画 モーキャプを滑らかにコピペ編集
モーションコピペ時に操作対象ボーンダイアログで
HipsをペーストしないでHipsの子供からペーストする場合
Hipsの子供の特にLegsなどは
Hips無しにペーストしても姿勢が合わないことが多い
そしてHipsの動きの手付は難しい
そういう理由で
Hipsの子供からペーストする場合には
ペーストされる側のHipsのスタート位置を起点にして
Hipsの動きもペーストするようにした
例外的な扱いだが
Hipsを完全に除外するよりは望んでいる結果に近い
ver1.2.0.25,ショートカット一覧
[クリックで元サイズ絵表示]
12025-4, ショートカット一覧表示
便利なショートカットもキーが分からなければ意味無し
すぐに確認できる右ペインにショートカット一覧表示
ver1.2.0.26,100万回アンドゥスライダー
[クリックで元サイズ絵表示]
12026-1, 100万回アンドゥスライダー
スライダーを右ダブルクリックでアンドゥ
左ダブルクリックでマウス位置の数値を設定
マウスホイールで1ピクセル分ずつスライド
センターバーのどこでもドラッグしてスライド
ドラッグ開始位置からのドラッグ分だけスライド
クリックした瞬間にスライドしないように
ver1.2.0.26,テクスチャ遅延描画順GUI
[クリックで元サイズ絵表示]
12026-2, LaterTransparent設定ダイアログ
透過テクスチャの描画順を指定
LaterTransparentリストの描画を遅らせる
リストの上から順に描画
プロジェクトファイル保存時に
chaファイルにタグとして保存
ver1.2.0.26,類似にチェックメニュー
[クリックで元サイズ絵表示]
12026-3, Similar Check Context Menu
DispGroup設定ダイアログにて
要素の上を右クリックすると
類似にチェックするためのメニューが出る
例えば
Flower_B__3に対してSimilarONすると
Flower_A_1, Flower_B__5_など
一括でチェックオン
機能としては
1つ目のアンダーバーまでをパターンとして検索
パターン部分一致でチェック
ver1.2.0.27,各計算4スレッド並列化
[クリックで元サイズ絵表示]
12027-1, 全フレーム選択後 全体移動ジョイントを回転したときの
CPU稼働率
マルチスレッド化においては
あるオブジェクトに対して書き込み中に読み込まないことが重要
各計算において
その時点で揃っている情報と求められる計算順序を考慮して
コンテクストを決定
各計算4スレッド並列化による処理の高速化
ver1.2.0.27,360度越えの制限角度
[クリックで元サイズ絵表示]
12027-2, 全体移動ジョイントを1ドラッグで何回転もした後に
1回転と少し回った角度で制限を掛けた図
1ドラッグで何回転もIK出来る状態に対し
360度を越えるグラフに対して 適切に制限角度を加える
ver1.2.0.27,グラフ上に数値表示
[クリックで元サイズ絵表示]
12027-3, オイラーグラフ上に数値表示
グラフだけでは数値を読むのに時間が掛かる
サイドウインド上の数値をみると目線が離れる
グラフ上に数値を描くことにより 即座に読むことが可能
ver1.2.0.28,ダブルバッファ姿勢計算
[クリックで元サイズ絵表示]
12028-1, ダブルバッファ物理
姿勢計算を並列化しただけでは
描画速度はそれほどには速くならない
姿勢をダブルバッファ化して
姿勢計算中に描画処理をすることにより
姿勢計算待ちが少なくなり速くなる
上図は物理計算もダブルバッファにしてSS
(背景はUnity_JapaneseCityAsset モデルはVRoid)
ver1.2.0.28,短長コピペ
[クリックで元サイズ絵表示]
12028-2, 短いコピーを長いフレームにペースト
コピー長よりも長い範囲にペーストする際に
姿勢を補間してペーストすることにより
結果が滑らかになった
例えば4フレーム長をコピーして
60フレーム長へペーストしても
ペースト結果が滑らか
実行ファイル
Vector様の
画像&サウンド-->グラフィックス関係-->3Dグラフィックの
EditMot(エディットモット)
として作品登録審査に通りました
ありがとうございます
ver1.2.0.30インストーラ公開中
オープンソースは次バージョンに向けて随時更新
ver. 1.2.0.30
Vector様にて公開開始
直らないとおもっていた不具合が直ったので出します
fbx読み書き改善
bvh2fbx改善
オイラーグラフ改善
リターゲット改善
使い方メモ
日記:UnityとVRoidとモーキャプ再生
日記:制限角度設定と制限角度とIK
180度補正に関する日記
日記:コピー履歴機能の使い方メモ
日記:アンドゥとリドゥについてメモ
日記:カスタムRigについてメモ
日記:物理ブラシについてメモ
図6:モーション編集の際のモーションブラシの説明
ブラシの形を選ぶ ピークを1つ持つ山の形がベース。
ブラシの繰り返し指定も可
編集効果を適用する割合を決めるためのブラシ
図7:モーションブラシのSaw(のこぎり)を選択し
TopPosスライダーでピークフレーム位置を調整
ピークフレームを変えるとカレントフレームはそこに移動
ポーズの編集はカレントフレームで行うので
編集中に表示されているポーズはピークフレームのポーズ
図8:Sawブラシを選択し、IK操作した後の図
フレームとは
時間のこと
1フレームは1秒というわけではなく
1秒を30分割もしくは60分割した単位のことが多い
オイラーグラフとは
ボーンの姿勢は回転と移動と拡大から成る
オイラーグラフとは横軸に時間
縦軸にオイラー角をプロットしたグラフのこと
オイラー角とは
X,Y,Z軸の順番でそれぞれの軸に関して回転させる角度
赤色の線がX軸、緑色の線がY軸、青色の線がZ軸を示す
モーション編集は
ジョイント(関節部分の丸マーク)をマウスでドラッグ
または
マニピュレータの3色リングをマウスでドラッグで行う
ドラッグするとボーンが回転する
モーションブラシとは
カレントフレーム以外の選択フレーム範囲にも
編集結果を適用する際の重みのカーブのこと
TopPos、アプライフレーム、ピーク位置は全部同じもの
同じフレームに意味がたくさんあるので呼び方が多数ある
モーションブラシの山型のピーク位置のフレームを
アプライフレーム(適用フレーム)と呼ぶ
モーション編集は選択範囲全体に適用されるが
最大効果適用という意味でアプライフレームと呼ぶ
ポーズ編集中はカレントフレームとも同じフレーム
ドラッグ終了後に何が起こるか
アプライフレームへの編集結果を
元の姿勢からの変化分に変換し
モーションブラシのフレーム範囲に対して
その変化分にウェイトを掛けて適用する
選択フレーム全体に対して山の形にモーションを盛る
この編集方法は
変化分を既存姿勢に盛る技術の開発により可能になった
もう一度、モーションブラシとは?
ジョイントドラッグ前の姿勢からの
変化分だけを選択フレーム範囲に盛る際の重みカーブ
例えば
歩くという元のモーションの
足の上げ下げや手のふりの動作を
消して上書きするのではなく
足の上げ下げや手のふりの動作の上に変化分を盛る
モーションブラシの形状を物理カーブにすることで
編集結果が物理的な動きになる
物理ブラシ
日記:物理ブラシについてメモ