モーキャプ変換物理編集リターゲット
(bvh, fbx, Unity, Maya, VRoid対応)
ずばりまとめましょう!! |
---|
いろいろ機能を付けましたが使いどころとしては フォルダ内のモーキャプデータbvhファイルをバッチ処理でfbxに変換 変換したfbxをバッチ処理で1つの形状fbxにリターゲット モーションの微調整 |
図1:MotionBrushモーションブラシ全体図
図2:パース+スケールで何かをつかもうとする図
図3:bullet physics物理シミュレーション搭載(動画)
図4:ワンボタンで自動で全身に(指先にも)剛体が入るのであとはモーキャプで物理棒にぶつかるだけ
図5:Unity3DとVRoid正式版とMotionBrushの連携(動画)
MotionBrushはモーキャプデータ変換物理編集リターゲットツールでfbx, Unity, VRoidに対応しています。
アニメーションと物理の設定に特化しています。
MotionBrushはMameBake3Dというソフト名でオープンソースにしています。
1,仕様について
Windows11対応(最新Windowsに対応)
Unity3D対応(Unity上でVRoidモデルにMotionBrushのモーキャプfbxをリターゲット)
DirectX11対応(ビデオカードによる高速レンダリング)
FBXSDK 2020.2対応(業界互換ファイルフォーマット)
Microsoft PPL対応(マルチスレッド)
ControlFlowGuard対応(セキュリティ)
Maya対応(出力ファイルはMayaでチェック)
bullet physics(ver2.89 [2系最後のバージョン])による物理シミュレーション対応
4KTV対応(大ウインドウ起動またはランチャーで2つまたは4つ並べて起動)
SonyゲームパッドDualSence対応
2,主な具体的機能について
2−1,モーションキャプチャと入出力とデータ変換
モーションキャプチャデータbvhファイル対応
フルフレームモーション方式
キャプチャデータ編集対応
bvhファイルをFBXファイルに変換
形状FBXにモーションFBXをリターゲット
FBXファイルを保存
複数モデル複数モーション対応
1つのFBXに複数のモーションを入れてMaya2022, Unity3Dで読み込むことに成功
2−2,履歴機能付きの部分的コピペ機能
コピー時にコメント記述可能
コピー履歴から選択してペースト可能
コピーフレーム長とペーストフレーム長が異なっていてもペースト可能
体全体の位置と向きそのままでポーズのコピペも可能
体の一部分だけの動きのコピペ可能
2−3,あり得ないポーズにならない(なり難い)
実際のモーキャプデータから制限角度設定することが可能
モーション再生、IK操作、物理シミュレーションに対して制限角度が効く
2−4,物理モーション
物理ブラシでかんたん物理挙動編集
2−5,物理シミュレーションは
ワンボタンで全身に剛体が入る
調整すれば30fpsでもOK(その場合は30fps用に設定する必要有り。設定ファイルを別にすることが可能。)
物理シミュレーション結果をモーションにベイクしてFBXファイルに保存可能
2−6,カスタムRig搭載
ボーン回転だけでなくRigからRigも呼ぶことが出来る
2−7,4KTVにつなげば更に便利に
4KTV接続時には縦横2倍の大きさで起動
MotionBrushC4.exeにより
2つまたは4つのMotionBrush.exeを同時に立ち上げて
複数のMotionBrush間で
モーションキャプチャデータの
任意の複数フレームの任意のボーンのモーションをコピーペースト可能
2−8,IK操作のやり直し
アンドゥー(ctrl + z)対応 : モーション編集操作を1つ取り消します
リドゥー(shift + ctrl + z)対応 : アンドゥーで取り消した操作を行います
2−9,ブラシ追加可能
モーションブラシのブラシはプラグインSDK(同梱)にてユーザーが追加可能。
2−10,トラブルシューティング
トラブルシューティングドキュメント同梱
2−11,実験的機能
実験的な機能である物理IKはiniファイルで安心のデフォルト状態無効
実行ファイル
Vector様の
画像&サウンド-->グラフィックス関係-->3Dグラフィックの
MotionBrush(モーションブラシ)
として作品登録審査に通りました
ありがとうございます
2022/05/25夕方 ver1.0.0.24 オイラー角修正。各軸90度をまたぐ際の不具合解消。
Vector様のサイトにて。
https://www.vector.co.jp/soft/winnt/art/se523002.html
使い方メモ
日記:Unity上でVRoidモデルにモーキャプデータを再生させる方法
日記:制限角度設定と制限角度下でのIKについてメモ
180度補正に関する日記
日記:コピー履歴機能の使い方メモ
日記:アンドゥとリドゥについてメモ
日記:カスタムRigについてメモ
日記:物理ブラシについてメモ
プレビュー時IK時の制限角度(48秒)
https://twitter.com/ochakkolab/status/1461487698229612545?s=20
物理シミュ時の制限角度(35秒)
https://twitter.com/ochakkolab/status/1463335325355307013?s=20
比較用動画:物理シミュに制限角度が無い場合(27秒)
https://twitter.com/ochakkolab/status/1460543856571654152?s=20
Twitter 動画(14秒)
Unity3D上でVRoid正式版のvrmにMotionBrushのfbxモーションをリターゲットしたテスト動画
https://twitter.com/ochakkolab/status/1459615015875473411?s=20
YouTube動画【モーションツール】ver1.0.0.7完成版のいいところ【完成しますた】
https://youtu.be/nApvd9___mQ
図6:モーション編集の際のモーションブラシの説明
モーションブラシの形を選ぶ(全部ピークを1つ)持つ山の形がベース。繰り返し指定も可)
編集効果を周りのフレームに適用する割合を決めるのがモーションブラシ
図7:モーションブラシのSaw(のこぎり)を選択し、TopPosスライダーでピークフレーム位置を調整
図8:Sawブラシを選択し、IK操作した後の図
説明準備
フレームとは
時間のこと
1フレームは1秒というわけではなく、1秒を30分割もしくは60分割した単位のことが多い
オイラーグラフとは
ボーンの姿勢は回転と移動と拡大から成る
オイラーグラフとは横軸に時間、縦軸に回転角度をプロットしたグラフのこと
その際の角度とは表示している姿勢になるようにX,Y,Z軸の順番でそれぞれの軸に関して順番に回転した時の角度
赤色の線がX軸回転、緑色の線がY軸回転、青色の線がZ軸回転を示す
モーション編集は
ジョイント(関節部分の丸マーク)もしくはマニピュレータの3色のリングをマウスでドラッグすることで行う
ドラッグするとボーンが回転する
ブラシについて
(モーション)ブラシとは
複数フレームを選択しその範囲に山型のピークを持つようなウェイトを持たせたもののこと
TopPos、アプライフレーム、ピーク位置は全部同じものの言い方違い
モーションブラシの山型のピーク位置に相当するフレームをアプライフレーム(日本語にすると適用フレーム)と呼ぶ
モーション編集はは選択範囲全体に適用されるが、一番大きな効果が適用されるという意味でピークフレームをアプライフレームと呼ぶ
一番大きな効果を持つフレームの姿勢は編集中編集後に3D画面に表示されている通りの姿勢
ドラッグ終了後に何が起こるか
アプライフレームへの編集結果を
元の姿勢からの変化分に変換し
モーションブラシのフレーム範囲に対して
その変化分にウェイトを掛けて適用する
つまり選択フレーム全体に対して山の形にモーションを盛る
編集フレームとは異なるフレームに編集結果をウェイト適用する
この編集方法は
編集による変化分を既存姿勢に盛る技術の開発により可能になった
もう一度、モーションブラシとは?
ジョイントドラッグ前の姿勢からの
変化分だけを
選択フレーム範囲に盛る
例えば
歩くという元のモーションの
足の上げ下げや手のふりの動作を
消して上書きするのではなく
足の上げ下げや手のふりの動作の上に変化分を盛る
このモーションを盛る編集方法を
モーションブラシとも呼んでいる
物理ブラシ
日記:物理ブラシについてメモ
おまけ
実験的機能 物理IK
数学によるドラッグ効果を物理で他のボーンに伝達しフィードバック
ユーザーがジョイントをドラッグする様子を
経過時間と共に記録
ドラッグ終了時に
時間を考慮して選択フレーム範囲に効果を適用
うまく動くには環境を選ぶので物理IKはiniファイル指定のオプションになりました
物理IKについての日記ページへのリンク
ゲームパッドによる操作に対応 2021/03/29_1 MameBake3Dのアップデート Sony PlayStation用のゲームパッドに対応(中) PS5用のDualSenceとPS4用のDualShock4に対応(中) カエルボタン押下:△ボタン プレートメニュー移動;□ボタン プレートメニュー選択決定:〇ボタン アクセル:L2,R2ボタン 決定:〇ボタン GUIを押すことが出来ます 子ウインドウ選択:L1ボタン 子ウインドウを選択した状態で GUIコントロールを選択:十字キーで移動して〇ボタンで決定 マウスカーソル移動:Lアナログスティック 階層エディタの操作(L1ボタンで階層エディタ選択後) 十字ボタンでジョイントを選択 親ジョイント選択:上ボタン 子供ジョイント選択:下ボタン シスタージョイント選択:右ボタン ブラザージョイント選択:左ボタン 親階層のブランチジョイント選択:L2あるいはR2+上ボタン 子階層のブランチジョイント選択:L2あるいはR2+下ボタン ドラッグ:〇ボタンを押しながらLアナログスティック ジョイントのドラッグ スプライトのドラッグ スライダーのドラッグ コンボボックスのドラッグ 複数フレーム選択 などが出来ます 注意事項に関してはReadMe.txtをご覧ください。 L Analog stick : move cursor pos L1 buton : Select Window For Operating MainWindow, 3DWindow, TreeWindow, ToolWindow, LongTimeLineWindow, SideWindow Triangle Button: Select Plate Kind MainGUI, Rigid, Retarget Square Button : Slect Plate No. 3DWindow : MainGUI : SpriteFK, Left, Left2nd, Bullet Physics, PhysicsIK SideWindow : Rigid : RigidParams, Impulse, GroundPlane, DampAnim SideWindow : Retarget : Retarget, LimitEuler Cross Button : Slect GUI Item 3DWindow LR: put cursor to top GUI Item around each Plate No. (Ring selectoin). each window UpDown : put cursor to each GUI Item in a Plate No. (Ring selection). 2021/04/01_1 After selecting a window by L1 button, select control by cross buttons, enter by 〇 button, drag by 〇 button + L stick. 2021/04/03_1 On R1 button, select 3d window and jump to selected joint pos. 2021/04/04 Mouse cursor is jumped to joint pos at 3dwindow on push R1 button, it jumped to prev pos on one more push R1 button. If L3 or R3 button is push, waiting cursor (and UFO) is displayed, for not lose sight of mouse position. Mouse position is moved to selecting tree elem too. (by L1 button and corss buttons) 2021/04/11_1 Keyboard Ctrl + Z : Undo Ctrl + Shift + Z : Redo GamePad L2 + X button : Undo R3 + X button : Redo 2021/04/11_3 MainMenu with GamePad AimBar moves under Main Menu Bar : R stick. And then DropDown Menu is displayed : O button. And then select menu item : L stick and O button. 2021/04/17_1 Option button at joint pos of 3dwnd as Mouse Right Click. 2021/04/24_2 (L2またはR2)とL1の同時押しでキャラクターチェンジ (複数キャラを読み込んでいる場合) If (L2 or R2) and L1 buttons is pushed, change charactor to other loaded one. 2021/04/24_3 (L2またはR2)とR1の同時押しでモーションチェンジ (複数モーションを読み込んでいる場合) When (L2 or R2) and R1 button is pushed, change Motion to other loaded one. |
2021/04/17_1
Optoin Button at joint pos of 3dwnd as Mouse Right Click.
2021/04/22
図9 新Visual ブラック背景、メニューアンダーバー(ゲームパッド用)、カーソル位置UFO通知(ゲームパッドでカーソル位置ジャンプを多用するため)
プレビュー時IK時の制限角度(48秒)
https://twitter.com/ochakkolab/status/1461487698229612545?s=20
物理シミュ時の制限角度(35秒)
https://twitter.com/ochakkolab/status/1463335325355307013?s=20
比較用動画:物理シミュに制限角度が無い場合(27秒)
https://twitter.com/ochakkolab/status/1460543856571654152?s=20
Twitter 動画(14秒)
Unity3D上でVRoid正式版のvrmにMotionBrushのfbxモーションをリターゲットしたテスト動画
https://twitter.com/ochakkolab/status/1459615015875473411?s=20
Rigモードテスト動画(48秒)
https://twitter.com/ochakkolab/status/1457216434463903746?s=20
編集確認用リファレンスポーズ機能テスト動画(1分40秒)
https://twitter.com/ochakkolab/status/1456544566698405890?s=20
Twitter 動画(19秒) 残像モーション(エフェクトではありません)
https://twitter.com/Brush0Ch/status/1439455964009095175?s=20
Twitter 動画(28秒) 全身剛体で少し横にずれつつ物理棒にかするようなアタック
https://twitter.com/Brush0Ch/status/1420602564580577288?s=20
2021/08/31
9/8夕方公開予定のver1.0.0.12の操作キャプチャ動画
基本機能であるところのオイラーグラフの拡張です
やっぱツールは基本機能よねー
https://youtu.be/Ml85Avo0vjw
2021/07/07
動画【モーションツール】ver1.0.0.7完成版のいいところ【完成しますた】
https://youtu.be/nApvd9___mQ
2021/06/19
MotionBrush ver1.0.0.4予告動画
動画【MotionBrush】リターゲット結果を簡単修正【流し込み】
https://youtu.be/AEMJ_Yp5Fig
2021/06/11
MotionBrush ver1.0.0.3予告動画
【MotionBrush】リターゲットバッチ処理機能付きました【ver1.0.0.3】
https://youtu.be/YW5fu4SdU1k
【MameBake3D】モーションにアクセントを【モーションブラシ】
https://youtu.be/WqB03hMqbgc
2021/05/01_3
動画【物理シミュのベイク】MameBake3Dで物理をベイク【フレーム範囲指定OK】
https://youtu.be/E-w6tpksu4I
2021/04/30_3
【物理IK】MameBake3Dの物理IKが保存可能に【位置コンストレイント】
https://youtu.be/EOqRf35o7u8
2021/04/05_3
動画 【MameBake3D】モーションツールをゲームパッドで動かしてみた【DualSence】
https://youtu.be/AdJPZ3Uv6-c
動画 【コンテンツ】RokDeBone2からMameBake3DへFBXを渡す【パイプライン】
https://youtu.be/ZtE31IXrwrA
動画 【カエルボタン】プレートメニューでGUIを切り替え【プレートメニュー】
https://youtu.be/GW0OVv7_0SA
動画 モーションスピードをスライダーでがちゃがちゃしながら物理を確認
https://youtu.be/5XRYzT5aao0
動画 【物理IK】質量0とポスト処理による位置コンストレイント
https://youtu.be/q9z_DhzZQYU
動画 【オイラーグラフ】まめばけ3Dのオイラーグラフ【使い方】
https://youtu.be/s0nHIjjcGdY
動画 【まめばけ3D】物理シミュレーションのマルチスレッド
https://youtu.be/cW7TWNiX-uk
動画 【まめばけ3D】大きな揺れを制限角度で小さな揺れに
https://youtu.be/3GxO7jPOdlY
動画 【まめばけ】角度制限ファイルを物理に適用
https://youtu.be/q0bY6-jNk20
形状データにモーションキャプチャのアニメーションを適用する動画を示します。
https://youtu.be/JYT5BAdj5Q4
この動画ではモデル側の骨組とモーションキャプチャ側の骨組の階層や数に多少の違いがありますが、
表形式のウインドウで骨同士の対応を指定することで計算で補って同じ動きをさせています。
動画のようにスケールが異なっていてもうまくいきます。
アニメーションの左右対称変換(対称コピー)の動画です。
https://youtu.be/YeM43To-xCg
左右対称の計算はクォータニオンに変換して行っています。
動画 【まめばけ3D】大きな揺れを制限角度で小さな揺れに
https://youtu.be/3GxO7jPOdlY
動画 【まめばけ】角度制限ファイルを物理に適用
https://youtu.be/q0bY6-jNk20
動画 【物理コンストレイント】しゃがんだりかかとを上げたり
https://youtu.be/JIXG7u1RciU
【ガウシアンで】 MameBake3D 【平滑化】
https://youtu.be/6iUwef1ZiYM
【補間で】 MameBake3D 【ノイズ除去】
https://youtu.be/l4EuXXCwXcw
MameBake3D CustomRig ダイジェスト動画。
https://youtu.be/o7UUAqea6io
Metasequoiaの形状にRokDeBone2でbvhのボーンを入れてFBX出力し
MameBake3DでそのFBXにbvhから作成したFBXをリターゲットし
モーションを再生しながらbulletの物理シミュレーションをした所。
https://youtu.be/upwvM6yBGgw
MameBake3D [新しいフレーム選択]
https://youtu.be/CfaFvEL2grM
「MameBake3D [編集オプションの説明]」動画。
https://youtu.be/cA7ceFJ2oLY
MameBake3Dの使い方。BVHからFBXへの変換の話。
オイラー角出力を抜本的に見直した結果、モーション再現率がかなり上昇しました。
perfumeの3人が踊る動画。
https://youtu.be/ONnB1jDVi6k
MameBake3Dの使い方。ベイクの話。
ベイク済とは。ベイク済モーションの編集方法について。
https://youtu.be/Z0UacTlXs7w
MameBake3D説明動画。モデルFBXにモーションFBXを適用する話。
https://youtu.be/ERaqn16GsU0
MameBake3Dの使い方。
(MameBake3DでbvhをFBXにしてMayaでモデルにバインドして
再びMameBake3Dで読み込み、アニメーションを修正するまでの説明動画)
http://youtu.be/EjGnHuXPZm0
MameBake3Dでの物理の設定の仕方。
http://youtu.be/56kIA5OsZ0M
[2018/03/29]
LGPL部分をスタティックリンクライブラリMameBake3DLib.libにまとめた。
これにより、MameBake3DLib.libの中身を変えないでリンクする場合には
他のライセンスで公開することも可能だと思われます。
fbxと同じディレクトリに内にある制限角度ファイルlmtファイルの更新。
(ツインテール以外の制限をはずしました。編集時に自由に動きます。)
[2018/04/18]
ウインドウ一体化開始。途中経過アップ。
バックバッファのずれでコントロールがクリックできない問題が起きた場合への
なんちゃってな解決策がみつかったので対応。
[2018/04/21_1]
ウインドウ一体化の続きの途中経過アップ。
少し体裁を整えました。
他のソフト(メモ帳やタスクマネージャ)をアクティブにしてもfpsが落ちなくなりました。
[2018/05/09]
タイムラインにオイラーグラフ追加。
タイムラインとオイラーグラフ高速化。
[2018/05/13]
タイムライン関係調整。
[2018/05/14]
IK操作結果を親ボーンのオイラーグラフに反映。
[2018/05/15]
オイラーグラフにペアレントチェックボックスを追加。
ペアレントチェックボックスにチェックを入れると親のオイラーグラフを表示します。
IK操作をしながらその結果をみることが可能です。
[2018/05/17]
マニピュレータのセンターをドラッグした時(複数フレーム選択後)の処理を改良中。
IK階層数(数字のコンボボックス)とIK伝達係数などが正常に機能するように改良中。
RokDeBone2は伸ばしながら回転しましたが、そのまま回転可能になりました。
[2018/05/17_2]
マニピュレータのセンターをドラッグ改良その2。
ドラッグしたボーンの位置がちゃんとマウスの位置に来るようになりました。
(マウス位置がボーンの可動範囲の場合可動範囲の場合)
[2018/05/23]
ツールウインドウの1回目のクリックのデバッグ。
ボーンをクリックしていないときのオイラーグラフは一番親のボーンのグラフに。
[2018/05/28]
実行に必要なVisual Studio2015の再頒布可能ランタイムを同梱しました。
(DirectXのランタイムは別途インストールしてください。)
複数キャラ読み込みのデバッグ(タイムラインのデバッグ)をしました。
[2018/06/02]
ボーンを右クリックしたときのメニューにボーン回転禁止メニューをいくつか追加。
物理IK時と通常IK時の両方で利用可能。
物理IK時は回転を禁止しても直接IKしたり大きな力がかかると回転することがあります。
[2018/06/06]
マニピュレータの軸の修正。
将来、制限角度を可視化することを想定し、
カレント座標系でカレントの姿勢が掛かっていない軸が必要なので修正。
ボーン軸を「X軸」に合わせるための軸の再計算のためのメニューを追加。
[2018/06/07早朝]
マニピュレータの軸の修正の続き。
デフォルトをペアレント系に。
ペアレントのベースラインを赤色で、ペアレントの現在の姿勢を水色で表示。
[2018/06/19早朝]
物理IKのデバッグ。
ある条件で物理IKがぐるんぐるん回る症状が直りました
(ただしBtApplyを押さない場合)。
[2018/06/23]
物理IKのデバッグ。
PhysicsRotボタン-->ジョイントドラッグ-->確定する場合はBtApplyボタン-->
まだ続ける場合はPhysicsRotボタン--> ...
上記のような手順で物理IKの確定が可能になりました。
マニピュレータの修正。
物理IK時もバインドポーズからの姿勢に変更。
今回の修正と関連する物理IK時の制限角度の修正については次回以降。
[2018/07/01]
物理IK時にERPスライダーの設定値を反映させました。
BtApply後の物理IKが乱れにくくなりました。
(ただし乱れにくいこととのトレードオフ的に、
足を物理IKで操作したときに微妙に胸や髪が揺れたりします。)
詳しくはreadme.txtの2018/07/01_1のところをお読みください。
現在、物理IK中はフレーム選択のし直しが出来ません。StopBtボタンを押してから選択してください。
[2018/07/21]
物理シミュ、物理IKのときの基準姿勢をシミュ開始時のポーズからバインドポーズへと変更。
オイラー角を物理の時と物理でないときとで統一していく予定。
物理IK時のERPは再びハードコードの小さい値になりました。
[2018/07/22]
物理シミュ開始時に剛体がブルンブルンしないようにしました。
範囲指定しての物理シミュが出来なくなっていたのを修正しました。
[2018/08/11]
要求メモリ量が約半分になりました。
剛体の表示の不具合を修正。
複数キャラクター読み込み時の物理シミュの不具合の修正。
[2018/08/17]
コンストレイントの強さなどの設定を追加(ハードコード)、
サンプルの制限角度を修正、デフォルトのERPを変更。
上記変更にて物理シミュが改善(開始時の微妙な動きも可能。全体的にぶるんぶるんし過ぎないように。)
[物理の時とそうでないときのオイラー角の統一とその検証はまだ途中の段階]
[2018/08/19]
物理のときとそうでないときのオイラー角と角度制限を統一。
ペアレント系のマニピュレータの軸を基準にしたオイラー角で角度制限。
*.lmtファイルで制限角度を設定する際にもペアレント系のマニピュレータ軸を基準にしたオイラー角。
検証中。
[2018/09/01]
まめばけ3Dのお知らせ
あれからほとんど検証作業はしていませんが、
ツインテールがマニピュレータのXYZそれぞれの軸で回転することくらいは確認済です。
FBXファイル名.lmtという名前のファイルに制限角度を記述するのですが
現在ツインテール部分は制限角度のY軸が±15度で他の軸が±5度になっています。
よってツインテールはキャラクターの正面に対して主に前後に揺れるようになっています。
Z軸を±15度にして他の軸を±5度に変更すると横に揺れます。
通常IKのときと物理IKのときと物理シミュのときに同じように機能するようにしたつもりです。
物理シミュはbullet physicsの角度制限を利用したので
fpsと計算回数が同じ環境ならほぼ同様に角度制限が働くと思われます。
という状況。
[2018/09/09]
統一オイラー角による角度制限の検証と修正。
PhysicsRot()とPhysicsRotAxisDelta()の検証と修正。
まだ途中。
[2018/09/12]
オイラー角による角度制限の検証と修正のつづき
物理IKのとき(PhysicsRot()とPhysicsRotAxisDelta())の検証と修正
さらに検証が必要。
[2018/09/16_1]
オイラー角による角度制限の検証と修正のつづき
物理IKのとき(PhysicsRot()とPhysicsRotAxisDelta())の検証と修正
物理IKについて
VisualStudioの出力タブで確認するとオイラー角は合ってきた。
回転の中心がおかしい部分がある(かかとドラッグ)。
腕はおおむねうまくいっているようにみえる。
さらに検証が必要。
[2018/09/22_1]
オイラー角による角度制限の検証と修正のつづき
InfoWindowを追加しました。
PhysicsIKのときの情報をInfoWindowにテキスト表示しました。角度制限時のオイラー角を確認できます。
[2018/09/24_1]
オイラー角による角度制限の検証と修正のつづき
InfoWindowアップデート
古いデータ-->上。新しいデータ-->下。
5000行制限。
ホイールでスクロール。
最新行を最下行に表示している時にオートスクロール。
終了時にinfo_(date).txtに保存。
[2018/09/25_1]
オイラー角による角度制限の検証と修正のつづき
オイラー角は通常IK時のものを利用して物理IKをした。
通常IKと物理IKとでオイラー角の制限角度が統一された。
InfoWindowは制限行数を50,000行に。
通常IK時にもInfoWindowに出力。
引き続き検証する。
[2018/09/29_1]
オイラー角による角度制限の検証と修正のつづき
物理IK時の軸指定IKのデバッグ
軸指定操作の時にも物理IKがだいぶまともに動くようになりました。
物理IKのときにもオイラー角はほぼ指定した軸のみが変化しています。
[2018/10/07_1]
オイラー角による角度制限の検証と修正のつづき
CalcAxisMatXの修正(指の剛体が暴れにくいように修正)
この修正は初期姿勢の修正と同じ意味です。
古いデータは読み込み後、「編集・変換」->「ボーン軸をXに再計算」メニューで初期姿勢を再計算後
Fileメニューからプロジェクトごと保存しなおしてください。
InfoWindowの出力をマルチスレッド化
通常IK時に出力が激しくて重くなっていたのを改善
物理IKの修正
ゼロフレーム以外での動作を改善
位置コンストレイントの修正
ゼロフレーム以外での動作を改善するために修正中。途中。
右クリックメニューに多数追加
引き続き検証する。
[2018/10/10_1]
オイラー角による角度制限の検証と修正のつづき
位置コンストレイントの実装方法の変更の検討と試験中。
ボーンの剛体のMass0(質量ゼロ)のオンとオフによって位置コンストレイント効果を得る。
右クリックメニューにMass0関連メニュー多数追加。
例えば、まず「すべてのジョイントのMass0 ON」メニューを選びます。
次に操作したいジョイントを選択してから「このジョイントより下層のMass0 OFF」メニューを選びます。
この状態で物理IKをするとMass0がオフのボーンだけが動きます。
元に戻す場合は「すべてのジョイントのMass0 OFF」メニューを選びます。
ボーンがぶれずにコンストレイント可能である。
引き続き検証する。
[2018/10/15_2]
オイラー角による角度制限の検証と修正のつづき
ゼロフレーム以外でも物理IK開始時に姿勢が乱れなくなりました。
引き続き検証する。
[2018/10/16_1]
オイラー角による角度制限の検証と修正のつづき
Physics MVの効果を元の物理的な効果に戻しました
体の中心をドラッグして手を固定して体を動かしたり出来ます
Kinematicのオンオフのメニューを追加
物理のオンオフとも言えます。
操作ボーン以外のKinematicをオンにすると
Physics Rotの際には動きません
Physics MVの際にはドラッグしただけ「ゆらゆらせずに」一緒に動きます
姿勢によっては物理IKがゆらゆらする現象を軽減
物理IK時に腕を動かすと指が大きくゆらゆらすることがありますが
少しずつ動かしてドラッグ終了地点でマウスボタンを押したまま待っていると元の形状に戻ります
引き続き検証する。
[2018/10/23_1]
オイラー角による角度制限の検証と修正のつづき
物理IK時のKinematic指定(右クリックメニューで指定)部分の動作の修正
Kinematic指定部分は形が崩れないようにしました
例えば、手の甲より下層に対してKinematicを指定してから
腕を物理IKすればてのひらの形が崩れずに物理IK可能
引き続き検証する。
[2018/10/25_2]
オイラー角による角度制限の検証と修正のつづき
物理IK時に関節に隙間が出来過ぎないようにしました。
操作ボーンから下層方向と上層方向そしてトップダウンでPost処理することにより実現
物理IK時に操作していないボーンが不自然にゆらゆらする現象が無くなりました。
Mass0効果の修正が必要な状態
物理IKはドラッグのスピード(マウスを動かすスピード)によっても振舞が大きく変わります。
引き続き検証する。
[2018/10/26_1]
物理IKの検証と修正のつづき
物理IK時の位置補正計算の修正
物理IK時に向きの補正計算も実装
物理IK時に右クリックメニューのMass0のオンをすることで位置コンストレイントを実現
物理なのでゆっくり動かさないと乱れやすい
Kinematic指定しないでも指などの形が崩れなくなってきた
Mass0で位置コンストレイントをする場合に不可能なくらい位置が離れる場合を除いて、
関節に隙間があきすぎることはほとんどなくなった(物理IK時)
未実装なのはMass0とKinematicの両方を同じボーンに設定した場合
引き続き検証する。
[2018/10/30_1]
物理IKの検証と修正のつづき
PhysicsMV(物理IKの移動機能)はそーっと動かさないと破綻する場合が多いことが分かった
Edit Physics Rateスライダーの初期値を1.0から0.1に修正
位置コンストレイントはまだ課題が多い状態
物理IKは実験段階なのでワンドラッグお試し状態です
破綻しても余白をクリックすることで元に戻ります
引き続き検証する。
[2018/11/07_1]
物理IKの検証と修正のつづき
Kinematic設定時の物理IKのデバッグ
質量ゼロ(Mass0)設定時の物理IKのデバッグ
質量ゼロとKinematicを両方同じ部分に設定した場合には質量ゼロを優先(フラグレベルで)
Mass0による位置コンストレイントの調整中。
物理IKは実験段階なのでワンドラッグお試し状態です
破綻しても余白をクリックすることで元に戻ります
引き続き検証する。
2020/10/31
FBX出力修正
AppleのReality Converterでusdzにする方法は
readme.txtの2020/10/31のところを参照
FBX出力修正(2020/11/08)
AppleのReality Converterでusdzにする方法は
readme.txtの2020/11/08のところを参照
FBX SDKのバージョンを2018から2020.0.1にバージョンアップ(2020/12/17)
[2021/01/26]
FBXSDKを2018.1.1に戻しました(Debugビルドでリンクエラーが出るので)
複数フレーム選択時にオイラーグラフ部分に編集倍率(EditScale)を表示しました
EditScaleとはメインウインドウにおけるジョイントのドラッグアンドドロップの効果を
どのフレームにどれだけ適用するかをあらわします
まずは一番単純な線形の山の形のEditScxaleにしました
山が高いフレーム部分にはたくさん効果を与え、山が小さい部分に対しては効果を小さくします。
EditScaleの効果が0の部分は元の姿勢になります。
つまり相対的な編集効果です。
EditScaleの形状に関しては
スプライン曲線や矩形など複数用意して選べるようにする予定です。
[2021/01/27_1]
EditScaleのバージョンアップ
姿勢適用位置スライダーに対応
EditScaleの形状をコンボボックスで
"線形山"(Mountain of Linear)と"Cos(x+PI)山"(Mountain of Cos)から選べるようにしました
IKの効果をみるにはドラッグしているジョイントの親ジョイントのオイラー角をみます
オイラーグラフの"ParentEuler"チェックボックスにチェックを入れると
ジョイントの選択はそのままで選択したジョイントの親のオイラー角を表示します
[2021/01/30_1]
EditScaleの修正
オイラー角の最大値も最小値も0度の場合に対応
[2021/02/03_1]
MameBake3Dバージョンアップ
オイラーグラフのParentEulerチェックボックスをデフォルト状態でオンにしました
2021.02.11
MameBake3Dのバージョンアップ
ControlFlowGuardをGuardに設定してビルドしました
2021/02/16
MameBake3Dのバージョンアップ
DirectX11対応
FBXSDK 2020.0.1対応
2021/02/17_2
MameBake3Dのバージョンアップ
DDSファイルに対応
2021/02/21_1
MameBake3Dのバージョンアップ
Save-->Projectメニューのダイアログで参照を選ぶと固まる不具合に対応
2021/02/22
MameBake3Dのバージョンアップ
3Dウインドウ下部の5枚のスプライトフレームでGUIのオンオフ
2021/02/24_1
MameBake3Dのバージョンアップ
カエル(Frog)のスプライトをクリックすると
メインウインドウのGUIコントロールメニューとサイドウインドウ選択メニューが切り替わります
サイドウインドウ選択メニューには以下の4種類があります
Rigid, Impulse, Ground, Damp
サイドウインドウ選択メニューはモデルデータを読み込んでボーンをクリックして選択しているときのみ機能します
サイドウインドウの上部のボタンから表示ウインドウを切り替えることも可能
Bullet Physicsシミュレーション時のパラメータの決め打ち解除について
開発の途中から
適切なパラメータ値を探すために
previewflag 5, 6の再生時にはパラメータを決め打ちして再生していた
そのためRigidParamdDialgで設定した値は
物理シミュレーション時には上書きされていた
今回、RigidParamsDialogを前面に出すことになって
previewflag 5 の再生時にはパラメータを決め打ちを止めた
よって挙動が変わるかもしれない
決め打ちの部分は
該当プログラム個所に
//決め打ち
というコメントをしておいたので
決め打ちパラメータ値を知りたい場合にはみてください
2021/02/26_1
Bullet Physicsのシミュレーション結果が以前と同じになるように修正
VSYNC設定
決め打ちパラメータを保存して新しいサンプルデータとして追加
Media/TestData_20210226_1
2021/03/04_1
リターゲットウインドウをサイドウインドウに配置
カエルボタンを1回押すと物理パラメータメニュー
カエルボタンをさらにもう一回押すとリターゲットメニュー
カエルボタンをもう一回押すとメインGUIオンオフメニュー
2021/03/04_2
VisualStudio2019対応
FBX2020.2対応
Intel oneAPI Base Toolkit v.2021 tbb対応
ControlFlowGuard対応
2021/03/05_1
メモリリークに関する修正(readme.txtをご覧ください)
2021/03/06_1
プレートメニューにLimitEuler(オイラー角度制限)を追加
プレートメニューのプログラムコードをリファクタリング
2021/03/08_1
サンプルデータのリグ設定ファイルの修正
なぜか設定ファイルが間違っていたのを修正
両手首と両足首に操作用のリグがあります
リグモードを抜けるにはメインウインドウの向かって右上の水色円ボタンをクリック
2021/03/09_1
GUIText in English.
2021/03/09_2
Rig Sprite is displayed when RightClickRigExeMenu si selected too.
2021/03/09_3
On Selecting RightClickRigMenu, RigSettingWindow is set to SideWindow.
At First, PlaceFolderWindow is set to SideWindow.
2021/03/10_1
Keep Rig Target until click Red Rig Sprite.
2021/03/12
Fix problem about Normal of FBX2020 saved with Maya2020.
Treatment of Normal Mapping Mode of FBX 2020.
Before Loading by Maya FBX File which is saved by MameBake3D, run next
MEL script.
FBXProperty "Import|IncludeGrp|Geometry|OverrideNormalsLock"
-v 1
Maya2020, Maya2018で保存したFBXファイルをMameBake3Dで読み込むと法線がおかしい不具合を修正
法線のマッピングモードに対応
MameBake3Dで保存したFBXファイルをMayaで読み込む場合、読み込む前に次のMELスクリプトを実行
FBXProperty "Import|IncludeGrp|Geometry|OverrideNormalsLock"
-v 1
2021/03/15_1
複数モーションが入っているFBXファイルの読み込み問題を修正。
2021/03/16_1
bvhからコンバートしたFBXファイルを読み込んでそれを保存読み込みしたときに
モーションがおかしい不具合を修正
Fix problem about saving FBX file which is made from bvh file.
サンプルフォルダのサンプルを更新
複数モデル複数モーション対応サンプルファイル
Update Sample File in Media Directory.
Multible models, multiple motions.
MameBake3Dにおいては
編集したいモデルはメインウインドウのメニューバーのmodelメニューで選択
編集したいモーションはmotionメニューで選択
Select editable model by model menu, select editable motion by motion
menu of MameBake3D.
Maya2020で複数モーション入りのFBXを読み込むと複数アニメーション分のジョイント情報がある しかし複数のアニメーションレイヤを作る方法がまだわからず調査中
キャラクタセットも作らないといけないのかもしれない
まだよく分からん
Now chekking about operations of CharacterSet and AnimationLayer of Maya2020.
Now ?????.
2021/03/16_2
MameBake3Dの複数モーション入りFBXサンプルをMaya2020で読み込むには
サンプルFBXを読み込みメニューから読む、
その後アニメーションエディタのタイムエディタで同じFBXを合成オプションで読む
タイムエディタのコンボボックスでモーションを選択可能
今日のサンプルデータをMaya2020で読み込むことに成功
Result of checkking about loading FBX having multiple AnimStack,
read FBX file and open same FBX by Animation Time Editor using Synthetic
option.
It is success to read FBX sample of today by Maya2020.
2021/03/16_3
Init m_motionkey[0] On Constructing.
物理シミュレーションをするまえにメインウインドウのメニューバーのrigidメニューで
剛体設定ファイル refファイルを選択してください
Select ref by rigid menu of MainWindowMenuBar before Simulating Bullet
Physics.
2021/03/18
キャラクターごとに物理パラメータファイルを適用。モデル選択後にrigidメニューとrgdメニューで選択。
Each physics paramster file each character, select using rigid menu and
rgd menu after select model.
bullet physicsのプログラムソースと合わせるためにElasticityをRestitutionに変更。
Replace Elasticity to Restitution as in bullet physics.
2021/03/19
std::tr1::functionをstd::functionに変更
Bullet Physicsのバージョンをver2.86からver2.89へアップ(ver2系の最後のバージョン?)
マルチスレッドライブラリをMicrosoftのPPLに変更
マルチスレッドのテストをして確認
2021/03/19_3
Bullet Physics ver2.89のメモリリーク修正
Fix Memory Leak of Bullet Physics ver 2.89.
(readme.txt)
2021/03/21
CMotionPointとEulKeyのアロケート時にブロック単位のアロケートをするように修正。
Use memory blocks on allocating CMotionPoint and EulKey.
複数キャラ複数モーションを読み込んだ際にオイラーグラフが表示されない不具合を修正。
Fix EulerGraph problem that euler is not displayed at cases of loading
multi characters multi motions.
2021/03/22_1
オイラーグラフのオイラー角を検証していた時の計算法に修正
Fix CModel::CalcBoneEul(-1).
剛体ファイルの読み込みと剛体オブジェクト作成について修正
Modified loading ref files and CreateRigidElem.
2021/03/22_2
1つめの剛体ファイル選択時の剛体表示についての修正
Fix loading ref files and CreateRigidElem.
2021/03/23_2
Use memory blocks on allocating CRigidElem for cache hit.
2021/03/23_1
Use memory blocks on allocating CBone for cache hit.
2021/03/24_1
Change number of LogLines of CInfoWindow from 500,000 to 6,000.
Change LogLines of CInfoWindow to ring buffer.
CInfoWindowのログ用メモリの行数を500,000行から6,000行のリングバッファに変更
Change PICKRANGE from 6 to 16.
Change pickmode to relative mode.
ピックの誤差許容範囲を6ピクセルから16ピクセルに変更。
ピックモードをマウス位置相対モードに変更。
2021/03/29_1
Sony PlayStation用のゲームパッドに対応(中)
PS5用のDualSenceとPS4用のDualShock4に対応(中)
カエルボタン押下:△ボタン
プレートメニュー移動;□ボタン
プレートメニュー選択決定:〇ボタン
アクセル:L2,R2
決定:〇ボタン
GUIを押すことが出来ます
子ウインドウ選択:L1ボタン
子ウインドウを選択した状態でGUIコントロールを選択:十字キーで移動して〇ボタンで決定
マウスカーソル移動:Lアナログスティック
階層エディタの操作(L1で階層エディタ選択後)
十字ボタンでジョイントを選択
親ジョイント選択:上ボタン
子供ジョイント選択:下ボタン
シスタージョイント選択:右ボタン
ブラザージョイント選択:左ボタン
親階層のブランチジョイント選択:L2あるいはR2+上ボタン
子階層のブランチジョイント選択:L2あるいはR2+下ボタン
ドラッグ:〇ボタンを押しながらLアナログスティック
ジョイントのドラッグ
スプライトのドラッグ
スライダーのドラッグ
コンボボックスのドラッグ
複数フレーム選択
などが出来ます
注意:ゲームパッドはUSB接続して使用する必要があります。
注意:ゲームパッド操作用のライブラリはGitHubのヒロッチさんのオープンソースを編集して使いました。
ヒロッチさんのゲームパッドライブラリのライセンスはReadMe/DS4HidInput_LICENSE.txtに置きました。
注意:現在はまだ対応中の段階です。
注意:ポップアップメニューの選択は出来ますが決定はまだできません。
ポップアップメニュー選択決定はキーボードのエンターキーを押してください。
注意:〇ボタンを一度押してもGUIを押せない場合があります。その場合にはもう一回〇ボタン。
注意:ウインドウ右上の3つのボタン(最小化、最大化、終了)はマウスで押してください。
注意:終了できなくなった場合にはタスクマネージャでFBXアニメーションツールを選択して終了してください。
2021/03/29_2
マウスドラッグ改善
ゲームパッド使用時においても
ドラッグ中にマウスがウインドウ外に出た場合にドラッグ効果が続くようにしました
Improve mouse drag operations.
In case of using GamePad, effect of mouse drag is continued even if mouse
is out of window.
2021/03/30_1
マウスキャプチャーに関する修正
十字キーでスライダーを選択した際のマウスポインタの位置の修正
リファクタリング
スプライトの配列アクセスにかかわる部分をenumに置き換え
Modify operation of mouse capturing.
Fix problem of mouse position on selectiong a slider by cross button.
Refactoring source code concerned with access of sprite array.
2021/04/01_1
ゲームパッド(Sony DualSence, Sony DualShock4)対応
L1でウインドウを選択後
十字ボタンでコントロール選択
〇ボタンで決定
〇ボタン+Lスティックでドラッグ
After selecting a window by L1 button,
select control by cross button,
enter by 〇 button,
drag by 〇 button + L stick.
2021/04/02
カメラスプライトのドラッグ処理の修正
真上と真下でくるくる回る問題を修正
ゲームパッドをつないだ状態でマウスでドラッグすると
マウスが3Dウインドウの外に出たときにキャプチャーが解除される問題を修正
ゲームパッドのL1ボタンで3Dウインドウを選択し(ウインドウ右上に黄色ランプ点灯)
矢印ボタンを押してカメラスプライトにもジャンプできるように修正
カメラスプライトからGUIへのジャンプは十字左右ボタン
GUIプレートの種類をまたぐ場合のマウスジャンプも十字左右ボタン
ただし□ボタンと〇ボタンでGUIを表示している状態である必要有り。
2021/04/03_1
ゲームパッド対応続き
R1ボタンで3Dウインドウを選択して選択中のジョイントの位置にマウス位置ジャンプ
On R1 button, select 3d window and jump to selected joint pos.
2021/04/03_2
ゲームパッドR1ボタンのジョイント位置修正
Fix mouse cursor pos on R1 button.
2021/04/04
R1ボタンを1回押すと3Dウインドウのジョイント位置へジャンプ、
もう一回押すとジョイント位置へジャンプする前の位置にジャンプ
L3ボタン、R3ボタンを押している間、マウス位置にウェイティングカーソルを表示
マウスカーソルを見失わないための機能
L1ボタンを何回か押して階層エディタ選択した後の十字ボタンによるジョイント階層選択時にマウスも追従
Mouse cursor is jumped to joint pos at 3dwindow on push R1 button,
i t jumped to prev pos on one more push R1 button.
If L3 or R3 button is push, waiting cursor is displayed, for not lose
sight of mouse position.
Mouse position is moved to selecting tree elem too.(by L1 button and
corss buttons)
2021/04/05_1
L3, R3ボタン(アナログスティックを)を押したときにマウス位置にUFOを表示しました
設定用ウインドウにも3Dウインドウにも出ます
For not lose sight of mouse pos, UFO appear at window on L3 or R3 button.
L3(R3) button is pushed when L(R) analog stick is pushed.
2021/04/05_2
L3, R3ボタンを押したときの機能の改良
設定ウインドウ上でもボタンを押している間半透明アニメをするようにした
設定ウインドウ上でも背景色を透過して描画した
UFO Transparent and AlphaBlendAnimation at mouse pos while L3 or R3 is
pushed.
2021/04/07_1
ゲームパッド対応の続き
Rスティック左右でメインウインドウのメニューバー選択
スティック左右でドロップダウンを出して、Xボタンでキャンセルしてを繰り返して左右へと進む
ドロップダウンが出たらLスティックでマウス位置移動し〇ボタンで決定
つまり
メインメニューバードロップダウン:Rスティック
ドロップダウンキャンセル:Xボタン
マウスカーソル移動:Lスティック
メニュー選択決定:〇ボタン
DropDown main menu : R stick.
Cancel DropDown : X button.
Move Mouse Cursor : L stick.
Enter button : 〇 button.
2021/04/10
ゲームパッド対応の続き
プロジェクト読み込みに成功するたびにTempフォルダにプロジェクトパスを記録
FileのOpenメニューから出すダイアログをゲームパッドで押せるようにした
ゲームパッドからプロジェクトを読み込めるようにFileのOpenメニューに履歴パスのラジオボタンを配置
Rスティック上下で現在のメインメニューバー項目、左右でひとつ左または一つ右のメインメニューバー項目
L2,R2のアクセル機能はLスティックのマウス移動を加速。L2とR2の両方を押しているとさらに加速。
Open Project History is saved at temp directory.
It is enable that buttons of open file dialog is pushed using a GamePad.
Current menu is selected with up and down of R stick.
Accel function of L2 or R2 is double effective by both is pushed.
2021/04/11_1
ゲームパッド対応の続き
Undo, Redoが動かなくなっていたのを修正
Keyboard
Ctrl + Z : Undo
Ctrl + Shift + Z : Redo
GamePad
L2 + X button : Undo
R3 + X button : Redo
画面外へドラッグするとドラッグが中断する問題を再び修正
2021/04/11_2
補足:Undo, Redoモーション編集に関するUndo, Redo。
FileのOpenメニューのプロジェクトオープン履歴に重複するものを表示しないように。
Undo and Redo is concerned with editting of motions.
Exclude same project entries of OpenDialog history.
2021/04/11_3
MainMenu with GamePad
AimBar moves under Main Menu Bar : R stick.
And then DropDown Menu is displayed : O button.
And then select menu item : L stick and O button.
2021/04/12
Operation with GamePad
Can Select DropDownMenuItem from GUI buttons with GamePad.
Can push Windows Dialogs form GUI buttons with GamePad.
Can push OrgWindows from GUI buttons with GamePad.
2021/04/13_1
Ring GUI selecting using CrossButtons.
Move Mouse Cursor using Analog L stick.
Num of open history is changed from 3 to 5.
2021/04/15_1
Operation with GamePad
HiLite Window on SelChangeGUIPlate.
Put cursor pos to ctrl pos of HiLite window on SelChangePlate.
2021/04/16_1
Fix problem that cursor moves to 3DWND on drop down Main Menu.
2021/04/17_1
Option button at joint pos of 3dwnd as Right Click Menu.
Can push buttons in a group box.
All? of Dialogs exclude GetFileNameDialog operation can be enable with
GamePad.(perhaps)
2021/04/18_1
Adjust GUI placement of 3DWND.
Set default value of PhysEditRate from 0.1 to 1.0.
(PhysRot and PhysMv works effectively.)
Add PhysicsIkStop button.
2021/04/18_3
Fix problems that timelineWnd close if click timelineWnd before loading model.
Fix problems that timelineWnd is resized Unintentionally.
Enable all buttons of PlayerButtons of LongTimeLineWnd.
(history buttons of selected frames)
If GamePad is not connected, mouse cursor pos don't jump to GUI pos.
2021/04/20_1
Operation with GamePad is enable
during MessageBox and GetOpenFileName and GetSaveFileName too.
2021/04/20_2
Replace GetSaveFileName to GetOpenFileName, GamePad OK!
2021/04/22_1
プロジェクトファイル保存時にもゲームパッドを使用できるように。
テキスト部分プッシュで選択
>マーク部分プッシュでツリー展開表示
GamePad is enable on SHGetSpacaialFolderLocation too.
Title of MessageBox is one of error!!! or warning!!! or check!!!.
2021/04/23_1
モデルの削除と削除後の読み込みに関する不具合を修正
Fix Reuse bone problem on deletion models and loading models.
2021/04/24_1
モデルパネルとオブジェクトパネルの表示を修正しゲームパッドでも利用できるように。
モデルパネルとオブジェクトパネルは 表示(disp)メニューのメニュー項目から表示。
disp-->model panel menu is enable.
disp-->object panel menu is enable.
ModelPanel and ObjectPanel with GamePad OK.
2021/04/24_2
(L2またはR2)とL1の同時押しでキャラクターチェンジ(複数キャラを読み込んでいる場合)
If (L2 or R2) and L1 buttons is pushed, change charactor to other loaded
one.
2021/04/24_3
L2またはR2)とR1の同時押しでモーションチェンジ(複数モーションを読み込んでいる場合)
When (L2 or R2) and R1 button is pushed, change Motion to other loaded one.
2021/04/25_1
キャラクターとモーションの名前をメインウインドウのタイトルに書くように。
Current CharactorFileName and MotionName is written at MainWindowTitle.
2021/04/26_1
Result of PhysicsRot and PhysicsMv is applied to selected frame range.
Editiing data of PhysicsIK is started to record when PhysicsRot or PhysicsMv
button is pushed and Joint is dragged.
Recording of PhysicsIK is finished and Apply result to selected frame
range when mouse LButtonUp.
Apply rate is enable when PhysicsIK too.
物理IKの結果が選択フレームに適用されるようになった。
PhysRotまたはPhysMvボタンを押してからジョイントをドラッグすると編集内容が記録され始める。
編集内容の記録はマウス左ボタンをアップした時に終了し、結果が選択フレームに適用される。
選択範囲のブラシの山の頂点の位置を決めるためのApplyRateスライダーは物理IKのときも有効に働く。
2021/04/26_2
Debug a problem that first time of PhysRot and PhysMv is fail.
For keep hand figure, it is needed to set Hand KinematicONtoLower with
RightClickMenu.
初回の物理IKが失敗する問題をデバッグ。
物理IKの間、手の形を保つためには、
手首を右クリックしてメニューを出しKinematicONtoLowerJoitsを設定する必要有り。
2021/04/30_1
メインウインドウのタイトルにカレントのRigidElemファイル(*.ref)名も表示しました
設定したはずの物理の動きと異なる場合にはカレントのrefファイルが異なることを疑います。
refファイルはメインメニューの剛体設定切り替え(select rigid)メニューで選択します。
Current RigidElemFileName(*.ref) is displayed at MainWindowTitle.
If behavior of physics simulation is diffrent form what you expected,
you will doubt current ref selection.
For selecting current ref file, there is the "select rigid"
Menu at MainWindowMenu.
2021/04/30_2
物理IKのデバッグ。いつもの式を使うようにした。
物理IKで手が変にならないように
手(名前にHandあるいはElbow_branchが含まれるジョイントより子供のジョイント)に
自動でキネマティックフラグをセット。
Debug CModel::ApplyPhysIkRecReq using ordinary formula.
Auto Hand KinematicFlag.
2021/04/30_3
【物理IK】MameBake3Dの物理IKが保存可能に【位置コンストレイント】
https://youtu.be/EOqRf35o7u8
2021/05/01_1
物理シミュレーションをモーションに書き出せるようにしました
メインウインドウのBullet PhysicsプレートをクリックしてGUIを表示し、
BT RECボタンを押すと再生保存します。保存には少し時間がかかります。
物理シミュレーションの保存の動画は後ほど撮る予定
Simulation result of bullet physics is saved on click BT REC button.
moview about Simulation result of bullet physics will be up later.
2021/05/01_2
物理シミュレーション中にアンドゥをすると形が崩れるので
アンドゥーの際に物理シミュレーションを自動で止めるようにしました。
Call StopBt OnFrameUndo.
2021/05/01_3
動画【物理シミュのベイク】MameBake3Dで物理をベイク【フレーム範囲指定OK】
https://youtu.be/E-w6tpksu4I
2021/05/03_1
オープンプロジェクトファイル履歴を改良
ウインドウタイトルにキャラクターのインデックスも表示
Improve OpenProjectFileHistory.
Display charactor index at WindowTitle too.
2021/05/04_1
file->bvh2fbxメニュー実行の際に落ちるようになっていたのを修正
bvhファイルはMotionBuilder friendlyのものに対応することにした
カーネギーメロン大学のbvh file : MotionBuilder friendlyで変換再生テストOK!!
1つの表示オブジェクトに対する最大クラスター数を70から200に変更、ビデオカードのシェーダー定数の 数の問題になり得るがしょうがない。
Debug function of file->bvh2fbx menu.
bvh2fbx function is tested ok using Motionbuilder-friendly BVH conversion
release of
the Carnegie-Mellon University (CMU) Graphics Lab Motion Capture Database.
Max Num of Clustor for a object is changed from 70 to 200, it may cause
a problem of num of
videocard's shader constants.
2021/05/07_1
FBXファイルのアニメーション読み込み部分を4スレッドのマルチスレッド化
同期をとったので速くはならなかったが処理の負荷が分散した
Four threads loading of FBX Animation.
It is not faster than prev version, but Load distributed.
2021/05/06_1
fbxファイルの読み込みをFbxStreamを使ってバッファから読み込むように修正
しかし、読み込み速度のボトルネックではなかった(ほとんど速くならなかった)
ブロックアロケート修正(前回最後尾データをリリースした場合の考慮)
Use FbxStream on load FBX file.
Modify block alloc of CMotionPoint, CBone, CRigidElem and EulKey.
2021/05/08_1
マルチスレッド読み込みの修正(エラーにならないように)
一番重い関数がわかったが、その関数のマルチスレッド化は難しいこともわかった。
FBX SDKのMDとリンクした。
Modify multiThread loading of FBX animation.
Link Fbx md library.
2021/05/10_1
FBXのマルチスレッド読み込みはSDKに任せることに(そのままでも複数CPUが動いていました)。
アニメーション読み込み時、メッシュの行列とスケルトンの行列読み込み関数を別にした。
EvaluateGlobalTransformはEvaluatorから呼び出すように。
MeshTransform at GetMeshAnimReq, SkeletonTransform at GetFBXAnimReq.
Use FbxAnimEvaluator.
2021/05/11_1
Loading time is about three times faster than prev version.
Add fbx animation loading cache files named *.fbx.anim*.egp.
If laoding fbx file's rev is rev. 2.3 and comment of fbxinfo is match
with cache file,
cachefile will be loaded.
For fbx file's rev becomming rev.2.3, it is needed that project file
is saved from file menu.
For creating cache file, it is needed that rev2.3 fbx file is loaded
once at least.
If fbx file is changed, it is needed that cachefile is remaked.
読み込みが以前と比べて約3倍速くなった。
FBXアニメーション読み込みのキャッシュファイルを追加。
キャッシュファイルの名前はFBXファイルの名前の後に.anim*.egpを付けたもの
rev 2.3のFBXファイルが読み込まれFBXINFOのコメントがキャッシュファイルと一致した時、
キャッシュファイルが読み込まれる
FBXのrevをrev. 2.3にするためにはfileメニューでプロジェクトファイルを保存する必要がある
キャッシュファイルを作成するためには、rev. 2.3のfbxファイルを少なくとも一度読み込む必要がある
FBXファイルの内容が更新された場合、キャッシュファイルも作り直す必要がある
2021/06/16
MotionBrush ver1.0.0.3公開
リターゲット設定ファイルの保存と読み込み
GUIで設定したリターゲットのジョイント対応表をファイルに保存、読み込み可能。
リターゲット設定ファイルの拡張子は".rtg"
配布ディレクトリのRetargetSettigFileExampleに設定例有り。
FileMenuにマルチスレッドバッチ処理メニューを3つ追加
1,bvh2Fbx Batch
bvhファイルが入っているディレクトリを指定して一括で変換。
子供ディレクトリも再帰的に処理。
オープン履歴機能付きで前回選択したディレクトリを次回のデフォルト状態に。
2,Make MotionCacheFile Batch
fbxファイルが入っているディレクトリを指定して一括処理。
モーションキャッシュファイルegpを作成することにより読み込み速度は4倍ほど高速
(こちらのテスト環境においては)。
子供ディレクトリも再帰的に処理。
オープン履歴機能付きで前回選択したディレクトリを次回のデフォルト状態に。
3,Retarget Batch
bvhから作ったfbxのモーションを読み込済の形状に対してリターゲット。
fbxが入っているディレクトリを指定して一括処理。
子供ディレクトリも再帰的に処理。
fbxが置いてあるディレクトリにはretarget.rtgファイルが1つ配置されていることが必要。
オープン履歴機能付きで前回選択したディレクトリを次回のデフォルト状態に。
オープン履歴機能修正
bvh2FBXのときにはbvhの履歴を表示(*.chaファイルではなく)。
ブロックアロケートメモリ機能のメモリ使いまわし部分を検証してデバッグ
メモリの使いまわしが正常化。
egpファイルと同様にlmtファイルについても
fbx内のコメントとlmtファイル内のコメントが一致した時だけ読み込むように。
fbxのジョイント位置を変更しても反映されずに読み込まれる不具合解消。
Testディレクトリのサンプルを更新
新しいバージョンで保存し直し。
2021/06/23
MotionBrush ver1.0.0.4
ジョイントをマウスでドラッグするIK処理の処理速度が20倍速になりました
全てのフレーム(0フレームは除外することをお勧め)を選択してのIK操作がリアルタイムで可能
bvhをリターゲットした後、全部れーむの腕の開き方を調整する際にもリアルタイムで編集可能
ライセンス表記
オープンソースのライセンスはLGPLです
というように
「オープンソースの」という断り書きを追加
プレイヤーボタン(ロングタイムラインの上に付いているラジカセ風ボタン)のデバッグ
「| |」ボタンは現在のフレーム一から最後のフレームまでを1ボタンで選択するボタン
選択が不完全だったのを修正
「--」ボタンは物理シミュレーション中に押すと、
物理のシミュレーションをしながら物理の揺れをリセットします
機能していなかったのを機能するようにしました
( 「--」ボタンの隣の2つの三角のボタンは選択範囲の履歴ボタンです )
2021/06/30
MotionBrush ver1.0.0.5
シェアウェア版としても完成版としてのver1.0.0.6(現在ver1.0.0.6RC6テスト中)の
1つ前のバージョンです。
ブラシをプラグインdll化
MotionBrushPlusinsSDKを同梱
サンプルとして-CosXブラシ、-CosX^2ブラシ、Sawブラシ、RectブラシをOSSにて同梱
選択フレームの個々のフレームにおけるIK操作結果に対する重みをカスタマイズ可能
ブラシのオプション指定用のGUIを修正追加
ブラシコンボボックスはBrushesFolderの中のdllを読み込んで自動的に設定
ブラシトップ位置指定スライダー
ブラシ繰り返し回数指定スライダー
ブラシミラーUチェックボックス
ブラシミラーVチェックボックス
ブラシミラーVのオプションとしてDiv2チェックボックス
ReadMeフォルダにMotionBrush_ExplainGraphOfBrushes.docxを追加
モーションブラシがブラシであることの説明を書きました
2021/07/07
MotionBrush ver1.0.0.7にてMotionBrush完成!!
モーションキャプチャファイルの
任意のボーンの任意の連続複数フレームのモーションを任意の連続複数にコピーペースト可能
これが私が思う最強のモーション編集ツール!!!
モーションのコピーとモーションのペーストとで指定フレーム数が異なっていてもコピーペースト可能。
2個のMotionBrush.exeを立ち上げて
片方でモーションのコピーを行い、他方へモーションのペーストをすることが可能です。
コピーの前にオペレーションターゲットボーンツリーを選択可能なので
任意のボーンのモーションのコピーペーストが出来ます。
オペレーションターゲットボーンの指定はペースト時に適用されます。
オペレーションターゲットボーンは
ToolWindowのコマンド対象ボーンボタンを押して出てくるダイアログにて保存読み込み可能
オペレーションターゲットボーンツリーには
10個のスロットが用意されていてコンボボックスでスロット切り替え可能です。
MotionBrushC4.exeを同梱
4個のMotionBrush.exeを起動して、4つのMotionBrushの親ウインドウになります。
4つまとめてウインドウ移動など可能。
4つの異なるモーションを表示しながら4つのMotionBrush間でモーションのコピーペーストが可能
縦2つ起動や横2つ起動も可能
起動してからしばらく、マウスへのレスポンスを受け付けるまで時間がかかります。
起動後しばらくまってみて、それでも反応が無い場合には
4つそれぞれのMotionBrushのタイトルバーや3Dウインドウを
マウスで左クリックとか右クリックとかしてみてロック状態を解除してください。
(MotionBrushC4.exeで複数のMotionBrushを立ち上げた場合のゲームパッド操作には対応していません。)
デバッグ
Windows Update後にFileメニューのバッチ機能各種が動かなくなっていたのを修正
Sony GamePad DualSence対応部分の修正
2021/07/26
MotionBrush ver1.0.0.8 (ver1.0.0.7のデバッグ版)出ました!!
リターゲットバッチ処理機能が落ちなくなりました。
(
ただしメモリ搭載量が少ない方は
メモリ使用量に気を付けてフォルダの中に入れるファイル数を調整してください。
リターゲットバッチの際にはフォルダごとにretarget.rtgファイルを1つ置くことを忘れずに。
)
Vector様のサイトのダウンロードページ
https://www.vector.co.jp/soft/winnt/art/se523002.html
2021/08/18
MotionBrush ver1.0.0.9
完成版ver1.0.0.7の読み込み最適化高速化版
こちらの環境にて
1つが2000フレームとか5000フレームの
38個のモーキャプデータ入りのfbxファイル読み込み時間が
ver1.0.0.8では16分かかっていたのが55秒で読み込めるようになりました。
(両方ともegpファイル有で比較)
2021/08/25
MotionBrush ver1.0.0.10
完成版ver1.0.0.9のデバッグ版
ver1.0.0.9での最適化高速化の際に生じた不具合を修正
フレームの選択範囲とモーションブラシの選択範囲がずれる不具合がありました
モーションメニューからモーションを選択すると直るのですが
プログラムの不具合を修正しました
保存するたびにマテリアル名の後ろに数字がたくさんついていく不具合を修正
マテリアル名の後ろに1つだけ _数字 を付けます
*.rtgファイルと*.tboファイルのver1.0.0.7からver1.0.0.9のどれでも読み込めるようにしました
2021/09/01
MotionBrush ver1.0.0.11
MotionBrushC4.exeで複数個のMotionBrush.exeを立ち上げた直後に
マウスレスポンスが悪くなる不具合を修正
ゲームパッド対応を1つのMotionBrush.exeに限定することで大分改善しました。
しかしそれでもMotionBrushC4.exe起動直後にマウスレスポンスが悪くなることはたまに起きました。
その場合の対応として以下の3つのことをしました。
以下の3つのことをすれば大抵の場合マウスを受け付けるようになりました。
1,MotionBrush.exeを単体で起動して終了してからMotionBrushC4.exeの起動を試す。
2,MotionBrushC4.exeを起動してからしばらく待つ(10秒間とか20秒間とか)
3, 複数個あるMotionBrush.exeのタイトルバーとメニューバーと黒いウインドウ(3Dウインドウ)をクリックする
4,それでもマウスを受け付けない場合にはMotionBrushC4.exeを起動しなおす
タイムラインのキーオブジェクトもメモリ使いまわし方式に。
メモリ使いまわし部分デバッグ
モーション数が多いfbxの読み込みを更に少し高速化
モーションメニューからのモーションの選択の高速化、アンドゥの高速化
モーション選択とアンドゥ時の待ち時間がほとんど無くなりました。
モーションメニューの編集中のモーションを削除機能のデバッグ
2021/09/8
MotionBrush ver1.0.0.12
IKモードがIKRotの場合にはオイラーグラフ、IKMoveの場合には位置グラフを表示
プレイヤーボタンにオイラーグラフ操作ボタン(拡大縮小、オフセット上下、リセットのボタン)を追加
一番親のジョイントをドラッグした場合にもモーション編集可能に
オープンファイルダイアログのデフォルトディレクトリをサンプルが置いてあるTestディレクトリに
MotionBrushC4.exeを使う場合にはゲームパッド対応無し
MotionBrushC4.exeからMotionBrush.exeを複数立ち上げた直後のマウスレスポンスが更に改善
ver1.0.0.12オイラーグラフ位置グラフ拡大縮小と位置モーション編集操作についてのキャプチャー動画
https://youtu.be/Ml85Avo0vjw
2021/09/15
MotionBrush ver1.0.0.13
MotionBrushC4.exeで複数個のMotionBrush.exeを立ち上げた直後に
マウスレスポンスが悪くなることがある不具合の更なる調査の結果
マウスレスポンスが悪くなった場合、
それぞれのMotionBrushのタイトルバーの文字の部分
つまりMotionBrush ver1.0.0.13 No.* :と書いてある文字の上をクリックすることにより
いまのところ100発100中の確率でマウスに対して応答がありました
タイトルバーの文字の上をクリックしてください
拡大縮小モーションを編集可能に
3DウインドウのIKRot, IKMove, IKScaleのコンボボックスからIKScaleを選択すると拡大縮小編集モード
操作方法:
IKScaleモードにてマニピュレータの中央をドラッグする場合
XYZ各軸の内一番大きい移動量の移動方向がプラスなら全軸均等拡大
一番大きい移動量の移動方向がマイナスなら全軸均等縮小
IKScaleモードにてマニピュレータの各軸をドラッグする場合
ドラッグした軸の移動方向がプラスならドラッグ軸限定の拡大
移動方向がマイナスならドラッグ軸限定縮小
RigidParams剛体設定ウインドウの調整
ボタン1つで全ての剛体に設定するToAllボタンをそれぞれの項目の下に色を変えて配置
リターゲットウインドウのジョイント対応付けボタンを押しても候補のドロップダウンリストが
出てこなくなっていた不具合を修正
(Retarget batch機能とrtgファイル読み込みでのリターゲットは動いていました)
編集したモーションを確認しやすく(フレーム選択を解除せずに編集結果をゆっくり確認)
ロングタイムラインウインドウのプレイヤーボタンに"1"ボタンを追加
"1"ボタンを押すたびに1fps-->2fps-->通常モードに切り替わり3Dウインドウにテキスト表示されます。
プレイヤーボタンの再生ボタンを押すと機能します。
再生を停止すると複数フレーム選択が復元されます。
MotionBrush.exeが置いてあるディレクトリにデバッグ情報出力用のdbg.txtとinfo*.txtがあります
MotionBrushC4.exeから複数のMotionBrush.exeを立ち上げた場合に
それぞれのMotionBrush.exeで異なる名前のファイルを出力するようにしました
ワンポイント
fbxが更新されるような操作をした後
(プロジェクトファイルやfbxを保存した時、bvhからfbxを作った後など)には
fileメニューのMotionCache(egp)batchメニューを実行する
(この操作完了には時間がかかるが、その後の読み込み時間が何倍にも速くなる。)
2021/09/22
MotionBrush ver1.0.0.14
ファイルオープン時のウインドウの大きさが小さいので
MotionBrush_ver*というディレクトリ名をMB_ver*という名前に変えました
トラブルシューティング用ドキュメントを"0_TroubleShooting"ディレクトリに入れました
大きいフレーム番号を複数フレーム選択した状態で小さいフレーム数のfbxを読み込むと
エラーで落ちる不具合を修正
fbx読み込みエラーのときの処理を修正
モーション編集時にinfoウインドウに表示するオイラー角は
アプライフレーム(TopPosフレーム)だけ表示するように修正
infoウインドウのオイラー角とオイラーグラフの一致が分かりやすくなりました
モーションの名前を一括で設定するためのファイルを追加
MotionNameListFile、拡張子は*.mnl
Fileメニューからの読み書きに対応
使い方
model-->selectメニューでモデルを選択
File-->Save-->MotionNameListFile(*.mnl)メニューでmnlファイルを書き出し
書き出したmnlファイルのモーション名を編集
File-->Openメニューを実行しダイアログの参照ボタンを押し、拡張子リストで*.mnlを選択
先ほど編集した方のmnlファイルを選択して読み込む
2021/10/20
MotionBrush ver1.0.0.15
ChaVecCalcの途中計算をfloatからdoubleに
ジョイントを選択した後、Tキーを押しながらマウスホイールでボーン軸のツイスト回転
SelectJoint-->T Key + MouseWheel --> BoneAxisTwist
トラブルシューティングの
MotionBrushのマニピュレータの軸の向きは合っているのか.docxを更新
モーションキャプチャファイルbvhを扱う際に姿勢が180度裏返ることがあったのを修正
足が180度近く上がったときなどに症状が出ていました
ModifyEulerXYZによる180度裏返り補正はbvhファイルをfbxファイルに変換するときのみ実行
多重回数裏返り処理防止によりIK操作時に瞬時にボーンが180度裏返る現象が無くなった
Explain about ModifyEulerXYZ.
https://moo-ochakkolab.ssl-lolipop.jp/diary_win.html#MotionBrush_20211010
VisualStudioが出力する膨大な量のwarningを解決する作業開始
bullet physics含めてコンパイル時警告を解決
対応した警告は主に以下の3つ
1. 未初期化変数使用警告
2. NULLポインタ警告
3. バッファーオーバーラン警告
その他の警告は無視する設定
例えば異なるスコープで同名変数をわざと使用している箇所への警告や
暗黙の型変換をわざと使用している箇所への警告は無視する設定にしました
表示(disp)-->モデルパネル(model)メニューで表示されるモデルパネルに
deleteボタンを追加しモデルの削除をパネルから行えるようにしました
表示(disp)-->モーションパネル(motion)メニューでモーションパネルを表示
deleteボタン付き
[0_VisualStudio2019をインストールしていない方は]フォルダの中の
VC_redist.x64.exeを新しいものに更新(同梱)
2021/10/27
MotionBrush ver1.0.0.16
プログラムのビルド時の対応するべき警告を解決
リンク時警告を解決することによりプログラムサイズが小さくなりました
OrgWindowをブラックテーマに
保存したfbxをMaya2022で開いた時のマテリアルが白すぎてライティングが分からなかったのを修正
マテリアルのAmbientFactorを1.0から0.1に
マテリアルのEmissiveFactorを0.1に
マテリアルのShininess (power)処理修正
サンプルC3, C4 保存し直し
yuriちゃんデータのライティングをMaya2022で確認
ModelPanel, MotionPanelの表示非表示に関する不具合修正
ModelPanel, MotionPanelの起動後の表示位置を保持するように
ゲームパッド仕様修正:
メインウインドウのプレート上で〇ボタンを押したときには
マウスがコントロール位置へジャンプしないように
2021/11/02
MotionBrush ver1.0.0.17
fbxファイルのモーション読み込みを書き直し
ローカル情報からグローバル姿勢を組み立てることに成功
egpキャッシュファイルは不要に
スケール設定した時の姿勢が正しくなった
motion cache batchメニューを削除
上記によりegpキャッシュファイルが不要になったため
Toolウインドウの姿勢の初期化のInitScaleの修正
スケールの初期化が正しくなりました
スケール設定してある場合の回転と移動の初期化も正しくなりました
2021/11/10
MotionBrush ver1.0.0.18
コピー履歴選択機能
ToolWindowのコピー履歴選択ボタンを押すと履歴選択ダイアログが出ます
fbx名、モーション名、bvhタイプ、年月日範囲により検索を行いコピー履歴を選択可能
ダイアログに一番下の 最新のコピーを選択(select the most recent one.)にチェックを入れると
ラジオボタンで何を選んでいても常に最新のコピー結果がペースト時に使用されます
最新のコピーを選択(select the most recent one.)にチェックを外して
コピー日時を選択すると
ペーストの度に選択した日時のコピー結果がペーストに使用されます
SpriteFKプレートを押したときのスプライトボタンを一新
カメラ操作とボーン操作のボタンの違いが一目瞭然に
リグを使用するとリグのボタンも出ます
(リグを使用するには階層構造エディタ上でジョイント名を右クリックしてRigのメニューを実行します)
ロングタイムライン上で
マウスホイール:時間カーソル
Sキー+マウスホイール:時間カーソルがはみ出ない範囲で時間表示範囲を左右にスクロール、選択はそのまま。
Unity3D, VRoidとの連携テストOK
MotionBrushのfbxをUnity3D 2020.3で読み込み再生テストのスクリーンショット
https://twitter.com/ochakkolab/status/1455366755623202819?s=20
Unity3D上でVRoid正式版のvrmにMotionBrushのfbxモーションをリターゲットしたテスト動画
https://twitter.com/ochakkolab/status/1455745440763187202?s=20
2021/11/17
MotionBrush ver1.0.0.19
解像度が4K対応かどうかをチェックして
自動的にウインドウサイズを調整することにしました
不具合修正
履歴ファイルが1つもなかった場合の処理を修正
ジョイント右クリックのCreateNewRigメニューが機能しなくなっていたのを修正
1フレーム長選択が出来なかった不具合を修正
マウス中ボタンによるフレーム選択の不具合修正
マニピュレータとRig操作用オブジェクトの大きさ修正
モデルデータの大きさに対する比率を保つようにしました
サンプルのyuriちゃんの左手とマテリアルをmaya2022で修正
修正したfbxにMotionBrushでモーションをリターゲット
Testフォルダのサンプル更新
リグモード仕様変更
Rigをオンオフするためのスプライトボタンは常に表示
Rigをオンにした時には設定済のすべてのリグを表示
表示してあるRigはマウスでドラッグ可能
Rigの設定項目にXYZの軸と0,1,2のジョイントからの距離を追加
*rigの設定の仕方は以前と同じ
設定したいジョイントを右クリックでRigのメニューを実行
リファレンスポーズジョイント位置軌跡機能
フレーム選択範囲内で編集ポーズ以外にも任意のフレームのポーズを半透明で表示
見比べながら編集可能
選択ジョイントの軌跡を可視化
スプライトスイッチでオンオフ
マウスで複数フレームを選択
RefPosスライダーでリファレンスポーズのフレームを決定
RefPosスライダーの1つしたのスライダーでジョイント位置軌跡の太さを決定
階層エディタでジョイントを選択するとそのジョイントの軌跡が表示される
IK操作中にブラシの比率によってリファレンスポーズもリアルタイムで変化
軌跡の太さはフレーム間の移動の長さの程度を意味する
ゲームパッドDualSenceが接続されていない場合
キーボードの矢印キーで階層構造エディタの選択移動
上下矢印はペアレント、チャイルドへの移動
左右矢印はシスター、ブラザーへの移動
シスター、ブラザーの選択は階層構造的分岐点である場合には分岐間移動
階層構造的に分岐点ではない場合には
名前の中のLeftとRightを置き換えてその名前のボーンがあればそこに移動
(例:LeftKnee_JointからRightKnee_Jointへ選択移動)
テストスクリーンショットと動画10秒から数十秒
RigMode
https://twitter.com/ochakkolab/status/1457216434463903746?s=20
MotionBrushのfbxをUnity3D 2020.3で読み込み再生テストのスクリーンショット
https://twitter.com/ochakkolab/status/1455366755623202819?s=20
Unity3D上でVRoid正式版のvrmにMotionBrushのfbxモーションをリターゲットしたテスト動画
https://twitter.com/ochakkolab/status/1455745440763187202?s=20
リファレンスポーズ表示機能テスト動画
https://twitter.com/ochakkolab/status/1456544566698405890?s=20
2021/11/24
MotionBrush ver1.0.0.20
Windows11対応
Windows11でテスト
ダイアログの大きさ調整
LimitEulerダイアログ(制限角度)のアップデート
各軸の制限角度スライダーの下に現在のチェックをするためのスライダーを設置
チェックスライダーはタイムラインをマウスで操作した結果を反映する
チェックスライダーは参照用で操作用ではない
制限角度反映はモーションの元のデータを上書きせずに行うので
制限角度をきつくして動かした後に制限角度を緩くすると緩い制限角度で動きます
設定した制限角度はプロジェクト保存時にlmtファイルとして保存されます
*LimitEulerダイアログもオイラーグラフもIK操作を仮定して使いやすいようにしている
クリックしたジョイントの親のジョイントのオイラー角度と制限角度を表示している
テスト動画
https://twitter.com/ochakkolab/status/1461487698229612545?s=20
4Kテレビ対応時のウインドウの大きさを修正
物理シミュレーション用のサンプル追加
Test/shadowBoxing20211116_6
chaファイルを読み込んでBtStartボタンを押すと始まります
こちらでシミュレーションした時の動画リンク
https://twitter.com/ochakkolab/status/1460543856571654152?s=20
物理シミュレーション再生のスタート時に物理をリセット
モーションの最終フレームから最初のフレームにジャンプすると物理が動かなくなる症状に対応
モーションの最初のフレームは0ではなく1
0フレームは特別な役目を持つバインドポーズ
プロジェクトオープンダイアログの履歴表示件数を5件から10件に
RigモードでRigオブジェクトをマウスでドラッグした際に選択ボーンの更新がされなかった不具合を修正
マニピュレータの大きさ調整
単純にモデル全体のバウンダリー半径に対する比率にしました
2021/12/01
MotionBrush ver1.0.0.21
Unity3D, VRoid正式版に対応
日記:Unity上でVRoidモデルにモーキャプデータを再生させる方法
https://ochakkolab.jp/diary_win.html#MotionBrush_20211114
モーション再生を高速化
モーションポイント検索関数をチェイン方式からインデックス方式に変更続き
モーションIDごとにインデックス作成
モーション読み込み時などインデックスの準備が出来ていないときにも対応
リファレンスポーズ軌跡表示機能の高速化
必要最小限のHierarchyRouteの姿勢だけ計算
リファレンスポーズ軌跡表示機能はデフォルト状態でオフ
3DウインドウのGUIスプライトスイッチでオンオフ
遊び付きリミテッドIK
制限角度下でも操作しやすいIK
制限角度に5度の遊びを設けた
IKが動きにくくなったので遊びを付けた
制限角度でクランプして他の成分は動くので壁すりIKのような効果もある
制限角度設定ダイアログのアップデート
CopyToSymBoneボタンとCopyFromSymBoneボタンを追加
CopyボタンとPasteボタンを追加
ボクシング棒のサンプルに制限角度を付けた
動画(35sec.)
https://twitter.com/ochakkolab/status/1463335325355307013?s=20
制限角度IK時に180度線をまたいでしまうことについて
180度線を越えたくない場合の制限角度ファイルは+-170度設定に。
180度線をまたいでしまう理由はマウスの移動量が大きすぎるため
基本的にはゆっくりマウスを動かしてIKする他無い
Ctrlキーを押しながらマニピュレータの軸をドラッグするとマウス移動量は0.25倍計算されてまたぎにくくなる
3DウインドウのPhysicsIKプレートを押しEditRateスライダーを調整することによっても変化量を調整可能
複数フレーム選択するほど処理は重くなるので計算回数を増やすプログラミングはしなかった
*制限角度について
3DウインドウのLeft2ndプレートを押して出てくるLimitEulチェックボックスで
制限角度のオンオフ出来ます
Testフォルダのサンプルには制限角度を設定しておきましたが
どんなモーションにも適切な制限角度というのは難しいです
ケースバイケースでオンオフしたり設定を変えてください
設定を変えるには3Dウインドウの変えるボタンを2回押すと出てくるLimitEulプレートをクリックします
*制限角度下でのIKについて
とにかくゆっくり動かすのが基本
大きく上に大きく下に動かすと
オイラーグラフ上で上向きの山と下向きの山の足し算になり端の方にクサビが生じやすい
とにかくゆっくり動かす!!!
Testフォルダのサンプルの制限角度ファイル更新
制限角度テスト動画
https://twitter.com/ochakkolab/status/1463713966035636233?s=20
4Kテレビで表示時のInfoWindowの画面内デバッグ出力を10行に
矢印キーで階層選択移動する際にマウスが階層エディタ上に無い場合には選択変更箇所へカーソルを飛ばさないようにした
他のダイアログ設定時にカーソルが階層エディタへ行ってしまわないように
リグマークが大きすぎたので修正
指先に表示されても邪魔にならないくらいの大きさに統一
手などはカメラの虫眼鏡ドラッグで大きく表示して操作することを想定
ToolWndのプロパティボタンでモーション長を長くしたときに落ちる不具合を修正
リグ設定ダイアログの大きさと位置の修正
左右対称ジョイント名の規則
ジョイントの名前がLeft$1とRight$1の場合
あるいは
ジョイントの名前が$1_L_$2と$1_R_$2の場合
コピー履歴の時間比較をローカルタイムで統一
GUI指定のローカルタイムとファイルのシステムタイムを比較していたのを修正
4KTV以外で表示した時のRigマークが大きすぎたのを修正
Rigマークはモデルの大きさに対する比率で表示し、その比率はディスプレイの大きさに関係無し
0_TroubleShootingフォルダにトラブルシューティングドキュメント4つ追加
2021/12/08
MotionBrush ver1.0.0.22
3Dウインドウに新たにWallScrapingIKチェックボックスが加わりました
壁すりIKのオンとオフを指定するためのものです
壁すりIKとは
制限角度を越えてIK操作を行おうとした場合に
制限に達した成分以外は変化させるIKのことです
壁すりIKをオンにすることで制限角度下でも動かしやすいIK操作が可能です
言い方を変えると
壁すりIKをオフにするとXYZどれかの軸が制限値に達した場合にIKで動かすことが難しくなります
0_TroubleShootingフォルダにドキュメント追加
X軸をドラッグした時になぜY軸とZ軸のオイラー角が変化するのかについて
タイムラインをホイールで移動する場合に0フレームに戻らないときは
Ctrl+Zでアンドゥしたがフレーム1に移動してフレーム選択が復元されないとき
MotionBrushで保存したfbxをMayaでみたときに色が違う場合
LimitEulerダイアログでの制限角度設定の結果がオイラーグラフにリアルタイムで反映されるように
既存モーションの可動範囲を制限角度に設定するボタン追加
制限角度の設定が簡単になりました
既存モーションで実際に動いている範囲を制限角度にします
Additive(追加設定)仕様なので初回実行時の前にリセット0ボタンを押します
Additive(追加設定)仕様なので複数のモーションの最大可動範囲を制限角度に出来ます
リセットボタンもあります
プロジェクト保存時に制限角度をベイクするチェックボックスにチェックを入れると制限角度をベイクして出力
拡大縮小アニメにおいて元の大きさよりも縮小出来なかった不具合を修正
新ブラシ追加
Punch_1, Punch_2, X2Cap, X2Needle
(モーキャプデータのオイラーグラフを参考に作成)
GUIプレート内のテキスト修正
GUIプレートの色を調整
ウインドウがデスクトップの中央に出るように
MotionBrush.iniファイルの読み込み書き込み
設定を指定、保存
物理IKは使い方が難しいのでオプションに
iniファイルで指定した時のみ物理IKのボタンが出るように
物理IK時は制限角度チェックボックスを外すようにした
操作中にブラシメモリのアクセス違反が起こることがあったのを修正
モーション長とブラシメモリ長の不一致時の不具合
アクセス時にブラシメモリの長さをチェックするように
3DウインドウのPseudoLocalのチェックボックスは画面に出なくなりました
PseudoLocalIKは常にオンになります
4KTV表示以外の場合GUIプレートの右端が見切れていたのを修正
4KTV接続時にも小さい画面で起動可能なように大小を選択可能なダイアログを起動時に出すようにしました
4KTV接続時のみ大小選択ダイアログが出ます
ロングタイムライン上でマウス中ボタンを押したときに3Dウインドウにマウスマーク表示
ロングタイムライン上でMボタン-->ホイール-->Mボタンでフレーム選択可能
ゲームパッド使用時に3Dウインドウがアクティブの時に出る電球マークが表示されていなかったのを修正
リグダイアログを開いたままリグを操作してからダイアログのApplyボタンを押すと
異なるリグに保存することがある不具合修正
Ctrl + Zでのアンドゥー時にカレントフレーム番号が1.0になってしまい
アンドゥされたかどうか分かりずらかったのを修正
フレーム選択範囲復元についてはプレイヤーボタンの列に選択範囲履歴ボタンがあります
Vector様のサイトのダウンロードページ
https://www.vector.co.jp/soft/winnt/art/se523002.html
[備考]
MameBake3Dのプログラムソースコードに
キャッシュの利用で実行速度が5倍から15倍速になる効果を確認するための
コンパイルスイッチをstdafx.hに追加しました。
(時間があるときに動画を撮ろうと思っています。)
ソースコードは以下のGitHubのリンクにあります。
その後
ver1.0.0.21にて更なるモーション再生高速化が行われた
チェインのポインタをインデックス化して高速化した
上記のコンパイルスイッチの影響はあまりなくなった