見出し画像

ダンスゲーを作りたい#3 モデル動かしてみたかった。

前回タッチイベントが取得できたのでそれに合わせてHumanoidモデルを動かしたいというお話です。

IKという概念

知らないということもないと思いますが、IKというすごいやつがおりまして、こいつがいるといないじゃ大違いなんですね。

例としてしゃがむ場合を考えてください。

足先を固定して腰をさげたら膝が勝手に曲がるじゃないですか。

この膝を勝手に曲げるって処理がIKの本質です。

これがないとしゃがませる時は
腰を下げたら足が地面にめり込む

股関節、膝をまげてちょうど地面に来るように調整する

って作業を毎回するハメになるわけですね。

まあそういう概念があるってだけの話です。
知らない人のためのそれですね。

モデルとIK

というわけで、モデルを適当に作りました。

Humanoidで読み込ませるために必要な最低限っぽい感じです。

画像1

なんかタイルマンみたいですね。

必須ボーンは、

ケツ、背骨、胸、首、頭
胸からのびる、両肩、両上腕、両下腕、両手
ケツからのびる、両上脚、両下脚、両足先

です。

今回はそれ+先ほど話したIKが両足についてます。

つまり、

ケツボーンの位置を下げるだけでしゃがむ

ということになっておりまして、やってみると、

画像2

と、まぁ設定が雑なので少々崩れてますが期待通りなわけです。

しかしながらこれ、Blender上ではってお話で、Unity上では思ったようにはいかないわけです。

Unity上での問題

まず、解決してません。

まず安直に、ケツボーンを動かすと、そのまま全体が上下します。

画像3

これは記事を読み漁った結果、おそらく親ボーンがどうたらこうたらみたいな話っぽいです。

Hipsは最親なので仕方ない気もしますが、足のIKボーンをヒップと同階層に置いているので、足IKが効いてない事はこの時点で分かります。

では試しに最親じゃないSpineとかならどうでしょうか。

画像4

はい。くそ。

要は、直接ボーンのトランスフォームをいじくるのは違うぞって事のようです。

苦難の始まり

早速訳分からん状態ですが、どうやらAnimationRigingとかいうパッケージを使うと、どんなボーンにもIKを設定できるようです。

次回はそれを試します。

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