見出し画像

【MMD】腕切IKと外部親を使った剣術モーションの刀の円運動についての覚書

まずはじめに
これは完全な個人的な覚書です
たぶん僕が以外の方が読んでもあまり役にはたちませんw
考え方とかは参考になるかもですが…

手順概要

1.刀を構えたポーズを作る
2.刀を振り上げたポーズをつくり振り下ろしたい向きに刀を傾ける
3.MMDの画面を刀を平行に向ける
4.「刀回転」ボーンを中心にして「右手首移動用ボーン」をボーン操作【回転】を使って回転させる。
5.MMDの画面を動かさず「上半身」「上半身2」をボーン操作【回転】を使って回転させる。(腕切IKなので上半身ボーンの動きは刀の回転には影響しない。

モデルのボーン構造

1.腕切IK構造「ConstraintBones」プラグインを使用(IKMakerも必要)
2.上半身2を親に持つ肩と同じ高さでX位置0の「刀回転」ボーンを準備
右手首移動用ボーンをボーン操作の回転で動かす時の軸にする。
移動ボーンにしておくこと。
3.腕切IKの親はセンターにする。センターの重心移動で刀が動いた方が便利

刀モデルの改変

画像1

画像のようにもう一つ刀をコピーしたものを準備
MMDの画面を刀の向きに平行にするためのもの
下の赤い刀が完全に見えなくなるようにすることで刀の向きと画面が平行になっていることになる。
赤い複製はモーフで消せるようにしておくといい

1.刀を構えたポーズを作る

画像2

構えたポーズを作る。振りかぶる直前のポーズ
「刀」と「左手首」は右手首ボーンを外部親にする

2.刀を振り上げたポーズをつくり振り下ろしたい向きに刀を傾ける

振り上げのポーズを作る時は両肩の高さを変えるおくとよい。肩の高さは上半身ボーンのZ軸を使って高低差を付ける

【右肩をあげる】
真横から「刀回転」ボーンを軸にボーン操作【回転】(グローバルX軸回転)すると…

画像3

【左肩をあげる】

画像4

どちらの肩があがっているか?によって振り上げる角度が変わるので便利

3.MMDの画面を刀を平行に向ける

刀モデルに入れておいたモーフを使って刀に平行な赤いポリゴンを表示する

画像5

MMDの画面を操作して赤いポリゴンが重なる位置にいく

画像6

画像7

MMDのカメラをパースをオフにしないと完全には重ならないがそこまでしなくてもよい

4.「刀回転」ボーンを中心にして「右手首移動用ボーン」をボーン操作【回転】を使って回転させる。

「右手首移動用」ボーンを選択しボーン操作の【回転】を押す

画像8

するとMMDの画面に回転のハンドルが出る

画像9

「右手首移動用」ボーンを選択した状態でshiftを押しながら刀回転ボーンを選択すると

画像10

このように「刀回転」を軸に回転するようになる
このハンドルを使って「右手首移動用」を回転させる。
このハンドルの緑は画面と平行に書いてるするものなのでこのまま回転させればちゃんと刀が画面と平行向きに回転しそうなものだが何故かそうならないので赤と青のハンドルを調整して刀が画面に平行になるようにする。
(たぶん腕切IKが影響して画面と平行に回転しないような気がする)

画像11

こうなるようにする。次に「右手首回転用」ボーンを回転させる
ここまで作って正面から見てみると

刀の向きに振り下ろされているのがわかる

5.MMDの画面を動かさず「上半身」「上半身2」をボーン操作【回転】を使って回転させる。

刀は腕だけで回転しているのではなく体の動きで回転しているので上半身を回転させる。
MMDの画面は動かさず、もしくはMMDの画面を刀に平行にする。
それぞれのボーンを「ボーン操作【回転】」の緑ハンドルをつかって回転させる。
するとこうなる

画像12

腕の位置が窮屈に感じるので画面を刀と平行にしたまま「右手首移動用」ボーンを「ボーン操作【移動】」を使って移動する。

画像13

こうすることで刀に平行を保ったまま移動することができる

ここまでを動画にすると

綺麗な?振り下ろしのアニメーションになった。
このやり方で作ったモーションがこちら


この記事が気に入ったらサポートをしてみませんか?