千本鳥居ランのアイコン
エンタメ

千本鳥居ラン

夕暮れの参道、どこまでも続く朱の鳥居。スワイプでよけて、タップで跳ぶ。立ち止まったら、そこでおしまい。何本くぐれる?

⛩️

千本鳥居ラン

← スワイプ →で車線移動
タップ(または↑スワイプ)でジャンプ

遊び方

  1. 👈 スワイプ 👉左右にスワイプすると、3本ある車線を1つずつ移ります。車線に立つ石灯籠はこれでよけます。
  2. 👆 タップその場でジャンプ。上へのスワイプでも跳べます。低く張られた注連縄はこれで跳び越えます。
  3. ⌨️ キーボードパソコンでは ← → で車線移動、↑ かスペースでジャンプ。

⛶ で全画面に。ぶつかったら「もう一回」ですぐ走り直せます。

称号 — 全5段

ぶつかって止まると、くぐった鳥居の本数に応じた称号が結果に出ます。自己ベストを更新したときは紙吹雪が舞います。

  • まずは十本0〜9本

    最初の7本には障害物が出ないので、ここで止まるのは慣れる前のうちだけです。

  • かけだし参拝者10本〜

    10本目で初めて金色の「⛩️ 10本!」が出ます。まずはここが最初の目標。

  • 参道の風30本〜

    速さは走り始めの約1.4倍。朱の柱が流れて見えはじめるころです。

  • 千本見えてきた60本〜

    速さは走り始めの約1.8倍。障害物もずいぶん増え、半分ほどの鳥居に何かが立っています。

  • お稲荷さま公認100本〜

    最高位。100本を超えると、10本ごとの表示がきつねの「🦊」に変わります。

つくりの話

3Dの道具は使っていない

見た目は3Dですが、3D用のライブラリは入っていません。やっていることは「遠くのものほど小さく描く」という遠近法の割り算だけです。ものまでの距離で画面の高さを割った数を、幅にも高さにも位置にも掛ける。鳥居は6mおきに並んでいて、毎フレーム、奥から手前の順に描き重ねます。手前のものが奥のものを自然に上書きするので、前後関係の計算もいりません。

60m先までしか描きませんが、遠いものほど夕闇に溶けるように薄くしているので、描き始める地点ではもう見えないほど薄く、いきなり鳥居が現れる違和感は出ません。逆に、頭上を通り過ぎる直前の鳥居は、描くと画面を横切る巨大な帯になって視界をふさぐので、2m手前から急いで消しています。正しい3Dより、走りの見通しを優先しました。

体は、目の1.6m前を走っている

テストプレイで「跳んだのにぶつかった」と言われたことがあります。原因は見え方と当たり判定のずれでした。一人称の画面では、足元の注連縄は自分に届く約2m手前で画面の下へ消えます。ところが当たり判定を目の位置でとると、ぶつかるのは縄が見えなくなってから0.1〜0.3秒後。本人にとっては、もう越えたはずのものにやられたことになります。

そこで、ランナーの体は目より1.6m前を走っていることにして、当たり判定も本数の数え上げも、その位置で行うようにしました。縄が視界から消える瞬間と、ぶつかる瞬間がほぼ重なります。あわせて、道の上に自分の位置を示す影を描き(ジャンプすると小さく薄くなります)、今跳べば越えられるタイミングに入った縄は白くきらめくようにしました。

注連縄は2本続けて出さない

ジャンプは約0.8秒で、縄の高さを越えていられるのはそのうち約0.55秒。鳥居の間隔は6mなので、縄が2本続くと、1回のジャンプで両方越えるか、着地した瞬間に跳び直すかしかなく、どちらも余裕がほとんどありません。プレイヤーには反応が遅れたとしか思えない負け方です。

なので、障害物を決めるときに「ひとつ前の鳥居が縄なら、この鳥居の縄は取り消す」という決まりを入れています。縄と縄の間に必ず1本空くので、着地してから落ち着いて跳び直せます。

速さの上限は、読める距離から

速さは秒速7mから始まり、鳥居を1本くぐるごとに0.09mずつ上がって、秒速19mで頭打ちになります。障害物の形と車線がはっきり読めるのは、霧の中からおよそ30m手前。秒速19mなら、そこからぶつかるまで約1.6秒あり、見て、スワイプして、車線を移る時間がまだ残ります。これ以上速くすると「見えたときにはもう遅い」になるので、速さの上限は気持ちよさより公平さで決めました。

障害物の出やすさも本数とともに上がり、最初は3割ほど、80本で6割強に達してそこで止まります。出てくる障害物のうち、およそ7割が石灯籠、3割が注連縄です。

処理が重くなっても、判定はとばさない

当たり判定は「体が鳥居を越えた瞬間」に1本ずつ行っています。端末が重くて1コマで鳥居を2本越えてしまっても、1本目、2本目と順番に判定するので、障害物をすり抜けることも、判定されずに本数だけ増えることもありません。

描画もできるだけ軽くしています。鳥居も灯籠も単色の四角と三角形だけで、グラデーションは空の1枚のみ。蛍は位置を覚えておかず、時刻から毎回計算して描いています。

走っている手ざわり

カメラは一歩ごとに上下にはずみ、左右にもわずかに揺れて、足音のような小さな風切り音が鳴ります。歩調は速さにつれて上がります。車線を移るときは画面が少し傾き、石灯籠のすぐ脇をかすめると画面が小さく震えます。5本に1本の鳥居には明かりが下がっていて、夕闇の奥へ続く光の点になります。どれも見た目だけの演出で、当たり判定には一切影響しません。

タップとスワイプの見分け

操作は2つだけですが、いちばん気を使ったのはタップとスワイプの見分けです。横に26ピクセル動いたらスワイプ、0.3秒以内に12ピクセル未満で指が離れたらタップとしてジャンプ。ここがあいまいだと「よけたつもりが跳んだ」が起き、ランナーゲームではそれがそのまま負けになります。

楽しみ方

  • まずは10本、それから30本:最初の7本は障害物が出ないので、ここで操作に慣れておくと楽です。
  • 縄のきらめきを待つ:注連縄が白く光り始めたら跳ぶ合図。早すぎると縄の手前で着地してしまいます。
  • 全画面で縦持ち:⛶ を押してスマホを縦に持つと、参道が画面いっぱいに広がります。通勤電車の数分にちょうどいい長さです。
  • 景色を見る:速くなってからも、夕暮れの色と蛍はそのまま。必死によけている途中で、ふと鳥居の列がきれいに見える瞬間があります。

よくある質問

音が出ません

音はブラウザの中で合成していて、「はしる」を押すなど画面に触れるまでは鳴りません。iPhone は本体の消音(マナーモード)がオンだと Web ページの音も鳴らないことがあります。

全画面ボタンを押しても全画面になりません

ブラウザが全画面表示に対応していない場合(iPhone の Safari など)は、ゲームの枠を画面いっぱいに広げる方式に切り替わります。もう一度 ⛶ を押すと元に戻ります。

自己ベストはどこに保存されますか?

お使いのブラウザの中だけに保存され、サーバーには何も送りません。別の端末やブラウザでは引き継がれず、ブラウザのデータを消すとリセットされます。

最終更新

この気分のトイ

もっと遊ぶ

このアプリの気分ゲーム