パスタブリッジとは
「パスタブリッジ」は、谷に架ける2Dの橋を自分で設計し、無限に押し寄せる車両を何台通せるかを競うエンドレスのスコアアタック型物理演算ゲームです。車両は1台通過するごとに重く・速くなっていくので、どんな橋でもいつかは壊れます。到達した車両の台数がスコアになり、自己ベストはブラウザに保存されます。
物理モデル
橋の挙動はVerlet積分+XPBD(コンプライアンス付き距離拘束)で計算しています。関節にも部材にも質量があり、部材の質量は長さに比例します。
破断の判定は部材1本ごとに、軸力と曲げモーメントの相関式 |N|/N_c + M/M_c > 1 で行います。N_c(軸耐力)は引張なら長さに依りませんが、圧縮ではオイラー座屈 N_E = π²EI/L² を含むRankine式 1/N = 1/N_c + 1/N_E で、長さの2乗に反比例して落ちていきます。M(曲げ)は自重による等分布荷重 M = w⊥L²/8 と、車輪が部材の途中に載る集中荷重 M = P⊥·t(1-t)·L の和です。自重も車重も鉛直なので、部材に直交する成分だけが曲げを生みます。つまり鉛直な支柱は純粋な軸力で効き、水平な長い梁ほど曲げで不利になります。圧縮材ではさらにP-δ効果によるモーメント増幅 1/(1-N/N_E) がかかります。
この結果、谷を道路1本で直結した橋は成立しません。既定の支間900pxの梁は自重の曲げだけで曲げ耐力の約1.3倍に達するため、走らせた瞬間に自分の重さで折れます(曲げは長さの2乗で増えるので、対岸までの距離を伸ばせばなおさらです)。逆に、荷重が関節の真上へ入るように短い部材を三角形へ組めば曲げはほぼゼロになり、荷重は軸力だけで流れます。これが「トラスが強い」ことの計算上の理由です。橋がうねり続けると金属疲労が蓄積し、耐力以下でもいずれ破断します。
素材ごとに「力の伝え方」と「壊れ方」が違う
素材は4種類ありますが、単に強さの数字が違うだけではありません。棒(道路・支柱・鋼材)は押しても引いても力を伝え、軸力と曲げの相関式 |N|/N_c + M/M_c > 1 で壊れます。圧縮側では座屈で耐力が落ちるので、長い部材ほど弱くなります。
これに対して紐は張力しか伝えません。距離拘束は既定では伸びも縮みも両方向に直す双方向の拘束ですが、紐だけは片側拘束(現在長 > 自然長 のときしか補正しない不等式拘束)にしてあります。自然長より縮んだ瞬間に補正量も軸力もちょうど 0 になり、たるむだけで関節を押し返しません。たるんだぶんは画面でも重力の向きへ垂れて見えます(余った長さから放物線のたるみ量を逆算しているので、張り直せば連続して直線に戻ります)。曲げも伝えないので、判定式そのものが棒とは別で、伸びひずみが 5% を超えたら切れるという一本の条件だけで壊れます。座屈も曲げ破壊も無いため、紐はどれだけ長く張っても弱くなりません。谷の壁や岸のアンカーから引き、塔の頂を越えて路面を吊る——という吊り橋の作り方が、この違いから生まれます。逆に、突っ張り(圧縮)が必要な場所に紐を張っても、たるむだけで橋はまったく支えられません。
両岸の岩に部材を留める
谷の左右は岩です。谷の外側(両岸の陸地)の地表・崖の縁・そこから下の壁面、そして谷底の格子点はすべて固定点で、盤面では金色の点で示されます。壁から斜めに突っ張って路面の沈みを止めたり、壁へ吊り下げたり、陸地に立てた塔の背面を引き留めたりできます。固定点は荷重をかけても1pxも動かないので、そこへ流し込んだ力はそのまま岩が受け止めます。ただし、上下2か所で岸に固定すると構造は「剛な枠」になり、橋がたわもうとする力が端部の部材に軸力として集中します。留めれば強くなる、とは限らないところが設計の面白さです。
柱を立てる/吊り橋を組む
関節はすべて自由に回るピンです。したがってまっすぐ2本だけがつながる継ぎ目は蝶番になり、いくら丈夫な支柱でも、短く刻んで積み上げただけの柱は押された瞬間に折れて倒れます。部材の強さの問題ではなく、組み方が機構(動く仕組み)になっているという問題です。建設中は、その関節に橙の輪を出して知らせます。
柱を立てるには、途中で切らずに1本ものの長い部材にするか、2本足にして横つなぎと筋交いで三角形へ組むか、頂点を両側から紐で引き留めるかのどれかが要ります。そして柱の足は、動かない岩=金色の固定点に置く必要があります。谷の中には地面が無いので、路面の上に立てた柱は自分の重さで路面を押し下げるだけになり、荷重を岩へ流せません。
吊り橋はこの3つを組み合わせて作ります。まず崖の縁に塔を立て、塔の頂から岸の陸地の固定点へ紐を張って背面を引き留めます(バックステイ)。次に塔の頂から中央へ向けて紐をつなぎ、たわんだ主ケーブルにします。最後にケーブルの各点から真下の路面へ紐を垂らせば吊り材になり、路面の荷重は 吊り材 → 主ケーブル → 塔 → 岩 という順で流れます。背面の控えが無いと、主ケーブルに引かれた塔はそのまま谷側へ倒れます。
谷底に橋脚を立てる
谷には底があります。盤面のいちばん下の段は地面なので、支間のまん中でも足を下ろせます。ここに下ろした足が基礎、そこから路面へ立てた柱が橋脚です。両岸の岩と違って、基礎は1か所につきコスト +300の割り増しがかかります(関節ぶんの40とは別)。鋼材1本が150、支柱が60であることを考えると、基礎はこのゲームでいちばん高い買い物です。谷底まで掘って基礎を打つのは本来高くつく、という値付けにしてあります。
橋脚は支間を分割するので、路面のたわみが確実に減ります。実測では、谷底から鋼材の柱を2本立てただけで、無補強のデッキが通せた総重量 11t が 135t になりました(コスト 1720 → 2700)。ただしポイントは重量 ÷ コストなので、基礎の割り増しがそのまま効率を削ります。同じ支間で比べると、吊り橋がいちばん効率が高く、橋脚はその次、トラスはいちばん重たい——という並びになります。安く済ませたいなら吊り橋、確実に支えたいなら橋脚です。
橋脚を立てるときも、関節がピンであることは変わりません。短い支柱を積み上げた柱は継ぎ目が蝶番になって折れるので、谷底から路面まで1本ものの柱にするか、谷底の2点から路面の1点へ寄せるA字に組みます。A字は倒れにくいかわりに基礎が2か所ぶんかかります。なお、支えを失った部材は谷底に落ちて積もり、谷底へ落ちた車は崩落になります。
車だけが渡るわけではない
橋を渡るのは車・歩行者・集団客の3種類で、何が来るかは1組ごとに抽選されます(最初の3組は必ず車)。人は車に比べて桁違いに軽いので、重さで橋を壊すことはありません。そのかわりたわんだ路面・傾いた路面を歩けません。足元の路面が設計位置からどれだけ沈んだか(たわみ)と、路面の勾配のうち厳しいほうで歩きにくさが決まり、歩きにくいほど歩みが遅くなって、限界を超えると転落して走行が終わります。
集団客は人が詰まって一列に歩くので、足の数が多く、間隔が詰まっています。荷重は接地している足で等分されるため1か所あたりは軽くなりますが、そのぶん橋の広い範囲へ同時に載り、分布荷重に近づきます。たわみにも傾きにもいちばん弱いのが集団客です。
この結果、「壊れない橋」と「たわまない橋」が別の要求になります。実測では、無補強のデッキは軽い車を3〜4台通せますが、路面が42pxほど沈むため集団客はそこで転落します。トラス(たわみ22px)・吊り橋(28px)・橋脚2本(21px)はいずれも人を通せます。車の重さだけを見て組んだ橋が、人が来た瞬間に終わる——という失敗が起きるようにしてあります。
そして通行は1組ずつではありません。開幕こそ1組ずつですが、到着が進むにつれて前の組が渡り切る前に次が入ってきます。同時に載ると荷重は2か所以上へ分かれて伝わり、分布荷重に近づきます。集中荷重1つと分布荷重では曲げの出かた(=壊れ方)が違うので、「いちばん重い1組に耐えられるか」だけでは設計の良し悪しが決まらなくなります。同時に載る上限はペースで変わり、通常は2組、2倍で3組、4倍で4組までです。通行者どうしはぶつからず、すり抜けます(詰まって止まらないようにするため)。
対岸までの距離を選ぶ
谷の幅そのもの=対岸までの距離を 600 / 900 / 1200px から選べます。既定は 900px で、これまでの盤面と同じです。距離を変えると、谷の幅・盤面の広さ・崖の縁と壁面の位置・格子の列数・予算がまとめて変わるので、橋は作り直しになります。予算は距離ごとに 3100 / 4600 / 6100 とし、初期デッキのコストに対する余裕がどの距離でもほぼ同じ(およそ1.67倍)になるよう決めてあります。長い谷が予算だけで詰むことはありません。
選べる距離を 300px の倍数に絞っているのは、箸の長さ 50 / 75 / 100 / 150px のどれでもちょうど割り切れるようにするためです(4つの最小公倍数が 300)。半端なマスがあると格子点が岸に乗らなくなり、留められる場所が距離によって変わってしまいます。両岸の陸地の広さは距離に依らず 170px で固定なので、どの距離でも吊り橋の背面の控え(バックステイ)は同じだけ取れます。
難易度が変わるので、自己ベストは距離ごとに分けて保存します(既定の 900px は従来の保存場所をそのまま使うので、これまでの記録は残ります)。全国ランキングは標準の 900px の記録だけを受け付けます。距離ごとに難易度も予算も違うものを1つの表に混ぜると、順位が意味を失うためです。組んだ橋を渡すリンクにも距離が入り、受け取った側はその距離の盤面ごと切り替えてから取り込みます。
箸(部材)の長さを選ぶ
格子1マスの大きさ=部材1本の長さを 50 / 75 / 100 / 150px から選べます。長い箸は少ない本数と少ない関節で谷を渡せるのでコストが下がり、同じ通過重量ならポイントが上がります。しかし1本が長くなるほど質量は長さに比例して増え、コンプライアンス(伸びやすさ)も長さに比例して増え、自重による曲げは長さの2乗で、車輪の集中荷重による曲げは長さに比例して増え、圧縮の座屈耐力は長さの2乗に反比例して落ちます。短い箸は丈夫ですが、本数と関節が増えて予算を食い、組めるトラスが小さくなります。どちらかが一方的に有利ということはありません。
車は道路の形をなぞって走る
車輪は真下にある道路面へ両側から接触します。路面が沈んで車輪から離れかけたときは車輪を路面へ引き戻して接地を保ち、めり込んだときは質量に応じて押し分けて荷重を橋へ伝えます。駆動力は接地している車輪だけに、路面に沿った向きでかかるため、上り坂・下り坂では水平方向の進みが遅くなり、路面から離れているあいだは加速できずそのまま落下します。前後の車輪がそれぞれ別の高さに乗るので、車体は路面の傾きに合わせて傾きます。歪んだ橋の上を平然とまっすぐ走り抜けることはありません。
コストとポイントの計算
コストは部材(棒)の本数と接続部(関節)の数、そして谷底に下ろした基礎の数で決まります。部材は道路が1本100、支柱が1本60、関節は1個40、谷底の基礎は1か所300です。長さではなく本数で効くので、無駄な部材を1本減らすことがそのまま得点につながります。ポイントは 通過したものの総重量(t) × 1000 ÷ コスト です。安いコストで重い車両を多く通すほど高くなるので、「とにかく頑丈に組む」よりも「必要最小限の三角形でどこまで耐えるか」を狙うのが高得点のコツです。ポイントはランキングに任意で登録できます(なまえの入力は任意、未入力なら匿名で登録されます)。
強い橋を作るコツ
ポイントは三角形(トラス構造)です。長い梁は自重と車重の曲げで折れますが、道路の下や上に支柱を張って三角形を連ねると、荷重が関節を通して各部材の軸力へ流れ、曲げがほぼ消えます。長い部材は重いうえに圧縮で座屈しやすいので、短い部材を密に三角形へ組むのが基本です。建設中に赤い破線と「自重超過」が出た部材は、走らせるまでもなく自重で折れる長さなので必ず刻んでください。すべての計算はお使いのブラウザ内で完結し、サーバーには何も送信されません。
よくある質問
- 物理エンジンは何を使っていますか?
- 外部ライブラリには依存せず、Verlet積分+XPBD距離拘束の自作物理で動作します。質量に応じた拘束解法なので、重い関節ほど沈み、重い車両ほど橋を強く押し下げます。
- ゲームは終わりますか?
- いいえ。車両は無限に来ます。崩落・転倒・立ち往生のいずれかで走行が終わり、そこまでの通過台数がスコアになります。
- スマホでも遊べますか?
- はい。タッチ操作に対応しており、点をタップ→タップ、またはドラッグで部材を張れます。
- 紐は普通の部材と何が違いますか?
- 紐は引っ張りにしか効きません。拘束を片側(現在長が自然長を超えたときだけ効く不等式拘束)にしてあるので、両端を近づけると力がちょうど0になり、その場で下へ垂れてたるみます。棒の代わりに突っ張ることはできません。曲げも伝えず、壊れ方も棒とは別で、伸びが5%を超えると切れます。座屈も曲げ破壊も無いので、長く張っても弱くならず、吊り橋のケーブルとして使えます。
- 対岸までの距離は変えられますか?
- 変えられます。600 / 900 / 1200px から選べ、既定は 900px です。距離を変えると盤面の広さ・岸の位置・格子の列数・予算(3100 / 4600 / 6100)がまとめて変わり、橋は作り直しになります。自己ベストは距離ごとに分けて残ります。全国ランキングへの登録は、順位の意味を保つため標準(900px)のときだけです。
- 複数の車や人が同時に橋に載りますか?
- 載ります。開幕は1組ずつですが、到着が進むと前の組が渡り切る前に次が入ってきます。歩行者が中央に居るところへ車が乗ると荷重が2か所に分かれ、集中荷重1つとは壊れ方が変わります。同時に載る上限は通行ペースで変わり、通常は2組、2倍で3組、4倍で4組までです。通行者どうしはぶつからず、すり抜けます。
- 箸を長くすると得ですか?
- 一方的には得になりません。長いほど少ない本数・関節で渡せて安く済みますが、1本が重くなり、たわみやすくなり、曲げが増え、圧縮では座屈で耐力が落ちます。短くすると丈夫になりますが本数と関節が増えて予算を食います。
- 柱(塔)が立たずに倒れてしまいます
- 関節が自由に回るピンなので、まっすぐ2本だけがつながる継ぎ目は蝶番になり、積み上げただけの柱は必ず折れます。1本ものの長い部材にするか、2本足を横つなぎと筋交いで三角形に組むか、頂点を両側から紐で引き留めてください。足は金色の固定点(岸の陸地・崖の縁)に置きます。
- 吊り橋はどう組みますか?
- 崖の縁に塔を立て、塔の頂から岸の陸地の固定点へ紐を張って背面を引き留めます。そのうえで塔の頂から中央へ紐をつないで主ケーブルにし、ケーブルの各点から真下の路面へ紐を垂らして吊り材にします。背面の控えを省くと塔が谷側へ倒れて成立しません。
- 谷底の橋脚はどう立てますか?
- 盤面のいちばん下の段(谷底)は地面なので、支間のまん中でも足を下ろせます。谷底から路面まで1本ものの柱を立てるのがいちばん簡単です。基礎は1か所につきコスト +300 の割り増しがかかるので、たわみは確実に減りますが、ポイント(重量÷コスト)では吊り橋に追われます。
- 集団客だけ渡れずに転落します
- 人は重さではなく、路面のたわみと傾きで転落します。集団客はいちばんたわみに弱いので、車は通せてもそこで終わります。橋脚を足す・吊り材を増やす・トラスを密にするなど、路面の沈み込みそのものを減らしてください。歩みが遅くなっているときは、その手前まで来ている合図です。
- データは保存・送信されますか?
- 自己ベストのみブラウザのlocalStorageに保存します。外部への送信はありません。