EditMotのページへ
2023/11/09
EditMot 1.2.0.30
マウスホイールでタイムラインのフレームを移動する場合に 前フレーム以前のゴーストがみえるのを軽減
裏返り対策処理における 末端ジョイントの閾値を再調整
bvh144_1について
大体は出来ていたのだが最後の部分でどうしてもつま先が裏返っていた
よって調整
裏返り閾値を微調整して緩和 しかしそれ以上の改善は 使う側で制限角度を設定しないと無理だった
プログラムとしての閾値微調整はここまで.
bvh144_1読み込み後 FromCurrentMotionで全ボーンの制限角度をキャプチャした後に LimitEulオンして
つま先のXのmin:-30, max:30(実際にはそんなに動かないが)で かなり緩和.
ドキュメント追加
0_TroubleShooting/つま先モーションが180度裏返る場合.docx
今後の予定
1.2.0.30リリース後は DirectX12対応のため 次回リリースまでの期間が長くなる予定
DirectX12対応版は MameBake3D別レポジトリになる可能性が高い
別レポジトリにする場合においても github.com/Ochakkoアカウント内のレポジトリの予定
1.2.0.30の致命的な不具合が分かった場合には 対応予定
2023/11/06
EditMot 1.2.0.29
オイラーグラフ全般の改善
fbx読み書きにも関わる修正
bvh2fbxにも影響
オイラーグラフに360degree単位の段が出来る不具合修正
IK終了後に LimitEulをオンオフするとグラフの形が変わる不具合修正
bvh144_1の足が180degree反転する不具合が直った
今後の予定
1.2.0.29リリース後は DirectX12対応のため 次回リリースまでの期間が長くなる予定
DirectX12対応版は MameBake3D別レポジトリになる可能性が高い
別レポジトリにする場合においても github.com/Ochakkoアカウント内のレポジトリの予定
1.2.0.29の致命的な不具合が分かった場合には 対応予定
2023/11/05
EditMot 1.2.0.28
姿勢ダブルバッファによる多モデル高速化
姿勢計算と レンダー処理を 同時進行
姿勢計算も全モデル分動かして全モデル分待つので同時に動くスレッド数が増えた
物理計算については モデル単位のマルチスレッド並列化計算と ダブルバッファ
こちらの古めの8コアCPUの環境では
Unity_JapaneseCityAssetにVRoid6体物理の場合
UpdateThreadNumスライダーを1(1モデル当たりの個数)にしてHighRpmオンにしたときが一番速かった
参考までに 上記条件で物理無し再生123fps, 物理再生110fps位だった
物理計算回数BtCalcCntスライダーの初期値を2かあ1へ変更
BoySportyモデルの物理パラメータ修正 BtCalcCnt = 1に合わせて髪の毛のバネを柔らかく
モデル横断表示グループ順描画
モデルの描画順序を変えないでも 表示グループだけで 透過テクスチャ問題を制御可能
短いフレーム長をコピーして 長いフレーム長へペーストしても滑らか
4フレーム長をコピーして 100フレーム長へペーストしても滑らか
RetargetBatch(リターゲットバッチ)実行時の質問ダイアログの規定ボタンをNoに
リターゲット前にSmoothした場合の方が 滑らかになる一方 足首が裏返り易かったので 規定ボタンをNoにしました
1.2.0.27での裏返り対策閾値修正はそのまま採用
不具合修正
fbxの読み書き時にX軸が180度裏返る不具合を修正
X軸(オイラー角逆算時の最後の軸)については 180度処理は GUIのx180チェックをオンにした時のみに
GetRoundThresholdの引数を再調整
反転閾値と混同していた部分を修正
bvh2fbxの修正
fbxの読み書き修正により bvhをfbxに変換する機能も修正
モデル単位のWorldPosを設定しているモデルに対して物理シミュRec.すると モデルが原点に移動する不具合修正
UpdateThreadNumスライダーを動かすと スレッド待機が終わらなくなることがある不具合修正
IK操作後にアンドゥした時に オイラーグラフが連続しないことがある不具合を修正
ボーンを持たないモデルを削除しようとすると 削除処理が終わらない不具合を修正
ボーンを持たないモデルの物理計算をスキップ
ボーンを持たないモデルのモーション計算スレッド作成スキップ
ボタンを押すアニメーションを再生中に ボタンを削除しないように 再生が終わるまでデストラクタで待機ループ
コピペ後にオイラーグラフがギザギザしないように
ペースト後にオイラー角再計算呼び出し追加
おちゃっこLAB
https://ochakkolab.jp/
YouTubeチャンネル
https://www.youtube.com/@ochakkolab
動画 モーキャプでポーズtoポーズ ver.1.2.0.25
https://youtu.be/e6XSIv3hiJI
動画 モーキャプを滑らかにコピペ編集 ver.1.2.0.25
https://youtu.be/A8E1K5UXOaM
動画 モーキャプ編集ツール 1.2.0.24 (2023/09)
https://youtu.be/LEbueHtc57Q
動画 0.07倍速でパンチしたら物理はどうなるんだろう?
https://youtu.be/gKuLzPDt-cc
動画 【小人】小人制御の物理【ドリブン】
https://youtu.be/SRoi8Ds9NYI
動画 いろいろ直った物理でボクシングの動画
https://youtu.be/Zr7fT1gsCl4
動画 作り直した位置コンストレイント
https://youtu.be/8p13H6MGQZ8
動画 変な風には曲がらない位置コンストレイント
https://youtu.be/9Xt8cxjByeA
動画 制限角度をキャプチャーする
https://youtu.be/mkkpo5cmLBs
動画 モーキャプの動きを盛れ!
https://youtu.be/DV9gYsgDzz0
2023/10/28
EditMot 1.2.0.27
180度以上のIK操作が出来るように
マウスドラッグ時とドラッグ後の処理に分けてからうまくいっていなかったのを修正
オイラー角のカーブが綺麗になるように!
360度越えのオイラーグラフに対して 適切に角度制限
並列化による処理の高速化
IK操作, FK操作, Rig操作, リターゲット処理高速化
マルチスレッドで高速化
(リターゲットについては 不具合修正で1/3倍速 --> マルチスレッドで3倍速でチャラ --> 不具合修正&最適化で1.2.0.26の4倍速)
180度裏返り対策を追加
リターゲット時
IK時
オイラーグラフにカレント数値表示
軸に目線を飛ばして目分割しなくても数値が分かる
DoubleWidthスクロールバー
スクロールバーを操作しやすく
姿勢初期化メニューにDeeperEndJoint追加
子供の中のエンドジョイントだけを初期化
つま先などが変になった場合に使う
制限角度キャプチャ修正
FromCurrentMotionボタンでキャプチャした制限角度に2度余裕を持たせるつもりだったのが2度足りなかった不具合を修正
TestフォルダのSpring1とAutumn1の制限角度ファイル修正
不具合修正
スクロールに関するパネルの表示の不具合修正
ウインドウ小で起動時にパネルが移動できなかったのを修正
LimitEulオン時の制限角度キャプチャ修正
2023/10/10
EditMot 1.2.0.26
100万回アンドゥー機能付きスライダー
個々のOWP_Sliderに対して右ダブルクリックでアンドゥ
表示とドラッグも改善
マウスホイール対応
操作法を右ペインに表示
スライダーの履歴はアプリ終了時に消えます
テクスチャ指定の描画順設定をGUI化
透過テクスチャの描画順を遅らせる順を設定
LaterTransparentの設定ダイアログを プレートメニューから呼び出し
LaterTransparentリファクタリング
ドキュメントに追記
Documants/TroubleShooting/パンツの表示が欠ける場合.docx
操作対象ボーン設定ファイル読み込み修正
無効エントリは読み込まないように
RootNode(0)というエントリを読み込まない
ファイルオープン時に 重複する内容の履歴と 存在しないファイルの履歴を 自動削除
履歴が多すぎるとオープン処理が重くなるため
削除処理が走る際にいつもより重くなるが 1度削除が走った後は軽くなる
モデル設定ファイル修正
2_Autumn_1 : 操作対象ボーン設定の NoHipsスロットにRootNodeが2つ入っていたのを削除
服を秋色に修正(テクスチャそのままでVRoidでdiffuseを設定)
腰を曲げたときにすそが服の上に出ないように(すそを少し広く)
物理シミュ時に髪の毛が肩にめり込まないように(剛体を大きく)
制限角度をキャプチャして設定
1_Test20221218_CB0 : 物理設定refファイルの 剛体の回転バネ定数をregularからweakに変更
スクロールバーの幅を倍に
スクロールしにくいストレスを解消!
スクロールバー上でのマウスホイールにも対応
1クリック目でスクロールバー位置がずれる不具合修正
スライダーを子に持たないスクロールウインドウは どこでもマウスホイールでスクロール
不具合修正
2023/10/04
EditMot 1.2.0.25
シャツのすそを外に出しているVRoidモデルの表示対応
シャツのすそで足の表示が欠けないように
プロジェクトファイル(*.cha)の<Chara>タグと</Chara>タグの間に
<LaterTransparent>_15.png</LaterTransparent>
<LaterTransparent>_13.png</LaterTransparent>
というようにテキストで記述すると
そのキャラクターの描画の最後に _15.png, _13.pngのテクスチャを貼っているオブジェクトを_15.png, _13.pngの順番で描画
透過テクスチャの奥に透けて見えるオブジェクトを先に描画し 上に重なるオブジェクトを後に描画するように指定します
ドキュメント追加
Documants/TroubleShooting/パンツの表示が欠ける場合.docx
Fbx書き出し修正
fbxInfoのリビジョン番号アップ
FbxSurfacePhongのSetTransparencyFactorのセット値を修正
シャツのすそを外に出しているVRoidの読書読書読テストOK
dest Hips起点ペースト
操作対象ボーンにHipsを含めずにHipsの子供を指定した場合のペースト処理修正
ペーストされる側のペースト開始フレームのHips位置を起点にして Hipsのモーションもペースト
(原則としては 操作対象ボーンに含まれないボーンのモーションはペーストされない Hipsは例外として処理)
dest Hips起点ペーストについて ドキュメント追加
Documants/TroubleShooting/Hipsを除外してコピペした場合の挙動について.docx
DispGroupプレートメニューが使えるように
GUIによるグループ番号のSet, Get, ON, OFF
描画の際にはグループ番号の小さいものから描画される
デフォルト状態では全てのメッシュのグループ番号は1
半透明オブジェクトのグループ番号を大きく設定することにより 透過表示が綺麗になる
Group単位での表示のオンオフによりモーション編集シーンの表示高速化
設定時にTestボタンにより 指定メッシュオブジェクトを排他的に表示テスト
DispGroupについてのドキュメントを追加
Documants/TroubleShooting/DispGroupについて.docx
ショートカット
左右の手の選択ショートカットキー : Hを押しながら左右矢印キー (HandのH)
左右の足の選択ショートカットキー : Fを押しながら左右矢印キー (FootのF)
Sキー+マウス右ドラッグ : マニピュレータ表示倍率変更
右ペインウインドウの初期表示に ショートカットキー一覧を表示
ショートカットについてのドキュメント追加
Documants/TroubleShooting/0_ショートカット一覧.docx
Testフォルダのモデル追加及び修正
前髪にForbid Rot設定をして 前髪はほとんど揺れないように
Test/0_VRoid_Spring_1
Test/1_BoySporty_4
Test/2_Autumn_1 (新規)
Spring_1については 髪の毛の剛体グループが同グループ同士で当たらない設定に修正してrefファイル保存
設定ファイルの使いまわしをしやすく
fbxファイルとの同期チェックを外し ボーン情報は番号ではなく名前で入出力
コピペしてファイル名を適切に変えるだけで使いまわし可能に
tboファイルについて 必要分だけを読み書き ジョイント情報を番号ペースから名前ベースへ変更
2023/08/30
EditMot 1.2.0.24
メッシュ単位の視野内判定導入
広いシーンで表示の高速化
みえているかを判定するには 何段階かの処理を組み合わせると思う その1段階目の判定
hipsジョイントがモーションで大きく動いた場合にも対応
対称コピー機能の修正
長らくテスト項目から外れていたので テスト&修正で機能するように
VRM1.0(から変換したfbx)に対応
VRM1.0のテクスチャ(.texture2Dファイル)をUnityのスクリプトでpngにしてfbxと同じフォルダに置くと表示できるようにしときました
コピー履歴機能の修正
履歴ウインドウを出しながらコピーをして履歴ウインドウをクリックしないでペーストした場合など うまくいっていなかったので修正
複数モデル読み込み時に 操作中のモデルの履歴だけを検索した結果を表示 (他モデルの履歴も手動で検索可能)
選択済み履歴をモデルごとに管理
コピー履歴ウインドウを開いた状態でコピーを行った場合で 最新履歴のチェックが外れている場合は 履歴の選択状態を維持
操作対象ボーンダイアログ修正
操作対象ボーンダイアログをモデルごとに作成して保持
モデルを切り替えたときの操作対象ボーンが間違っていたのを修正
操作対象ボーン設定はモデル単位なので 保存と読み込みは プロジェクトの保存と読み込み実行の際に行う
全削除ボタンを押したときに カレントスロット以外のスロットの内容も初期化される不具合を修正
ダイアログ表示時に前回のスロット選択を復元
操作対象ボーンダイアログのスロット数を 2倍の 20個に
操作対象ボーン設定の仕方の見直し
指定したボーンツリーの内の一番親のジョイントは動かない仕様なのでそれに合わせて設定
動かしたいジョイントの1つ親のジョイントから動かすように設定 その際動かしたくないジョイントは ペーストしないボーンツリーに指定
Test/0_VRoid_Spring_1と Test/1_BoySporty_4の *.tbo設定ファイル更新
カメラドリーの履歴対応
ToolWindowのカメラドリーボタンで右ペインにドリー履歴ダイアログを表示
Getボタンで 現在のカメラ位置をダイアログに取り込み
Setボタンで ダイアログの数値をカメラに反映
Saveボタンで ダイアログの数値を履歴ファイルに保存
履歴のラジオボタン選択で 履歴をダイアログ数値に取り込みカメラ位置も反映
ページ対応
リターゲットの際に モーション側(bvh側と呼んでいる側)の全モーションに対して処理を行うように修正
ボーン無しのfbxを読み込んで保存する際にエラーになることがある不具合を修正
ハイレスポンスなToolTipの表示
スプライトボタン、ジョイント(ボーン)、リグの上にマウスがある場合にツールチップを表示
ツールチップ文字に縁取り
Lightsプレートメニュー追加
Lightsプレートメニューを選択すると 右ペインにLights for Edit Dialogが出ます
有効無効、色、向き、強さスライダーとカメラと共に回転するかどうかの設定が可能
8個 x 8スロット
編集用のライトの設定です シーン構築用ライトではありません
アプリ終了時に自動保存、アプリ起動時に自動読込
メニュー切り替えショートカットキー
スペースキー : プレートメニューの種類変更
C押しながらスペースキー : プレートメニューのプレート変更
V押しながらスペースキー : ツールショートカットボタンのフェーズ切り替え
エディットボックスに入力中は キーボードショートカット機能が実行されないように
スキンメッシュのボーン影響度の最小値を0.05-->0.001に変更
GUIを使ってリターゲットする際の不具合修正
ボーン番号とボーンの総数の混同が原因
リターゲットウインドウのジョイントの最後の1つ2つの設定が効かない症状だった
LimitEulオンの時の自動平滑化をオフ
少ないフレーム数をIKしたときに動きが元に戻る症状が無くなった
平滑化が必要な時に 手動でSmoothボタンを押す
スプライトボタン右クリック
Smoothスプライトボタン : 左クリックで前回設定で即時実行 右クリックでメニューとダイアログを出してから実行
ペーストスプライトボタン : 左クリックで即時ペースト 右クリックで操作対象ボーン設定後ペースト
ジョイント右クリック
ジョイントを右クリックしたときのメニューに CopyMotionとPasteDeeperメニューを追加
PasteDeeperは右クリックしたジョイントより子供のジョイントに対してモーションをペースト
CopyMotionはどのジョイントをクリックしても全ボーンのモーションをコピー
カメラスプライトボタン
カメラ回転スプライト右ドラッグでカメラツイスト
カメラ回転スプライト右ダブルクリックでカメラツイスト初期化
CameraAndIKプレートメニューグループに 3フェーズのツールショートカットボタンを追加
青いカエルボタンもしくはV+Spaceキーでフェーズ切り替え
メモリリークが直った
あるスプライトをdeleteする前に0セットしていた不具合修正
カメラノードのデストラクタが呼ばれていなかった不具合修正
ボタンの文字を見易く
ボタンの白い文字を緑色で縁取り
マウスドラッグが途中で中断されたりドラッグ終了処理が行われなかったりした不具合修正
カメラドリーウインドウやコピー履歴ウインドウが 剛体設定ウインドウと重なって表示されることがある不具合修正
マテリアル倍率設定ウインドウ表示中に モデルを切り替えた場合に対応
スレッド作成時にaffinity設定して負荷を分散
リグファイル内のジョイント名に _Joint が付いていても付いていなくても読み込めるように
*.rig 設定ファイルの使いまわしがしやすいように修正
ドキュメント追加
0_TroubleShooting/保存したfbxファイルが他ソフトで読み込めない場合.docx
0_TroubleShooting/SmoothスプライトボタンとSmoothToolボタンの違いについて.docx
0_TroubleShooting/違うモデルに対称コピーペーストしたい場合.docx
0_TroubleShooting/リターゲット結果がおかしい場合.docx
Testフォルダ
Test/0_VRoid_Spring_1, Test/1_BoySporty_4のモデルを動かした場合に太ももとパンツの前後関係が乱れる不具合修正
影響度の読み書き部分の修正後に 元データから保存し直して 問題データのモーションだけリターゲットして復元
Test/RetargetSettingFileExample/VRoid_VRoid.rtg 設定ファイルを追加
VRoidからVRoidへモーションをリターゲットする際の設定ファイル
不具合修正
2023/08/02
EditMot 1.2.0.23
使用メモリ大幅削減
約3万ポリゴンVRoid 1体 1000フレームモーキャプ1つの場合
1.2.0.22 : 1.4GB
今回 : 0.4GB
UnityAsset TheHuntのCity1読み込みで比較
1.2.0.22 : 21.8GB
今回 : 1.4GB (Peak使用量 2.9GB)
UnityAsset MountainEnvironment読み込み比較
1.2.0.22 : 56.5GB
今回 : 1.2GB (Peak使用量 11.1GB)
ファイルオーブン用のダイアログの履歴にページ機能追加
Next PageボタンとPrev Pageボタンでページをめくる
ファイルオープンダイアログに
前回の場所参照、Testフォルダ参照、ドキュメント参照、Desktop参照、EditMotフォルダ参照 ボタンを追加
フォルダの場所を探す手間を減らしました
コピー履歴ダイアログにもNextPageボタンとPrevPageボタンを追加 複数ページ対応
モーションスピードを1倍速より遅くした場合に再生が滑らかにならないことがあったのを修正
補間計算時間に関する修正を2種類あるデータ構造の両方に適用
IKStopFlagの指定をchaファイルで指定可能に
IK階層数コンボボックスで 1 よりも大きい値を選んだ場合 途中でIKStopがあるとそこで回転は止まる
古いchaファイルを保存し直すと次のようなエントリーがテキスト出力される
<CustomIKStopName>1</CustomIKStopName>
<IKStopName>Shoulder</IKStopName>
<IKStopName>UpperLeg</IKStopName>
このエントリーを例えば次のように指定し直すことが可能
<CustomIKStopName>1</CustomIKStopName>
<IKStopName>UpperArm</IKStopName>
<IKStopName>Neck</IKStopName>
<IKStopName>UpperLeg</IKStopName>
IKStopNameの指定は ジョイント名の一部で良い(名前の部分一致で判定する)
2023/07/07
EditMot 1.2.0.22
使用しているMicrosoftのOSS DXUT, DirectXTex, Effect11をJun2023へバージョンアップ
カメラパネル新規
4Kモードの時にはモーションパネルの下に埋め込み それ以外の場合には表示メニューのカメラパネル実行でパネル表示非表示切り替え
fbx複数カメラアニメ対応
カメラアニメのフレーム番号(時間)は キャラクタアニメのフレーム番号とは別管理
カメラのUpVecアニメに対応
Nullノードにアタッチしたカメラアニメーションの読み書き再生対応
2種類のカメラ構成に対応し アセットのカメラへの対応が楽に
ドキュメント更新
Documants/TroubleShooting/カメラアニメについて.docx (UnityとMayaとの連携の仕方についても記述)
RotationOrderを見直し テストし直し
bvh2fbxによるfbx出力形式修正
Test/testBvhConvフォルダのfbxのサンプル更新
bvh2fbxによるfbx出力形式が変わったのでサンプルも更新
読み込みボーン最大数を256から1024へ変更
2023/06/06
EditMot 1.2.0.21
VisualStudio 2022に対応
FBXSDK 2020.3.4 For VisualStudio2022に対応
バインドポーズが無い場合のfbx読み込み改善
大きいモデルを読み込んだ場合に 表示が消える不具合修正
大きいモデルを読み込んだ場合に マニピュレータが巨大化するのを修正
カメラアニメ1つの読み込みと再生と保存に対応
メッシュとトランスフォーム書き出し時の回転順序修正
書き出すとメッシュが傾くなどの不具合が直りました
空(empty)の影響度を書き出さないように
モーションを付けても顔だけ動かないなどの不具合が直りました
操作対象ボーンダイアログ修正
ToolWindowの操作対象ボーン設定実行時のダイアログのツリービューをHips_*が複数ある場合に対応
ドキュメント追加
Documants/TroubleShooting/カメラアニメについて.docx (UnityとMayaとの連携の仕方についても追記)
2023/05/12
EditMot 1.2.0.20
トランスフォームノード(eNull)の読み書きに対応
モーション以外は 出来るだけ同じように書き出すことに
FbxSdk2020.3.1 --> 2020.3.2へバージョンアップ
法線とUVの読み込み修正
Maya2024で出力した2020.3.2のfbxを読み込んでテストOK
物理シミュの剛体の軸を修正
TheHuntのCoat (とSpring_1とBoy_Sporty)が正しく揺れるようにテストアンドデバッグ
物理シミュの制限角度も修正
トランスフォームノード(eNull)にはモーションを付けないように
非スキンメッシュ(ボーンの無いメッシュ)の書き出しに対応
書き出し時のRootNodeは新たに作成しない
RootNode*が増えないように
CreateScene時に自動的に作成されるRootNodeを使用する
リターゲット設定ファイル追加
Test/RetargetSettingFileExample/Rokoko_bvh.rtg
Test/RetargetSettingFileExample/Hunt2Hunt.rtg
Test/RetargetSettingFileExample/Hunt_Rokoko.rtg
Test/RetargetSettingFileExample/Hunt_bvh.rtg
トラブルシューティングドキュメント追加
0_TroubleShooting/LimitDegをオンにしてコピーペーストした際にHipsにペーストされない件.docx
0_TroubleShooting/足の動きだけをコピペする場合のメモ.docx
ver1.2.0.20の使い方についての注意
EditMotは複数キャラクターのモーション編集に対応しています
キャラクターごとにfbxファイルを分けて 追加読み込みして 編集する(そしてプロジェクトファイルで1つにまとめる)ように作ってきました
1つのfbxに複数のキャラクターが含まれている場合 正しく読み込めないことがあります
複数のキャラクターが含まれているfbxの読み込みについては 次バージョン以降に対応予定
2023/03/27
EditMot 1.2.0.18
リターゲット修正
モデル側モーション側両方の0フレームにアニメが設定されていても正常にリターゲット
bvhだけはなく UnityAssetのfbxモーションについてもテスト
回転順序に対応
読み込みは fbxファイルソースの通りの回転順序
書き出しは XYZの回転順序
オイラーグラフ表示は XYZの回転順序
ドキュメント追加
0_TroubleShooting/TreeEditorで選択しているジョイント名がずれる.docx
2023/03/27
EditMot 1.2.0.19
リターゲット修正
バインドポーズ無しかつ0フレームアニメ在でもOK
指など モーション側のジョイントを指定しないでも おかしくならないように
2023/03/25
EditMot 1.2.0.17
ボーン無し背景fbx読み込み対応
メッシュに対するトランスフォームノードに対応
モデルごとマテリアル表示倍率設定ダイアログ
ToolWindowのボタン化
各Meshのマテリアルのdiffuse, specular, emissive, ambientに対する表示倍率を設定可能
ダイアログ入力で有効な値は 0.0から1000.0
掛け算の倍率なので 元の値が0の場合には 表示に変化はありません
モデルごとに配置用の初期位置初期向き設定ダイアログ
ToolWindowのボタン化
Position XYZと RotationXYZを指定可能
設定は プロジェクトファイルに保存して読み込み
tgaテクスチャ読み込み
オブジェクトパネルの スクロールバーを見易く 白色に
カメラ数値ドリー機能
ToolWindowのボタン化
カメラ位置 カメラターゲット 数値指定
Getボタン Applyボタン
メインウインドウのカメラドリーアイコン動作修正
カメラ位置がターゲットに近づきすぎた場合 止めないで ターゲット位置を視線方向に延長するように
不具合修正 仕様修正
カメラの後ろにあるボーンマークが 前方に逆さで表示されないように
モーションポイントが無い場合に 軸指定IKが無限ループする不具合修正
テクスチャ読み込みエラー対応 読み込みエラーで落ちないように
半透明描画順序を不透明描画の後に
半透明の透過部分が背景色になってしまう現象が軽減
解決ではなく軽減なのは メッシュの描画順序を変えないと解決しない場合もあるから
予定
シーンビルダーにする予定は無いので 背景対応やカメラ対応は程々に
シーン構築はMayaとUnityで
2023/03/05
EditMot 1.2.0.15
位置コンストレイントしたときに 選択フレーム両端部分で 位置が動く問題対応
原因
位置が動くのは 自動平滑化によるもの
平滑化の計算時に 選択範囲両端よりも前後にサンプリングして滑らかにするのが1.2.0.14からのデフォルト
デフォルト状態だと 両端で位置が動く
対策
ConstExecuteボタン押下時 または ジョイントに対してPosConstraintをオンにしている場合
平滑化時の両端のサンプリング時に エッジサンプリングするように 自動で切り替え
対策結果
普段は 選択フレーム両端がより滑らかになるように機能し
位置コンストレイント時には 両端のエッジが立つように機能
位置コンストレイントが 選択フレーム両端においても決まるようになった
サンプルのリグ設定を調整
リグと他のリグの背面が重ならないようにリグ同士の間隔を少し広く設定
2023/03/08
EditMot 1.2.0.16
Rig処理修正
UnderとPostに分けたのにも関わらず フレーム範囲が広いと重かったのを修正
UnderRigからRigを呼び出すときの処理がUnderになっていなかったのを修正
ModelPanelでmodelを切り替えたときに ソフトが落ちることがある不具合修正
RigidElemFile(*.ref)の書き出しと読み込みにboxz要素追加
剛体形状として ずっとカプセル形状でしかテストしてこなかったが
直方体なども使うようになったので boxz(ダイアログの形状depth要素)の書き出しと読み込みに対応
サンプル更新
Test/1_Boy_Sporty_4
おちゃっこLAB
https://ochakkolab.jp/
YouTubeチャンネル
https://www.youtube.com/@ochakkolab
2023/03/04
EditMot 1.2.0.14
物理修正
遅いPCで動かすために 詳細度をカットしていた条件文修正
MotionSpeedを0.1にして Model_boxingサンプルを実行すると パンチが素通りしていたが 修正により当たるようになった
表示が速い環境において 当たり判定が当たらなかったり制限角度が効かない不具合修正
剛体がスリープ状態になっていたのが原因
スリープまでの時間指定と スリープ速度の閾値指定により解決
平滑化修正
平滑化時のバッファ処理修正
出来るだけ過剰には平滑化しないように
Rig機能ブラッシュアップ
Rigのマウスレスポンス
Rigもマウスドラッグ中とドラッグ終了後の処理に分けて マウスレスポンス向上
Rigの説明表示
Rigにマウスを当てたときに リグのボーンとリグの名前のツールチップを表示
Rigの形状種類
球の他に 円(X, Y, Z)を追加 設定画面で選べる
ジョイント右クリックで 作成済のリグ名-->Settingメニューで右ペインに設定ウインドウ-->形状
Rigの表示位置
0から2までの表示位置を 0から30までに変更
Rigの表示倍率
ジョイント右クリックで 作成済のリグ名-->Settingメニューで右ペインに設定ウインドウ-->表示倍率(番号)
0から12の番号をしてい 1.2.0.13と比較して 大体 1倍から6倍の大きさで表示
Rigの回転の度合い
Rigの横縦に対する軸が同じで両方有効な場合 2倍回転して変になり易いので 横の設定だけを処理
剛体設定ダイアログ修正
ダイアログの下から2番目のSetRigidGroupIDForConflict(当たり判定グループ指定)のボタン修正
同じグループの剛体全部に設定 を選んだ場合に 自分のグループと衝突判定する設定項目も対象に
姿勢初期化ボタン修正
ToolWindowの姿勢初期化でdeeperを選んだ場合に 選択ジョイントと同じデプスのジョイントは対象にしないように
サンプルモデル更新
Rig設定、制限角度設定更新
Test/0_VRoid_Spring_1
Test/1_Test20221218_CB0
2023/02/28
EditMot 1.2.0.13
IK終了後のウェイトカーソル時間短縮
IK中は30fpsにする
IK中の描画回数が多いと 一時的データ保存数が多すぎて
ドラッグ終了後のウェイトカーソルが長くなりすぎる
一時的データ保存数を減らすため IK中は30fps
位置コンストレイント修正と高速化と計算回数調整
計算の修正
関数呼び出し構造を大きく変えた際に カレントフレーム以外の計算時のフレーム番号が間違っていたのを修正
カレントフレーム以外の姿勢が 暴れなくなった
コンストレイント用の回転は 徐々に繰り返し回転することにより より暴れにくく
コンストレイント用回転の軸として ジョイントの初期姿勢のZYX3軸について回転することにした
制限角度+位置コンストレイントの結果改善
高速化(以下における 待ち時間の数値は こちらの環境における数値 絶対的な数値では無い)
位置コンストレイント計算の呼び出し方を 試行錯誤して 修正
50フレーム長を選択して 両手両足コンストレイントし Hipsを ワンドラッグ5秒間移動 すると
1.2.0.12では 待ち時間15秒
1.2.0.13では 待ち時間2秒
540フレーム長を選択して 両手両足コンストレイントし Hipsを ワンドラッグ3秒間移動 すると
1.2.0.12では 待ち時間が8分
1.2.0.13では 待ち時間30秒
位置コンストレイント計算回数を各フレーム1回ずつにすれば
上記条件時にも待ち時間1秒くらいだが 妥当な結果を得るために30秒かかる
計算回数調整
完璧ではないが妥当な結果が得られる計算回数を試行錯誤して決めた
(計算回数については 今後変わる可能性や スライダー指定にする可能性も有)
角度制限に対応
LimitEulオンの時の位置コンストレイントは 自動的にWallScrapingIK(壁すりIK)処理で回転
位置コンストレイントとIKStopフラグについて
体全体が傾かないと 位置拘束は難しいことが多い
しかし
コンストレイント用回転も IKStopで止める必要有
体の中心まで回転を伝えた方が コンストレイントしやすいが
shoulderのIKStopで回転を止めない場合
右手と左手のコンストレイント順番により どちらかにしか拘束できなくなる
IKStop自動設定ジョイントを UpperArmからShoulderに変更
手が拘束位置に届かずに回転しない場合 Shoulderの制限角度を緩めてから ConstExecuteボタン押下で改善することがある
位置コンストレイント実行ボタン と 位置コンストレイントリフレッシュボタン を追加
CameraAndIKプレートメニューに ConstraintExecuteボタンとConstraintRefreshボタンを追加
ConstExecuteボタンは
ジョイント右クリックでPosConstraintをオンにしているジョイントの 位置を オンにした時の拘束位置へとIKします
ConstRefreshボタンは
ジョイント右クリックでPosConstraintをオンにしているジョイントの 現在のジョイントを位置を 拘束位置として設定します
想定している使い方
1,位置コンストレイントしてIKした結果をみて 位置が動いてしまっている場合に
追加処理として フレーム選択そのままでConstExecuteボタンを押す
2,IK操作無しで 選択フレーム範囲のジョイント位置をコンストレイントしたい場合
ジョイント右クリックでPosConstraint ON フレーム選択 ConstRefreshボタンで現在位置を拘束位置 ConstExecuteボタンで拘束計算
PosConstraintオンオフ操作について補足
左ペインのツリービューのジョイント項目右クリックでも オンオフ用のメニューが出る
ツリービュー右クリックで設定した方が どこに設定するのかが 分かりやすい
オンにすると ツリービューの項目の右側に IKstopは進入禁止マーク PosConstraintは一時停止マークが表示される
MotionSpeedスライダーを1.0以下にしたときの振る舞い修正
1.2.0.12でフレーム単位表示になってしまっていたのを修正
スピード1.0以下でも滑らか表示
VRoidモデル着替え
Test/0_VRoid_Spring_1 追加
Test/0_VRoid_Winter_1 削除
トラブルシューティングドキュメント追加
0_TroubleShooting/手の位置をコンストレイントした時に肘がバタバタする.docx
0_TroubleShooting/髪の毛の剛体が表示されない.docx
0_TroubleShooting/IK操作で180度以上回転できない.docx
2023/02/24
1.2.0.12動画
https://youtu.be/8p13H6MGQZ8
2023/02/23
EditMot 1.2.0.12
位置コンストレイント機能
Pos Constraintをオンにしたジョイントの位置を保つようにIKします
物理ではなく 普通に数学とIKターゲットによる 位置コンストレイント
########################################################################################
最初に断っておきますが
無理な動きは無理です
体が大きく動く場合に使用すると無理なことになり易い
想定としては 乗り物などのハンドルに手をコンストレイントして 体を少し揺らすなどの用途
だましだまし使う用
########################################################################################
ジョイント右クリックでメニューを出して PosConstraintをオンオフ
オンにすると 移動回転操作の際に オンにした時のそのジョイントの位置を目標に 位置修正
位置修正のための回転は IKStopFlagが設定されているジョイントで止まる
IKStopFlagは 現在は 自動設定 UpperLegまたはUpperArmが名前に含まれるジョイントにセットされる
ジョイント右クリックでも設定可能
位置修正のための回転が ねじれないように 回転の軸は カメラの向きにも依存する
カメラ軸とカメラ軸に垂直な軸に関して2回回転してIKターゲットすることにより 以前よりも安定
効果が分かりやすい使い方としては
編集フレーム範囲をマウスドラッグで選択してから
HandのPos Constraintをオンにしてから CameraAndIKプレートメニューの 上から2番目のアイコンで移動モードにして Hipsを移動
Pos Constraintオンオフのコツ
想定としては Hand と Foot のジョイントに使う
補足:
3Dウインドウの一番右の列の上から3つのボタンで 回転 移動 スケールを切り替える
回転の時には オイラーグラフの上段のジョイント名には 選択ジョイントの1つ親ジョイントの名前が表示される
移動 スケールの時には 選択ジョイントの名前が表示される
回転モードの場合に LowerLegとLowerArmと表示されているジョイントの Pos Constraintが無難な使い方
実際の選択ジョイントとしては FootとHand
設定ジョイント周辺には ジョイントが密集していることがあるので
設定ジョイントの親をクリックしてから 下矢印キーで その子供を選択し
マウスを ジョイントに充てて 小さい黄色い四角が光ったときに 右クリックすると間違いが少ない
###########################################################################################################
左ペインのツリービューのジョイント項目右クリックでも オンオフ用のメニューが出る
ツリービュー右クリックで設定した方が どこに設定するのかが 分かりやすい
オンにすると ツリービューの項目の右側に IKstopは進入禁止マーク PosConstraintは一時停止マークが表示される
###########################################################################################################
Pos Constraintの設定については 常時設定では無くて 必要作業ごとの設定を想定しているので 保存はしていません
例えば ハンドルを握りながら体が揺れるような モーションIK時に 一時的にオンにすることを想定
refpos機能ブラッシュアップ
選択フレーム範囲の カレントフレーム以外の姿勢を 半透明で多数表示し 選択ジョイントに軌跡を表示する機能
RefPosは リファレンスポーズ リファレンスポジションの略
使い方
フレーム範囲を選択後 CameraAndIKプレートメニューの走る絵のスプライトボタンを押すと リファレンスポーズ機能がオン
RefPosプレートメニューの スライダーで 描画フレーム間隔と透明度を指定
リファレンスポーズの透明度は カレントフレームから離れるほど薄くして 動きを感じるように
カレントフレームの選択ジョイント位置に 赤い丸マークを描画 (ジョイント描画をオフにしていても)
選択ジョイント位置の軌跡が モデル描画によって隠されないように描画
refpos機能をオンにしながら IK操作をすると リアルタイムで refposも変化します
マウスによるIK操作のレスポンスを向上
マウス操作中の関数 *UnderIK, *UnderFKと 選択フレーム全体の計算をする関数 *PostIK, *PostFKとに分けた
UnderIK関数ではカレントフレームだけの計算をし PostIK関数ではカレント以外の選択フレーム範囲の計算をする
操作中のレスポンス大幅向上 ただし 操作後の後処理中は ウェイトカーソル
マウスのドラッグ操作が軽くて 長い時間ドラッグ可能だが
ドラッグ時間が長いほど その後のウェイトカーソルも長い
モデルパネル、モーションパネル修正
選択がシングルクリックで出来るように
選択変更しても ビュー位置が残るように
スクロールバー対応
右側のボタンに 表示名が被らないように 30字までの表示に
プレイヤーボタン修正
ロングタイムラインのプレイヤーボタンを押しやすいように中央寄せ
大きく シンプルに
グラフのジョイント名も大きく
IK Stopフラグ
ジョイント右クリックでオンオフ
IKstopフラグは Pos Constraint以外のときにも IK時に ドラッグ効果を伝達しないためのフラグとして働きます
左ペインのツリービューアップデート
ツリービューの名前の右に
IKStopFlagとしてUNICODEの進入禁止マーク
ConstraintFlagとしてUNICODEの一時停止マークを表示
ウインドウ大モードのときの ツリービューの大きさを大きく フォントも大きく
fpsコンボボックス追加
DispAndLimitsプレートメニューの一番上に fpsコンボボックス追加
VSyncRefPosプレートメニューのVSyncチェックボックス廃止
ドロップダウンから free fps, 100fps, 60fps, 30fps, 15fpsを選ぶように
DXUT11の機能を使って指定することにより コンピュータの処理が間に合う環境においては 以前より正確に機能
Lightingチェックボックス追加
DispAndLimitsプレートメニューに Lightingチェックボックスを追加
ライティングのオンオフを切り替え可能
モーション確認時に 陰で黒くなるのが邪魔な場合に有効
X軸に関する180度補正をユーザが選択可能なオプションに
DispAndLimitsプレートメニューに X180チェックボックス追加
チェックを入れると IK時に Y軸Z軸に対して行っているのと同様の180度補正を行う
こちらでテストした限りでは
回転モーションが設定されていない状態に対して IK編集する際には オン
元のモーションがある上から IK編集する場合には オフ にするとひっくり返りにくい
自動化が難しいので ユーザ操作に任せることに
180度ひっくり返った場合に チェックをオンまたはオフしてみる用
TroubleShootingドキュメント追加
0_TroubleShooting/0_EditMotにおけるジョイント名による機能について.docx
0_TroubleShooting/IK操作中にボーンがねじれてしまった場合.docx
0_TroubleShooting/IK中にキャラクターが意図せず逆立ちした場合.docx
0_TroubleShooting/物理に角度制限が効かない場合.docx
2023/02/16
EditMot 1.2.0.11
モーションを持たないfbx対応
1回目の読み込み後 そのまま作業を続けても OKになった
ジョイント初期向きを持つfbxの書き出しに対応
IK操作後にグラフがギザギザする不具合修正
IK操作後も グラフは滑らか
元からギザギザしている場合への対応として メインウインドウに Smoothスプライトボタン追加
繰り返し操作の結果スケールがずれた場合への対応として ToolWindow-->ScaleAllInit(ギザギザしたら押すボタン)ボタン追加
平滑化機能 不具合修正
実行するとピークが後ろにずれたり 形が崩れすぎる不具合修正
よく使うチェックボックスを メインウインドウのスプライトボタン化
LimitEulチェックボックスとWallScrapingIKチェックボックスを メインウインドウのスプライトボタン化
リターゲットウインドウのよく使うボタンを上方に配置
convertボタン, LoadRtgFileボタンを 上方に配置
SaveRtgFileボタンは 設定し終わってから押すので 一番下のまま
モデルパネル、モーションパネルをフレームに組み込み(4K)
サンプル更新
Test/0_VRoid_Winter_B4
トラブルシューティング修正
BecomeJaggedEulerGraph_OnIK.docxを修正
ACaseThatTranslationOfResultOfRetargetDontMove.docxを削除
2023/02/09
EditMot 1.2.0.10
//###################
//### 使い方の注意
//###################
モーションが含まれていないfbxを使う場合の注意
fbxを読み込み後 すぐに Fileメニューからプロジェクトを保存
モデルメニューで 全てのモデルを削除後 保存しておいたプロジェクトを開き それから作業を始めてください
この手順を踏まないと おかしなモーションになります
//###################
//### 以下 変更内容
//###################
制限角度のベイクの仕様を変更
制限無しと制限有とが混在することに起因する誤差を解決
制限角度がより安定
編集部分だけのベイク(LimitedWorld-->World)が安定
L2Wボタン追加
LimitEulオン時に押すと 全フレーム制限角度付モーションをオリジナルモーションにベイク
LimitEulオン時のIK編集、姿勢初期化、平滑化、補間操作に関しては 自動的に編集部分だけベイク
物理シミュ不具合修正
複数モデルを読み込んでシミュする場合に 1回目のシミュ時に制限角度が効かないことがあったのを修正
IK操作高速化
制限角度の計算に誤差があったときの対策が無くなり高速化
オイラー角計算修正
例えば
LimitEulオフで0度から800度まで回転し LimitEulオンで0度から450度(1回転後少し回転したところ)までに制限することも可能に
(テストジョイントの回転を姿勢初期化で初期化してからテストしました)
1000fpsで物理シミュをしたら シミュ開始時に乱れるのを修正
ロングタイムラインをxボタンで閉じると 表示がすごく速くなります
1000fps以上出たのですが乱れました
初期化回数をfps依存にすることで解決
操作対象ボーン(target bone)ウインドウの幅を広く
ToolWindowの操作対象ボーンボタンを押したときのウインドウの幅を調整
TroubleShootingドキュメント追加
0_TrounbleShooting/L2Wボタンとは何か.docx
0_TrounbleShooting/IK操作をするとオイラーグラフがギザギザになる.docx
0_TrounbleShooting/リターゲット結果の全体移動が動かない場合.docx
0_TrounbleShooting/物理シミュの髪の毛がふわふわしすぎる場合.docx
リファクタリング
グローバル変数のオンオフで挟んでの機能切り替えをやめて 引数として渡すことに
タイミング依存(並列化もあり得る)の潜在的不具合を解消
姿勢初期化ボタン修正
移動, スケールの初期化の際には 操作対象ジョイントとして選択しているジョイントそのものに処理
回転の初期化の際には 選択しているジョイントの1つ親のジョイントを処理
モーションを含まないfbxに関する修正
モーションを含まないfbxに モーションをリターゲットしたときに 動きがおかしくなる不具合修正
一応対応しましたが モーションを含まないfbxは 一度プロジェクト保存して 読み込んでから使うことを推奨
サンプル更新
Test/0_VRoid_Winter_B3
2023/01/29
EditMot 1.1.0.13
機能のボタンを押した際に出るダイアログの位置をデスクトップのセンターへ
ダイアログの xボタンを押して閉じた際に プレートメニューが押せなくなる不具合修正
制限角度設定ウインドウに機能追加
LimitEulプレートメニュー選択時に右ペインに表示されるウインドウに機能追加
Upper, Lowerを適用するボタンを One, Deeper, Allの3種類に
不具合が直ったので グレーアウトしていたCurrentBoneへの制限角度の対称コピーボタンなどを復活
ToolWindowの姿勢初期化機能修正
オイラーグラフのジョイントに対して処理(ツリービューのジョイントに対してではなく)
制限角度時のIKについてもう一度テスト&修正
high rpmにチェックを入れた場合の効果を プレビュー時だけではなく IK回転時にも 有効に
物理の軸とコリジョンの向きの更なる改良(いろいろなfbxに対応)
参考までに
物理シミュの改良とテストについて
初期姿勢の有り無しを比べていてやっとわかったのですが
剛体とコリジョンに余計なモーションの姿勢が掛かっていたのを直しました
こちらの環境では 何もしていないのに 跳ね返ったりする現象が 激減しました
このように単純化出来るのは 物理とモーションの軸合わせが出来ているからです(diff計算ではなくなったから)
物理の動きを改良しながらソースをいじっていたのですが
同じプログラムでも 綺麗に柔らかく髪の毛が揺れる時と ギクシャク揺れる時とありました
どうやら fpsが100程度出ているときには 柔らかいですが 80程度の時にはもうギクシャクするようです
UpdateThreadsスライダとhigh rpmチェックボックスで なんとか 100fpsを出るようにしてテストしています
100fpsを出すために 工夫することとしては 上記のUpdateThreadsとhigh rpmの他に
読み込みモデルの数を出来るだけ減らすことです
読み込んでいるモデル分 再生物理処理が同時に走るからです
モーションfbsを読み込むとモデルデータが作成されます
このモーションのモデルデータは 形状のモデルデータにリターゲットした後には削除することをお勧めします
そのようにすることで 同時に動くモデル数を減らすことが出来て fpsが上昇します
物理シミュをBT RECボタンでベイクしてそれを再生するときの動きを改善
物理の動きを柔らかくする修正をした後のバージョンにおいて
物理シミュ時には LimitEulチェックボックスにチェックを入れてから シミュをすることが必須になった
物理シミュ時の角度制限は LimitEulチェック時に働く
その際には 制限角度を設定するだけで 実際の処理は bulletPhysicsに任せている
物理シミュの角度制限の仕方は 角度クランプではなく 行きすぎたら戻る力が働くような制限のようだ
そのような物理シミュの角度制限なので
BT RECボタンで 物理シミュをベイクした場合
LimitEulをチェックしての再生時に
自前のクランプによる角度制限機能が走り 動きがカクカクしていた(シミュ時には滑らかだったのに)
ベイクした物理がカクカクしないように
再生中に 可動かどうかをチェックする部分において
GetBtForce() == 1の場合には ismovable = 1として扱うようにした
この修正によって
物理シミュのベイク結果の再生が シミュ時と同じ動きになった
物理シミュ時のシミュ対象外ボーンが カクカクする不具合修正
シミュ対象外ボーンが テストのために シミュの影響を受けているままになっていました
シミュ対象外ボーンは 通常モーションの通りに動かすように修正
物理シミュ時に 大きすぎる位置移動で シミュが乱れすぎないように対策
シミュと非シミュの境目のモーション移動分を 子供のシミュボーンに伝達
制限角度時のIKについてもう一度テスト&修正
参考までに
前バージョンの制限角度機能の追加テスト結果のメモ
制限角度+プレビュー --> OK
制限角度+hips IK のテスト
0_VRoid_Winter_B1読み込み-->hipsの回転を全部フレーム姿勢初期化-->
hipsをLiniarブラシでtoppos100%でY軸2回転-->
LimitEulチェック-->1フレームだけ選択-->hipsを回転-->子ジョイントがねじれた-->
LimitEulチェックオンオフで直った
LimitWMの未更新が原因?!
対策として IK回転関数の呼び出し後に LimitEulチェック時の処理 --> OK
更にテスト
LimitEulにチェックを入れて IKRotする場合
制限角度内に姿勢が収まる部分は オリジナルの姿勢情報が上書きされる
制限角度内に姿勢が収まらない部分は オリジナルの姿勢情報のまま
よって 制限でこれ以上動かなくなっているのに マウスドラッグを続けると
LimitEulチェックを外したときに オイラー角には 段差が出来ている
これは上に説明した通りであり 現在の仕様
制限でドラッグしても動かなくなったら すぐにドラッグをやめるのがコツ?!
追記
制限角度内に姿勢が収まらない場合の処理は LimitedWMをセットすることにした
複数モデルを読み込んでの 初回の物理シミュ時に 制限角度が効かない不具合を修正
その後いじっているうちに 1回目シミュ時の不具合が出るようになってしまいました
今後のバージョンにて対応予定
複数モデル読み込み時の 物理は 2回目から使ってください
1.1.0.13の制限角度について
1.1.0.13として出来ること
既存のモーションの可動範囲を ボタン1つで制限角度として設定
可動範囲を越えないように プレビューとIKを制限可能
制限角度のApplyについては 物理シミュ対象ボーンに有効
1.1.0.13として出来ないこと
制限角度を設定した後に 角度を絞り込むような値をApplyした場合
角度を絞り込んだボーンの子供ボーンのIKが動かなくなり出来ない
絞り込んでのプレビューは出来るが 絞り込んでの子供ボーンIKが出来ない
つまり
オリジナルモーションから はみ出さないように 制限することは出来るが
オリジナルモーションよりも 絞り込むように 制限することが出来ない
1.1.0.13以降の課題について
現在の仕様として
オリジナルのモーションと角度制限を施したモーションの2種類保持している
問題になっているのは
IK時に角度制限をしたモーションを オリジナルのモーションにベイクする部分
ローカル回転を求める時に
親の姿勢として オリジナルと角度制限とどちらが掛かっているか どちらを掛けるかが難しくなっている
操作が介入するので 余計に難しくなっている
解決案としては
オリジナルに角度制限をベイクするのはやめて
オリジナルと編集結果のように分ける
オリジナルにはオリジナルの親行列を掛ける
編集結果には編集結果の親行列を掛ける
というように明確にする
(可能ならば)
サンプル修正
Test/0_VRoid_Winter_B1
Test/Model_boxing
制限角度ファイルを 新しいプログラムのボタンを押して設定し直したものに
2023/01/22
EditMot 1.1.0.12
物理シミュ修正
通常モーションの軸を変更したので 物理剛体の軸と一致していない状態が続いていた
物理剛体の軸を 変更した通常モーションの軸と合わせた
軸を合わせたことにより回転情報がそのままの値で やり取りできるようになった(diff計算ではなくなった)
BtCalcCntスライダーの初期値を3から2に変更
表示回数fps依存で動きが硬くなったり柔らかくなったりする 物理の作業の際にはVSync(fps一定)チェックボックスにチェック
モーション再生スピードによっても 物理シミュ結果は大きく変わります Speedスライダーで調整
物理シミュの動きが更に柔らかく
物理シミュの動きが格段に柔らかく かつ 制限角度が効くようになった
物理シミュ時の角度制限が大幅改善
物理シミュをする場合には
ヘアージョイントに制限角度を設定し LimitEulチェックボックスにチェックを入れることが必要になった
モーション部分の制限角度はAngleLimitDlgのボタン1つで既存モーションから設定可能
ヘアーなど物理シミュ部分の制限角度はfbxと同じフォルダに入っている*.lmtファイルをテキスト編集するのが早い設定の仕方
lmtファイルにはバージョン管理情報がファイル先頭に書いてありこれを変えると読み込まれない
lmtファイルは バックアップを取った後に 既存のものを編集するのが良い
物理シミュ時の当たり判定精度向上
剛体の当たり判定形状の向きはボーン軸に合わせた
コンパイル時の警告を解決(ただしbullet以外)
外部ライブラリのMicrosoftのEffects11をdec2022にアップデート
外部ライブラリのMicrosoftのDXUTをdec2022にアップデートしてマージ
計算されないフレームが出来る潜在的不具合を解決
移動アニメを回転する際のノイズ対策
1.1.0.11からhips以外のジョイントの回転時に移動アニメも回転していた
しかし
移動の回転は 微妙な誤差を生じる
そして操作の度に その誤差が蓄積していた
よって
必要な時だけ 移動アニメを回転することにする
3DウインドウのGUIのVSyncの隣に TRotチェックボックスを追加
TRotにチェックを入れたときのみ hips以外のジョイントの移動アニメを回転する
hipsの移動アニメは常に回転する
デフォルト状態でTRotチェックはオフ
LimitEulにチェックを入れてIKしたときのグラフのギザギザ対策
LimitEulにチェックをしている状態で 限界を超えるようにIK回転をガチャガチャしていると
オイラーグラフがギザギザになる
緩和策として
topposのフレームにおいて 先に可動チェックをして 無駄に動かさないようにした
更なる対策としては
ToolWindowの平滑化ボタンを押すこと
関係のないジョイントまで平滑化すると 動きが変わることがあるので
平滑化ボタンを all, Parent One, Parent Deeperの3種類に増やした
平滑化機能で ガウシアンを選び フィルター数として11を選ぶと かなり効果がある
サンプル物理パラメータ修正
Test/0_VRoid_Winter_B1
物理シミュ時に 髪の毛が肩にめり込まないようになった
髪の毛が頭にもめり込まないように
ただし BtCalcCntスライダーの値が小さすぎたり Speedスライダーの値が大きすぎると 当たり判定で跳ね返しにくくなる
2023/01/14
EditMot 1.1.0.11
IK操作で180度以上の回転をした場合(複数フレーム選択時)にも オイラーグラフが階段状にならないように
fbx読み込み時だけでなく IK操作時にも 階段状ではない連続したオイラーグラフ
165度以上の段差は平らにするようにしましたが 小さい段差は出来ることがあります
段差をMayaで再生すると オイラー角補間するので 少し傾くことがありますが それはMayaのfps設定が適切ではないときの話
Mayaの再生fpsを1フレームずつのステップになるように調整すれば 段差でも変になりません
Unityでの再生ではオイラー角の段差は問題にはならないようです
リターゲット時にHips以外の移動アニメも有効に
ロングタイムラインの上方中央にマウス操作対象ジョイント名を大きく表示
ロングタイムラインの左側のジョイント名表示を止めた分 タイムラインを広範囲に
Hipsジョイントの回転時は 自動的にGlobal軸に
Hipsの移動も回転させるためにGlobal軸にする
不具合修正
LimitEulチェックを入れても プレビュー時に角度制限が効いていなかった不具合修正(IK時には効いていた)
マウス中ボタンクリック + マウスホイールでのフレーム選択が効かなくなっていたのを修正
体全体を180度回転した時のRigの回転が反対回転することがある不具合を修正
通常のIKと同様に
使い方ヒント
1フレームの間に変化できる最大角度は165度(未満)
オイラー角を階段状にしないために必要
大きな変化をするにはそれなりに長いフレーム範囲を選択しておく必要があります
指のRigを操作するときにはLimitEulチェックだけでなく WallScrapingIKチェックボックスもチェック
WallScrapingIKは指Rig以外での使用はお勧めしません
2023/01/11
EditMot 1.1.0.10
オイラー角オーバー180対応
+-180度の制限をやめ
1フレームの間に180度から-180度へ変化してMayaのプレビューでくるっと回る不具合解消
制限角度もオーバー180対応
制限角度ダイアログをスライダーベースからエディットボックスベースへ
FromCurrentMotionボタンの機能を修正 フルフレーム再計算することによりbefeulの値を正しく
サンプルの制限角度設定は設定し直しの必要有(読込済モーションの可動範囲をワンボタンで制限角度として設定可能)
設定のヒント
制限角度についても180度オーバーで指定するようになった
制限無しとして設定するには 下限値を-180度, 上限値を+180に設定する
Mayaライクなオイラー角
オイラー角の数値がMayaと同じ表示になった
リターゲット済モーション モーションだけのバインドポーズ無しfbx モーションだけのバインドポーズ有りfbx でテスト
新しいオイラー角のもとでのIKとリターゲット
IK回転操作時に移動成分も回転するように
Hipsの親ではなくHips自身を回転させたときにHipsの移動成分も回転 全体の回転と全体の移動の関係が保たれる
ロボットの腕を IK移動で引き伸ばして 腕を引き伸ばした状態で腕をぐるぐる回すことが可能
4種類ほどのファイルでテストしたが Hipsジョイントも含めてテストOK.
操作のヒント
移動が設定してあるHipsを回転する際には ブラシにRect, 軸としてGlobalを選択, topposスライダーを0%に設定
グラフ表示修正
直感的操作に合わせた表示
回転操作時にはIK(1つ親のジョイントのオイラー角表示)
移動、拡大操作時にはFK(選択ジョイント自体の移動または拡大情報表示)
サンプル更新
制限角度設定のための更新
Test/0_VRoid_Winter_B0
Test/1_Test20221218_CB0
Test/Model_boxing
ver. 1.1.0.10操作のヒント
IK, FK と オイラーグラフに表示する情報について
回転操作はIK(子供ジョイントをドラッグして親ジョイント中心に回転)
移動操作と拡大操作はFK(操作するジョイント自体をドラッグして 操作するジョイント自体の状態を編集)
上記のIKとFKの切り替えは 回転、移動、拡大に関する 直感的操作に基づくものと思っている
回転、移動、拡大を切り替えると オイラーグラフに表示するジョイント情報も変わる
回転の時には 選択しているジョイントの親のジョイントのオイラー角を表示
移動、拡大時には 選択しているジョイント自身の 移動または拡大情報を表示
グラフ上段左側に 赤い字で 操作するジョイントの名前を表示
オイラー角について
オイラー角の数値は Mayaライク(こちらでテストした6種類ほどのfbxではMayaと一致)な 1種類のオイラー角
オイラー角は1種類だが 回転、移動、拡大する際のマニピュレータの軸は 4種類
マニピュレータ軸4種は Current, Parent, Global, BindPoseであり コンボボックスで選択可能
軸としてのBindPoseは今回新規
本来は 同じ姿勢でも計算時の軸が異なるとオイラー角も異なる(だがオイラー角は1種類の表示にしている)
オイラー角計算時の軸はBindPoseと同等(GLOBAL以外の場合には 軸にカレントボーンの姿勢を掛けて表示)
操作中、操作後にも各種軸はブレないことを確認
2022/11/30
EditMot 1.0.0.35
LimitDegチェックボックスとWallScrapingIKチェックボックスのアンドゥ処理修正
チェックを入れてからアンドゥするとアンドゥ処理自体が保存されてしまい アンドゥが先に進まなくなっていたのを修正
VRoidの頭ジョイントを読み込み時に非表示設定
髪の毛のジョイントが多くて 顔がみえなかったので対応
頭ジョイントの表示をオンにするには ToolWindowのジョイントスキップResetボタンを押す
姿勢初期化の修正
子供を持たないエンドジョイントの姿勢の初期化が出来ていなかったので修正
bvhをFbxに変換する際のbindmatを無しに
fbxを読み込む際に設定する
(マニピュレータ軸とは別件)
SSE2復活
SSE2による割り算の際のfloatの最小値を1e-5からFLT_MINにしたところ問題解消
VRoidモデルの指のリグ修正 Test/0_VRoid_Winter_9
親指の動きを修正
VRoidモデルの制限角度設定 Test/0_VRoid_Winter_9
bvh120, bvh103のモーションの可動範囲を制限角度として設定
指は開閉モーションを作りその可動範囲を制限角度として設定
アンドゥ直後のフレーム選択が正しくなかったのを修正
プレイヤーボタンの 1フレームへジャンプボタンと 最終フレームへジャンプボタンを修正
ThreadNumとhigh rpmの組み合わせの効果テスト
効果の割合が大きいのは PriciseOnPreviewチェックボックスにチェックを入れてプレビューしたとき
4KTV接続で ウインドウ大選択起動時 30fpsが70fpsになるくらいの効果があった
2022/11/09
EditMot 1.0.0.34
SSE2の精度が足りないことで起こっていた不具合修正
ここまでのまとめ版を作りたかったので AVX2対応ではなく通常の演算に戻しました
マニピュレータのピック不具合とRigマークのピック不具合が直りました
UpdateThreadsスライダーでスレッド数を増やしてhigh rpmにしたときの効果が少なくなりました
VRoidの指のRig設定追加
Camera and IKプレートメニューのRigボタンを押すと手の場所に指を開閉する設定をしたRigマークが現れます
モデル全体回転時の全体移動の回転をシンプルに
RootあるいはReferenceが名前に付いているボーンが存在しない場合には原点にRootボーンを作成
Hipsボーンで体中心の回転と移動をし Rootボーンで全体を(移動成分も)回転することを想定
アンドゥリドゥの不具合修正
一番新しい保存から一番古い保存へのリドゥを禁止
一番古い保存から一番新しい保存へのアンドゥを禁止
保存している変更を全て適用する必要があり 意図と違うと思われるため
BtRec停止時のタイムライン表示
BtRecボタンで物理をモーションにベイクしてStopBtで停止した時にタイムライン表示がずれていたのを修正
プレイヤーボタンの2重のVマークと2重の^マーク
選択範囲だけの履歴機能ボタンから アンドゥリドゥ機能ボタンへと変更
4KTV接続時にウインドウ大を選んだ場合
Disp and Limitsプレートメニューのコンボボックスが見切れないように 3Dウインドウ上部に配置
マニピュレータの種類の選択が効いていなかったのを修正
軸がブレないことも確認
コピー履歴ダイアログの修正
ToolWindowからコピー履歴ダイアログを開いて 最新のコピーを選択チェックを外した後
どれかコピーをクリックしないとペーストされない不具合を修正
2022/11/04
EditMot 1.0.0.33
ジョイントの向きの強制リセットをやめてfbxの情報を読み書きするように修正
読み込めるfbxが増えました
読み込み方が変わったのでリターゲットも修正
モデル側0フレーム姿勢編集テスト済(0フレーム編集後はすぐに保存して読みなおしてください)
モーション側0フレームに姿勢有のテスト済
マニピュレータ改善
自動的にボーンの軸がマニピュレータのX軸に向く機能を大幅改善
0フレームにポーズが付いていても正常に機能
親ジョイントにポーズを付けても きちんとX軸を向く
IK中にIK平面がブレない
(今までのマニピュレータが冗談かと思うくらい しっかり直りました)
ライトの向き修正
常に明るく
カメラ位置からターゲット位置への向きに
FileのOpenメニューのダイアログ不具合修正
フィルターボタン2つを交互に押してからキャンセルすると プレートメニューが選択できなくなる不具合修正
Testフォルダに制限角度確認用モデルを追加
Test/0_VRoid_LimitEulTest
通常再生では モーキャプ精度問題により 足首の動きがありえませんが
Display and LimitsプレートメニューのLimitEulにチェックを入れて再生すると
足首が安全になります
テストモーションは ソファにしりもちをつきながらの なんとかダンスです
このテストデータの作り方は
bvh120のモーションを全てリターゲットして
LimitEulプレートメニューを実行
LimitEulウインドウ(サイドウインドウ)の0Resetボタンを実行
FromCurrentMotionを全てのモーションについて実行し制限角度設定
不要なモデルと不要なモーションを削除
プロジェクト保存
bvh121をリターゲット
LimitDegチェックをオン
bvh120で作成した制限角度をbvh121に適用したことになります
プロジェクト保存
テストとして角度外に曲がらないように粗く制限角度を付けました
実際に使用するには その上で モーションブラシ編集により 滑らかにする必要有
2022/10/22
EditMot 1.0.0.31
モーションが1つも無いfbxを読み込んだ場合の不具合修正
モーションが無いfbxを読み込むとIK操作やリターゲットをしても全く動かない不具合を修正
オイラーグラフの選択部分の後半部分の表示が更新されない不具合修正
高速化の際に範囲指定を間違えていました
モーションの最終フレームにモーションポイントが無い不具合修正
最終フレーム番号の計算を修正
複数回-1しているのが原因でした
アンドゥリドゥ不具合修正
最終フレームまで選択ボタンで選択した場合にアンドゥ用の保存をしていなかったのを修正
最終フレームにモーションポイントが作成されていないためアンドゥが無効化されていました
EditMotのアンドゥはモーション編集に関してのアンドゥということを再確認
モーション編集に関わるブラシパラメータ(Brushプレートメニューで表示されるGUI設定)もアンドゥ対象に追加
アンドゥの最大回数を200回から999回に変更
GUIメニュープレートの配置を改善
プレート文字を意味が分かる文字列に変更
配置もプレート文字の意味に従って配置し直し
BtStop(物理停止ボタン)でLimitDeg(制限角度)のチェックが外れる不具合修正
TopPosスライダーの両端の値(0%のときと100%の時のフレーム位置)がずれている不具合修正
計算式を見直し
ツールウインドウに180度補正ボタンを追加
まだ試験的実装
オイラーグラフの選択範囲をみやすく
選択範囲の両端とTopPosのフレーム部分に垂直ラインを描画
どこからどこまで選択したのかの確認が楽に
プレビュー時のフレーム番号表示をみやすく
プレビュー時にはメモリの範囲ではなくカレントフレーム番号を表示
VSyncプレートメニュー
VSyncのオンオフを切り替えるチェックボックスを追加
VRoidのサンプルモデルを冬用に変更
Test/0_VRoid_Winter_8 ディレクトリ
物理の設定もしておきました
2022/10/28
EditMot 1.0.0.32
リターゲット数式修正
1.0.0.26までの数式とその後の1.0.0.31までの数式を修正して合体
bvh側の0フレームアニメとmodel側の0フレームアニメの両方に対応
プレビュー時GUI表示詳細モード追加
DispAndLimitsプレートメニューにpreciseOnPreivewTooチェックボックス追加
上記チェックボックスにチェックするとプレビュー時にもGUI表示を詳細に
カメラが近づきすぎるとカメラが固まる不具合修正
リターゲット設定ファイル(*.rtg)書き出し時にも履歴に追加
サンプル修正と追加
Test/1_Test20221029_C9
Test/RetargetSettingFileExample/*.rtg
2022/10/15
EditMot 1.0.0.30
制限角度付プレビューを滑らかに高速に
通常のプレビューと同様にdoubleの時間に対応してプレビュー
制限角度時の計算を効率化して通常プレビューとあまり変わらない速度でプレビュー
プレビュー高速化
行列とベクトルの演算についてSIMD(SSE2)対応
効果が分かりやすいようにVSync解除中
1秒間の描画回数fpsをスプライト表示でみやすく
アンドゥリドゥの不具合修正
アンドゥリドゥ用のGUI
アンドゥの番号をみてどの状態に戻るかわかるようにGUI表示
R:***はアンドゥ読み込みポイントを表示
W:***はアンドゥ書き込みポイントを表示
アンドゥリドゥ実行用のGUIも追加
プレビュー時のオイラーグラフ表示
重くならないように例のアニメのワープタイミングモニタ風に
オイラーグラフの不具合修正
最大値と最小値の幅が小さすぎる場合に目盛り文字が重なっていたのを修正
High rpmモードの挙動修正
High rpmにチェックを入れていても高回転モードはプレビュー時のみ有効
プレビュー時以外はecoモードに
Thraed numの最大値変更
Windows11のアップデートによりCPUビジー時にもマウス応答が良くなったので
スレッド数上限をモデル当たり4だったのを8に増やした
Rokoko用のリターゲット設定ファイル追加
VRoidの指のジョイントとの対応表付き
Test/RetargetSettingFileExample/vroid141_womandance_fingers.rtg
2022/09/16
EditMot 1.0.0.28
バインドポーズが無いfbxの保存が出来るように
タイムラインの選択フレームの色変更
プレビュー時に選択色が解除されないように
タイムラインのキーをフルフレームインデックス化
1万フレームを越えるモーション編集時にジョイント選択がとても遅くなる症状が無くなりました
編集についても高速化
プレビュー速度も多少速くなりました
アンドゥーリドゥの改善
編集部分だけをアンドゥリドゥすることにより大幅に高速化
選択範囲とブラシ設定も復元
200回まではアンドゥ済の情報も保存したままにするように修正
読み出しポイントと書き出しポイントを別管理することにより使いやすく
UndoとRedoを 3DウインドウのSpriteIKグループの スプライトスイッチに
オイラーグラフ表示高速化
1秒間の描画回数fpsは環境依存であって目安でしかないですが
こちらの環境において4KTV表示時にもプレビューが60fps出るようになりました
表示解像度は小さいほど表示が速くなりますが4KTVでも使えるようになりました
リターゲットファイル読み込みダイアログに履歴機能追加
リターゲットウインドウのLoad rtg fileボタンを押したときのダイアログに履歴を追加
モデル側の1番目のモーションを削除するとリターゲット結果が全て初期姿勢になる不具合修正
リターゲット時にbvh側の指定をし直した場合にはジョイント名対応表を初期化
ToolWindowにSkipBoneMark, ResetBoneMarkを追加
選択中のボーンとその子供ボーンのボーンマークの非表示表示切り替え
ボーンマークをスキップしているボーンはマウスで掴めないように
モーションを切り替えてもモーションスピードスライダーの設定値を保持するように
ChaVecCalcにリファクタリング用の関数を追加
ChaVector3クラスに回転、スケール、移動行列を返す関数追加
ChaMatrixクラスにChaVector3などを渡して回転、スケール、移動行列をセットする関数追加
関数は用意したが実際のリファクタリングについては次回以降!?
2022/09/20
EditMot 1.0.0.29
ルートボーンを回転する場合の不具合修正
bvhをリターゲットしたモーションで移動成分が回転しない不具合が直りました
直すためには1.0.0.29以降でリターゲットし直す必要があります
1クリック目の不具合修正
ロングタイムラインなどの1クリック目が正しく機能していなかった不具合解消
2022/09/01
EditMot 1.0.0.27
0フレーム編集
0フレーム編集はモデル(bvhではなく)の最初のモーションの0フレームに対して行う仕様
0フレーム編集して保存したfbxをMayaで読み込みOK
0フレーム編集結果をモーション新規作成時に適用
リターゲット時にモデル側0フレームアニメーション考慮、結果をMayaで確認OK
Tool Windowに "Edit 0 Frame" ボタンを追加
ToolWindowの補間ボタン修正
補間の効果がオイラーグラフと1階層分ずれていたのを修正
リターゲット処理改良
仕様としてfbxやプロジェクトファイル保存をするとモデルのジョイント名の最後に _Joint が付加されます。
リターゲットファイル(*.rtg)を読み込む際、ジョイント名に"_Joint"が入っている場合と入っていない場合両方検索
"_Joint" はジョイント名の予約語扱い
リターゲットウインドウで対応ジョイントを指定した後にNotSetに指定を戻せるように。
サンプル追加
Testディレクトリ
プレビューの更なる高速化
180度反転防止機能を一時的に停止。複数回防止機能が実行される状況でうまくないから。将来ToolWindowのボタン化予定。
バインドポーズの無いfbx読み込み改善
Rokokoなどのバインドポーズの無いfbxの保存は改変せずに元のfbxをコピーするだけに。
(リターゲットは出来ます。)
2022/08/23
EditMot 1.0.0.26
(訳あって)ソフト名を EditMot に変更
物理シミュレーションの高速化
物理IKだけで必要な処理を条件文内に入れた
ゲームパッドをつないでいないときのファイルダイアログをエクスプローラ形式に
どうしても長いファイル名があるから
姿勢計算のマルチスレッド化(プレビュー時の描画速度の高速化)
3Dウインドウに新たにhigh rpmチェックボックスとUpdateMatrixThreadsスライダーが加わりました
high rpmチェックボックスとUpdateMatrixThreadsスライダーはペアで使います。
UpdateMatrixThreadsスライダーは
UpdateMatrix計算時のスレッドの数を指定するためのもので1から4まであります
スレッドの数は1モデルあたりのスレッド数です
high rpmはスレッドを高回転させるかどうかを指定します
スレッド数を増やすだけでは表示速度は速くならないことが多い
スレッド数を適切に増やしてhigh rpmをオンにすると高速化することが多い
高速化する場合にはその分CPUの稼働率は高くなります
制限角度(LimitEul)をオンにした場合についても最適化済
Fbxアニメーション読み込みのマルチスレッド化
テスト例:10秒かかっていた読み込みが6秒になったのを確認
fps表示を60回描画時間の平均値に
リターゲットウインドウを分かりやすく
適用される側のモデルの選択ボタンをやめて現在選択中モデルを自動セット
サンプルのyuriちゃんのTポーズを修正して腕が閉じすぎないように
Test/Test20220818_C6
C++14標準からC++20標準にバージョンアップ
ただしEffect11はC++17
2022/08
MotionBrushFree 1.0.0.25
フリーウェア化して名前をMotionBrushからMotionBrushFreeに変更
インストーラ対応
実行に必要なVisualStudioランタイムも自動インストール
Toolウインドウの補間ボタンのバージョンアップ
モーションの補間時に選択中のブラシカーブを適用するように。
1メッシュに付き複数マテリアルが指定されていても読み込めるように。
VRoidのvrmファイルから変換したfbxファイルも読み込めるように。
VRoid1.4.1以降のHair1からHair6のジョイントに自動で物理シミュ設定。
エンドジョイントも物理シミュ対応
エンドジョイントが頂点に対して影響度を持っている場合にも物理シミュが機能。
商用モーキャプfbxデータ(RokokoMotionLibrary)の読み書き編集リターゲットに対応
バインドポーズを持たないfbxの読み込みを 更に 改善
0フレームにアニメーションが設定してあってもリターゲット可能
モーション編集も通常通り行うことが出来る
Punch1ブラシとPunch2ブラシのデバッグ
RigidParams設定ウインドウ
rotSpring CustomValueの最小値(10.0)を2.0に変更
Testフォルダにサンプル追加
Test/VRoid_131追加
VRoidから変換したfbxのサンプル。chaファイルをオープンしてご覧ください。
Test/RetargetSettingFileExample/vroid141_bvh131.rtg追加
VRoidから変換したfbxに対するリターゲット設定ファイルとして使用ください
FileメニューのOpen時のダイアログ改良
履歴10件を20件に変更
Filter *.chaボタンとFilter *.fbxボタンを追加。履歴に拡張子フィルター。
重要文字を赤で
タイムラインのテキストカラー
リターゲットウインドウのテキストカラー
ツールウインドウの補間ボタンを3種類に増
(ボーンごとの補間が可能に)
補間(all)
補間(one)
補間(deeper)
2022/05/17
MotionBrush 1.0.0.24
オイラー角計算修正
オイラー角90度をまたぐときの問題が解決
(キャプチャ精度依存やノイズ依存の乱れは直りません)
ほとんどすべての機能に関係します
bvh2fbxなどの結果にも影響します
プレビュー時の事前計算はLimitEulにチェックを入れているときだけ行う
LimitEulはデフォルトでオフ
オンにする場合はBasicSettings2を押してからLimitEulにチェックを入れる
"0_VisualStudio2019をインストールしていない方は"というフォルダの中の
VC_redist.x64.exeを2022/05/11リリースの最新版に更新
2022/01/12
MotionBrush ver1.0.0.23
リアルタイム制限角度プレビューで1/3倍速になっていたのを元の速度まで高速化
ボトルネック特定
UpdateMatrix内で姿勢に制限角度を適用している部分が遅かった
制限角度をダーティフラグ付きで事前計算
再生ボタンを押したときとBtStartボタンを押したときに事前計算してから再生することで再生が速い
2回目以降の再生は事前計算も速い
アンドゥーリドゥ(Ctrl + Z, Ctrl + Shift + Z)時にフレーム選択も復元
タイムライン上の選択位置がタイムラインのセンターになるように
MotionBrushC4.exeの終了時のお行儀を良く
4KTVに接続していない場合の終了時にメッセージを表示
終了時の処理を修正して起動していた分のMotionBrush*.iniファイルが出力されるように修正
バッチ処理のマルチスレッド処理のリファクタリング
タイムラインのアップデートはマルチスレッドに
コピー履歴ダイアログでコピーを選択後にOKボタンを押さなくても選択を反映
4KTV表示時のGUIを画面中央寄せ
WallScrapingIKはデフォルトではオフに
オイラーグラフにおけるモーションブラシ表示の範囲を-1から+1までに
GUIフォントのWを少し修正
サイドウインドウの上部の4つのメニューボタンを使用頻度の高い4つに選定しなおし
階層エディタにおいてRigが設定してあるジョイント名は緑色で表示
初回クリック時にブレットオブジェクト作成せずにモデル選択時とFBX読み込み時に作成
プロジェクトファイル(*.cha)でモデルの位置を設定している場合のマニピュレータ位置計算修正
カスタムリグを右クリックメニューから削除(無効化)出来るように
コピーライト更新
2021-->2022
info@ochakkolab.moo.jp-->info@ochakkolab.jp
https://moo-ochakkolab.ssl-lolipop.jp-->https://ochakkolab.jp
Information
物理ブラシについてのメモ
https://ochakkolab.jp/diary_win.html#MotionBrush_20211209_1
Unity3DとVRoid正式版との連携方法について
https://ochakkolab.jp/diary_win.html#MotionBrush_20211114
制限角度の設定と制限角度下でのIKについてメモ
https://ochakkolab.jp/diary_win.html#MotionBrush_20211205_1
コピー履歴機能の使い方メモ
https://ochakkolab.jp/diary_win.html#MotionBrush_20211203_1
カスタムリグについてメモ
https://ochakkolab.jp/diary_win.html#MotionBrush_20211208_1
おちゃっこLAB
https://ochakkolab.jp/
おちゃっこLABのMotionBrushのページ
https://ochakkolab.jp/LABMenu/MameBake3D.html
2021/12/08
EditMot ver1.0.0.22
3Dウインドウに新たにWallScrapingIKチェックボックスが加わりました
壁すりIKのオンとオフを指定するためのものです
壁すりIKとは
制限角度を越えてIK操作を行おうとした場合に
制限に達した成分以外は変化させるIKのことです
壁すりIKをオンにすることで制限角度下でも動かしやすいIK操作が可能です
言い方を変えると
壁すりIKをオフにするとXYZどれかの軸が制限値に達した場合にIKで動かすことが難しくなります
0_TroubleShootingフォルダにドキュメント追加
X軸をドラッグした時になぜY軸とZ軸のオイラー角が変化するのかについて
タイムラインをホイールで移動する場合に0フレームに戻らないときは
Ctrl+Zでアンドゥしたがフレーム1に移動してフレーム選択が復元されないとき
EditMotで保存したfbxをMayaでみたときに色が違う場合
LimitEulerダイアログでの制限角度設定の結果がオイラーグラフにリアルタイムで反映されるように
既存モーションの可動範囲を制限角度に設定するボタン追加
制限角度の設定が簡単になりました
既存モーションで実際に動いている範囲を制限角度にします
Additive(追加設定)仕様なので初回実行時の前にリセット0ボタンを押します
Additive(追加設定)仕様なので複数のモーションの最大可動範囲を制限角度に出来ます
リセットボタンもあります
プロジェクト保存時に制限角度をベイクするチェックボックスにチェックを入れると制限角度をベイクして出力
拡大縮小アニメにおいて元の大きさよりも縮小出来なかった不具合を修正
新ブラシ追加
Punch_1, Punch_2, X2Cap, X2Needle
(モーキャプデータのオイラーグラフを参考に作成)
GUIプレート内のテキスト修正
GUIプレートの色を調整
ウインドウがデスクトップの中央に出るように
EditMot.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
2021/12/01
EditMot ver1.0.0.21
Unity3D, VRoid正式版に対応
日記:Unity上でVRoidモデルにモーキャプデータを再生させる方法
https://ochakkolab.jp/diary_win.html#EditMot_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/11/17
EditMot ver1.0.0.19
解像度が4K対応かどうかをチェックして
自動的にウインドウサイズを調整することにしました
不具合修正
履歴ファイルが1つもなかった場合の処理を修正
ジョイント右クリックのCreateNewRigメニューが機能しなくなっていたのを修正
1フレーム長選択が出来なかった不具合を修正
マウス中ボタンによるフレーム選択の不具合修正
マニピュレータとRig操作用オブジェクトの大きさ修正
モデルデータの大きさに対する比率を保つようにしました
サンプルのyuriちゃんの左手とマテリアルをmaya2022で修正
修正したfbxにEditMotでモーションをリターゲット
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
EditMotのfbxをUnity3D 2020.3で読み込み再生テストのスクリーンショット
https://twitter.com/ochakkolab/status/1455366755623202819?s=20
Unity3D上でVRoid正式版のvrmにEditMotのfbxモーションをリターゲットしたテスト動画
https://twitter.com/ochakkolab/status/1455745440763187202?s=20
リファレンスポーズ表示機能テスト動画
https://twitter.com/ochakkolab/status/1456544566698405890?s=20
2021/11/24
EditMot 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/11/10
EditMot ver1.0.0.18
コピー履歴選択機能
ToolWindowのコピー履歴選択ボタンを押すと履歴選択ダイアログが出ます
fbx名、モーション名、bvhタイプ、年月日範囲により検索を行いコピー履歴を選択可能
ダイアログに一番下の 最新のコピーを選択(select the most recent one.)にチェックを入れると
ラジオボタンで何を選んでいても常に最新のコピー結果がペースト時に使用されます
最新のコピーを選択(select the most recent one.)にチェックを外して
コピー日時を選択すると
ペーストの度に選択した日時のコピー結果がペーストに使用されます
SpriteFKプレートを押したときのスプライトボタンを一新
カメラ操作とボーン操作のボタンの違いが一目瞭然に
リグを使用するとリグのボタンも出ます
(リグを使用するには階層構造エディタ上でジョイント名を右クリックしてRigのメニューを実行します)
ロングタイムライン上で
マウスホイール:時間カーソル
Sキー+マウスホイール:時間カーソルがはみ出ない範囲で時間表示範囲を左右にスクロール、選択はそのまま。
Unity3D, VRoidとの連携テストOK
EditMotのfbxをUnity3D 2020.3で読み込み再生テストのスクリーンショット
https://twitter.com/ochakkolab/status/1455366755623202819?s=20
Unity3D上でVRoid正式版のvrmにEditMotのfbxモーションをリターゲットしたテスト動画
https://twitter.com/ochakkolab/status/1455745440763187202?s=20
2021/11/02
EditMot ver1.0.0.17
fbxファイルのモーション読み込みを書き直し
ローカル情報からグローバル姿勢を組み立てることに成功
egpキャッシュファイルは不要に
スケール設定した時の姿勢が正しくなった
motion cache batchメニューを削除
上記によりegpキャッシュファイルが不要になったため
Toolウインドウの姿勢の初期化のInitScaleの修正
スケールの初期化が正しくなりました
スケール設定してある場合の回転と移動の初期化も正しくなりました
2021/10/20
EditMot ver1.0.0.15
ChaVecCalcの途中計算をfloatからdoubleに
ジョイントを選択した後、Tキーを押しながらマウスホイールでボーン軸のツイスト回転
SelectJoint-->T Key + MouseWheel --> BoneAxisTwist
トラブルシューティングの
EditMotのマニピュレータの軸の向きは合っているのか.docxを更新
モーションキャプチャファイルbvhを扱う際に姿勢が180度裏返ることがあったのを修正
足が180度近く上がったときなどに症状が出ていました
ModifyEulerXYZによる180度裏返り補正はbvhファイルをfbxファイルに変換するときのみ実行
多重回数裏返り処理防止によりIK操作時に瞬時にボーンが180度裏返る現象が無くなった
Explain about ModifyEulerXYZ.
https://moo-ochakkolab.ssl-lolipop.jp/diary_win.html#EditMot_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
EditMot 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/09/15
EditMot ver1.0.0.13
EditMotC4.exeで複数個のEditMot.exeを立ち上げた直後に
マウスレスポンスが悪くなることがある不具合の更なる調査の結果
マウスレスポンスが悪くなった場合、
それぞれのEditMotのタイトルバーの文字の部分
つまりEditMot 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ウインドウにテキスト表示されます。
プレイヤーボタンの再生ボタンを押すと機能します。
再生を停止すると複数フレーム選択が復元されます。
EditMot.exeが置いてあるディレクトリにデバッグ情報出力用のdbg.txtとinfo*.txtがあります
EditMotC4.exeから複数のEditMot.exeを立ち上げた場合に
それぞれのEditMot.exeで異なる名前のファイルを出力するようにしました
ワンポイント
fbxが更新されるような操作をした後
(プロジェクトファイルやfbxを保存した時、bvhからfbxを作った後など)には
fileメニューのMotionCache(egp)batchメニューを実行する
(この操作完了には時間がかかるが、その後の読み込み時間が何倍にも速くなる。)
2021/09/22
EditMot ver1.0.0.14
ファイルオープン時のウインドウの大きさが小さいので
EditMot_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/09/8
EditMot ver1.0.0.12
IKモードがIKRotの場合にはオイラーグラフ、IKMoveの場合には位置グラフを表示
プレイヤーボタンにオイラーグラフ操作ボタン(拡大縮小、オフセット上下、リセットのボタン)を追加
一番親のジョイントをドラッグした場合にもモーション編集可能に
オープンファイルダイアログのデフォルトディレクトリをサンプルが置いてあるTestディレクトリに
EditMotC4.exeを使う場合にはゲームパッド対応無し
EditMotC4.exeからEditMot.exeを複数立ち上げた直後のマウスレスポンスが更に改善
ver1.0.0.12オイラーグラフ位置グラフ拡大縮小と位置モーション編集操作についてのキャプチャー動画
https://youtu.be/Ml85Avo0vjw
2021/09/01
EditMot ver1.0.0.11
EditMotC4.exeで複数個のEditMot.exeを立ち上げた直後に
マウスレスポンスが悪くなる不具合を修正
ゲームパッド対応を1つのEditMot.exeに限定することで大分改善しました。
しかしそれでもEditMotC4.exe起動直後にマウスレスポンスが悪くなることはたまに起きました。
その場合の対応として以下の3つのことをしました。
以下の3つのことをすれば大抵の場合マウスを受け付けるようになりました。
1,EditMot.exeを単体で起動して終了してからEditMotC4.exeの起動を試す。
2,EditMotC4.exeを起動してからしばらく待つ(10秒間とか20秒間とか)
3, 複数個あるEditMot.exeのタイトルバーとメニューバーと黒いウインドウ(3Dウインドウ)をクリックする
4,それでもマウスを受け付けない場合にはEditMotC4.exeを起動しなおす
タイムラインのキーオブジェクトもメモリ使いまわし方式に。
メモリ使いまわし部分デバッグ
モーション数が多いfbxの読み込みを更に少し高速化
モーションメニューからのモーションの選択の高速化、アンドゥの高速化
モーション選択とアンドゥ時の待ち時間がほとんど無くなりました。
モーションメニューの編集中のモーションを削除機能のデバッグ
2021/07/26
EditMot 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
EditMot ver1.0.0.9
完成版ver1.0.0.7の読み込み最適化高速化版
こちらの環境にて
1つが2000フレームとか5000フレームの
38個のモーキャプデータ入りのfbxファイル読み込み時間が
ver1.0.0.8では16分かかっていたのが55秒で読み込めるようになりました。
(両方ともegpファイル有で比較)
2021/08/25
EditMot ver1.0.0.10
完成版ver1.0.0.9のデバッグ版
ver1.0.0.9での最適化高速化の際に生じた不具合を修正
フレームの選択範囲とモーションブラシの選択範囲がずれる不具合がありました
モーションメニューからモーションを選択すると直るのですが
プログラムの不具合を修正しました
保存するたびにマテリアル名の後ろに数字がたくさんついていく不具合を修正
マテリアル名の後ろに1つだけ _数字 を付けます
*.rtgファイルと*.tboファイルのver1.0.0.7からver1.0.0.9のどれでも読み込めるようにしました
2021/07/07
EditMot ver1.0.0.7にてEditMot完成!!
モーションキャプチャファイルの
任意のボーンの任意の連続複数フレームのモーションを任意の連続複数にコピーペースト可能
これが私が思う最強のモーション編集ツール!!!
モーションのコピーとモーションのペーストとで指定フレーム数が異なっていてもコピーペースト可能。
2個のEditMot.exeを立ち上げて
片方でモーションのコピーを行い、他方へモーションのペーストをすることが可能です。
コピーの前にオペレーションターゲットボーンツリーを選択可能なので
任意のボーンのモーションのコピーペーストが出来ます。
オペレーションターゲットボーンの指定はペースト時に適用されます。
オペレーションターゲットボーンは
ToolWindowのコマンド対象ボーンボタンを押して出てくるダイアログにて保存読み込み可能
オペレーションターゲットボーンツリーには
10個のスロットが用意されていてコンボボックスでスロット切り替え可能です。
EditMotC4.exeを同梱
4個のEditMot.exeを起動して、4つのEditMotの親ウインドウになります。
4つまとめてウインドウ移動など可能。
4つの異なるモーションを表示しながら4つのEditMot間でモーションのコピーペーストが可能
縦2つ起動や横2つ起動も可能
起動してからしばらく、マウスへのレスポンスを受け付けるまで時間がかかります。
起動後しばらくまってみて、それでも反応が無い場合には
4つそれぞれのEditMotのタイトルバーや3Dウインドウを
マウスで左クリックとか右クリックとかしてみてロック状態を解除してください。
(EditMotC4.exeで複数のEditMotを立ち上げた場合のゲームパッド操作には対応していません。)
デバッグ
Windows Update後にFileメニューのバッチ機能各種が動かなくなっていたのを修正
Sony GamePad DualSence対応部分の修正
2021/06/30
EditMot ver1.0.0.5
シェアウェア版としても完成版としてのver1.0.0.6(現在ver1.0.0.6RC6テスト中)の
1つ前のバージョンです。
ブラシをプラグインdll化
EditMotPlusinsSDKを同梱
サンプルとして-CosXブラシ、-CosX^2ブラシ、Sawブラシ、RectブラシをOSSにて同梱
選択フレームの個々のフレームにおけるIK操作結果に対する重みをカスタマイズ可能
ブラシのオプション指定用のGUIを修正追加
ブラシコンボボックスはBrushesFolderの中のdllを読み込んで自動的に設定
ブラシトップ位置指定スライダー
ブラシ繰り返し回数指定スライダー
ブラシミラーUチェックボックス
ブラシミラーVチェックボックス
ブラシミラーVのオプションとしてDiv2チェックボックス
ReadMeフォルダにEditMot_ExplainGraphOfBrushes.docxを追加
モーションブラシがブラシであることの説明を書きました
2021/06/16
EditMot 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
EditMot ver1.0.0.4
ジョイントをマウスでドラッグするIK処理の処理速度が20倍速になりました
全てのフレーム(0フレームは除外することをお勧め)を選択してのIK操作がリアルタイムで可能
bvhをリターゲットした後、全部れーむの腕の開き方を調整する際にもリアルタイムで編集可能
ライセンス表記
オープンソースのライセンスはLGPLです
というように
「オープンソースの」という断り書きを追加
プレイヤーボタン(ロングタイムラインの上に付いているラジカセ風ボタン)のデバッグ
「| |」ボタンは現在のフレーム一から最後のフレームまでを1ボタンで選択するボタン
選択が不完全だったのを修正
「--」ボタンは物理シミュレーション中に押すと、
物理のシミュレーションをしながら物理の揺れをリセットします
機能していなかったのを機能するようにしました
( 「--」ボタンの隣の2つの三角のボタンは選択範囲の履歴ボタンです )
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/05/08_1
マルチスレッド読み込みの修正(エラーにならないように)
一番重い関数がわかったが、その関数のマルチスレッド化は難しいこともわかった。
FBX SDKのMDとリンクした。
Modify multiThread loading of FBX animation.
Link Fbx md library.
2021/05/06_1
fbxファイルの読み込みをFbxStreamを使ってバッファから読み込むように修正
しかし、読み込み速度のボトルネックではなかった(ほとんど速くならなかった)
ブロックアロケート修正(前回最後尾データをリリースした場合の考慮)
Use FbxStream on load FBX file.
Modify block alloc of CMotionPoint, CBone, CRigidElem and EulKey.
2021/05/07_1
FBXファイルのアニメーション読み込み部分を4スレッドのマルチスレッド化
同期をとったので速くはならなかったが処理の負荷が分散した
Four threads loading of FBX Animation.
It is not faster than prev version, but Load distributed.
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/03_1
オープンプロジェクトファイル履歴を改良
ウインドウタイトルにキャラクターのインデックスも表示
Improve OpenProjectFileHistory.
Display charactor index at WindowTitle too.
2021/05/01_3
動画【物理シミュのベイク】MameBake3Dで物理をベイク【フレーム範囲指定OK】
https://youtu.be/E-w6tpksu4I
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/04/30_3
【物理IK】MameBake3Dの物理IKが保存可能に【位置コンストレイント】
https://youtu.be/EOqRf35o7u8
2021/04/30_2
物理IKのデバッグ。いつもの式を使うようにした。
物理IKで手が変にならないように
手(名前にHandあるいはElbow_branchが含まれるジョイントより子供のジョイント)に
自動でキネマティックフラグをセット。
Debug CModel::ApplyPhysIkRecReq using ordinary formula.
Auto Hand KinematicFlag.
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/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/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/25_1
キャラクターとモーションの名前をメインウインドウのタイトルに書くように。
Current CharactorFileName and MotionName is written at MainWindowTitle.
2021/04/24_3
L2またはR2)とR1の同時押しでモーションチェンジ(複数モーションを読み込んでいる場合)
When (L2 or R2) and R1 button is pushed, change Motion to other loaded one.
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_1
モデルパネルとオブジェクトパネルの表示を修正しゲームパッドでも利用できるように。
モデルパネルとオブジェクトパネルは 表示(disp)メニューのメニュー項目から表示。
disp-->model panel menu is enable.
disp-->object panel menu is enable.
ModelPanel and ObjectPanel with GamePad OK.
2021/04/23_1
モデルの削除と削除後の読み込みに関する不具合を修正
Fix Reuse bone problem on deletion models and loading models.
2021/04/22_1
プロジェクトファイル保存時にもゲームパッドを使用できるように。
テキスト部分プッシュで選択
>マーク部分プッシュでツリー展開表示
GamePad is enable on SHGetSpacaialFolderLocation too.
Title of MessageBox is one of error!!! or warning!!! or check!!!.
2021/04/20_2
Replace GetSaveFileName to GetOpenFileName, GamePad OK!
2021/04/20_1
Operation with GamePad is enable
during MessageBox and GetOpenFileName and GetSaveFileName too.
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/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/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/16_1
Fix problem that cursor moves to 3DWND on drop down Main Menu.
2021/04/15_1
Operation with GamePad
HiLite Window on SelChangeGUIPlate.
Put cursor pos to ctrl pos of HiLite window on SelChangePlate.
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/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/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/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_1
ゲームパッド対応の続き
Undo, Redoが動かなくなっていたのを修正
Keyboard
Ctrl + Z : Undo
Ctrl + Shift + Z : Redo
GamePad
L2 + X button : Undo
R3 + X button : Redo
画面外へドラッグするとドラッグが中断する問題を再び修正
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/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/05_2
L3, R3ボタンを押したときの機能の改良
設定ウインドウ上でもボタンを押している間半透明アニメをするようにした
設定ウインドウ上でも背景色を透過して描画した
UFO Transparent and AlphaBlendAnimation at mouse pos while L3 or R3 is
pushed.
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/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/03_2
ゲームパッドR1ボタンのジョイント位置修正
Fix mouse cursor pos on R1 button.
2021/04/03_1
ゲームパッド対応続き
R1ボタンで3Dウインドウを選択して選択中のジョイントの位置にマウス位置ジャンプ
On R1 button, select 3d window and jump to selected joint pos.
2021/04/02
カメラスプライトのドラッグ処理の修正
真上と真下でくるくる回る問題を修正
ゲームパッドをつないだ状態でマウスでドラッグすると
マウスが3Dウインドウの外に出たときにキャプチャーが解除される問題を修正
ゲームパッドのL1ボタンで3Dウインドウを選択し(ウインドウ右上に黄色ランプ点灯)
矢印ボタンを押してカメラスプライトにもジャンプできるように修正
カメラスプライトからGUIへのジャンプは十字左右ボタン
GUIプレートの種類をまたぐ場合のマウスジャンプも十字左右ボタン
ただし□ボタンと〇ボタンでGUIを表示している状態である必要有り。
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/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/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/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/23_1
Use memory blocks on allocating CBone for cache hit.
2021/03/23_2
Use memory blocks on allocating CRigidElem for cache hit.
2021/03/22_2
1つめの剛体ファイル選択時の剛体表示についての修正
Fix loading ref files and CreateRigidElem.
2021/03/22_1
オイラーグラフのオイラー角を検証していた時の計算法に修正
Fix CModel::CalcBoneEul(-1).
剛体ファイルの読み込みと剛体オブジェクト作成について修正
Modified loading ref files and CreateRigidElem.
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/19_3
Bullet Physics ver2.89のメモリリーク修正
Fix Memory Leak of Bullet Physics ver 2.89.
(readme.txt)
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/16_3
Init m_motionkey[0] On Constructing.
物理シミュレーションをするまえにメインウインドウのメニューバーのrigidメニューで
剛体設定ファイル refファイルを選択してください
Select ref by rigid menu of MainWindowMenuBar before Simulating Bullet
Physics.
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_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/15_1
複数モーションが入っているFBXファイルの読み込み問題を修正。
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/10_1
Keep Rig Target until click Red Rig Sprite.
2021/03/09_3
On Selecting RightClickRigMenu, RigSettingWindow is set to SideWindow.
At First, PlaceFolderWindow is set to SideWindow.
2021/03/09_2
Rig Sprite is displayed when RightClickRigExeMenu si selected too.
2021/03/09_1
GUIText in English.
2021/03/08_1
サンプルデータのリグ設定ファイルの修正
なぜか設定ファイルが間違っていたのを修正
両手首と両足首に操作用のリグがあります
リグモードを抜けるにはメインウインドウの向かって右上の水色円ボタンをクリック
2021/03/06_1
プレートメニューにLimitEuler(オイラー角度制限)を追加
プレートメニューのプログラムコードをリファクタリング
2021/03/05_1
メモリリークに関する修正(readme.txtをご覧ください)
2021/03/04_2
VisualStudio2019対応
FBX2020.2対応
Intel oneAPI Base Toolkit v.2021 tbb対応
ControlFlowGuard対応
2021/03/04_1
リターゲットウインドウをサイドウインドウに配置
カエルボタンを1回押すと物理パラメータメニュー
カエルボタンをさらにもう一回押すとリターゲットメニュー
カエルボタンをもう一回押すとメインGUIオンオフメニュー
2021/02/26_1
Bullet Physicsのシミュレーション結果が以前と同じになるように修正
VSYNC設定
決め打ちパラメータを保存して新しいサンプルデータとして追加
Media/TestData_20210226_1
2021/02/24_1
MameBake3Dのバージョンアップ
カエル(Frog)のスプライトをクリックすると
メインウインドウのGUIコントロールメニューとサイドウインドウ選択メニューが切り替わります
サイドウインドウ選択メニューには以下の4種類があります
Rigid, Impulse, Ground, Damp
サイドウインドウ選択メニューはモデルデータを読み込んでボーンをクリックして選択しているときのみ機能します
サイドウインドウの上部のボタンから表示ウインドウを切り替えることも可能
Bullet Physicsシミュレーション時のパラメータの決め打ち解除について
開発の途中から
適切なパラメータ値を探すために
previewflag 5, 6の再生時にはパラメータを決め打ちして再生していた
そのためRigidParamdDialgで設定した値は
物理シミュレーション時には上書きされていた
今回、RigidParamsDialogを前面に出すことになって
previewflag 5 の再生時にはパラメータを決め打ちを止めた
よって挙動が変わるかもしれない
決め打ちの部分は
該当プログラム個所に
//決め打ち
というコメントをしておいたので
決め打ちパラメータ値を知りたい場合にはみてください
2021/02/22
MameBake3Dのバージョンアップ
3Dウインドウ下部の5枚のスプライトフレームでGUIのオンオフ
2021/02/21_1
MameBake3Dのバージョンアップ
Save-->Projectメニューのダイアログで参照を選ぶと固まる不具合に対応
2021/02/17_2
MameBake3Dのバージョンアップ
DDSファイルに対応
2021.02.11
MameBake3Dのバージョンアップ
ControlFlowGuardをGuardに設定してビルドしました
2021/02/16
MameBake3Dのバージョンアップ
DirectX11対応
FBXSDK 2020.0.1対応
[2021/02/03_1]
MameBake3Dバージョンアップ
オイラーグラフのParentEulerチェックボックスをデフォルト状態でオンにしました
[2021/01/30_1]
EditScaleの修正
オイラー角の最大値も最小値も0度の場合に対応
[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"チェックボックスにチェックを入れると
ジョイントの選択はそのままで選択したジョイントの親のオイラー角を表示します
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)
[2018/11/07_1]
物理IKの検証と修正のつづき
Kinematic設定時の物理IKのデバッグ
質量ゼロ(Mass0)設定時の物理IKのデバッグ
質量ゼロとKinematicを両方同じ部分に設定した場合には質量ゼロを優先(フラグレベルで)
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/10/25_2]
オイラー角による角度制限の検証と修正のつづき
物理IK時に関節に隙間が出来過ぎないようにしました。
操作ボーンから下層方向と上層方向そしてトップダウンでPost処理することにより実現
物理IK時に操作していないボーンが不自然にゆらゆらする現象が無くなりました。
Mass0効果の修正が必要な状態
物理IKはドラッグのスピード(マウスを動かすスピード)によっても振舞が大きく変わります。
引き続き検証する。
[2018/10/23_1]
オイラー角による角度制限の検証と修正のつづき
物理IK時のKinematic指定(右クリックメニューで指定)部分の動作の修正
Kinematic指定部分は形が崩れないようにしました
例えば、手の甲より下層に対してKinematicを指定してから
腕を物理IKすればてのひらの形が崩れずに物理IK可能
引き続き検証する。
[2018/10/16_1]
オイラー角による角度制限の検証と修正のつづき
Physics MVの効果を元の物理的な効果に戻しました
体の中心をドラッグして手を固定して体を動かしたり出来ます
Kinematicのオンオフのメニューを追加
物理のオンオフとも言えます。
操作ボーン以外のKinematicをオンにすると
Physics Rotの際には動きません
Physics MVの際にはドラッグしただけ「ゆらゆらせずに」一緒に動きます
姿勢によっては物理IKがゆらゆらする現象を軽減
物理IK時に腕を動かすと指が大きくゆらゆらすることがありますが
少しずつ動かしてドラッグ終了地点でマウスボタンを押したまま待っていると元の形状に戻ります
引き続き検証する。
[2018/10/15_2]
オイラー角による角度制限の検証と修正のつづき
ゼロフレーム以外でも物理IK開始時に姿勢が乱れなくなりました。
引き続き検証する。
[2018/10/10_1]
オイラー角による角度制限の検証と修正のつづき
位置コンストレイントの実装方法の変更の検討と試験中。
ボーンの剛体のMass0(質量ゼロ)のオンとオフによって位置コンストレイント効果を得る。
右クリックメニューにMass0関連メニュー多数追加。
例えば、まず「すべてのジョイントのMass0 ON」メニューを選びます。
次に操作したいジョイントを選択してから「このジョイントより下層のMass0 OFF」メニューを選びます。
この状態で物理IKをするとMass0がオフのボーンだけが動きます。
元に戻す場合は「すべてのジョイントのMass0 OFF」メニューを選びます。
ボーンがぶれずにコンストレイント可能である。
引き続き検証する。
[2018/10/07_1]
オイラー角による角度制限の検証と修正のつづき
CalcAxisMatXの修正(指の剛体が暴れにくいように修正)
この修正は初期姿勢の修正と同じ意味です。
古いデータは読み込み後、「編集・変換」->「ボーン軸をXに再計算」メニューで初期姿勢を再計算後
Fileメニューからプロジェクトごと保存しなおしてください。
InfoWindowの出力をマルチスレッド化
通常IK時に出力が激しくて重くなっていたのを改善
物理IKの修正
ゼロフレーム以外での動作を改善
位置コンストレイントの修正
ゼロフレーム以外での動作を改善するために修正中。途中。
右クリックメニューに多数追加
引き続き検証する。
[2018/09/29_1]
オイラー角による角度制限の検証と修正のつづき
物理IK時の軸指定IKのデバッグ
軸指定操作の時にも物理IKがだいぶまともに動くようになりました。
物理IKのときにもオイラー角はほぼ指定した軸のみが変化しています。
[2018/09/25_1]
オイラー角による角度制限の検証と修正のつづき
オイラー角は通常IK時のものを利用して物理IKをした。
通常IKと物理IKとでオイラー角の制限角度が統一された。
InfoWindowは制限行数を50,000行に。
通常IK時にもInfoWindowに出力。
引き続き検証する。
[2018/09/24_1]
オイラー角による角度制限の検証と修正のつづき
InfoWindowアップデート
古いデータ-->上。新しいデータ-->下。
5000行制限。
ホイールでスクロール。
最新行を最下行に表示している時にオートスクロール。
終了時にinfo_(date).txtに保存。
[2018/09/22_1]
オイラー角による角度制限の検証と修正のつづき
InfoWindowを追加しました。
PhysicsIKのときの情報をInfoWindowにテキスト表示しました。角度制限時のオイラー角を確認できます。
[2018/09/16_1]
オイラー角による角度制限の検証と修正のつづき
物理IKのとき(PhysicsRot()とPhysicsRotAxisDelta())の検証と修正
物理IKについて
VisualStudioの出力タブで確認するとオイラー角は合ってきた。
回転の中心がおかしい部分がある(かかとドラッグ)。
腕はおおむねうまくいっているようにみえる。
さらに検証が必要。
[2018/09/12]
オイラー角による角度制限の検証と修正のつづき
物理IKのとき(PhysicsRot()とPhysicsRotAxisDelta())の検証と修正
さらに検証が必要。
[2018/09/09]
統一オイラー角による角度制限の検証と修正。
PhysicsRot()とPhysicsRotAxisDelta()の検証と修正。
まだ途中。
[2018/09/01]
まめばけ3Dのお知らせ
あれからほとんど検証作業はしていませんが、
ツインテールがマニピュレータのXYZそれぞれの軸で回転することくらいは確認済です。
FBXファイル名.lmtという名前のファイルに制限角度を記述するのですが
現在ツインテール部分は制限角度のY軸が±15度で他の軸が±5度になっています。
よってツインテールはキャラクターの正面に対して主に前後に揺れるようになっています。
Z軸を±15度にして他の軸を±5度に変更すると横に揺れます。
通常IKのときと物理IKのときと物理シミュのときに同じように機能するようにしたつもりです。
物理シミュはbullet physicsの角度制限を利用したので
fpsと計算回数が同じ環境ならほぼ同様に角度制限が働くと思われます。
という状況。
[2018/08/19]
物理のときとそうでないときのオイラー角と角度制限を統一。
ペアレント系のマニピュレータの軸を基準にしたオイラー角で角度制限。
*.lmtファイルで制限角度を設定する際にもペアレント系のマニピュレータ軸を基準にしたオイラー角。
検証中。
[2018/08/17]
コンストレイントの強さなどの設定を追加(ハードコード)、
サンプルの制限角度を修正、デフォルトのERPを変更。
上記変更にて物理シミュが改善(開始時の微妙な動きも可能。全体的にぶるんぶるんし過ぎないように。)
[物理の時とそうでないときのオイラー角の統一とその検証はまだ途中の段階]
[2018/08/11]
要求メモリ量が約半分になりました。
剛体の表示の不具合を修正。
複数キャラクター読み込み時の物理シミュの不具合の修正。
[2018/07/22]
物理シミュ開始時に剛体がブルンブルンしないようにしました。
範囲指定しての物理シミュが出来なくなっていたのを修正しました。
[2018/07/21]
物理シミュ、物理IKのときの基準姿勢をシミュ開始時のポーズからバインドポーズへと変更。
オイラー角を物理の時と物理でないときとで統一していく予定。
物理IK時のERPは再びハードコードの小さい値になりました。
[2018/07/01]
物理IK時にERPスライダーの設定値を反映させました。
BtApply後の物理IKが乱れにくくなりました。
(ただし乱れにくいこととのトレードオフ的に、
足を物理IKで操作したときに微妙に胸や髪が揺れたりします。)
詳しくはreadme.txtの2018/07/01_1のところをお読みください。
現在、物理IK中はフレーム選択のし直しが出来ません。StopBtボタンを押してから選択してください。
[2018/06/23]
物理IKのデバッグ。
PhysicsRotボタン-->ジョイントドラッグ-->確定する場合はBtApplyボタン-->
まだ続ける場合はPhysicsRotボタン--> ...
上記のような手順で物理IKの確定が可能になりました。
マニピュレータの修正。
物理IK時もバインドポーズからの姿勢に変更。
今回の修正と関連する物理IK時の制限角度の修正については次回以降。
[2018/06/19早朝]
物理IKのデバッグ。
ある条件で物理IKがぐるんぐるん回る症状が直りました
(ただしBtApplyを押さない場合)。
[2018/06/07早朝]
マニピュレータの軸の修正の続き。
デフォルトをペアレント系に。
ペアレントのベースラインを赤色で、ペアレントの現在の姿勢を水色で表示。
[2018/06/06]
マニピュレータの軸の修正。
将来、制限角度を可視化することを想定し、
カレント座標系でカレントの姿勢が掛かっていない軸が必要なので修正。
ボーン軸を「X軸」に合わせるための軸の再計算のためのメニューを追加。
[2018/06/02]
ボーンを右クリックしたときのメニューにボーン回転禁止メニューをいくつか追加。
物理IK時と通常IK時の両方で利用可能。
物理IK時は回転を禁止しても直接IKしたり大きな力がかかると回転することがあります。
[2018/05/28]
実行に必要なVisual Studio2015の再頒布可能ランタイムを同梱しました。
(DirectXのランタイムは別途インストールしてください。)
複数キャラ読み込みのデバッグ(タイムラインのデバッグ)をしました。
[2018/05/23]
ツールウインドウの1回目のクリックのデバッグ。
ボーンをクリックしていないときのオイラーグラフは一番親のボーンのグラフに。
[2018/05/17_2]
マニピュレータのセンターをドラッグ改良その2。
ドラッグしたボーンの位置がちゃんとマウスの位置に来るようになりました。
(マウス位置がボーンの可動範囲の場合可動範囲の場合)
[2018/05/17]
マニピュレータのセンターをドラッグした時(複数フレーム選択後)の処理を改良中。
IK階層数(数字のコンボボックス)とIK伝達係数などが正常に機能するように改良中。
RokDeBone2は伸ばしながら回転しましたが、そのまま回転可能になりました。
[2018/05/15]
オイラーグラフにペアレントチェックボックスを追加。
ペアレントチェックボックスにチェックを入れると親のオイラーグラフを表示します。
IK操作をしながらその結果をみることが可能です。
[2018/05/14]
IK操作結果を親ボーンのオイラーグラフに反映。
[2018/05/13]
タイムライン関係調整。
[2018/05/09]
タイムラインにオイラーグラフ追加。
タイムラインとオイラーグラフ高速化。
[2018/04/21_1]
ウインドウ一体化の続きの途中経過アップ。
少し体裁を整えました。
他のソフト(メモ帳やタスクマネージャ)をアクティブにしてもfpsが落ちなくなりました。
[2018/04/18]
ウインドウ一体化開始。途中経過アップ。
バックバッファのずれでコントロールがクリックできない問題が起きた場合への
なんちゃってな解決策がみつかったので対応。
[2018/03/29]
LGPL部分をスタティックリンクライブラリMameBake3DLib.libにまとめた。
これにより、MameBake3DLib.libの中身を変えないでリンクする場合には
他のライセンスで公開することも可能だと思われます。
fbxと同じディレクトリに内にある制限角度ファイルlmtファイルの更新。
(ツインテール以外の制限をはずしました。編集時に自由に動きます。)
[備考]
MameBake3Dのプログラムソースコードに
キャッシュの利用で実行速度が5倍から15倍速になる効果を確認するための
コンパイルスイッチをstdafx.hに追加しました。
(時間があるときに動画を撮ろうと思っています。)
ソースコードは以下のGitHubのリンクにあります。
その後
ver1.0.0.21にて更なるモーション再生高速化が行われた
チェインのポインタをインデックス化して高速化した
上記のコンパイルスイッチの影響はあまりなくなった
古い更新履歴へ