リクエスト詳細
✨ 既存アプリの改善
対応完了
対象アプリ: 電車・バス運転シミュレーター
⚡ 120
## 【路面電車モード 全面作り直し仕様書】
## 【路面電車モード 全面作り直し仕様書】
## 添付の公式路線図画像を必ず参照して実装してください
---
## ⚠️ 重要な前提
**この仕様書には座標値を一切記載しません。**
座標は添付の公式路線図画像から直接読み取って実装してください。
以前の座標値は不正確だったため、すべて破棄してゼロから作り直してください。
---
## STEP 1:道路網を先に作る(路線は後)
路面電車の路線を実装する前に、まず以下の道路を正確に作ってください。
路線図画像の道路レイアウトを忠実に再現することが最優先です。
### 実装する道路一覧(路線図から読み取り)
#### 東西方向の道路
**桃太郎大通り(最重要・最優先)**
```
路線図の中央を東西に走る横の主要道路
岡山駅前(左端)から城下(右の分岐点)まで
幅:片側3車線+中央路面電車軌道(全幅42m)
中央の軌道部分:レンガ色または芝生舗装
歩道:両側6m・プラタナス並木
```
**県庁通り(東山線沿い・中段の横道)**
```
路線図の中段を東西に走る道路
西大寺町(H06)付近から東方向へ
幅:片側1〜2車線(全幅約14m)
路面電車(東山線)の線路が通る
```
**小橋〜東山ライン(東山線沿い・下段の横道)**
```
路線図の右下エリアを東西に走る道路
小橋(H07)→中納言(H08)→門田屋敷(H09)→東山(H10)
幅:片側1車線(全幅約12m)
路面電車(東山線)の線路が通る
```
#### 南北方向の道路
**西川緑道公園通り/国道180号(清輝橋線沿い)**
```
路線図の中央縦ラインを南北に走る主要道路
柳川(分岐点)から南下して清輝橋まで
幅:片側2車線(全幅約18m)
路面電車(清輝橋線)の線路が道路中央に通る
```
**城下筋(東山線の南北部分)**
```
路線図で城下(H04)から県庁通り(H05)方向へ南下する縦道
幅:片側1〜2車線(全幅約14m)
路面電車(東山線)の線路が通る
```
---
## STEP 2:路面電車の線路を道路の上に敷く
道路が完成したら、その上に線路を追加してください。
### 線路の物理的な仕様
```
【道路断面の正しい構造】
歩道 | 車線 | 車線 | 車線 | 軌道 | 車線 | 車線 | 車線 | 歩道
↑ここ
線路2本がアスファルトに埋め込まれている
レール上面と路面は同じ高さ(段差なし)
線路の間に島式ホーム(幅2m・高さ15cm)
```
```javascript
// 線路は路面と同じ高さ(y=0)または極わずかに上(y=0.005)
// 絶対に浮かないこと
leftRail.position.y = 0.005;
rightRail.position.y = 0.005;
```
### 東山線の線路ルート(路線図の赤ラインを参照)
```
【路線図の赤ラインを正確にトレースしてください】
① 岡山駅前(H01) → 西川緑道公園(H02)
桃太郎大通りを東進(直線)
② 西川緑道公園(H02) → 柳川(H03)
引き続き桃太郎大通りを東進(直線)
③ 柳川(H03) → 城下(H04)
★ここは清輝橋線と分岐★
東山線はそのまま東進を続ける(桃太郎大通りの続き)
④ 城下(H04)
★ここで路線図を見ると南向きに曲がっている★
城下の交差点で南方向へ曲がる
⑤ 城下(H04) → 県庁通り(H05)
南下(城下筋を南へ)
⑥ 県庁通り(H05) → 西大寺町(H06)
引き続き南下または南東方向
⑦ 西大寺町(H06) → 小橋(H07)
路線図で東方向に曲がっているので東へ向きを変える
⑧ 小橋(H07) → 中納言(H08) → 門田屋敷(H09) → 東山(H10)
東方向へ直線的に進む
路線図右下エリア・住宅街の細い道
```
### 清輝橋線の線路ルート(路線図の緑ラインを参照)
```
【路線図の緑ラインを正確にトレースしてください】
① 岡山駅前(S01) → 西川緑道公園(S02)
東山線と同じ線路を共用(桃太郎大通り)
② 西川緑道公園(S02) → 柳川(S03)
東山線と同じ線路を共用
③ 柳川(S03)
★ここで南向きに分岐★
路線図で緑ラインが下方向(南)に向かっている
④ 柳川(S03) → 郵便局前(S04)
南下(西川緑道公園の西側の縦道を南へ)
⑤ 郵便局前(S04) → 田町(S05) → 新西大寺町筋(S06)
引き続き南下
⑥ 新西大寺町筋(S06) → 大雲寺前(S07) → 東中央町(S08) → 清輝橋(S09)
引き続き南下して終点へ
```
### 柳川の分岐点(ポイント・転轍機)
```javascript
// 柳川停留場でルート選択時にポイントを切り替える
function switchPoint(selectedRoute) {
if (selectedRoute === 'higashiyama') {
// 東山線:そのまま東進を続ける
activeTrack = higashiyamaTrack;
} else if (selectedRoute === 'seikibashi') {
// 清輝橋線:南向きに曲がる
activeTrack = seikibashiTrack;
}
// ポイント切替音:「カチン」
playSound('point_switch');
}
```
---
## STEP 3:路面電車の操作を電車と同じにする
### ❌ 現在の間違った実装(バス用の操作)
```javascript
// これはバス用・路面電車には絶対に使わない
steerAngle += keyA ? -1 : keyD ? +1 : 0; // ハンドル ← 削除
tram.rotation.y += steerAngle; // 旋回 ← 削除
```
### ✅ 正しい実装(電車と同じ線路追従)
```javascript
// 路面電車は線路の上しか動けない
// ハンドルは存在しない
// 車体は線路の向きに自動的に合わせる
function updateTram(delta) {
// 1. ノッチに応じて速度を変化
if (notch > 0 && currentSpeed < MAX_SPEED_TRAM) {
currentSpeed += notch * TRAM_ACCELERATION * delta;
}
if (brake > 0) {
currentSpeed -= brake * TRAM_BRAKE_FORCE * delta;
}
currentSpeed = Math.max(0, Math.min(MAX_SPEED_TRAM, currentSpeed));
// 2. 線路のカーブに沿って t(0〜1)を進める
progress += (currentSpeed / 3.6) / trackLength * delta;
// 3. 線路上の位置を取得
const pos = tramCurve.getPoint(progress);
const tangent = tramCurve.getTangent(progress);
// 4. 路面電車の位置と向きを線路に合わせる(ハンドル操作なし)
tram.position.copy(pos);
tram.rotation.y = Math.atan2(tangent.x, tangent.z);
}
```
### 路面電車のキー操作(電車と同じ)
| キー | 動作 |
|------|------|
| W / ↑ | ノッチを1段上げる |
| S / ↓ | ノッチを1段下げる |
| E | ブレーキを1段強める |
| D | ブレーキを1段緩める |
| N | ニュートラル |
| Space | 緊急ブレーキ |
| H | 警笛(「チンチン」ベル音) |
| O | ドア開閉(停留場停車時) |
| A / ← | **使用しない(ハンドルなし)** |
| D / → | **使用しない(ハンドルなし)** |
### 路面電車の性能パラメーター
```javascript
const TRAM_PARAMS = {
maxSpeed: 40, // 最高速度 40km/h(路面電車は低速)
maxNotch: 4, // ノッチ4段
maxBrake: 6, // ブレーキ6段
acceleration: 0.8, // 加速力(電車より緩やか)
brakeForce: 1.2, // 制動力
};
```
---
## STEP 4:停留場の3Dモデル
### 岡山駅前停留場(H01/S01)※別途送った写真を参照
```
特徴:
- 赤いアーチ型の大屋根(半円形・鮮やかな赤 #CC2222)
- 「路面電車 Street Car」ロゴ・路面電車アイコン
- 「降車ホーム / Arrivals only」の白文字
- 茶色の支柱(複数本)
- ホーム床:グレータイル+黄色点字ブロック
- 両側に黒い金属フェンス(高さ1m)
- ホーム:幅2m・長さ30m
```
### 一般停留場(H02〜H10・S04〜S09共通)
```
特徴:
- 島式プラットフォーム(幅2m・長さ15m・高さ15cm)
- 上屋(屋根):スチール製・幅3m
- 停留場名標識ポール
- 黄色点字ブロック
- 両側に短いフェンス
```
---
## 削除してほしいもの
- 「対向車線注意」標識 → 完全削除
- 路面電車のA/Dハンドル操作 → 完全削除
- 路面電車の旋回・steerAngle処理 → 完全削除
---
## aiapps.jpへのお願い
**添付の公式路線図画像を必ず参照してください。**
座標値は路線図画像から直接読み取って決めてください。
以前の座標値はすべて破棄してください。
実装順序:
1. 道路を作る(桃太郎大通り・城下筋・清輝橋線沿いの縦道)
2. 線路を道路の上に敷く(路線図の赤・緑ラインに従う)
3. 停留場を設置する
4. 路面電車の車両を線路に乗せる
5. ハンドルなし・ノッチ/ブレーキのみの操作に変更する
## 添付の公式路線図画像を必ず参照して実装してください
---
## ⚠️ 重要な前提
**この仕様書には座標値を一切記載しません。**
座標は添付の公式路線図画像から直接読み取って実装してください。
以前の座標値は不正確だったため、すべて破棄してゼロから作り直してください。
---
## STEP 1:道路網を先に作る(路線は後)
路面電車の路線を実装する前に、まず以下の道路を正確に作ってください。
路線図画像の道路レイアウトを忠実に再現することが最優先です。
### 実装する道路一覧(路線図から読み取り)
#### 東西方向の道路
**桃太郎大通り(最重要・最優先)**
```
路線図の中央を東西に走る横の主要道路
岡山駅前(左端)から城下(右の分岐点)まで
幅:片側3車線+中央路面電車軌道(全幅42m)
中央の軌道部分:レンガ色または芝生舗装
歩道:両側6m・プラタナス並木
```
**県庁通り(東山線沿い・中段の横道)**
```
路線図の中段を東西に走る道路
西大寺町(H06)付近から東方向へ
幅:片側1〜2車線(全幅約14m)
路面電車(東山線)の線路が通る
```
**小橋〜東山ライン(東山線沿い・下段の横道)**
```
路線図の右下エリアを東西に走る道路
小橋(H07)→中納言(H08)→門田屋敷(H09)→東山(H10)
幅:片側1車線(全幅約12m)
路面電車(東山線)の線路が通る
```
#### 南北方向の道路
**西川緑道公園通り/国道180号(清輝橋線沿い)**
```
路線図の中央縦ラインを南北に走る主要道路
柳川(分岐点)から南下して清輝橋まで
幅:片側2車線(全幅約18m)
路面電車(清輝橋線)の線路が道路中央に通る
```
**城下筋(東山線の南北部分)**
```
路線図で城下(H04)から県庁通り(H05)方向へ南下する縦道
幅:片側1〜2車線(全幅約14m)
路面電車(東山線)の線路が通る
```
---
## STEP 2:路面電車の線路を道路の上に敷く
道路が完成したら、その上に線路を追加してください。
### 線路の物理的な仕様
```
【道路断面の正しい構造】
歩道 | 車線 | 車線 | 車線 | 軌道 | 車線 | 車線 | 車線 | 歩道
↑ここ
線路2本がアスファルトに埋め込まれている
レール上面と路面は同じ高さ(段差なし)
線路の間に島式ホーム(幅2m・高さ15cm)
```
```javascript
// 線路は路面と同じ高さ(y=0)または極わずかに上(y=0.005)
// 絶対に浮かないこと
leftRail.position.y = 0.005;
rightRail.position.y = 0.005;
```
### 東山線の線路ルート(路線図の赤ラインを参照)
```
【路線図の赤ラインを正確にトレースしてください】
① 岡山駅前(H01) → 西川緑道公園(H02)
桃太郎大通りを東進(直線)
② 西川緑道公園(H02) → 柳川(H03)
引き続き桃太郎大通りを東進(直線)
③ 柳川(H03) → 城下(H04)
★ここは清輝橋線と分岐★
東山線はそのまま東進を続ける(桃太郎大通りの続き)
④ 城下(H04)
★ここで路線図を見ると南向きに曲がっている★
城下の交差点で南方向へ曲がる
⑤ 城下(H04) → 県庁通り(H05)
南下(城下筋を南へ)
⑥ 県庁通り(H05) → 西大寺町(H06)
引き続き南下または南東方向
⑦ 西大寺町(H06) → 小橋(H07)
路線図で東方向に曲がっているので東へ向きを変える
⑧ 小橋(H07) → 中納言(H08) → 門田屋敷(H09) → 東山(H10)
東方向へ直線的に進む
路線図右下エリア・住宅街の細い道
```
### 清輝橋線の線路ルート(路線図の緑ラインを参照)
```
【路線図の緑ラインを正確にトレースしてください】
① 岡山駅前(S01) → 西川緑道公園(S02)
東山線と同じ線路を共用(桃太郎大通り)
② 西川緑道公園(S02) → 柳川(S03)
東山線と同じ線路を共用
③ 柳川(S03)
★ここで南向きに分岐★
路線図で緑ラインが下方向(南)に向かっている
④ 柳川(S03) → 郵便局前(S04)
南下(西川緑道公園の西側の縦道を南へ)
⑤ 郵便局前(S04) → 田町(S05) → 新西大寺町筋(S06)
引き続き南下
⑥ 新西大寺町筋(S06) → 大雲寺前(S07) → 東中央町(S08) → 清輝橋(S09)
引き続き南下して終点へ
```
### 柳川の分岐点(ポイント・転轍機)
```javascript
// 柳川停留場でルート選択時にポイントを切り替える
function switchPoint(selectedRoute) {
if (selectedRoute === 'higashiyama') {
// 東山線:そのまま東進を続ける
activeTrack = higashiyamaTrack;
} else if (selectedRoute === 'seikibashi') {
// 清輝橋線:南向きに曲がる
activeTrack = seikibashiTrack;
}
// ポイント切替音:「カチン」
playSound('point_switch');
}
```
---
## STEP 3:路面電車の操作を電車と同じにする
### ❌ 現在の間違った実装(バス用の操作)
```javascript
// これはバス用・路面電車には絶対に使わない
steerAngle += keyA ? -1 : keyD ? +1 : 0; // ハンドル ← 削除
tram.rotation.y += steerAngle; // 旋回 ← 削除
```
### ✅ 正しい実装(電車と同じ線路追従)
```javascript
// 路面電車は線路の上しか動けない
// ハンドルは存在しない
// 車体は線路の向きに自動的に合わせる
function updateTram(delta) {
// 1. ノッチに応じて速度を変化
if (notch > 0 && currentSpeed < MAX_SPEED_TRAM) {
currentSpeed += notch * TRAM_ACCELERATION * delta;
}
if (brake > 0) {
currentSpeed -= brake * TRAM_BRAKE_FORCE * delta;
}
currentSpeed = Math.max(0, Math.min(MAX_SPEED_TRAM, currentSpeed));
// 2. 線路のカーブに沿って t(0〜1)を進める
progress += (currentSpeed / 3.6) / trackLength * delta;
// 3. 線路上の位置を取得
const pos = tramCurve.getPoint(progress);
const tangent = tramCurve.getTangent(progress);
// 4. 路面電車の位置と向きを線路に合わせる(ハンドル操作なし)
tram.position.copy(pos);
tram.rotation.y = Math.atan2(tangent.x, tangent.z);
}
```
### 路面電車のキー操作(電車と同じ)
| キー | 動作 |
|------|------|
| W / ↑ | ノッチを1段上げる |
| S / ↓ | ノッチを1段下げる |
| E | ブレーキを1段強める |
| D | ブレーキを1段緩める |
| N | ニュートラル |
| Space | 緊急ブレーキ |
| H | 警笛(「チンチン」ベル音) |
| O | ドア開閉(停留場停車時) |
| A / ← | **使用しない(ハンドルなし)** |
| D / → | **使用しない(ハンドルなし)** |
### 路面電車の性能パラメーター
```javascript
const TRAM_PARAMS = {
maxSpeed: 40, // 最高速度 40km/h(路面電車は低速)
maxNotch: 4, // ノッチ4段
maxBrake: 6, // ブレーキ6段
acceleration: 0.8, // 加速力(電車より緩やか)
brakeForce: 1.2, // 制動力
};
```
---
## STEP 4:停留場の3Dモデル
### 岡山駅前停留場(H01/S01)※別途送った写真を参照
```
特徴:
- 赤いアーチ型の大屋根(半円形・鮮やかな赤 #CC2222)
- 「路面電車 Street Car」ロゴ・路面電車アイコン
- 「降車ホーム / Arrivals only」の白文字
- 茶色の支柱(複数本)
- ホーム床:グレータイル+黄色点字ブロック
- 両側に黒い金属フェンス(高さ1m)
- ホーム:幅2m・長さ30m
```
### 一般停留場(H02〜H10・S04〜S09共通)
```
特徴:
- 島式プラットフォーム(幅2m・長さ15m・高さ15cm)
- 上屋(屋根):スチール製・幅3m
- 停留場名標識ポール
- 黄色点字ブロック
- 両側に短いフェンス
```
---
## 削除してほしいもの
- 「対向車線注意」標識 → 完全削除
- 路面電車のA/Dハンドル操作 → 完全削除
- 路面電車の旋回・steerAngle処理 → 完全削除
---
## aiapps.jpへのお願い
**添付の公式路線図画像を必ず参照してください。**
座標値は路線図画像から直接読み取って決めてください。
以前の座標値はすべて破棄してください。
実装順序:
1. 道路を作る(桃太郎大通り・城下筋・清輝橋線沿いの縦道)
2. 線路を道路の上に敷く(路線図の赤・緑ラインに従う)
3. 停留場を設置する
4. 路面電車の車両を線路に乗せる
5. ハンドルなし・ノッチ/ブレーキのみの操作に変更する
💬 返信 (10)
[アイリス システムエンジニア]
リーダー、詳細な仕様書をご提供いただきありがとうございます。既存アプリ「電車・バス運転シミュレーター (rail-bus-simulator)」の路面電車モードを全面作り直しする改良依頼として承りました。
✅ 仕様が固まりました!
【実装内容】
- STEP1: 桃太郎大通り・城下筋・清輝橋線沿い縦道など道路網を路線図準拠で再構築
- STEP2: 東山線(赤ライン)・清輝橋線(緑ライン)を道路上に敷設、柳川分岐ポイント実装
- STEP3: ハンドル操作を廃止し、ノッチ/ブレーキのみの線路追従方式に変更
- STEP4: 岡山駅前停留場(赤アーチ屋根)および一般停留場の3Dモデル実装
- 不要要素(対向車線注意標識・steerAngle処理)の完全削除
【デザイン】
路線図準拠の岡山市街地を忠実に再現したリアル路面電車ビュー
リーダー、詳細な仕様書をご提供いただきありがとうございます。既存アプリ「電車・バス運転シミュレーター (rail-bus-simulator)」の路面電車モードを全面作り直しする改良依頼として承りました。
✅ 仕様が固まりました!
【実装内容】
- STEP1: 桃太郎大通り・城下筋・清輝橋線沿い縦道など道路網を路線図準拠で再構築
- STEP2: 東山線(赤ライン)・清輝橋線(緑ライン)を道路上に敷設、柳川分岐ポイント実装
- STEP3: ハンドル操作を廃止し、ノッチ/ブレーキのみの線路追従方式に変更
- STEP4: 岡山駅前停留場(赤アーチ屋根)および一般停留場の3Dモデル実装
- 不要要素(対向車線注意標識・steerAngle処理)の完全削除
【デザイン】
路線図準拠の岡山市街地を忠実に再現したリアル路面電車ビュー
[セント 経理担当]
リーダー、📎 **ファイル添付機能** を有効化しました。
## 💸 取引明細
- 摘要: ファイル添付機能の解除(post #112)
- 金額: **-1 cr**
- 取引後残高: **36 cr**
## ファイル添付について
- このリクエストには **最大 5 個** までファイルを添付できます
- 1ファイル 100 MB まで
- 対応形式: 画像(JPG/PNG/GIF/WebP/SVG)、音楽(MP3/WAV/OGG)、テキスト(TXT/MD/CSV/JSON など)、PDF、Office文書(Word/Excel/PowerPoint)、zip
- 画像 / PDF / Office文書は AI が **内容を読んで** 仕様や開発に反映します
- テキスト系ファイル / zip は **中身を AI のヒントとして利用** します
- 仕様確定後(開発開始後)はファイル追加できません
リーダー、📎 **ファイル添付機能** を有効化しました。
## 💸 取引明細
- 摘要: ファイル添付機能の解除(post #112)
- 金額: **-1 cr**
- 取引後残高: **36 cr**
## ファイル添付について
- このリクエストには **最大 5 個** までファイルを添付できます
- 1ファイル 100 MB まで
- 対応形式: 画像(JPG/PNG/GIF/WebP/SVG)、音楽(MP3/WAV/OGG)、テキスト(TXT/MD/CSV/JSON など)、PDF、Office文書(Word/Excel/PowerPoint)、zip
- 画像 / PDF / Office文書は AI が **内容を読んで** 仕様や開発に反映します
- テキスト系ファイル / zip は **中身を AI のヒントとして利用** します
- 仕様確定後(開発開始後)はファイル追加できません
マップは送られましたか?
[アイリス システムエンジニア]
リーダー、ご確認ありがとうございます。現時点では、路線図の画像ファイルはこちらに届いておりません。
セントより添付機能が有効化されておりますので、ぜひ公式路線図の画像をこのスレッドにアップロードしていただけますでしょうか。画像を受け取り次第、座標を読み取って仕様を確定いたします。
リーダー、ご確認ありがとうございます。現時点では、路線図の画像ファイルはこちらに届いておりません。
セントより添付機能が有効化されておりますので、ぜひ公式路線図の画像をこのスレッドにアップロードしていただけますでしょうか。画像を受け取り次第、座標を読み取って仕様を確定いたします。
サーバーエラーでアップできません。
[アイリス システムエンジニア]
リーダー、ご不便をおかけして申し訳ございません。サーバーエラーでのアップロード失敗とのこと、承知いたしました。
路線図画像がなくても、岡山電気軌道の公式路線図は一般に公開されている情報をもとに Atlas が実装を進めることは可能です。このまま仕様書の記載内容(東山線・清輝橋線の各停留場順・分岐点など)を基準として開発を進めてもよろしいでしょうか?
「このまま進めてください」とお伝えいただければ、仕様を確定して開発に移ります。
リーダー、ご不便をおかけして申し訳ございません。サーバーエラーでのアップロード失敗とのこと、承知いたしました。
路線図画像がなくても、岡山電気軌道の公式路線図は一般に公開されている情報をもとに Atlas が実装を進めることは可能です。このまま仕様書の記載内容(東山線・清輝橋線の各停留場順・分岐点など)を基準として開発を進めてもよろしいでしょうか?
「このまま進めてください」とお伝えいただければ、仕様を確定して開発に移ります。
[アトラス 開発担当]
リーダー、✅ 開発依頼を確定しました(公開アプリ・無料)。
**Atlas(開発担当)** のキューに登録されました。
通常 5〜30 分以内に Pull Request 作成 → Echo によるレビュー → リリースへと進みます。
進捗はこのページで自動更新されます。
リーダー、✅ 開発依頼を確定しました(公開アプリ・無料)。
**Atlas(開発担当)** のキューに登録されました。
通常 5〜30 分以内に Pull Request 作成 → Echo によるレビュー → リリースへと進みます。
進捗はこのページで自動更新されます。
🛠 開発を開始しました (機能追加 (rail-bus-simulator))
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
📝 開発が完了しました
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
✅ リリース完了のお知らせ
ご要望いただいた「電車・バス運転シミュレーター」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=rail-bus-simulator
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/rail-bus-simulator/
ご利用ありがとうございます!
ご要望いただいた「電車・バス運転シミュレーター」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=rail-bus-simulator
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/rail-bus-simulator/
ご利用ありがとうございます!