ゲーム内時間ルール・運用チェックリスト / In-Game Time Rules & Operations Checklist
概要 / Overview
24時間ライブ配信(YouTube Live + TikTok Live)を安定運用するための時間設計・配信前チェック・日常運用・障害対応・法的遵守事項をまとめる。
Comprehensive guide covering time system design, pre-stream checks, daily operations, incident response, and legal/ToS compliance for the 24-hour live stream on YouTube Live + TikTok Live.
1. ゲーム内時間ルール / In-Game Time Rules
1.1 リアルタイム 1:1 マッピング / Real-Time 1:1 Mapping
ゲーム内時間と現実時間は 1:1 で同期する。ゲーム内の「朝7時」は現実世界の朝7時にあたる。
In-game time maps 1:1 to real-world time. "7:00 AM" in the game corresponds to 7:00 AM in the real world.
| Property | Value | Detail |
|---|---|---|
| Time ratio | 1:1 | 1 real minute = 1 game minute |
| Timezone | JST (UTC+9) | 日本時間を基準 / Based on Japan Standard Time |
| Cycle interval | 10 min | 1日144ターン / 144 turns per day |
| Tip interrupts | Anytime | ターン外でも即時処理 / Processed immediately regardless of cycle |
Real World Game World
─────────────────────────────────────────
00:00 JST ────────────── 00:00 game time (Day N+1 starts)
06:00 JST ────────────── 06:00 game time (Characters wake up)
12:00 JST ────────────── 12:00 game time (Lunch time)
18:00 JST ────────────── 18:00 game time (Dinner time)
23:00 JST ────────────── 23:00 game time (Characters sleep)1.2 game_day リセットタイミング / game_day Reset Timing
ゲーム内日数カウンター game_day は毎日 00:00 JST にインクリメントされる。
The in-game day counter game_day increments at 00:00 JST every day.
┌─────────────────────────────────────────────────────┐
│ game_day Reset Flow │
│ │
│ 23:59:59 JST │
│ │ game_day = N │
│ │ Current cycle completes normally │
│ │ │
│ ▼ │
│ 00:00:00 JST │
│ │ 1. game_day = N + 1 │
│ │ 2. Daily status adjustments applied │
│ │ 3. Daily log rotation │
│ │ 4. Daily backup triggered │
│ │ 5. Characters should be sleeping (natural) │
│ │ │
│ ▼ │
│ 00:00:00 ~ 05:59:59 JST │
│ │ Night phase: characters asleep │
│ │ LLM calls skipped for sleep actions │
│ │ Tips still processed (sleepy reaction) │
│ │ │
│ ▼ │
│ 06:00:00 JST │
│ │ Wake-up window begins │
│ │ Characters wake up (06:00 ~ 07:30 range) │
│ │ │
│ ▼ │
│ New day gameplay begins │
└─────────────────────────────────────────────────────┘game_day リセット時の処理 / Processing at game_day Reset
| # | Process | Detail (JP) | Detail (EN) |
|---|---|---|---|
| 1 | Day counter increment | game_day を +1 | Increment game_day by 1 |
| 2 | Daily stats adjustment | 各キャラクターのステータスを微調整(疲労蓄積等) | Fine-tune character statuses (fatigue accumulation, etc.) |
| 3 | Memory maintenance | 重要度 < 0.3 の当日メモリを削除候補に | Mark memories with importance < 0.3 as deletion candidates |
| 4 | SQLite checkpoint | WAL ファイルのチェックポイント実行 | Execute WAL checkpoint |
| 5 | Log rotation | 前日のログファイルをアーカイブ | Archive previous day's log files |
| 6 | Auto-backup | SQLite DB のバックアップを data/backups/ に保存 | Save SQLite DB backup to data/backups/ |
タイマードリフト対策 / Timer Drift Prevention
risks.md で定義されている通り、長時間稼働によるタイマードリフトを防止する。
As defined in risks.md, timer drift during long-running operations is prevented.
| Strategy | Detail |
|---|---|
| Absolute timestamps | setInterval ではなく、次のターン開始を絶対時刻で計算 / Calculate next turn start as an absolute timestamp, not using setInterval |
| Hourly drift correction | 1時間ごとにシステム時刻と同期し、累積ズレを補正 / Sync with system clock every hour, correcting accumulated drift |
| Cycle alignment | ターン開始を HH:M0 (10分区切り) に揃える / Align turn starts to HH:M0 (10-minute boundaries) |
1.3 時間帯別の行動傾向 / Time-Based Action Weights
キャラクターの行動選択にゲーム内時刻が影響する。LLMプロンプトに現在時刻を含めて自然な行動を促す。
In-game time influences character action selection. The current time is included in LLM prompts to encourage natural behavior.
| Time Range (JST) | Phase | Typical Actions |
|---|---|---|
| 00:00 - 05:59 | Deep night / 深夜 | Sleep. Tips get sleepy reactions (mumble, roll over) |
| 06:00 - 07:30 | Morning / 朝 | Wake up, breakfast, walk Eve |
| 07:30 - 12:00 | Daytime AM / 午前 | Work, clean, talk |
| 12:00 - 13:00 | Lunch / 昼食 | Cook, eat together |
| 13:00 - 17:00 | Daytime PM / 午後 | Work, rest, play with Eve |
| 17:00 - 19:00 | Evening / 夕方 | Cook dinner, eat, walk Eve |
| 19:00 - 22:00 | Night / 夜 | Relax, talk, watch TV, bath |
| 22:00 - 23:59 | Late night / 深夜前 | Wind down, go to sleep |
1.4 季節システム / Season System
MVP 除外 / Excluded from MVP
季節変動は Phase 2 で実装予定(mvp.md 参照)。ただし、ゲーム内日付は MVP から保持しておき、Phase 2 への移行をスムーズにする。
Seasonal changes are planned for Phase 2 (see mvp.md). However, in-game date is tracked from MVP to enable a smooth transition to Phase 2.
MVP での日付管理 / Date Tracking in MVP
interface GameTime {
gameDay: number; // Day count since launch (1, 2, 3, ...)
gameDate: string; // Calendar date "YYYY-MM-DD" (tracked but not used in MVP)
gameHour: number; // 0-23
gameMinute: number; // 0-59
season: string; // "spring" | "summer" | "autumn" | "winter" (derived, unused in MVP)
}| Field | MVP Usage | Phase 2 Usage |
|---|---|---|
gameDay | UI表示、マイルストーン判定 / UI display, milestone tracking | Same |
gameDate | DB に記録のみ / Stored in DB only | 季節イベント判定 / Seasonal event triggers |
season | 算出するが使用せず / Calculated but unused | 背景変化・季節イベント / Background changes, seasonal events |
季節の算出ルール(Phase 2) / Season Derivation Rules (Phase 2)
| Season | Months | Events (planned) |
|---|---|---|
| Spring / 春 | Mar - May | Cherry blossom viewing, spring cleaning |
| Summer / 夏 | Jun - Aug | Fireworks festival, beach episode, watermelon |
| Autumn / 秋 | Sep - Nov | Autumn leaves, Halloween, reading season |
| Winter / 冬 | Dec - Feb | Christmas, New Year, Valentine's Day, snow |
2. 配信前チェックリスト / Pre-Stream Checklist
配信開始前に必ず以下を確認する。全項目 OK で配信開始可能。
Complete all checks below before starting the stream. All items must pass before going live.
2.1 OBS 接続確認 / OBS Connection Check
| # | Check Item | How to Verify | OK Criteria |
|---|---|---|---|
| 1 | OBS起動 / OBS launched | OBS Studio を開く | アプリが正常起動 / App launches normally |
| 2 | ブラウザソース / Browser source | ソース一覧で確認 | http://localhost:3000 が表示されている / Shows game screen |
| 3 | 解像度 / Resolution | 設定 → 映像 | 1280x720px (720p) |
| 4 | YouTube RTMP 接続 / YouTube RTMP | 配信設定でRTMPキーを確認 | 前回のストリームキーが有効 / Stream key is valid |
| 5 | TikTok RTMP 接続 / TikTok RTMP | Multi-RTMP plugin 設定確認 | TikTok のサーバーURL + キーが設定済み / Server URL + key configured |
| 6 | テスト配信 / Test stream | 限定公開で5秒間テスト配信 | 映像・音声が正常出力 / Video and audio output correctly |
| 7 | 録画設定 / Recording | 設定 → 出力 | ローカル録画 ON(障害時の証拠保全) / Local recording ON (evidence preservation) |
2.2 API 接続確認 / API Connection Check
| # | Check Item | How to Verify | OK Criteria |
|---|---|---|---|
| 1 | Claude API | curl でテストリクエスト送信 | 200 OK + 正常レスポンス / Valid response |
| 2 | YouTube Live API | OAuth トークンの有効期限確認 | トークンが有効 or 自動リフレッシュ可能 / Token valid or auto-refreshable |
| 3 | YouTube LiveChat ID | 配信枠の chatId を取得 | chatId が返ってくる / chatId retrieved |
| 4 | TikTok Live Connector | WebSocket 接続テスト | 接続成功 + heartbeat 受信 / Connected + heartbeat received |
| 5 | WebSocket (Game) | ws://localhost:3000/ws/game に接続 | ハンドシェイク成功 / Handshake success |
| 6 | WebSocket (Admin) | ws://localhost:3000/ws/admin に接続 + 認証 | admin:auth_ok 受信 / Received admin:auth_ok |
2.3 DB 初期化確認 / DB Initialization Check
| # | Check Item | How to Verify | OK Criteria |
|---|---|---|---|
| 1 | SQLite ファイル存在 / DB file exists | ls data/game.db | ファイルが存在する / File exists |
| 2 | テーブル確認 / Tables exist | sqlite3 data/game.db ".tables" | 全テーブルが存在 / All tables present |
| 3 | 初期データ / Initial data | SELECT COUNT(*) FROM characters | John, Sara, Eve の3件 / 3 records |
| 4 | ゲーム状態 / Game state | SELECT * FROM game_state | game_day, life_coin_balance 等の値が正常 / Values are valid |
| 5 | バックアップ先 / Backup dir | ls data/backups/ | ディレクトリが存在 / Directory exists |
| 6 | WAL モード / WAL mode | PRAGMA journal_mode | wal が返る / Returns wal |
2.4 テスト投げ銭 / Test Tip
| # | Check Item | How to Verify | OK Criteria |
|---|---|---|---|
| 1 | 管理コマンドで擬似投げ銭 | admin:trigger_event で tip_item を発火 | アイテム出現 + キャラクターがリアクション / Item appears + character reacts |
| 2 | 投げ銭バナー表示 | 画面上にバナーが出るか確認 | バナーが表示され、数秒後に消える / Banner shows and fades |
| 3 | LLM応答 | キャラクターがお礼を言うか確認 | お礼台詞が吹き出しに表示 / Thank-you dialogue in speech bubble |
| 4 | LifeCoin 加算 | admin:get_state で残高確認 | 残高が増加 / Balance increased |
2.5 画面表示確認 / Screen Check
| # | Check Item | How to Verify | OK Criteria |
|---|---|---|---|
| 1 | 部屋描画 / Room rendering | ブラウザソースを目視確認 | タイルマップが正常表示 / Tilemap renders correctly |
| 2 | キャラクター表示 / Characters | 3体全て表示されているか | John, Sara, Eve が表示 / All 3 characters visible |
| 3 | アニメーション / Animation | キャラクターが動いているか | 歩行・待機アニメーションが再生 / Walk/idle animations playing |
| 4 | UI オーバーレイ / UI overlay | ステータスバー・時計・日数 | 全UI要素が表示 / All UI elements visible |
| 5 | 吹き出し / Speech bubbles | テスト会話で確認 | 吹き出しが正常表示・消滅 / Bubbles appear and disappear correctly |
| 6 | 多言語表示 / Bilingual display | JP/EN テキストの表示確認 | 文字化けなし / No garbled text |
| 7 | OBS プレビュー / OBS preview | OBS のプレビュー画面 | ゲーム画面がフル表示・切れていない / Full game screen without clipping |
2.6 最終確認 / Final Checks
| # | Check Item | How to Verify | OK Criteria |
|---|---|---|---|
| 1 | pm2 プロセス | pm2 status | online 状態 / Status is online |
| 2 | メモリ使用量 | pm2 monit or admin:get_state | < 500MB |
| 3 | ディスク空き / Disk space | df -h | > 10GB 空き / > 10GB free |
| 4 | NGワードリスト / NG words loaded | admin:ng_list | リストが読み込まれている / List is loaded |
| 5 | 環境変数 / Env vars | .env ファイル確認 | 全キー設定済み / All keys configured |
| 6 | Slack通知 / Slack alerts | テスト通知送信 | Slackに通知が届く / Notification received in Slack |
3. 日常運用 / Daily Operations
3.1 ログレビュー / Log Review
毎日実施すべきログ確認項目。最低1日1回、できれば朝・夕の2回確認する。
Log review items to perform daily. At minimum once per day; ideally twice (morning and evening).
| # | Review Item | What to Check | Where |
|---|---|---|---|
| 1 | エラーログ / Error logs | L0 (FATAL) / L1 (CRITICAL) が発生していないか | logs/error.log or pm2 logs --err |
| 2 | pm2 再起動回数 / pm2 restarts | 予期しない再起動がないか | pm2 status → restart count |
| 3 | LLM API エラー / API errors | タイムアウト・レート制限の頻度 | logs/llm-api.log |
| 4 | NGフィルタログ / NG filter log | ブロック件数の異常増加がないか | logs/content-filter.log |
| 5 | 投げ銭ログ / Tip log | 正常に処理されているか、取りこぼしがないか | admin:get_logs (filter: tips) |
| 6 | 監査ログ / Audit log | 不正な管理コマンド実行がないか | admin_audit_log table |
| 7 | キャラクター行動ログ / Action log | 行動ループ・異常パターンがないか | admin:get_logs (filter: actions) |
ログレビューのコマンド例 / Log Review Commands
# pm2 のステータスと再起動回数を確認
# Check pm2 status and restart count
pm2 status
# 直近のエラーログを確認
# Check recent error logs
pm2 logs --err --lines 50
# 管理コマンドでゲームログを取得
# Get game logs via admin command
# admin:get_logs { "count": 100, "filter": "errors" }3.2 メモリ使用量確認 / Memory Usage Check
| Metric | Warning Threshold | Critical Threshold | Action |
|---|---|---|---|
| RSS memory | > 500MB | > 800MB | 警告ログ出力 / Warning log |
| Heap used | > 400MB | > 700MB | 自動メモリ削減 / Auto memory reduction |
| SQLite DB size | > 500MB | > 1GB | VACUUM 実行 / Run VACUUM |
| Log file size | > 100MB per file | > 500MB | ログローテーション / Log rotation |
# メモリ使用量のリアルタイムモニタリング
# Real-time memory monitoring
pm2 monit
# SQLite DB サイズ確認
# Check SQLite DB size
ls -lh data/game.db
# SQLite VACUUM(手動実行)
# Manual SQLite VACUUM
sqlite3 data/game.db "VACUUM;"メモリ自動管理 / Automatic Memory Management
risks.md で定義されている通り、以下の自動管理を実施する。
As defined in risks.md, the following automatic management is performed:
| Task | Frequency | Detail |
|---|---|---|
| 低重要度メモリ削除 / Low-importance memory cleanup | Daily (00:00 JST) | importance < 0.5 かつ 30日以上前の記憶を削除 / Delete memories with importance < 0.5 older than 30 days |
| メモリ要約 / Memory summarization | Monthly | LLM による月次メモリ要約・圧縮 / Monthly LLM-based memory summarization |
| SQLite VACUUM | Weekly (Sunday 04:00 JST) | 削除データの領域回収 / Reclaim space from deleted data |
| WAL checkpoint | Daily (00:00 JST) | WAL ファイルをメインDBに統合 / Merge WAL into main DB |
3.3 バックアップ確認 / Backup Verification
| # | Check Item | Frequency | How to Verify |
|---|---|---|---|
| 1 | 日次バックアップ / Daily backup | Daily | ls -la data/backups/ で最新ファイルの日付確認 / Check latest file date |
| 2 | バックアップサイズ / Backup size | Daily | 前日比で極端な変動がないか / No extreme changes from previous day |
| 3 | バックアップ復元テスト / Restore test | Weekly | バックアップから別DBに復元し整合性確認 / Restore to separate DB and verify integrity |
| 4 | バックアップ保持期間 / Retention | Monthly | 30日以上前のバックアップを削除 / Delete backups older than 30 days |
# バックアップ一覧と日時確認
# List backups with dates
ls -lht data/backups/ | head -10
# バックアップ復元テスト
# Backup restore test
cp data/backups/game_YYYYMMDD.db /tmp/test_restore.db
sqlite3 /tmp/test_restore.db "PRAGMA integrity_check;"3.4 日常運用タイムテーブル / Daily Operations Timetable
| Time (JST) | Task | Responsible |
|---|---|---|
| 00:00 | game_day 自動リセット / Auto game_day reset | System (auto) |
| 00:05 | 日次バックアップ実行 / Daily backup runs | System (auto) |
| 04:00 (Sun) | 週次 VACUUM 実行 / Weekly VACUUM | System (auto) |
| 09:00 | 朝のログレビュー / Morning log review | Operator |
| 09:00 | メモリ使用量確認 / Memory usage check | Operator |
| 09:00 | バックアップ確認 / Backup verification | Operator |
| 18:00 | 夕方のログレビュー / Evening log review | Operator |
| 随時 / As needed | 障害対応 / Incident response | Operator |
4. 障害対応フロー / Incident Response Flow
4.1 概要 / Overview
障害発生時は「検知 → 判断 → 対応」の3ステップで対処する。error-handling.md で定義されたエラー重大度レベル (L0-L3) に基づき対応を決定する。
Incidents are handled in three steps: Detection, Judgment, Response. Response is determined based on the error severity levels (L0-L3) defined in error-handling.md.
┌───────────────────────────────────────────────────────────────────┐
│ Incident Response Flow │
│ 障害対応フロー │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────────────────────┐ │
│ │ DETECT │ ──▶ │ JUDGE │ ──▶ │ RESPOND │ │
│ │ 検知 │ │ 判断 │ │ 対応 │ │
│ │ │ │ │ │ │ │
│ │ ・Alert │ │ ・Level │ │ ・L0: pm2 restart + notify│ │
│ │ ・Monitor│ │ (L0-L3)│ │ ・L1: Fallback + notify │ │
│ │ ・Viewer │ │ ・Scope │ │ ・L2: Auto-fallback + log │ │
│ │ report │ │ ・Impact │ │ ・L3: Log only │ │
│ └──────────┘ └──────────┘ └──────────────────────────┘ │
│ │
│ ◀──────── Post-incident review within 24 hours ────────────▶ │
│ ◀──────── 障害後24時間以内にレビュー実施 ──────────────────▶ │
└───────────────────────────────────────────────────────────────────┘4.2 検知 / Detection
| Detection Source | Method | Example |
|---|---|---|
| 自動アラート / Auto alert | pm2 クラッシュ検知 → Slack 通知 | Process crash, memory threshold exceeded |
| モニタリング / Monitoring | ログ監視・メトリクス異常 | Error rate spike, LLM API failures |
| 視聴者報告 / Viewer report | コメント・SNS での報告 | "Screen is frozen", "Characters not moving" |
| 運営確認 / Operator check | 定期ログレビューで発見 | Unusual action patterns, missing tips |
4.3 判断 / Judgment
| Level | Symptoms | Judgment |
|---|---|---|
| L0 FATAL | 配信画面が停止・真っ黒 / Stream frozen or black | 即時対応必須。pm2 自動再起動を確認、手動介入 / Immediate action required |
| L1 CRITICAL | 主要機能停止(LLM応答なし、投げ銭未処理等) | 5分以内に対応。フォールバック動作を確認 / Respond within 5 min |
| L2 WARNING | 機能劣化(一部コメント欠落、レスポンス遅延等) | 次の定期レビューで対応 / Address at next review |
| L3 INFO | 軽微な問題(ログ警告等) | ログ記録のみ / Log only |
4.4 対応 / Response
L0 FATAL — 配信停止レベル / Stream-Down Level
L0 Detected
│
├─ 1. pm2 auto-restart (automatic)
│ └─ Check: pm2 status → "online"?
│ ├─ YES → Verify stream resumed → Done
│ └─ NO → Continue to step 2
│
├─ 2. Manual restart
│ └─ pm2 restart all
│ ├─ Success → Verify stream resumed → Done
│ └─ Fail → Continue to step 3
│
├─ 3. Full service restart
│ └─ pm2 kill && pm2 start ecosystem.config.js
│ ├─ Success → Verify stream resumed → Done
│ └─ Fail → Continue to step 4
│
└─ 4. Emergency OBS maintenance screen
└─ Switch OBS to "Under Maintenance" scene
└─ Investigate root cause
└─ Notify viewers via YouTube/TikTok chatL1 CRITICAL — 主要機能停止 / Major Feature Down
| Scenario | Auto-Response | Manual Follow-Up |
|---|---|---|
| LLM API 全面停止 | フォールバック行動(定型文)に切り替え | API 復旧を監視。長期化時はキャッシュ応答 |
| YouTube API 切断 | 自動再接続(3回リトライ) | OAuth トークン再発行、ストリームキー確認 |
| TikTok 接続断 | WebSocket 自動再接続 | TikTok 側の障害情報確認 |
| メモリ 90% 超過 | 低優先度キャッシュをクリア | メモリリークの調査 |
| DB 書き込み失敗 | インメモリに一時保持、リトライ | DB ファイルのロック・権限確認 |
L2 WARNING / L3 INFO
| Level | Action |
|---|---|
| L2 | ログに記録。次の定期レビューで確認。頻発する場合は L1 に格上げ / Log and review at next check. Escalate to L1 if recurring |
| L3 | ログにのみ記録。対応不要 / Log only. No action required |
4.5 障害対応後のレビュー / Post-Incident Review
L0 / L1 の障害が発生した場合、24時間以内にレビューを実施する。
For L0 / L1 incidents, conduct a review within 24 hours.
| # | Review Item | Detail |
|---|---|---|
| 1 | 発生日時 / When | 障害の発生時刻と復旧時刻 / Incident start and resolution time |
| 2 | 影響範囲 / Impact | 視聴者への影響、データ損失の有無 / Viewer impact, data loss assessment |
| 3 | 根本原因 / Root cause | 障害の原因を特定 / Identify the root cause |
| 4 | 対応内容 / Response | 実施した対応の記録 / Record of actions taken |
| 5 | 再発防止策 / Prevention | 同じ障害を防ぐための改善策 / Improvements to prevent recurrence |
5. 法的事項・利用規約の遵守 / Legal & Terms of Service Compliance
5.1 YouTube パートナープログラム / YouTube Partner Program (YPP)
Super Chat(投げ銭)を受け取るためには YouTube パートナープログラムへの参加が必要。
Participation in the YouTube Partner Program is required to receive Super Chat (tips).
参加要件 / Eligibility Requirements
| Requirement | Threshold | Status / Strategy |
|---|---|---|
| チャンネル登録者 / Subscribers | 1,000人以上 / 1,000+ | 条件達成まで Super Chat なしで運用 / Operate without Super Chat until achieved |
| 総再生時間 / Watch hours | 過去12ヶ月で4,000時間 / 4,000 hours in past 12 months | 24h配信で急速に蓄積 / Accumulates rapidly with 24h streaming |
| YouTube Shorts 再生 / Shorts views | 過去90日で1,000万回(代替条件) | 切り抜き動画で達成可能 / Achievable with clip videos |
| ポリシー遵守 / Policy compliance | コミュニティガイドライン違反なし | NGフィルタで担保 / Ensured by NG filter |
| 2段階認証 / 2FA | 有効 / Enabled | 必須 / Required |
コンテンツガイドライン遵守 / Content Guideline Compliance
| Guideline | Our Compliance |
|---|---|
| 暴力的コンテンツ禁止 / No violent content | LLMシステムプロンプトで制約 + 出力フィルタ / Constrained by system prompt + output filter |
| 性的コンテンツ禁止 / No sexual content | キャラクターデザイン・行動カテゴリで対策 / Character design + action categories prevent this |
| ハラスメント禁止 / No harassment | 視聴者コメントの入力フィルタ + キャラクター応答制御 / Input filter + character response controls |
| 誤情報禁止 / No misinformation | キャラクターは「ゲーム世界」内の発言のみ / Characters speak only within "game world" context |
| スパム禁止 / No spam | 自動配信のため関係なし(ただし繰り返し回避ロジックあり) / Not applicable to auto-stream (but repetition avoidance exists) |
配信カテゴリ / Stream Category
| Platform | Category | Reason |
|---|---|---|
| YouTube | Gaming or Entertainment | AI シミュレーションゲームとして分類 / Classified as AI simulation game |
| TikTok | Gaming | 同上 / Same as above |
カテゴリ選択の重要性 / Importance of Category Selection
「Gaming」カテゴリを選択することで、AIが生成するコンテンツに対する審査基準が「ゲームコンテンツ」として適用される。「Just Chatting」等の雑談カテゴリよりも、キャラクターの行動に対する許容範囲が広い。
Selecting the "Gaming" category means AI-generated content is evaluated under "game content" standards. This provides wider tolerance for character actions compared to categories like "Just Chatting".
5.2 TikTok LIVE 利用条件 / TikTok LIVE Conditions
| Requirement | Detail | Strategy |
|---|---|---|
| フォロワー数 / Followers | 1,000人以上(地域により異なる) / 1,000+ (varies by region) | TikTok での事前プロモーション / Pre-promotion on TikTok |
| 年齢要件 / Age requirement | 18歳以上 / 18+ | 運営者が要件を満たすこと / Operator must meet requirement |
| LIVE Access 申請 / LIVE Access | 一部地域で別途申請必要 / Separate application needed in some regions | 事前に申請 / Apply in advance |
| コミュニティガイドライン / Guidelines | YouTube と同様の安全基準 / Similar safety standards to YouTube | 同一のフィルタシステムで対応 / Same filter system applies |
TikTok 特有の制約 / TikTok-Specific Restrictions
| Restriction | Detail | Mitigation |
|---|---|---|
| 配信時間上限 / Stream duration limit | アカウントレベルにより異なる(最大数時間の場合あり) | risks.md 記載の通り、自動再接続で対応 / Auto-restart as noted in risks.md |
| ギフト受取条件 / Gift eligibility | 特定の条件を満たしたアカウントのみ | 事前に条件を確認・達成 / Verify and meet conditions in advance |
| コンテンツ審査 / Content review | TikTok独自のAI審査が配信中にも適用 | NGフィルタで配信規約違反を事前防止 / NG filter prevents violations proactively |
5.3 ユーザー同意事項 / User Consent
配信画面に視聴者のユーザー名・コメントを表示するための同意取得方針。
Policy for obtaining consent to display viewer usernames and comments on the stream screen.
表示対象 / What Is Displayed
| Data | Display Location | Trigger |
|---|---|---|
| ユーザー名 / Username | 投げ銭バナー、キャラクター台詞内 | 投げ銭時 / When tipping |
| コメント内容 / Comment text | キャラクター台詞の参照元として間接利用(直接表示は限定的) | 10分サイクルで選択時 / When selected in 10-min cycle |
| 投げ銭額 / Tip amount | 投げ銭バナー | 投げ銭時 / When tipping |
同意の取得方法 / How Consent Is Obtained
| Method | Detail |
|---|---|
| プラットフォーム規約による包括同意 | YouTube / TikTok の利用規約上、ライブ配信でのコメント表示は配信者の裁量。コメント投稿は視聴者の自発的行為であり、公開の場での発言として扱われる |
| Platform ToS implicit consent | Under YouTube / TikTok ToS, displaying comments in live streams is at the streamer's discretion. Posting comments is a voluntary act by viewers, treated as public speech |
| 配信概要欄での告知 | 配信の概要欄に「コメント・ユーザー名がゲーム内で表示される場合があります」と明記 |
| Stream description notice | State in stream description: "Comments and usernames may be displayed within the game" |
| 投げ銭時の明示 | 投げ銭バナーにユーザー名が表示されることは、Super Chat / TikTok Gift の標準機能として視聴者に認知されている |
| Tip display expectation | Displaying usernames in tip banners is a standard feature of Super Chat / TikTok Gifts, expected by viewers |
個人情報保護 / Personal Information Protection
| Measure | Detail (JP) | Detail (EN) |
|---|---|---|
| ユーザー名のフィルタ | NGワードに該当するユーザー名は「みなさん」に置換 | Usernames matching NG words are replaced with "everyone" |
| コメントの加工 | LLMに渡す際、個人を特定できる情報(住所・電話番号等)は入力フィルタで除去 | PII (addresses, phone numbers, etc.) is removed by the input filter before passing to LLM |
| データ保持期間 | コメントログは30日間保持後に削除 | Comment logs are retained for 30 days then deleted |
| 削除要請対応 | 視聴者から表示削除の要請があった場合、速やかに対応 | Promptly respond to viewer requests for display removal |
5.4 配信概要欄テンプレート / Stream Description Template
YouTube と TikTok の配信概要欄に記載すべき情報。
Information to include in the stream description for YouTube and TikTok.
【日本語】
AI同棲生活シミュレーション 24時間ライブ配信
キャラクター: ジョン、サラ、イブ(犬)
・投げ銭(Super Chat / TikTok Gift)でアイテムをプレゼントできます
・コメントにキャラクターが反応することがあります
・コメント・ユーザー名がゲーム画面内に表示される場合があります
・全てのキャラクター発言はAIにより自動生成されています
・不適切なコメントは自動的にフィルタリングされます
カテゴリ: ゲーム / Gaming
---
【English】
AI Cohabitation Life Simulation - 24/7 Live Stream
Characters: John, Sara, Eve (dog)
- Send tips (Super Chat / TikTok Gifts) to give items to the characters
- Characters may react to your comments
- Comments and usernames may be displayed on the game screen
- All character dialogue is auto-generated by AI
- Inappropriate comments are automatically filtered
Category: Gaming5.5 法的リスク対策まとめ / Legal Risk Mitigation Summary
| Risk Area | Mitigation |
|---|---|
| 著作権 / Copyright | LLMプロンプトで「実在の製品名・作品名を言及しない」を指示。出力フィルタで実在固有名詞を検出 / System prompt instructs "Do not mention real product/work names". Output filter detects real proper nouns |
| 商標 / Trademark | ゲーム内アイテム名は全てオリジナル / All in-game item names are original |
| 名誉毀損 / Defamation | キャラクターは実在の人物について言及しない / Characters never reference real people |
| 未成年保護 / Minor protection | 暴力的・性的コンテンツの生成を防止するフィルタ / Filters prevent violent/sexual content generation |
| 景品表示法 / Consumer protection | 投げ銭とゲーム内効果の対応表を事前公開 / Pre-publish tip-to-effect mapping |
| 資金決済法 / Payment services | LifeCoin はゲーム内通貨であり、換金不可であることを明記 / Clearly state LifeCoin is in-game currency, non-redeemable |
関連ドキュメント / Related Documents
- アーキテクチャ / Architecture -- システム全体図・技術スタック
- リスク & 対策 / Risks -- 各種リスクと対策一覧
- エラーハンドリング / Error Handling -- エラー重大度・フォールバック設計
- 管理コマンド / Admin Commands -- 運営介入用コマンド
- コンテンツフィルタ / Content Filter -- NGワード・フィルタパイプライン
- 配信プラットフォーム / Platforms -- マルチプラットフォーム戦略
- ゲームの流れ / Gameplay -- アクションサイクル・ステータス
- MVP スコープ / MVP Scope -- フェーズ計画