【Unity】Colliderの設定とジャンプの高さ

アクション物を作ると言う事で、
いろいろと試している所なんですが、
改めて難しいと感じる今日この頃でっす。

ようやく動きも出来てきたのですが、
アニメーションで作った、アンドロイド君を動かせるように
試行錯誤していて気付いたというか、知らないというか…

Colliderってどうやって設定するの?って事です。
(;^o^) \(ToT )今更かよ!

初心者本や説明サイトを見ていると
キャラ全体にColliderが設定してあります。

手や足が動かせるので、大まかに設定するより
パーツ単位で設定する方が、いろいろとよさそうな感じなんで、
Colliderの設定を考えてみたいと思います。

まず、本などでよく見かける設定方法を
Collider②.jpg
親になる胴体でColliderを設定しました。

正直、手や足の稼働範囲を考えると、こんな感じになります。

しかし、これでは折角の手足の動きが自由になってるのに
使えないのが残念になります。

また、スライディングを考えているので、寝かせてみると…
Collider③.jpg
Colliderだけ置いてけぼりになります。(T-T) グスッ

これでは意味がないので、パーツ毎にColliderを設定します。
Collider④.jpg
試しに、左腕にColliderを設定してみました。

この状態で腕を動かすと
Collider⑤.jpg
やはりColliderが置いてけぼりになります。(T^T) ヒック

稼働範囲のColliderを設定するしかないのでしょうか…

Colliderが付いてこないってのをネットでも見かけたのですが、
作ってある物がある限り絶対できるはずです。

徹底的に検証でっす。ヽ(`⌒´)ノ ウッキー

いろいろ試してみて分かったのですが、
Colliderは、設定したオブジェクトに連動するって事です。

回転軸が設定されてる場合、
回転軸になるオブジェクト…

そうです。Boneです。
これに設定すれば連動するはずです。

もう一度、腕用にColliderを設定してみます。
Collider⑥.jpg
左腕の各BoneにCapsuleColliderをアタッチしてみました。

ターゲットを動かしてみると
Collider⑦.jpg
Colliderも無事に付いてきてくれますヽ(´▽`)/~♪

PolygonColliderでも
Collider⑩.jpg
SpriteRendererのメッシュが変形するのでズレが若干おこりますが、
付いてきてくれます。

これで各手足が自由に使えるようになりそうです。
早速、Bone単位でColliderを設定していきます。
Collider⑧.jpg
設定するのが面倒ですが、これでColliderが連動します。

早速、アニメーションと連動させてみます。
Collider⑨.jpg
無事に床の上で走ってくれてます。

これでモーションが設定できるって事でジャンプを導入してみます。
上手くジャンプ出来て…

あれ?なにかが変
Collider⑫.jpg
状況を確認してみると

足にColliderを設定しているので、走る動作は沈み込みが起こります。
沈み込み時と伸びてる時では、ジャンプの高さが変わってしまっています。

ジャンプの高さを一定にする為には、
安定したColliderのY座標が必要になります。

更に、Rayを足元に設定しているので、沈み込み時には
床に深く潜るので、ジャンプで抜け切るまでは、床に接触してると
判断される為、ジャンプ時のアニメーションの切り替えが呼び出されません。

足に設定したColliderですが、動作が不安定になると意味がないので、
足元だけColliderを変えて対応してみます。

まず胴体は上下動するので安定しないので、
空オブジェクトを用意して、胴体をその中に入れます。

この親オブジェクトにBoxCollider2DとRigidbody2Dを追加します。
胴体にアタッチしていたRigidbody2Dを削除して、
キャラクター本体を、この親オブジェクトに切り替えます。
Collider⑬.jpg
親オブジェクトをアンドロイドにリネームしています。

BoxColliderは、足元に薄く張っておきます。
足元のBoxColliderより足が下に出ると、上下動が起こるので
伸ばした状態で高さを揃えておくと安定します。

これでジャンプが安定して、ジャンプモーションのアニメーションも
無事呼び出す事ができました。

折角の足のColliderですが、足元が安定しないと使えない事が分かりました。
これも用途に合わせて考える必要があるって事ですね~ ( ̄~ ̄;) ウーン

Colliderって、意外と奥が深いでっす。

しかしスライディングを考えているので、このColliderだと問題もあります。
この辺りの修正案を考える必要が出てきました。

なかなか進まないモーションの処理なんですが、
カメ進行で作っていこうと思うので、しばらくはこんな感じの記事になりそうです。
(°-°;)ヾ(-_- ;) シモシモ・・


アクション系のヒントにでもなれば幸いかと思います。
それではこのへんで (TωT)/~~~ BYE BYE


この記事へのコメント