アプリ画面のプレビュー
概要
Three.js を活用したブラウザ完結型の電車・バス運転シミュレーター。タイトル画面は「電車シミュレーター」「バスシミュレーター」の 2 モード構成で、電車を選ぶと路線選択画面に進み、都市近郊線 (通勤電車・5駅) または JR山陽本線 (岡山→笠岡 / 9駅 / 実 44km) を選べる。山陽本線では出発駅 (岡山〜鴨方の 8 駅) を選んで終点笠岡まで走行する区間練習にも対応。バス区間ごとの制限速度 (10〜40km/h)、段階的速度違反警告 (黄→赤点滅→赤テキスト・時間ベース減点)、PERFECT/S/A/B/C の精密停車スコアと定時運行 (±30秒) ボーナス、S+ 連続コンボ、停車精度グラフに対応。インストール不要・ブラウザ完結 (Three.js CDN 読込)。 さらに「岡山市マップ」モードでは、岡山市 路面電車シミュレーター (東山改良版) をユーザー提供のHTMLとして全画面表示する (#151)。
主な機能
- 駅到着アナウンス + ドア開閉 SFX + 加速音マイルド化 (v1.23.0, #127) - 鉄道モード (train / sanyo / 岡山おかでん路面電車) に駅接近アナウンスと到着時のドア開閉演出、および加速音の「不快さ」を解消する 3 つの音響改善を追加 / (1) Web Speech API による駅接近アナウンス: 次駅まで残り 500m 以内 (表示距離) で「まもなく 〇〇 駅です」を 1 回読み上げ / 路面電車は「〇〇 停留場」、駅名末尾が既に「駅 / 停 / 停留場」で終わる場合は補完しない / state.approachAnnouncedStop で stopIndex 単位の重複防止 / (2) Web Audio API によるドア開閉 SFX + アナウンス: 鉄道モード到着時 (Audio.chime 後 0.6 秒) に Audio.doorOpenSfx (空気弁ノイズ → 600Hz → 800Hz の上昇 2 音, triangle) と「ドアが開きます」を再生 / 1.8 秒後の次駅進行直前 (終点以外) に Audio.doorCloseSfx (900Hz → 650Hz の下降 2 音 → 空気弁ノイズ, triangle) と「ドアが閉まります。ご注意ください。」を再生 / 既存の Audio.door (toggleDoor 用) は無変更 (後方互換) / バス・両備バスは対象外 / (3) VVVF 加速音の刷新: 旧 v1.21.0 #123 の square + 鋭い step dip + 高周波 whine が「耳障り」と指摘されたため、carrier を square → triangle に変更 (高調波を大幅削減)・lowpass cutoff 2400 → 1600Hz・ステップ遷移ディップを 0.35× → 0.65× (フワッと切替)・周波数 setTargetAtTime 時定数を 0.04 → 0.12s (なめらかなピッチ変化)・ゲイン最大値 0.10 → 0.08 / 高周波 whine は 600-1700Hz → 480-1050Hz の中高域に収め、最大音量を 0.05 → 0.025 (半減)、立ち上がり 30 → 40km/h に変更 / 路面電車 (tram) とバス (bus) のエンジン音は完全無変更 (後方互換) / Audio.announce / stopAnnounce / doorOpenSfx / doorCloseSfx を新規追加 / 既存の Audio.chime / Audio.door / Audio.departureBell は無変更
- VVVF インバーター風 加速音 + 音量調節スライダー (v1.21.0, #123) - train/sanyo モードのモーター音を実車の VVVF インバーター風に刷新 / Audio に masterGain を追加して全発音をその下流に集約 / Audio.setVolume(0..1) を追加して任意のタイミングで音量を変更可能に / VVVF: モーター基本周波数 (sawtooth) 60→280Hz が速度に連動する旧連続変化はそのまま温存しつつ、追加で PWM キャリア (square 196/247/294/370 Hz の 4 段ステップ・速度域 0-15/15-30/30-50/50+ km/h で切替) と高周波磁歪 whine (sine 600→1700Hz, 30km/h 以降に増加) の 2 オシレーターを並行発振 / 各段の遷移時にキャリアゲインを 0.35× にディップして「カチッ」と段が切り替わる印象を再現 / 50km/h を超える同期領域ではキャリア音量を 0.55× に絞り、whine が主役に / ノッチ 0 + 停車中は VVVF も含めて完全無音にフェード (惰行のレール音だけが残る) / 路面電車 (tram) とバス (bus) のエンジン音は無変更 (後方互換) / UI: オプション欄に「音量」スライダー (0-100%, 1 刻み) を追加し、リアルタイムで全 SE の音量を変更可能 / 設定値は localStorage の settings.soundVolume に保存され、次回起動時に自動復元 (デフォルト 60%) / 既存の 🔊/🔇 ON/OFF トグルとは独立 (OFF にしてもスライダー値は保持される) / レスポンシブ: opt-row のフレックスレイアウトを継承するため PC/スマホ両方で正しく表示
- 岡山市マップ 完全座標仕様準拠リビルド (v1.20.0, #122) - 仕様書 #122「岡山市マップ 完全座標仕様書(AI実装用・最終版)」に基づき、岡山共有マップを 添付路線図画像 (img16) の座標グリッド X 0〜3500 / Z 0〜3000 (1 unit = 1m) に完全準拠で再構築 / okayamaSpec(specX, specZ) 変換ヘルパーを新設 (world_x = spec_x - 1750, world_z = spec_z - 1500) し、世界中央=spec中央 (1750,1500) にマップ / 停留場 21 駅 (東山線 H01-H10 + 清輝橋線 S01-S09, 共用 S01-S03 = H01-H03) を仕様書 §3 完全座標表のとおりに配置: H01 岡山駅前 (100,900) → H04 城下 (1300,900) → H06 西大寺町 (1300,1800) → H10 東山 (3200,2100) / 清輝橋線は柳川 S03 から南へ一直線 (X=900, Z=900→2700) で 田町・新西大寺町筋・大雲寺前・東中央町・清輝橋 まで配置 / 桃太郎大通り §4 仕様: 全幅 42m, 5 区分断面 (北歩道 6m + 北車道 10.5m + 中央軌道 3m + 南車道 10.5m + 南歩道 6m), 色 車道 #444444 / 軌道 #8B6B4A (レンガ色) / 歩道 #D4C5A0 / 白破線 #FFFFFF / センターライン #FFDD00 / 西川緑道公園通り §5 全幅 18m / 東山線ルート §6 全幅 13m / 旭川 §10 X≈1900-2200 (中心 X=2050), 幅 90m, 色 #5B9FB5 / 橋梁 7 本 §10: 新鶴見橋 (Z 50) / 鶴見橋 (300) / 月見橋 (850) / 相生橋 (1450) / 京橋 (1800) / 新京橋 (2350) / 桜橋 (2850) を全て旭川中心 X=2050 上に配置 / 主要建物 §11 9 棟: 岡山駅 (50,800,120×80×25) / 高島屋 (150,1100,60×40×32) / イオンモール岡山 (150,1400,150×80×22) / 後楽園 (1800,600,280×200, 緑地) / 岡山城 (2000,900,28×28×32) / 天満屋 (950,1500,80×40×36) / ハレノワ (1100,2100,100×60×18) / 岡山県庁 (1600,1500,70×60×34) / 岡山市役所 (200,2400,80×40×28) を仕様書座標で配置 / + 城下駅南側のシンフォニーホール (v1.18.0 #116 で追加, ユーザー指摘) を温存 / プラタナス並木 §4: 仕様書「岡山駅前〜柳川付近のみ」に厳密準拠し、spec X 100-950 (柳川直前) の範囲のみ・15m 間隔・幹高 5m + 樹冠半径 3m (頂部 8m) + 色 #4A8A2A で 桃太郎大通り 両側歩道に配置 / 城下 (X>=1000) 周辺には並木を一切置かない (仕様書「城下周辺には並木を置かないでください」) / 路面電車 操作 §13 「ハンドル不要 (A/D無効) / W 加速 / S ブレーキ / E 非常制動 / 自動追従」は v1.16.0 #112 既実装を維持 / バス §14 「A/D で前輪操舵 / 停止中は移動しない / 線路追従なし」は v1.14.0 #111 + v1.16.0 #112 既実装を維持 / 地面サイズ 3600×3100m (spec 全域 + 余白) に拡大 / 既存モード (train/sanyo/直線 bus / 西大寺線リアル道路 v1.5.x) は完全無変更 (OKAYAMA_* 定数のみ更新)
- 岡山共有マップ 柳川分岐点 + シンフォニーホール追加 (v1.18.0, #116) - 仕様書 #116 (岡山市マップ完全作り直し) Phase 3 として、東山線の停留場リストに H03 柳川 (pos:670) を追加し、清輝橋線 S03 柳川との分岐点を桃太郎大通り上 (-180, 20) で明示化 / OKAYAMA_HIGASHIYAMA_WAYPOINTS に分岐点ウェイポイント (-180, 0, 20) を挿入 (Catmull-Rom 曲線の柳川コーナーを精密化、収束的に下流の H04 城下〜H10 東山の visualpos に影響なし) / 既存 stops の pos (H02:500, H04:840, H05:1080, ...) は完全に温存 (後方互換) / OKAYAMA_LANDMARKS に「岡山シンフォニーホール」(x:-30, z:110, w/d:36, h:24, 0xc8c0b6) を追加 (掲示板 #116 でユーザーが指摘した城下駅南側の主要ランドマーク) / 既存 10 ランドマークは座標・サイズ無変更 / 既存モード (train/sanyo/直線 bus / おかでん路面電車 Phase 2 / 両備バス西大寺線) は完全無変更 / 仕様書全体 (X 0-3500 / Z 0-3000 の座標系再定義・桃太郎大通り 42m 断面の詳細描画・プラタナス並木 15m 間隔・路面電車軌道レンガ色舗装 #8B6B4A) は添付路線図画像の精密照合が必要なため、人間レビュー後の Phase 4 で対応
- おかでん路面電車モード 全面作り直し (v1.16.0, #112) - 仕様書 #112 に従い、岡山共有マップの『おかでん東山線』『おかでん清輝橋線』を Phase 2 (鉄道物理) に移行 / (1) ハンドル完全廃止: 路面電車選択時は A/D・←/→ 入力を無効化し、車体は常に線路 (Catmull-Rom 曲線) 接線方向を向く / busHeading / steerAngleDeg / lateralOffset を物理ループ + 描画ループの双方で常に 0 に固定 / アッカーマンステアリングのヘディング更新ブロックを `state.mode === 'bus' && !isOkayamaTramState()` でガード / (2) 段階ノッチ+段階ブレーキ操作: W/↑=ノッチ+1 (最大4段)・S/↓=ノッチ-1・E=ブレーキ+1 (最大6段)・D=ブレーキ-1・N=ニュートラル・Space=緊急ブレーキ / 物理は notchAccel=0.40 m/s²/段、brakeDecel=0.55 m/s²/段、rollingFriction=0.05 (鉄輪) に変更 / 最高速度は引き続き 40km/h / (3) 対向車線注意警告の完全削除: 仕様書要望どおり「⚠ 対向車線に注意!」「⚠ 車線逸脱」バナーは路面電車運行中は一切表示されない (バス物理ブロックを丸ごとスキップしているため副作用なし) / (4) 鉄道音響への切替: レール継ぎ目「ガタンゴトン」(速度連動ピッチ + 25m 間隔)・ブレーキシューのキー音・空気弁「プシュッ」・発車ベルを路面電車にも適用 / (5) HUD 表示の段階化: ノッチバー (4段) + ブレーキバー (6段) を train モードと同じ段階表示に切替、電流計・圧力計も maxNotch/maxBrake で正規化 / (6) `isOkayamaTramState()` ヘルパーで判別を一元化、`isTramOkaden` フラグを cfg に追加 / 両備バス西大寺線・直線バスモードはアッカーマン物理を維持 (後方互換) / 既存モード (train/sanyo/直線 bus) は無変更
- バス操作・視点・西大寺線道路 4 項目修正 (v1.14.0, #111) - (1) バス前輪ピボット回転 (アッカーマン挙動) - buildBus() を 3 階層構造 (vehicleGroup / steerPivot / body) に再編し、steerPivot を前輪位置 (local z=-3.3) に配置 / renderFrame() で舵角ヨー vyaw を steerPivot に適用することで、車体が前輪を支点に弧を描く動き (実バスの前輪舵 = アッカーマン的) を再現 / 旧実装は vehicleGroup.rotation を中心軸で回転していたため「後輪を中心にスピン」する不自然な動きだった / vyaw 係数 0.10 → 0.18 に拡大して視覚的にも舵角効果がわかりやすく / (2) 運転席視点 (FPV) アスペクト固定 - ResizeObserver で sim-wrap のサイズ変化 (画面回転・フルスクリーン・初回レイアウト確定) を即時検知 + 毎フレーム軽量チェック (maybeReSizeRenderer) でフォールバック / 旧 1.6m のバス FPV 高さを 2.2m に統一 (大型バス運転手の目線) し、「画面が半分しか見えない」(空 or 路面ばかり) という症状を改善 / lookY も 1.4 → 1.8 に上げて前方遠景を見やすく / (3) 西大寺線道路の終端切れ修正 - buildSaidaijiRoad / addSaidaijiEnvironment が curve.userData.length (実弧長 ~2067m) で道路ループを回していたため、saidaijiPosToWorld の正規化基準 SAIDAIJI_TOTAL_POS (2900m) との不一致で残り 29% の区間に道路・建物・歩道・センターラインが生成されず途中で消える不具合 / どちらも totalLen = SAIDAIJI_TOTAL_POS に統一し、東山終点まで道路が連続するように修正 / (4) 太陽光シャドウ + Hemisphere 補助光 - renderer.shadowMap (PCFSoftShadowMap) を有効化、太陽光に castShadow + 1024×1024 shadow map + ±120m カバー範囲 / バス車体 (bodyBox / roof) と地面 (ground) に cast/receive shadow / Hemisphere ライト (空 #C8E8F8 → 地面 #4A6A3E, 強度 0.35) を追加して暗部が真っ黒にならないよう改善 / sun の強度 0.85 → 1.15 に増 / 既存モード (train/sanyo/okayama) は backward compatible (車体 hideInCab タグ・カメラ位置・道路スケールは無変更)
- FPV 視点 黒い遮蔽オブジェクト除去 (v1.13.0, #110) - 全車両 (電車/山陽本線/バス/おかでん路面電車) で運転席視点 (FPV / cab) に切替えたとき、車体・前面窓・側面窓・行先表示器・台車・ヘッドライト・路面電車ボディ等が前方視界を遮る不具合を修正 / buildScene() で vehicleGroup を traverse し、明示タグ (cabOnly / hideInCab) のないメッシュをデフォルトで hideInCab=true に設定 → bus / okadenTram のように個別タグ付けされていない車両モデルでも FPV でクリアな視界を確保 / 山陽本線 (v1.6.0 #98 で追加された) FPV 用の窓枠 (上下フレーム / 外側縦フレーム / 中央ピラー) は 中央に大きな黒い縦柱・左右に黒い三角形として残ってしまうため、cabOnly → hideInCab に変更し FPV では非表示 (外部視点では opaque な車体内側に隠れるため見た目への影響なし) / cameraCab の near=0.05 / fov=70 / updateExteriorVisibility() の hideInCab/cabOnly 切替ロジックはそのまま (後方互換: 外部追従カメラ・俯瞰カメラの見え方は変化なし)
- 岡山共有マップ Phase 1 (v1.12.0, #108) - 岡山市街地 (内部 1600m × 1600m スケール) の共有 3D マップを新規追加 / タイトル画面 3 枚目に「🗺 岡山共有マップ」モードを設置 / 共有マップ内のサブメニューで乗り物を選択: (1) おかでん東山線 (おかでん車両 + 全 10 停留場 H01岡山駅前→H02西川緑道公園→H04城下→H05県庁通り→H06西大寺町→H07小橋→H08中納言→H09門田屋敷→H10東山, 約 2.4km) / (2) おかでん清輝橋線 (おかでん車両 + 全 9 停留場 S01岡山駅前→S02西川緑道公園→S03柳川→S04郵便局前→S05田町→S06新西大寺町筋→S07大雲寺前→S08東中央町→S09清輝橋, 約 2.1km, 岡山駅前〜西川緑道公園は東山線と共用区間) / (3) 両備バス西大寺線 (両備バス車両 + 全 11 バス停 岡山駅東口→岡山駅前→西川緑道公園→天満屋→中銀前→県庁前→西大寺町→古京→門田屋敷→山陽学園前→東山, 約 2.5km) / 乗り物を切り替えても同じ街 (道路・建物・旭川・線路) を共有 / Catmull-Rom 曲線で 3 ルートを定義 / 主要 4 道路 (桃太郎大通り 42m 幅・国道180号 18m 幅・あくら通り 14m 幅・城下筋 14m 幅) をボックスジオメトリで描画 / 旭川 (幅 90m) + 橋梁 4 本 (新鶴見橋・鶴見橋・月見橋・旭川橋) / 主要ランドマーク 10 個 (JR岡山駅・天満屋・イオンモール岡山・岡山県立美術館・ハレノワ・林原美術館・岡山市役所・岡山城天守・後楽園・烏城公園) を実寸 + ハチコード色で配置 / 線路は道路の +1cm 上に標準軌 1.435m で配置 (Z-fighting 防止) / 路面電車モードは既存 train 物理 (ノッチ + ブレーキ + 精密停車スコア)、バスモードは既存 bus 物理 (アクセル + ブレーキ + 段階速度違反警告) を再利用 (後方互換) / 既存モード (都市近郊線 train / 山陽本線 sanyo / 西大寺線 bus) は無変更
- 山陽本線 4 項目修正 (v1.11.0, #109) -(1) 路線速度上限 100km/h のハードキャップ追加 (従来は Easy 限定 ATC ソフトブレーキのみで、ノッチ保持で一時超過する場合があった) / (2) 倉敷駅進入カーブ (R600m 相当, 内部 pos 1430-1750 で左 -9m バンプ) と鴨方〜笠岡 S 字区間 (3130-4400 で +10m → -10m) を getSanyoCurveOffset() で実装 / バラスト・レール・枕木をセグメント化 + 接線ヨーで配置、駅マーカー・信号機・車両・全カメラ (FPV/追従/俯瞰) を同じオフセットで追従 / (3) 停止目標板 (▼) を 30cm × 40cm → 80cm × 100cm に拡大、支柱を太く (運転席視点から視認しやすく) / レール間白線も 1.5m × 0.20m → 2.5m × 0.60m に拡大 / mode 判定を sanyo にも対応 / (4) 全モード共通 (train/sanyo) で赤信号通過を triggerGameOver から -500pt 減点 + 警告のみに変更 (bus モードは従来 -300pt を維持・後方互換) / 右上 HUD の DISTANCE ラベルを「駅まで (DISTANCE)」表記へ
- 西大寺線 沿道ストリートビュー再現 (v1.10.0, #106) - 桃太郎大通り (片側3車線・幅24m・中央に路面電車軌道 + 緑芝舗装ベッド + 標準軌 1.435m 鋼鉄レール)・県庁通り (片側2車線・狭め)・城下筋・住宅街・東山終点までの 8 区間で道路半幅 (4〜12m) / 歩道幅 (1.6〜6m) / 舗装色を切替 / プラタナス並木 (幹半径 0.4m × 高さ 5m + 樹冠 6m) を桃太郎大通りに 12m 間隔・住宅街は小さめ街路樹 / JR岡山駅舎・ビックカメラ・ホテルグランヴィア・第1セントラル・NTT岡山・中国銀行本店・岡山高島屋・イオンモール岡山・天満屋岡山本店・中国電力・岡山県庁・林原美術館・山陽学園・おかでんミュージアム の 14 ランドマークを実寸 + ハチコード色で配置 / 区間別に車線白破線 (片側3車線=2本+両側) を描画 / バス停・信号機を区間別歩道外端に再配置 / 西大寺モード時は空 #87CEEB・スカイドーム #C8E8F8・THREE.FogExp2(0xC8E8F0, 0.002) に切替・他モードに戻ると既定値復帰 (後方互換) / 走行ライン・カーブ・バス停 pos・速度制限は v1.5.0/1.5.1 から変更なし
- 山陽本線 区間別速度制限 + 上限 100km/h (v1.9.0, #102) - 路線速度上限を 95km/h → 100km/h に変更 (115 系の実最高速度) / 区間別最高速度 sectionSpeedLimit を新設 (西阿知→新倉敷 + 金光→鴨方 = 95km/h、鴨方→笠岡 S字区間 = 85km/h、他区間 = 100km/h) / 駅進入速度を倉敷駅進入カーブ (R600m) と笠岡駅進入で 65km/h・他駅進入で 70km/h に修正 / buildSanyoRunCfg の startIndex>0 (区間練習) でも slicedSectionSpeedLimit を同期 / train・bus モードは従来仕様のまま (後方互換)
- HUD 残距離プログレスバー (v1.8.0, #103) - 右上 NEXT パネルの DISTANCE 下に 5km スケールのプログレスバーを表示 / 残り 500m 未満で黄、200m 未満で赤に色変化 (DISTANCE テキストも同期) / displayScale 対応 (山陽本線は実 m ベース)
- 停車目標 接近インジケーター (v1.8.0, #103) - 停止目標 HUD に 1000m → 0m スケールの水平バーを追加 / 右端に 60m 相当の停止ゾーン (黄色) を点線で表示 / 現在距離を白いマーカーで重ね表示 / レスポンシブ (スマホでは 150px に縮小)
- 鉄道 停止目標板 ▼ + レール間白線 (v1.8.0, #103) - 全鉄道駅 (都市近郊線 / 山陽本線) のホーム内側 50cm 寄り・地面 +1.5m に 30×40cm の「▼」白板を両面設置 / 線路間に 1.5m × 20cm の白い停止位置ペイント / 既存の黄色ライン (停止位置中心) はそのまま温存
- アナログ速度計 + 計器パネル (v1.8.0, #103) - 画面下中央に 0〜120 km/h の SVG ダイヤル式アナログ速度計 (針回転 -220°〜+40°) を追加 / 中央に現在速度のデジタル表示 / 速度 80km/h 以上で針が橙、95km/h 以上 (または速度違反 lv3) で赤 / 左に電流計 (ノッチ 0〜300A 換算)・右に圧力計 (ブレーキ 0〜100%) のバー型サブメーター / 既存の左上デジタル速度計・左下ノッチ/ブレーキバーは温存 (後方互換) / スマホ縦画面では速度計のみ表示 (狭画面最適化)
- ガタンゴトン 速度連動ピッチ強化 (v1.8.0, #103) - レール継ぎ目音 railClack に pitchMult/volMult 引数を追加 / 速度 0→100km/h で周波数が 0.8×→1.4×・音量が 0.6×→1.0× にリニア変化 / 既存の 25m 間隔・displayScale 対応はそのまま (後方互換)
- メニュー多段階化 (v1.7.0, #101) - タイトル画面を「電車シミュレーター」「バスシミュレーター」の 2 モード構成に再編成 / 電車を選ぶと路線選択 (都市近郊線・JR山陽本線・山岳路線(準備中)・地下鉄(準備中)) / JR山陽本線を選ぶと出発駅選択 (岡山〜鴨方の 8 駅から終点笠岡まで) / 各サブメニューに戻るボタン + サブタイトル + ステップ別ハイライト / 後方互換: 既存の mode/best/total localStorage キー (train, bus, sanyo) はそのまま使用
- 山陽本線 出発駅選択 (v1.7.0, #101) - 岡山(全区間 44km)・庭瀬・中庄・倉敷(中距離)・西阿知・新倉敷・金光・鴨方(短距離・易) の 8 駅から好きな出発駅を選んで笠岡まで走行 / 各駅カードに読み・残り駅数・残り距離 (km)・難易度目安 (★) を表示 / 出発駅変更時は stops/arrivalSpeedLimit/scheduleSecondsBetween を再正規化した run cfg を生成 (元の SANYO_CFG は不変 = 後方互換)
- ミニマップ路線図化 (v1.7.0, #101) - 山陽本線では全 9 駅をドット表示し、出発駅より前は半透明グレー (pre-start)・通過済みは緑 + ✓ マーク・現在位置は青色パルスマーカー (1.2 秒周期で光る) で表示 / displayStops/displayPosBase を cfg に付与して内部座標と元座標を相互変換 / 他モード (train/bus) は従来描画を維持
- 電車モード (通勤電車・都市近郊線・5駅) - 段階ノッチ加速 / 8段ブレーキ / 信号順守 / 精密停止評価
- 車両 3D モデル刷新 (v1.3.0, #92) - JR西日本岡山色 (ステンレス #C8C8C8 + オレンジ帯 #F77F00) のかまぼこ型車両 / 長さ 20m × 幅 2.8m × 高さ 3.6m / 運転台 2 連台形窓 + ヘッドライト 2 灯 + 連結器(ダミー) / 客室窓 12 個等間隔 / パンタグラフ (菱形・簡易モデル) / 台車 + 車輪
- FPV カメラ完全修正 (v1.3.0, #92) - 前端 0.40m 後退 / 高さ 2.4m (運転士目線) / 車体・屋根・帯・窓・台車・連結器・パンタグラフをすべて非表示 / 運転台ダッシュボード(マスコン・ブレーキレバー)のみ表示
- 信号 ATS / ATC ロジック (v1.3.0, #92) - 赤信号: 残距離からの停止可能速度を逆算し ATS 強制ブレーキ (ノッチ無効化 + 緊急減速 ×0.9) / 黄信号: 65 km/h 自動制限 + 警告 / 赤信号通過 (5km/h 超え) は即ゲームオーバー
- Web Audio リアル化 (v1.3.0, #92) - レール継ぎ目「ガタンゴトン」(25m 間隔・速度連動) / ブレーキスキール (高周波バンドパス) / 空気ブレーキ「プシュッ」(ホワイトノイズ burst) / 走行風 (持続バンドパスノイズ・速度連動ゲイン) / 発車ベル (高音 5 連) / ATS ブザー (連続ピピピ) / 電気笛風警笛 (単音長め)
- 運転席視点(FPV)修正 (v1.2.1, #93) - カメラを車両前頭の内側 (前端から 1m 後退・高さ 1.2m・線路中央) に再配置 / FPV 時は車体・屋根・帯・側面窓を非表示にし、near クリッピングを 0.05 に下げて屋根メッシュの食い込みを解消
- リアル駅ホーム (v1.2.1, #93) - レール面 +1.1m / 幅 4.5m / ホーム内側エッジに黄色の点字ブロックライン / 屋根 (庇) と支柱 / 白地に黒文字の駅名標 (両面表示) を装備
- 実車スタイル独立2軸操作 (v1.2.0) - 加速ノッチ (W/↑↓ S) と制動ブレーキ (E/D) を独立2キーで段階操作 / 同時押し不可 / Nキーで即ニュートラル / 長押しでも1段ずつ
- 緩和スコアリング (v1.2.0) - 緊急ブレーキ減点なし / 軽微速度超過は警告のみ / 初期スコア0スタートで初心者でも楽しめるバランス
- バスモード フェーズ1 リアル化 (v1.4.0, #97) - 7m 幅道路 (黄色実線センター + 白破線路肩 + 両側 2m 歩道 + 縁石) / 営業所→市役所前→中央公園→駅前通り→病院前→終点・車庫前 の 6 バス停 / 横断歩道
- ハンドル物理化 (v1.4.0, #97) - A/← で左舵 / D/→ で右舵 / 最大 ±35° / セルフセンタリング (速度比例) / 速度別効き低減 (10km/h 以下 100% → 50km/h 以上 50% で線形) / HUD にハンドル角度インジケーター (角度連動の回転 + ±15°で橙 / ±28°以上で赤)
- バス停 3D リアル化 (v1.4.0, #97) - 青ポール 3m / 白地+青文字の標識板 (両面) / 透明アクリル風屋根 4m + 鉄骨フレーム + 支柱 2 本 / 木製風ベンチ (背もたれ + 脚) / 車道側の黄色「バス停」路面ペイント
- 車線走行 (v1.4.0, #97) - 日本式左側通行に対応 / 走行車線中央 (進行方向左側 -1.75m) からスタート / ハンドル舵角と速度で横方向ドリフト / 走行車線中央から ±1.0m 以上の逸脱で HUD「⚠ 車線逸脱」/ 対向車線側 (+X 側) への逸脱は「⚠ 対向車線に注意!」と区別表示
- バスモード (路線バス・市街地ルート・6バス停) - アナログ加減速 / ハンドル物理操作 / バス停精密停車 / 信号判定
- バスモード両備バス西大寺線リアル化 (v1.5.0, #99) - 岡山駅東口→岡山駅前→NTT岡山前→天満屋→中銀前→中電前→県庁前→古京→門田屋敷→山陽学園中学・高校前→東山電停前→東山 の 12 バス停・全長約 2.9km / 区間制限速度 10〜40km/h (バスターミナル構内 10km/h・桃太郎大通り 40km/h・市街地 30km/h・電停付近 20km/h・終点 10km/h)
- 段階的速度違反警告 (v1.5.0, #99) - 制限+0〜10km/h: 速度計が黄色 (減点なし) / 制限+10〜20km/h: 赤点滅 + 警告音 + -50pt/秒 / 制限+20km/h以上: 「⚠ 速度超過!」+ -100pt/秒 / 速度違反では絶対にゲームオーバーにならない
- バスモード赤信号緩和 (v1.5.0, #99) - 赤信号通過でもゲームオーバーにせず -300pt 減点 + 警告音のみ (鉄道モードは従来どおり安全要件で即ゲームオーバー)
- 両備バス車両カラー (v1.5.0, #99) - ボディ: クリーム白 #F5F0E0 / 帯: オレンジ #E8580A + 赤 #C0392B (側面横帯 2 段) / 前面行き先表示器: 黒地に白文字「西大寺」
- 西大寺線リアル道路形状 (v1.5.1, #100) - 従来は -Z 方向に一直線だった道路を CatmullRomCurve3 (Catmull-Rom 重心パラメータ化) ベースの実在ルートに変更 / 桃太郎大通り右折・天満屋前左折・中電前左折・県庁前緩い右カーブ・S字区間を含む 34 ウェイポイント・約 2.4km の曲線路 / 道路・センターライン・路肩破線・両側歩道・縁石・横断歩道・走行車線ガイドおよびバス停・信号機・沿線建物・街路樹をすべて曲線接線に追従させて配置 / バス車両位置・ヨー角・運転席/追従/俯瞰カメラも曲線追従
- 山陽本線 115 系 (黄色) 車両刷新 (v1.6.0, #98) - 山陽本線モード専用カラーを JR 西日本 115 系・黄色単色塗装 (マスタードイエロー #F5A800 / 灰屋根 #888888 / 床下ダークグレー #333333) に変更 / 前面に「岡山」行先表示器 (黒地白文字) + 赤色尾灯 ×2 + 黒ワイパー ×2 + ヘッドライト ×2 + ダミー連結器を装備 / 屋根上に集中冷房クーラー ×2 と菱形パンタグラフ ×2 基 (先頭車 + 中間 2 両目) / 4 両編成 (先頭車 + 中間車 ×2 + 後尾車) を実装し後尾車も両端運転台 (前面ライト・尾灯・運転台窓) 形状 / FPV 視点では黒い窓ゴム枠を運転席窓周囲に表示し車体メッシュは引き続き非表示 / train モードは従来の岡山色シルバー + オレンジ帯のまま (後方互換)
- 山陽本線モード (JR山陽本線 岡山→笠岡・9駅・実44km) - 庭瀬・中庄・倉敷・西阿知・新倉敷・金光・鴨方を経由 / 駅進入速度制限 / 区間別ダイヤ (定時運行 ±30秒)
- 精密停車スコアシステム (山陽本線) - PERFECT (±30cm) / S (±50cm) / A (±1m) / B (±2m) / C (±5m) / OVERRUN の 6 段階判定
- コンボボーナス (山陽本線) - S+ 連続 3 駅で +500pt / 5 駅で +1000pt / 全駅 PERFECT で「完璧な運行」称号 +2000pt
- 区間別景観 (山陽本線) - 都市/田園/工業/河川橋梁 (高梁川)/丘陵/海・港 (笠岡) を区間ごとに再現
- 3D 描画 (Three.js r160 CDN) - スカイボックス・地形・車両・線路/道路・建物・信号機をプロシージャル生成
- HUD - 速度計 / ノッチ段数 / ブレーキ段数 / 次駅(バス停)パネル / 停車目標インジケーター (接近で拡大) / 信号表示 / ミニマップ / 連続コンボ表示
- カメラ切替 - 運転席視点 / 外部追従 / 俯瞰の 3 種類をスムーズに切替
- リザルト画面 - ランク (S/A/B/C/F) / スコア / 停車精度グラフ (山陽本線は実距離 m で棒グラフ表示)
- 難易度選択 - Easy / Normal / Hard で停止許容範囲・速度ペナルティが変化
- Web Audio API サウンドシステム - モード別エンジン音 (電車: sawtooth 80-400Hz・ノッチOFFでミュート / 路面電車: triangle 60-220Hz / バス: 4段ギア sawtooth 80-160Hz・ギアチェンジ時ディップ)、警笛 (電車: 電気笛 392Hz / 路面電車: チンチンベル ミ・ド 2音 / バス: 466+370Hz 和音クラクション)、発車ベル「ピンポンパンポン」(ド・ミ・レ・シ)、レール継ぎ目ガタンゴトン (鉄道25m/路面電車10m間隔)、空気ブレーキ・ブレーキシュー鳴き・ATS ブザー・ドア開閉・ウィンカー (バスのカーブ時自動)、走行風ノイズ、ON/OFF 切替可
- LocalStorage 保存 - モード別ベストスコア・総走行距離・設定
- ポーズ / 操作説明 / 設定メニュー - プレイ中いつでも呼び出し可能
- レスポンシブデザイン - PC ワイド画面に最適化・スマホ縦画面でモード選択 1 列・フルスクリーン対応
- アカウント登録不要・インストール不要・ブラウザ完結・100% クライアントサイド動作
- v1.24.0 (#136): 添付HTML (岡山市路面電車シミュレーター 東山改良版) 準拠の精密座標へリファイン - 東山線/清輝橋線/西大寺線の停留場座標・道路中心線を実地理に近い HTML PWPath 値で再配置 (柳川 X=860, 城下 X=1270, 西大寺町以東は Z=1810 京橋経由)
導入手順
- AIアプリ開発部 でアカウント登録(まだの方)
- ダッシュボードから
installer.phpをダウンロード - 自社サーバーの公開ディレクトリにアップロードして実行
- APIトークンを入力 → このアプリを選択 → DB情報入力 → 完了