
ソニックに関するゲームの物理学に関する一連の記事の続き 。
注 :
このレビューでは、Genesis / Mega DriveおよびSonic CDのゲームの4つの部分すべてを取り上げています。
以下に書かれていることはすべて、ソニックが特別なボーナスなしで平らで乾燥した表面にあるときの状況を指します。 曲線、水中の挙動の物理学、ボーナススーパーソニックとスピードシューズは別の記事で検討されます。 この記事の手順では、文字の手順ではなくプログラムのサイクルを参照しています。
シリーズの他の部分へのリンク:
パート1:固体タイル
パート3および4:ジャンプとスピン
パート5と6:リングの喪失と水中への侵入
パート7および8:スプリングとギズモ、スーパースピード
変数
このパートでは、次の変数と定数がよく使用されます。
// Xsp: Ysp: // acc: 0.046875 dec: 0.5 frc: 0.046875 ( acc) top: 6
運動の原理
トピックに関するGIF(4.7MB)

加速
ボタンを押し続ける


スローダウン
ソニックがすでに動いているが、押されても立っていない場合


クリックした後、 Xsp = 0.1であると思うかもしれません




摩擦力
クリックしない場合


最高速度
ソニックは特定の限界までしか加速できません。 ある時点で、彼は最高速度に達し、自分で加速することはできなくなります。 accをXspに追加した後、コンピューターはXspがtopの上にあるかどうかを確認します。 超えている場合、値topがそれに割り当てられます。
これは、ソニックが何らかの理由で高速を獲得し、それを達成できない場合(たとえば、スプリングから自分で押すことで達成した場合)、ボタンを彼の動きの方向に押すと、コンピューターはaccを追加し、 Xspが top 、およびXspをtopに等しくします。 したがって、方向ボタンを押すことで運動量を減らすことができます。 これは欠陥です! accを追加する前にXspが topより小さいかどうかをチェックすることにより、エンジンの開発中にそれを削除できます。 Xspが topよりも小さい場合のみ、コンピューターはaccを追加し、 Xspが topよりも大きいかどうかを確認します。 問題は解決しました。
実際、 Sonic CDはスーパーピールアウト (ゲームの日本語版ではダッシュと呼ばれる)を実行できるため、同様の修正を使用します。これにより、ステップあたり12ピクセルの速度で前方にプッシュされます。 通常の状況では、ソニックはこの方法で加速することはできませんが、急にこの速度に達すると、プレイヤーが動きの方向にボタンを押している間、彼はそれで走り続けることができます。 ボタンを離すと、摩擦力が働きます。 もう一度押されると、摩擦力は作用しなくなり、 Xspは一定のままですが、新しいジャークなしでは12に上昇できません。
Sonic CDプログラマーは、Sonicが空中にいる状況にこの修正を適用しなかったため、彼がジャークを使用し、動きの方向にボタンを押しながら棚から落ちた場合、地面を離れるとXspは6に低下します。当時の速度はどれほど高かった。 これも大きな欠陥です。
動きと摩擦を正確にエミュレートする擬似コードは次のとおりです。
if ( "") { if (xsp > 0) { xsp -= dec; } else (if xsp > -top) { xsp = xsp-acc; } } else if ( "") { if (xsp < 0) { xsp += dec; } else if (xsp < top) { xsp = xsp+acc; } } else xsp = xsp-minimum(absolute(xsp), frc)*sign(xsp);
アニメーションの原理
実行中のアニメーション
Sonic CDを考慮すると、Sonicには3つの異なる実行中のアニメーションがあります。 Xspがゼロの場合にのみ立って描かれます。 他のXspがある場合、歩行アニメーションに入ります。このアニメーションでは、フレームの変化は地上での動きの速度に依存します。
Xspが6(またはそれ以上)になるとすぐに、脚が「回転」するアニメーションが実行されます。 Xspが10以上の場合、脚の動きが「図8」の形でジャークアニメーションになります。 ジャークアニメーションはソニックCDのみです。

歩く

ランニング

ジャーク
制動アニメーション
ソニックは、 Xspの絶対値が4.5以上の場合にのみ、旋回時にブレーキアニメーションに入ります。 Sonic 1およびSonic CDでは 、 Xspがゼロに達するか符号が変わるまでブレーキアニメーションモードのままです。 他の3つのゲームでは、ブレーキアニメーションのすべてのフレームを再生した後、ソニックは歩行アニメーションモードに戻ります。

制動
異なるキャラクターの物理学の違い
すべてのキャラクター- ソニック 、 テイル 、 ナックル (ソニック、テイル、ナックル)-加速、減速、最高速度、ランニング、ブレーキングの値は同じです。 特別な動きとスプライト(およびナックルが他の2つよりも低くジャンプするという厄介な事実)を除いて、それらは同じ方法で処理されます。