Skip to content

おみくじのピタゴラスイッチに新パターン2種を追加(レジストリ化+毎回ランダム選択) (#200) - #210

Draft
ShinoharaTa wants to merge 7 commits into
mainfrom
feature/issue-200-omikuji-patterns
Draft

おみくじのピタゴラスイッチに新パターン2種を追加(レジストリ化+毎回ランダム選択) (#200)#210
ShinoharaTa wants to merge 7 commits into
mainfrom
feature/issue-200-omikuji-patterns

Conversation

@ShinoharaTa

Copy link
Copy Markdown
Member

Closes #200

概要

おみくじのピタゴラスイッチ装置をパターンレジストリ構成に分離し、新パターンを2種追加した。選択は方針決定どおり毎回ランダム

構成(1修正=1コミット)

  1. refactor: 共通フレーム(外壁・鈴と鈴の緒・狐・ビン)を omikujiPatterns/frame.js へ、既存装置v3を pattern01Karakuri.js へ移設。buildMachineWorld はパターン未指定なら毎回ランダムに選ぶ(シーン側は変更不要)。検証スクリプトは全パターン掃引に対応。
  2. feat: パターン02「つづら折りの風鈴坂」— 左右の坂を渡り、吊り風鈴を鳴らしながら回転バーを抜けて狐へ届く1玉完結の構成。
  3. feat: パターン03「玉突きリレー」— 斜面で加速した玉1が台の玉2をビリヤードの要領で弾き飛ばし、玉2が先行・玉1が後続の「二玉の行列」で狐へ向かう。

新パターンの追加手順は omikujiPatterns/index.js 冒頭にコメントで明文化(ヘッドレス検証必須)。

検証(全パターン)

パターン 掃引1801点(儀式0〜30秒) 最遅到達 微振動
karakuri(既存) 失敗0 8.6s 全項目 0.0000
zigzag(新規) 失敗0 10.4s 全項目 0.0000
billiard(新規) 失敗0 5.2s 全項目 0.0000
  • billiard の「玉2先着」(リレー成立)を儀式時間16点で確認: 16/16
  • CI相当の yarn generate(node:18)成功、yarn.lock 差分なし
  • 全パターン13秒フォールバック(玉2ナッジ)発火前に到達。到達時間はいずれも既存装置(8.6s)と同水準以内

レンダリング確認(Chrome実描画)

つづら折りの風鈴坂(連鎖中 / 完走後):

zigzag-mid
zigzag-final

玉突きリレー(玉突き直前 / 玉2到達・玉1後続中):

billiard-mid
billiard-final

再現手順(レビュー用)

cd web
node scripts/simulate-omikuji.js --sweep 1801 --max-ritual 30   # 全パターン掃引
node scripts/simulate-omikuji.js --jitter                        # 全パターン震え計測
node scripts/simulate-omikuji.js --pattern billiard --sweep 601  # 単一パターン

🤖 Generated with Claude Code

https://claude.ai/code/session_015NjEjZtmCpVdJtCeFumYzG

ShinoharaTa and others added 7 commits July 24, 2026 16:16
共通フレーム(外壁・鈴と鈴の緒・狐・ビン)を omikujiPatterns/frame.js に、
既存装置v3の中間からくりを pattern01Karakuri.js に移設。
buildMachineWorld はパターン未指定なら毎回ランダムに選ぶ
(現時点では1パターンのため挙動は従来と同一)。
検証スクリプトは全パターンを掃引するよう拡張。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015NjEjZtmCpVdJtCeFumYzG
左右につづら折りの坂を渡り、吊り風鈴を鳴らしながら回転バーを抜けて
狐へ届く1玉完結の構成。ヘッドレス掃引(儀式0〜30秒×1801点)失敗0、
最遅到達10.4s。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015NjEjZtmCpVdJtCeFumYzG
斜面で加速した玉1が台の玉2をビリヤードの要領で弾き飛ばし、
弾かれた玉2が先行・玉1が後続の二玉行列で狐へ向かう構成。
ヘッドレス掃引(儀式0〜30秒×1801点)失敗0、玉2先着16/16、
最遅到達5.2s。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015NjEjZtmCpVdJtCeFumYzG
node scripts/preview-omikuji.js で自己完結型のプレビューHTMLを書き出す。
全パターンを並べて自動再生(18秒ごとにリプレイ)し、パターン追加・
調整時の目視確認に使う(掃引テストと併用)。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015NjEjZtmCpVdJtCeFumYzG
新パターン(sekisho): 玉A(大)が跳ね戸の関所で縦穴へ落ち、カタパルトの
錘となって小玉Bを打ち上げる。Bは空中の風鈴を鳴らしながら放物線で本道に
着地し「二周目」を走り、閉じ直った関所を渡って左端からピンボールゾーン
(赤十字スピナー+高反発ピン)へ。大坂を疾走して狐に到達する。

設計上の要点:
- 関所の跳ね戸は演出制御の静的ボディ(最初の玉で一度だけ開く)。物理の
  吊り橋はソフト拘束のファントム振動が儀式時間依存の挙動を生むため不採用
- 打ち上げは「カップ搭乗拘束」+射出正規化(位置・速度・スピンを規定値に
  揃える)。腕の振りの見た目は物理のまま、放物線を毎回同一にする
- 風鈴・跳ね戸は建設時凍結(ドミノと同じ流儀)で位相依存を排除

検証: 儀式0〜30秒×301点の掃引で失敗0(最遅到達14.8s)、微振動全項目0。
つづら折りの風鈴坂(zigzag)・玉突きリレー(billiard)は「元装置の劣化版」
評価のため廃棄(方針: 作れるだけ作って良いものだけ残す)。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015NjEjZtmCpVdJtCeFumYzG
@ShinoharaTa

Copy link
Copy Markdown
Member Author

パターン刷新(フィードバック反映)

「zigzag・billiard は元装置の劣化版」とのフィードバックを受け、両パターンを廃棄し、新パターン 「吊り橋の関所と二周目の道」(sekisho) に置き換えました。

演出の流れ

  1. 玉A(大)が本道を走り、関所の跳ね戸に乗ると戸が開いて縦穴へ落ちる(戸は閉じ直り、以後開かない)
  2. Aはカタパルトの左腕に直撃し、右腕のカップから小玉Bが宙高く舞い上がる(Aは錘として腕に残る)
  3. Bは空中の風鈴を鳴らしながら放物線で本道に着地し、「二周目」を走って閉じた関所を渡り切る
  4. 道の左端から赤十字スピナー+高反発ピンのピンボールゾーンへ落ち、最下段の大坂を疾走して狐に到達

検証

  • 儀式0〜30秒×301点の掃引: 失敗0(最遅到達14.8s)
  • 微振動: 全項目 0.0000
  • チューニング過程で発見した「ソフト拘束のファントム振動が儀式時間依存の挙動を生む」問題は、跳ね戸の演出アクター化・風鈴の建設時凍結・射出正規化で解決(詳細はコミットメッセージ)

dooropen
lap2
final

@ShinoharaTa
ShinoharaTa marked this pull request as draft July 24, 2026 13:31
@ShinoharaTa

Copy link
Copy Markdown
Member Author

新パターン(sekisho)が期待と異なるため一旦保留(ドラフト化)。イメージ合わせのスケッチをもらってから作り直す。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

おみくじのピタゴラスイッチに複数パターンを追加したい

1 participant