前回のプロジェクトでは、着物をモデリングする時に考慮すべきポイントについてまとめましたが、今回の記事では「作った着物をより着物らしく動かす方法」について検討します。
題して、「理想のモデル創造プロジェクト第七弾 着物をより着物らしく動かすには」です。
早速、プロジェクトを始めたいところですが、動かす対象となる着物のモデルがいないといけませんね。
と言うことで、前回の反省点を踏まえて、着物を作り直してPPちゃんに着てもらいました。
ちょっとしたポイントを押さえて制作するだけで、ずいぶんと洗練されたフォルムになるものだと、我ながらちょっとびっくりしました。
この着物が優雅に動くと、どんな見栄えになるんでしょうか? 少し、ワクワクしちゃいますね。
さて、今回のプロジェクトを進めるに当たり、まず着物を着たモデルが陥りやすい、気になる点について整理したいと思います。
なお、この部分は私が個人的に気にしているポイントですので、着物モデルを作って公開されている他の方々を批判する意図は全くありません。
予め、ご承知おき下さいね。
着物モデルの動きで気になるポイントとは?
私が着物を着たモデルを動かしていて気になるのは、次の2点です。
- 腕の回転に伴って、着物の袖が不自然な形状で空中に静止すること
- 腕や肘を上に挙げた時に、着物の袖が捲れないこと
言葉では分かりにくいので、絵を用いて具体的に説明しましょう。
まず1つ目の「着物の袖が不自然な形状で静止する」ことですが、次図のような状態を指します。
袖が真横や真上に持ち上がって、まるで腕に板を付けているかのようですね。
着物を着ているモデルでは、このような形状になることが多いです。
ただ、モデルの動きが激しい場合には気にならないこともありますが、ゆっくりとした動きの場合には違和感がありまくりになります。
2点目の「着物の袖が捲れないこと」ですが、これは分かり易いと思います。
個人的には、着物の袖から白い二の腕が見えると艶っぽさが増すように感じるので、是非、この点についてはなんとかしたいと思います。
と言うことで、これら2点の不満を解消する方法について検討することにしました。
着物の袖の不自然な動きを解消するには?
モデルの着物の袖が、まるで板のように回転してしまう理由はいくつか考えられますが、主なものは次の2つだと思います。
- 着物の袖部分に仕込まれているボーンが、直接、腕や肘のボーンに関連づけられていること
- 袖部分の剛体と腕や肘の剛体とを接続しているジョイントの可動範囲が狭すぎること
これも、絵で見た方が分かり易いでしょう。
着物の袖部分に仕込まれているボーン群の根元のボーンの親が腕や肘のボーンになっていると、腕や肘が回転すると袖の部分のボーン群は100%追随して回転します。
一方、実際の着物では、腕や肘が回転しても、着物の袖自体は腕や肘にくっついている訳ではないので回転しませんよね。
つまり、着物の袖の部分のボーンが回りすぎていると言うことになります。
この対処方法としては、
- 腕や肘のボーンに沿って、着物の袖のボーンの根元を接続するボーンを新しく設置する
- 新しく設置したボーンの親に腕や肘のボーンを設定すると共に、回転に関する付与率を小さく設定し、袖のボーンが回りすぎないようにする
ことで解決できます。
次に、ジョイントの可動範囲の件ですが、その前に物理演算で動く剛体の仕組みについて知っておく必要があります。
通常、着物の袖には物理演算剛体が設置されており、この剛体の動きに従って着物の袖が動くことになります。
また、剛体そのものは変形しませんので、剛体を動かすためには剛体同士を接続しているジョイントを設定する必要があります。
今回問題となっているジョイントは、着物の袖に設定されている剛体とその剛体を腕や肘に追随して動く剛体につないでいるジョイントです。
このジョイントの回転に関する可動範囲が狭いと、袖の剛体が下方向に十分に回り込めなくなり、結果として袖が待ちあがってしまいます。
この問題の対処方法は簡単で、当該ジョイントの可動範囲(特に、腕や肘まわりの方向の可動範囲)を大きくすればOKです。
どうでしょうか? ちゃんと本物の着物の袖のように、腕を回しても着物の袖が下方向に垂れ下がるようになりましたね。
さて次は、着物の袖を捲る方策を検討しましょう。
着物の袖が捲れるようにするためには?
この問題に対しては、私は最初、モーフを使って腕まくりすることにチャレンジしてみました。
やり方としては、クロスシミュレーターを使って腕を上げた時にできるそでの形状を作り、これをモーフターゲットとしてモーフを設定すればOKです。
ただ、クロスシミュレーターにより変形させた袖の形は、シワの部分が鋭角に折れ曲がってしまうので、布らしくならないのが欠点です。
このため、モーフを使った袖の変形を早々に断念し、代わりにボーンを使って袖を捲ることにしました。
手順としては、次のとおりです。
- 腕や肘のボーンに沿って配置した着物の袖のボーンの根元を接続するボーン群にローカル軸を設定する
- これらのボーンの内、最も手首に近い側のボーン(調整用ボーンと呼びましょう)のX軸方向の動きに従って、残りのボーンが動くように移動の付与率を設定する
- 設定する付与率は、原則として、手首から肩に向かうほど小さくなるように設定する
ただし、ここで気を付けなければいけないのは、調整用ボーンを動かした時、肘に沿って設置されているボーンが肘よりも上の肩の方にいどうしないように付与率を設定しなければならないこと。
理由は、肘を曲げた時に袖が突き出してしまうからです。
このようにすれば、腕や肘が上がるタイミングで調整用のボーンを使って袖を捲ることができます。
また、袖を捲ると袖に設置された剛体も肩の方向に移動するため、袖が捲れた状態で袖が物理演算で動いてくれます。
今回検討した袖の設定を適用してモデルを動かしてみた結果は?
以上の設定を、冒頭で紹介した着物を着たPPちゃんに施してみました。
なお、PMXエディタでは、同一のボーンに対して回転と移動の付与を同時に行うことができません。
このため、今回の設定では腕まくりのための移動の付与を優先し、代わりに袖の剛体を接続しているジョイントの可動範囲を目一杯大きくしてあります。
どうでしょうか? これまでよりも、ずっと着物らしく動くようになりましたよね。
これで、今回のミッションはコンプリート。
実際の動きは、当サイトに掲載している「唯一、愛の詠」のデモムービーで確認してみて下さいね。
さて、次回のプロジェクトですが、モーショントレースを行っている時に結構手間がかかるものの一つに「足の接地」の調整があります。
センターボーンを上下させたり、足のIK(インバースキネマティクス)を動かすと、足が地面に沈み込んだり、逆に地面から浮き上がったりしますよね。
それと、足を設置させる前後では踵(かかと)や爪先を上げますが、この時に微妙に足が移動してしまうので、その都度、位置の調整も行わなければなりません。
これをずっと、何とかできないかと考えていたのですが、ハイエンドのCGソフトウェアの中には足の接地を自動で行ってくれるフロアコンタクトの機能があると言うことを最近知りました。
もし、これがMMDで実現出来たら、トレースの質の向上と作業量の低減が図れるのではないでしょうか。
と言うことで、次回のプロジェクトでは、この「フロアコンタクト」機能の実現について検討してみたいと思います。
コメント