そらとぶろーぐG

MMDのモーションのお話に終始すると思います。

補間曲線で滑らかモーションを目指す話 その1

2021年10月10日 | MMD

モーションを滑らかにしたい

 

……となれば「多段ボーンでモーションを作る」が一般的な答えではないでしょうか。

PMXエディタでモデルを改造してボーンを増やす、互換ソフトMikuMikuMovingのモーションレイヤー機能を使う。

私もそうやっていわゆる「多段ボーン」でモーションを作っていたのですが、ある日ふと「標準ボーンでも滑らかにしたい」と思うようになってしまいました。

 

しかし三つで何とかなるものを一つで何とかしたいと思っても、使えるものは一つのボーンと補間曲線しかありません。

そんな茨の道に自ら飛び込んでしまった私がボーンと補間曲線をで色々試して何となく分かったかもしれない事を書いてみたいと思います。

 

2016年に「補間曲線とは何か」についてブロマガにて記事を書いたのですが、大雑把な記事にも関わらずかなりの閲覧数をいただきました。

2021年にサービスが終了し記事が消えてしまったため、少しでも需要があればと記事を焼き直してみました。

 

 

ちなみにこんなモーションを作っています。

 

 

補足

2021年10月7日にサービスを終了したブロマガに書いていた2016年の記事を焼き直した物になります。

MMDの基本的な操作方法については割愛させていただきます。

「自分のモーションを滑らかにしたい」方に向けた記事です。

 


 

 

初期状態は滑らかではないので

 

モーションを滑らかにするにはまず補間曲線を使いこなす必要があります。

そもそも

補間曲線を設定しない初期状態ではボーンは等速で動きます。

 

例えば30フレームでボーンが90度動くモーションでは1フレームあたり3度。

等速で動き始めからいきなり3度動き、以降3度ずつ動いて急に止まります。

この瞬間的な速度変化を我々は「滑らかではない」と認識しているようです。

 

なのでまずこの初期状態を

とりあえず補間曲線で変えていくのが滑らかモーションの基本的な作業になります。

 

作るモーションに補間曲線を設定していく、または補間曲線を設定してどの様に動くかをイメージしながらキーフレームを打つ。

全てのキーフレームでそんな地道な作業の上に地道な作業が加わります。

さらに動き出し動き終わり以外にも滑らかではない部分がありますし、逆に補間曲線を設定したことで滑らかにならなくなる部分もあります。

 

その辺りは自身の欲求と技量、他の作業との兼ね合いなど適度に折り合いを付けつつ、というのが良いのかなと思います。

 

 


 

とりあえずS字に曲げてみる

 

「補間曲線はS字に」と言われます。

 

 

MMDの左下にあるこの補間曲線操作欄。

補間曲線を手動で設定する際は右側にある「自動設定」のチェックをオフにして下さい。

 (初期設定ではオンになっています)

 

補間曲線操作欄は、「選択したキーフレームの一つ前のキーフレーム」から「選択したキーフレーム」までのボーンの動きが表示されます。

このキーフレームだと0フレームから10フレームまでの動きになります。

 

横軸が時間(フレーム)、縦軸は選択したボーンの移動量。

右向きに時間が進むと共に、ボーン移動量が上がっていきます。

 

 

分割してみました。

初期状態は直線なので時間ごとの移動量が等しく、つまり動き始めから動き終わりまで一定の速度になります。

 

今度は補間曲線をこんな風に設定してみました。

いわゆる「S字」と呼ばれる設定です。

左端の時間ごとの移動量が少なく、時間が進むにつれて段々時間ごとの移動量が増していきます。

そして真ん中から徐々に時間ごとの移動量が減っていきます。

 

つまり「ゆっくりした動き出しから段々速度を増していき、段々速度を減らしてやがてゆっくりと止まる」といった動き方になります。

ボーンが等速で動きそして止まる際の瞬間的な速度変化が緩やかな速度変化に変わるため、動き始めと動き終わりをS字にしておけばとりあえず滑らかになることから

「補間曲線はS字」と言われるのです。

 

補間曲線の「水平に近い=遅い」「垂直に近い=速い」を組み合わせて色々な動きに変えることができます。

ボーンの移動量そのものは変わらず、あくまで設定したボーン移動量の中での速度のバランスが変わるだけになります。

 

今回はS字のみですが、他にも様々な曲げ方があります。

 

 

色んなS字に曲げてみる

 

補間曲線操作欄は縦軸、横軸とも割合で表示されますので仮にフレーム間が3フレームしかない場合も、120フレームある場合も、同じ正方形の枠内に表示され、

ボーンが5度しか動いていなくても、120度動いていても、同じ正方形の枠内に表示されます。

 

 

例として上のモーションの補間曲線を変えてみました。

このモーションのキーフレーム間は30フレーム(1秒)で、それを往復させています。

動き出しはゆっくりですが、その後急加速しています。

 

 

割とクイックな動きになりました。

 

では次にキーフレーム間を60フレーム(2秒)に広げてみました。

補間曲線はさっきの急加速のままですが

 

さっきほど急加速しません。

 

こんな風に脳内で操作欄を縦横に伸びているのを押し込んである、と考えると解りやすいかもしれません。

互換ソフトMikuMikuMovingではこの辺を視覚的に分かりやすくした機能が搭載されています。

 

一例としては

こんなモーションを作る際、補間曲線をS字にして

後は止めておく、といった方法を取る人が多いかもしれません。

 

しかしCGのボーンは止めると本当にピタッと止まってしまうため、人体の動きとしては不自然に見えてしまいます。

それを避けるために上のキーフレームの43フレーム~60フレームの止まっている部分をちょっとだけ動かしたりすると、一旦43フレームで止まってから微妙に動きだす形になり、これまたどうも不自然だったりします。

 

こんな場合、脳内引き伸ばしで次のモーションが始まる170フレームまで止めない方法もあります。

もちろん補間曲線が先ほどのS字のままだとゆっくりとした動きになりますので、補間曲線操作欄を脳内で引き伸ばして

一見急加速ですが実はそうではないこの形に設定すれば

体を振った後、余韻のようにそのまま動き続けます。

ちなみに横軸だけでなく、縦軸も同じように使えます。

 

こんな感じで補間曲線操作欄は正方形ですが、縦に横に引き伸ばすイメージを持つことで様々なモーションを作ることができます。

 

 


 

 

終わりに

 

 

というわけで色々連ねましたが、結局のところ滑らかモーションの基本的作業は初期状態で等速で動くボーンの動き始めと動き終わりの速度変化を緩やかにする、つまり

「モーションの動き始めと動き終わりをS字にする」

ことに尽きます。

 

今回作った往復のモーションや単純なモーションの場合は、動き始め→動き終わりで2つのキーフレームですので、選択したキーフレームが動き終わりでその一つ前のキーフレームが動き始めになります。その場合は選択したキーフレームでS字にしておけば滑らかになるでしょう。

 

しかし選択したキーフレームが動き終わりではない場合はS字にしても滑らかにはなりません。

動き始め→動き終わりと2つのキーフレームでモーションが作れない場合は

……結構たくさんあります。

 

 

それはまた次回に。

 

 

モデル  :   初音ミクV3 Rev1.9  マシシさん



コメントを投稿