レッジクライムのアニメーションと動き(2Dプラットフォーマー)


11

物理学を駆使した2Dプラットフォーマーのために、レッジクライムメカニックの実装を決定するのに苦労しています。それを過度に複雑にすることなくこれに取り組む最善の方法は何ですか?

これまでのところ、私は理解しています(ここでは趣味家はプロではありません)。

  1. 根の位置が手の位置のすぐ上になるまで、y軸の剛体に制御された力を適用し、次にキャラクターがプラットフォームに立つようにx軸に十分な力を適用します。同時に、どういうわけかこれを上昇アニメーションと同期させます。

    備考:動きはここでは簡単で、プリズムのスライドジョイントで制御することもできますが、アニメーション(脊椎)を動きと同期させる方法がわかりません。

  2. キャラクターのルート位置を動かすルートモーションアニメーション。完了時にリジッドボディをテレポートし、オブジェクトが空から落下した場合でも、box2dが衝突に適切に対応できることを望みます。

    備考:実際にアニメートする方が簡単に聞こえますが、脊椎のランタイム、box2d以降、プラットフォームを移動するプラットフォームやさまざまな高さのプラットフォームで問題が発生するかどうかはわかりません。

  3. プログラムで手にIKコンストレイントを適用して固定し、ボーンを手動で回転させるか、必要な力をリジッドボディに同時に適用しながら、小さなプリセット(いくつかのキー/フレーム)アニメーションを適用します。

    備考:これはプレイヤーに最大のコントロールを与えるようですが、自分のレベルで実装するのは複雑に聞こえるかもしれません。

ご意見をお寄せいただきありがとうございます。

参考:これは、box2dを備えたECS(libgdx + ashley)ベースのエンジンです。棚グラブはすでに別のシステムとして実装されているため、ここではキャラクターがすでにあらゆる高さの棚から吊り下げることができると想定できます。

回答:


1

適切な決定を下す前に、ここでさらに多くのデザインの選択が必要だと思います。具体的には、キャラクターがぶら下がったり登ったりしているときに何が起こる可能性がありますか?

ゲームは物理学に基づいていると言ったので、ぶら下がったり登ったりしているときに頭に岩が落ちる可能性があると仮定します、それが上昇している間、それはわずかに異なる吊り下げ状態にありますが、唯一の違いは、上昇アクションを開始できないことです。

これは、ハングしている状況全体を制御下に置いていることを前提としています。つまり、ハングしているときに何らかの相互作用が発生した場合、キャラクターは適切に反応します。

次に、クライミングアニメーションが完了したら、キャラクターの状態をアイドルに戻すだけです。


0

トランスフォームを移動するだけで、足が棚にあるまでn回上に移動し、一時的に物理を忘れます。正常に機能すると思います。衝突中に障害が発生した場合に、落下するオブジェクトとプレーヤーの間の距離を常に測定できます。変換変換。衝突が発生することを確認します。


0

プレイヤーが登ることのできるオブジェクトに押し付けられた場合は、上下に動かしてY軸上で動かせます。この状態の間、X軸上を移動できないことを確認してください。移動するときに、上昇アニメーションでAnimation.Sampleを呼び出して、すべての時間を計るのではなく、アニメーションのポイントが上昇距離と一致することを確認できます。


0

私の意見では、「最善の」方法は次のとおりです。登山が可能であることが検出されたら、一時的にプレーヤーの位置をロックします。ルートモーションでアニメーションを使用し、コントロールをロックします。アニメーションが終了したら、プレーヤーの位置とコントロールのロックを解除します。

もちろん、無謀に実行すると、奇妙に見えるか、ピクセルの完全な精度が必要になります。しかし、あなたはそれを回避することができます-プレイヤーが登ることができる範囲をある程度与えてください、そしてラープですぐに完璧なスポットに位置を調整します。


0

空中にいるプレイヤーは、自由に水平に移動できますか(エアコントロール)?その場合は、適切な量の垂直方向の力を加えて、プレーヤーの足をプラットフォームから離し、プレーヤーを水平に移動させます。

これにより、プレイヤーはキャラクターをより詳細に制御し、より多くの移動オプションを開くことができます。たとえば、プレイヤーが(棚にぶら下がっているときに)ジャンプしたい場合は、プラットフォーム上の何かを撃ってから、フォールバックして再度掴みます発射体がそのターゲットに移動している間、レッジは、ターゲットがプレーヤーに向けて発射した発射体をかわすためのものです。このような戦術は、興味深いボス戦戦略につながるかもしれません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.