本文へスキップ
LABMenu

EditMot(エディットモット) : モーキャプ変換物理編集リターゲット(bvh, fbx, Unity, Maya, VRoid対応)


このツールの概要


EditMot
モーキャプ変換物理編集リターゲット

モーションキャプチャをブラシで盛るように編集 fbxにしてUnityへ

(bvh, fbx, Unity, Maya, VRoid対応)





動画0:EditMot 基本機能 モーキャプの動きを盛れ!
編集範囲の動きを潰さずに盛るアディショナルIK搭載







  Vector様で ダウンロード
1.2.0.30
 オープンソース GitHub
次バージョンに向けて 随時更新
 















 EditMotとは何のためのツールなのか


ゲーム用モーション作成

何も無い
ところから作る のは難しい

モーキャプの動きを大げさに 

するだけなら
簡単!

元のモーションを

潰さずに盛るように
編集する方法
モーションキャプチャ
ゲーム用モーションになる

FBXファイルにして
Unityへ


全てのフレームにキーがあるモーションキャプチャの編集には専用ソフトが必要
EditMotはそのためのソフトです









 
図2:パース+スケールで何かをつかもうとする図
 
図4:ワンボタンで自動で全身に(指先にも)
剛体が入るのであとはモーキャプで物理棒にぶつかるだけ







 具体的にはどう使うのか?
いろいろ機能を付けましたが使いどころとしては
フォルダ内のモーキャプデータbvhファイルをバッチ処理でfbxに変換
Rokokoモーションライブラリfbxを編集
変換したfbxをバッチ処理で1つの形状fbxにリターゲット
髪の毛の物理シミュをモーションにベイク
カスタムウェイト(ブラシ)による
モーションの
微調整とアクセント(おおげさに)付け
VRoidにリターゲット(リターゲット:異なるモデルにモーションを適用)
fbx出力してUnityへ







   Vector様で ダウンロード
1.2.0.30
 オープンソース GitHub
次バージョンに向けて 随時更新
 











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(エディットモット)
  として作品登録審査に通りました

  ありがとうございます


  Vector様で ダウンロード
  ver1.2.0.30インストーラ公開中


  オープンソース GitHub
  オープンソースは次バージョンに向けて随時更新



ver. 1.2.0.30
Vector様にて公開開始
直らないとおもっていた不具合が直ったので出します
fbx読み書き改善
bvh2fbx改善
オイラーグラフ改善
リターゲット改善








 使い方メモ 
  日記:UnityとVRoidとモーキャプ再生

  日記:制限角度設定と制限角度とIK

  180度補正に関する日記

  日記:コピー履歴機能の使い方メモ

  日記:アンドゥとリドゥについてメモ

  日記:カスタムRigについてメモ

  日記:物理ブラシについてメモ



動画チャンネル


YouTube @ochakkolab



機能のピックアップ



図6:モーション編集の際のモーションブラシの説明
ブラシの形を選ぶ ピークを1つ持つ山の形がベース。
ブラシの繰り返し指定も可

編集効果を適用する割合を決めるためのブラシ



図7:モーションブラシのSaw(のこぎり)を選択し
TopPosスライダーでピークフレーム位置を調整

ピークフレームを変えるとカレントフレームはそこに移動
ポーズの編集はカレントフレームで行うので
編集中に表示されているポーズはピークフレームのポーズ




図8:Sawブラシを選択し、IK操作した後の図
   


フレームとは
 時間のこと
 1フレームは1秒というわけではなく
 1秒を30分割もしくは60分割した単位のことが多い





オイラーグラフとは
 ボーンの姿勢は回転と移動と拡大から成る

 オイラーグラフとは横軸に時間
 縦軸にオイラー角をプロットしたグラフのこと

 
 オイラー角とは
 X,Y,Z軸の順番でそれぞれの軸に関して回転させる角度

 赤色の線がX軸、緑色の線がY軸、青色の線がZ軸を示す




モーション編集は
 ジョイント(関節部分の丸マーク)をマウスでドラッグ
 または
 マニピュレータの3色リングをマウスでドラッグで行う

 ドラッグするとボーンが回転する




モーションブラシとは
 カレントフレーム以外の選択フレーム範囲にも
 編集結果を適用する際の重みのカーブのこと





TopPos、アプライフレーム、ピーク位置は全部同じもの
 同じフレームに意味がたくさんあるので呼び方が多数ある

 モーションブラシの山型のピーク位置のフレームを
 アプライフレーム(適用フレーム)
と呼ぶ
 モーション編集は選択範囲全体に適用されるが
 最大効果適用という意味でアプライフレームと呼ぶ
 ポーズ編集中はカレントフレームとも同じフレーム




ドラッグ終了後に何が起こるか
 アプライフレームへの編集結果を
 元の姿勢からの変化分に変換し
 モーションブラシのフレーム範囲に対して
 その変化分にウェイトを掛けて適用する
 選択フレーム全体に対して山の形にモーションを盛る

この編集方法は
変化分を既存姿勢に盛る技術の開発により可能になった





もう一度、モーションブラシとは?
 ジョイントドラッグ前の姿勢からの
 変化分だけを選択フレーム範囲に盛る際の重みカーブ


例えば
 歩くという元のモーションの
 足の上げ下げや手のふりの動作を
 消して上書きするのではなく
 足の上げ下げや手のふりの動作の上に変化分を盛る





モーションブラシの形状を物理カーブにすることで
編集結果が物理的な動きになる




物理ブラシ

 日記:物理ブラシについてメモ








ナビゲーション