ダンスゲーを作りたい#3 モデル動かしてみたかった。
前回タッチイベントが取得できたのでそれに合わせてHumanoidモデルを動かしたいというお話です。
IKという概念
知らないということもないと思いますが、IKというすごいやつがおりまして、こいつがいるといないじゃ大違いなんですね。
例としてしゃがむ場合を考えてください。
足先を固定して腰をさげたら膝が勝手に曲がるじゃないですか。
この膝を勝手に曲げるって処理がIKの本質です。
これがないとしゃがませる時は
腰を下げたら足が地面にめり込む
↓
股関節、膝をまげてちょうど地面に来るように調整する
って作業を毎回するハメになるわけですね。
まあそういう概念があるってだけの話です。
知らない人のためのそれですね。
モデルとIK
というわけで、モデルを適当に作りました。
Humanoidで読み込ませるために必要な最低限っぽい感じです。
なんかタイルマンみたいですね。
必須ボーンは、
ケツ、背骨、胸、首、頭
胸からのびる、両肩、両上腕、両下腕、両手
ケツからのびる、両上脚、両下脚、両足先
です。
今回はそれ+先ほど話したIKが両足についてます。
つまり、
ケツボーンの位置を下げるだけでしゃがむ
ということになっておりまして、やってみると、
と、まぁ設定が雑なので少々崩れてますが期待通りなわけです。
しかしながらこれ、Blender上ではってお話で、Unity上では思ったようにはいかないわけです。
Unity上での問題
まず、解決してません。
まず安直に、ケツボーンを動かすと、そのまま全体が上下します。
これは記事を読み漁った結果、おそらく親ボーンがどうたらこうたらみたいな話っぽいです。
Hipsは最親なので仕方ない気もしますが、足のIKボーンをヒップと同階層に置いているので、足IKが効いてない事はこの時点で分かります。
では試しに最親じゃないSpineとかならどうでしょうか。
はい。くそ。
要は、直接ボーンのトランスフォームをいじくるのは違うぞって事のようです。
苦難の始まり
早速訳分からん状態ですが、どうやらAnimationRigingとかいうパッケージを使うと、どんなボーンにもIKを設定できるようです。
次回はそれを試します。
この記事が気に入ったらサポートをしてみませんか?