Blender 2.9に標準で搭載されている機能を利用してキーフレームを間引きます。(Fカーブへ置き換える)
※FカーブとはMMDで言うところの補間曲線のこと
このページでは、ニコニ立体ちゃんモデルを利用させてもらいます。
また、同封されている2分ループステップ1.vmdモーションのキーを間引きます。
MMDモデル/モーションのBlenderへの読み込みなどは【Blender2.9】 mmd_tools 【Addon】をご覧下さい。
※モデル/モーションともに読み込み時の倍率は0.08にしています。
MMDに二体のモデルを読み込ませ、左側のモデルにオリジナルの.vmdを、右側のモデルに間引いた.vmdを読み込ませた動画です。
画質の関係で分かりづらいですが、若干カクついてはいますがほぼ同じ動きをしています。
※FカーブとはMMDで言うところの補間曲線のこと
このページでは、ニコニ立体ちゃんモデルを利用させてもらいます。
また、同封されている2分ループステップ1.vmdモーションのキーを間引きます。
MMDモデル/モーションのBlenderへの読み込みなどは【Blender2.9】 mmd_tools 【Addon】をご覧下さい。
※モデル/モーションともに読み込み時の倍率は0.08にしています。
比較動画 |
動画ファイルへのリンク |
画質の関係で分かりづらいですが、若干カクついてはいますがほぼ同じ動きをしています。
BlenderへのMMDモデルの読み込みとモーション適用を済ませたものとして進めます。

トップバーからAnimationタブを開きます。

画面右の3Dビューから、ボーン(アーマチュア)を選択して[Ctrl]+[TAB]を押してポーズモードにします。
[A]キーを押してすべてのボーンを選択します。
ドープシートを見るとすべてのフレームにキーが全打ちされています。これを間引きます。

左上のエディタータイプをグラフエディターに切り替えます。
Fカーブを個別に選択するか、[A]で全選択します。

左上のメニューアイコンから、キー → 減量(率)または、減量(変更可)、キーフレームを掃除のいずれかを選択してキーフレームの動きをFカーブに置き換える事でキーを間引く事ができます。
次の項目では3つの間引く方法を解説します。

トップバーからAnimationタブを開きます。

画面右の3Dビューから、ボーン(アーマチュア)を選択して[Ctrl]+[TAB]を押してポーズモードにします。
[A]キーを押してすべてのボーンを選択します。
ドープシートを見るとすべてのフレームにキーが全打ちされています。これを間引きます。

左上のエディタータイプをグラフエディターに切り替えます。
Fカーブを個別に選択するか、[A]で全選択します。

左上のメニューアイコンから、キー → 減量(率)または、減量(変更可)、キーフレームを掃除のいずれかを選択してキーフレームの動きをFカーブに置き換える事でキーを間引く事ができます。
次の項目では3つの間引く方法を解説します。
できる限りオリジナルの動きを保ちつつ、容認できる乖離率を指定してキーフレームを削除します。(オリジナルの動きに近づけるためにキーフレームを少し移動させる場合もある?)
左上のメニューアイコンから、キー → 減量(変更可)を選択します。
こちらは選択直後にマウスを左右に動かす必要はありません。
キーフレームを減量オペレーターから最大エラーマージンの値を手動入力できます。
上図の画像は最大エラーマージンの値を0.01にした例です。
私が試した範囲では、減量(率)よりもこちらの方が元の動きを保ったまま、より多くのキーフレームを削除できました。
減量(変更可)(エラーマージン)値0.01 | オリジナル(元) |
![]() | ![]() |
こちらは選択直後にマウスを左右に動かす必要はありません。
キーフレームを減量オペレーターから最大エラーマージンの値を手動入力できます。
上図の画像は最大エラーマージンの値を0.01にした例です。
私が試した範囲では、減量(率)よりもこちらの方が元の動きを保ったまま、より多くのキーフレームを削除できました。
キーフレームをクリーンアップします。
左上のメニューアイコンから、キー → キーフレームを掃除を選択するか、Fカーブやキーフレームを選択した状態で[X]キーから選択します。
こちらは上記2つの方法と比べ、キーフレームを間引く方法としてはオリジナルの動きとの乖離が大きくなりますが、値が0であっても不要な(動きに影響を与えない)キーフレームを削除できる利点があります。
例として下図をご覧ください。キューブが0フレームから20フレームにかけて上がっていくアニメーションです。20フレーム以降は空中で静止し、動きません。
この例では、キーフレームを掃除の値を0にしていますが、動きに影響を与えない20フレーム以降のキーが削除されています。
一方、キーフレームを掃除以外では(20フレーム以降の)不要なキーフレームまで残っています。
キーフレームを掃除 しきい値0.01 | オリジナル(元) |
![]() | ![]() |
こちらは上記2つの方法と比べ、キーフレームを間引く方法としてはオリジナルの動きとの乖離が大きくなりますが、値が0であっても不要な(動きに影響を与えない)キーフレームを削除できる利点があります。
例として下図をご覧ください。キューブが0フレームから20フレームにかけて上がっていくアニメーションです。20フレーム以降は空中で静止し、動きません。
オリジナル | 減量(率)値0.5 | 減量(変更可)値0.1 | キーフレームを掃除 値0 |
![]() | ![]() | ![]() | ![]() |
一方、キーフレームを掃除以外では(20フレーム以降の)不要なキーフレームまで残っています。
上記の例から、キーフレームを間引きたい場合は減量(変更可)を適切な値で実行し、キーフレームを掃除をしきい値0で実行するのが良いかと思います。
実際に2分ループステップ1.vmdモーションのキーを間引きます。

減量(率)を最大エラーマージンの値0.005で実行します。

キーフレームを掃除をしきい値0で実行しました。

[Ctrl]+[TAB]キーを押してオブジェクトモードへ戻り、MMDモデルのエンプティを選択してサイドバーのMMDからMotion:→エクスポートを選択して.vmdとして出力します。
※ボーン(アーマチュア)を選択した状態でも出力できるが、その場合はボーンアニメーションのみが出力される(表情モーフなどはこの場合、出力されない)
※エクスポート時の倍率(スケール)は読み込み時の倍率(スケール)を0.08にしていた場合、12.5にする

出力された.vmdファイルの容量を見てみると約半分になっています。
実際に2分ループステップ1.vmdモーションのキーを間引きます。

減量(率)を最大エラーマージンの値0.005で実行します。

キーフレームを掃除をしきい値0で実行しました。

[Ctrl]+[TAB]キーを押してオブジェクトモードへ戻り、MMDモデルのエンプティを選択してサイドバーのMMDからMotion:→エクスポートを選択して.vmdとして出力します。
※ボーン(アーマチュア)を選択した状態でも出力できるが、その場合はボーンアニメーションのみが出力される(表情モーフなどはこの場合、出力されない)
※エクスポート時の倍率(スケール)は読み込み時の倍率(スケール)を0.08にしていた場合、12.5にする

出力された.vmdファイルの容量を見てみると約半分になっています。
タグ
最新コメント