スイングとアンカーの仕組み
このゲームの移動は「ロープの長さを保ったまま振る」という物理の一点に集約されています。
01ロープは距離ジョイント
ビルドの data.json には Tiled_ROPE(描画用のロープ)と Appiglio(掴まるアンカー)が別オブジェクトとして存在し、ロープ側は jointUID・bound・prebound・angleTO・distTO・jx_・jy_ という変数を持っています。名前から読み取れるのは「どのジョイントに繋がっているか」「掴んでいるか」「アンカーまでの角度と距離」を毎フレーム持っているという構成です。
つまり、ロープは見た目だけでなく実際に拘束として働き、アンカーとの距離を保とうとする力でダミーが振られる、という作りです。振り子の速さはロープの長さで決まるため、「短く掴むほど機敏に、長く掴むほど大きく飛ぶ」という一般則がそのまま当てはまります。
ただし重力の値・ロープの初期長・離した瞬間の速度といった実数は、ビルドに定数はあるものの、どの値が何を決めているかを特定できませんでした。そのため当サイトでは物理量の計算ツールは作りません(作れば推測になるため)。
| 変数 | 読み取れる意味 |
|---|---|
| jointUID | 結び付いているジョイントの識別子 |
| bound / prebound | 掴んでいるか、掴む前の状態か |
| angleTO | アンカーまでの角度 |
| distTO | アンカーまでの距離 |
| jx_ / jy_ | 結び目(ジョイント位置)の座標 |
02離すタイミングの考え方
振り子は最下点でいちばん速く、両端で一瞬止まります。離すのは最下点を過ぎて上向きに転じた直後が基本で、真上に近いほど高く、水平に近いほど遠くへ飛びます。
このゲームは複数人が同じ地形を走るため、前の人の軌道がそのまま正解とは限りません。ダミーの見た目は変えられますが、ビルドを見る限り見た目が性能値を持つ作りではありません。それでも、同じ操作でも結果が少しずつずれるのがこの手の物理ゲームの常です。
03アンカーの見分け方
アンカーには Appiglio と Appiglio_Aura の2つがあり、後者は掴める範囲を示す光の表現です。ビルドには coin_circle という変数もあり、アンカー周辺の判定が円で持たれていることが分かります。
画面の英語表記にアンカーの説明は出てこないため、光っている場所が掴める場所、と覚えるのが実用的です。光の輪の外側を狙うと空振りします。