本文へスキップ

おちゃっこLAB Since 2002

おちゃっこLAB化け猫編バージョン2 Since 2013/12/21

MameBake3D Kit


仕事のお問い合わせは
info☆ochakkolab.moo.jp
までお願いします。


MameBake3D (まめばけ3D)





MameBake3DKitは
MameRoid3DとMameBake3Dの2つのソフトから構成されています。

MameRoid3Dは
Metasequoiaという3Dモデリングソフトで作成したモデルデータに
アニメーションを付けてFBX出力するためのソフトです。

MemeBake3Dは
ベイク済みのFBXアニメーション付ファイルを編集してFBXに出力するためのツールです。
ベイク済みのアニメーション編集に特化しているので
モーションキャプチャーファイルの修正などに重宝します。
全てのフレームにキーが打ってある状態からのアニメーションの編集がしやすいということです。
bvhファイルをFBXファイルに変換する機能も付いています。

2つのソフトとも出力したFBXファイルはMaya2013、Maya2018で読み込めることを確認済です。
Mayaと言えばFBXを扱うソフトの代表格なので、Mayaで読み込めればだいたいの環境で大丈夫です。
例えば、Unity3DやPSMなどに出力したFBXを使うことも出来るでしょう。


MameBake3DはLGPLのオープンソースです。





メールでの質問に対する答えのページや使い方動画なども今後作ります。


説明動画をYoutubeにアップしました。
動画 【物理IK】質量0とポスト処理による位置コンストレイント
(1分くらいのテスト動画)
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/JIXG7u1RciU

動画 【まめばけ3D】編集に使える(or Not?)無重力IK
https://youtu.be/EU9owDSkDtw

動画 【まめばけ3D】徐々に細かい操作が出来るようになってきた
https://youtu.be/YEdzFr0St9Y

動画 【まめばけ3D】そっと位置コンストレイント実験中
https://youtu.be/LgX_15AMt1o

動画 【まめばけ3D】パラメータ調整と60fpsでのキャプチャ
https://youtu.be/4FwFRuiF-D8

動画 【まめばけ3D】無重力IK その2
https://youtu.be/Fd4WHHMsbzk

動画 【まめばけ3D】バネモデルIK
 無重力ラグドールIKのはじまりはじまりー
https://youtu.be/puPVYJrn0gs

【まめばけ3D】30fps物理パフォーマンス改善
https://youtu.be/lIvNlK7rlqI

【まめばけ3D】30fpsで破綻しない物理
https://youtu.be/eLM-ha3nQdI

【まめばけ3D】計算負荷が半分なのに更に安定
https://youtu.be/bNxcjcBThyE

【まめばけ3D】リアルタイム3倍速物理
https://youtu.be/g7VPx-CqWJY

【物理が】 MameBake3D 【使えそうな?】
https://youtu.be/gh_ymrdA8tM

【ガウシアンで】 MameBake3D 【平滑化】
https://youtu.be/6iUwef1ZiYM

【補間で】 MameBake3D 【ノイズ除去】
https://youtu.be/l4EuXXCwXcw

【RigのRig】 MameBake3D 【peace!】
https://youtu.be/B_zkbayPECc

【モーション】 MameBake3D 【対称コピー】
https://youtu.be/YeM43To-xCg

【リターゲット】 MameBake3D 【改良しました】 動画
https://youtu.be/JYT5BAdj5Q4


MameBake3D CustomRig ダイジェスト動画。
https://youtu.be/o7UUAqea6io

【使い方説明】 MameBake3D 【Rig機能が付いちゃいました】
https://youtu.be/gkqCJNsUsKE


Metasequoiaの形状にRokDeBone2でbvhのボーンを入れてFBX出力し
MameBake3DでそのFBXにbvhから作成したFBXをリターゲットし
モーションを再生しながらbulletの物理シミュレーションをした所。
https://youtu.be/upwvM6yBGgw


MameBake3D [新しいフレーム選択]
https://youtu.be/CfaFvEL2grM


「MameBake3D [編集オプションの説明]」動画。
https://youtu.be/cA7ceFJ2oLY


メタセコイアのボーン機能とMameBake3D
http://youtu.be/ybqV3LIUw7Y


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






MameRoid3Dの使い方。
(Metasequoiaで作成したモデルデータにアニメーションを付けてFBX出力し
Mayaでアニメーションを確認するまでの動画)
http://youtu.be/ZFU0uoupnOg


MameBake3Dはオープンソースです。
FBXを読み込み、編集してFBXに出力するプログラムがオープンソースというわけです。

メタセコイアにボーン機能が付いたので
メタセコイアでMMD用のボーンを入れてFBX出力したものを読み込めるようにしました。



現在の開発環境はMac + ブートキャンプ + Windos10です。
[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は実験段階なのでワンドラッグお試し状態です
  破綻しても余白をクリックすることで元に戻ります
 引き続き検証する。

 MameBake3D (まめばけ3D)2018/11/07_1 バイナリ(実行ファイル) ダウンロード


[追記]
 制限角度は.lmtファイルです。
 ちなみに出力タブの文字列の中の「eul」は「オイル」と読みます。
 あ、それと念のため。物理IKは実験中の機能なので勇気がある方用です。


 MameBake3Dのプログラムソースコードに
 キャッシュの利用で実行速度が5倍から15倍速になる効果を確認するための
 コンパイルスイッチをstdafx.hに追加しました。
 (時間があるときに動画を撮ろうと思っています。)
 ソースコードは以下のGitHubのリンクにあります。
 GitHubのソースの中にstdafx.hとstdafx.cppを入れ忘れていたので追加。
 https://github.com/Ochakko/MameBake3D(プログラムソースコード)


MameBake3Dへのお問い合わせは
info☆ochakkolab.moo.jp
(☆を@に変えてください)
にて受け付けております。
























店舗イメージ