0a7076d5b9
Rewrites the i18n system introduced in PR #94 to use Next.js App Router [locale] dynamic segments with SSR-rendered translations and proper middleware locale routing. - Add middleware locale detection: / rewrites to /zh-CN/ internally, /en and /ja pass through, /zh-CN/... redirects to bare path - Move all 7 pages under app/[locale]/ with SSR translation injection - Fix server→client serialization: pre-evaluate function-valued translations (makeSerializable) to eliminate hydration flash - Fix language switch key flash: use hard navigation with localStorage- only persistence, avoiding React state update before page reload - Add <link rel="alternate" hreflang> tags for multilingual SEO - Fix Supabase setAll overwriting locale rewrite response - Trim locales from 22 to 3 (zh-CN/en/ja), delete 19 incomplete files - LLM-translate 240 firstact game preset JSONs (en + ja, landscape + portrait) and story titles via gemini-3.5-flash - Delete 11 one-off migration scripts and outdated i18n docs - Add useLocalePath hook and navigation utilities Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 line
7.9 KiB
JSON
1 line
7.9 KiB
JSON
{"sessionId":"s_1780755746226_nu6ltq","scene":{"id":"scene_1780755813420_tol5","scenePrompt":"Wide establishing shot of a late-night subway car, flickering fluorescent lights casting uneven shadows. A discarded advertisement poster on the floor, its paper corner curling unnaturally into a sharp blade-like edge, hovering slightly off the ground. Nearby passengers frozen in their seats, their newspapers, tickets, and collar edges beginning to flutter subtly. Above, a surveillance camera glows red, its lens capturing the scene. The entire image rendered in multilayered papercut art style, with deep black silhouettes and soft paper shadows, creating a sense of eerie dimensional depth. Cold blue-white light contrasts with warm amber from the camera. Vertical composition, emphasizing the tall narrow space of the subway car. No characters facing the camera; all elements arranged to suggest a hidden observer position.","beats":[{"id":"b1","narration":"深夜の地下鉄の終電、車内の明かりが点滅している。あなたは隅に寄りかかってうたた寝をしており、体は線路の振動に合わせて静かに揺れている。","next":{"type":"continue","nextBeatId":"b2"}},{"id":"b2","narration":"突如、かすかな紙の摩擦音が響く――床に落ちて踏みつけられた広告ポスターが風もないのに動き出し、紙の端がゆっくりと丸まり、刃物のようにあなたの首元を指し示した。視界の端で、乗客たちの新聞、切符、襟元がすべて小刻みに震えているのが見える。頭上の監視カメラが、刺すような赤い光を放った。","next":{"type":"choice","choices":[{"id":"c1","label":"素手で刃を受け止める","effect":{"kind":"advance-beat","targetBeatId":"b3"}},{"id":"c2","label":"切り絵を放つ","effect":{"kind":"advance-beat","targetBeatId":"b4"}}]}},{"id":"b3","narration":"あなたは素早く手を伸ばし、襲いかかる紙の刃を指先で正確に挟み込んだ――だが、鋭い紙の端が手のひらを切り裂き、血が滴り落ちる。紙は一瞬にして力を失い、床にへなへなと崩れ落ちた。監視カメラのフラッシュが一瞬光り、その光景を記録する。地下鉄が駅に到着し、ドアが開いた。","next":{"type":"continue","nextBeatId":"b4"}},{"id":"b4","narration":"指先を素早く動かすと、ズボンのポケットから一枚の切り絵が滑り出し、空中で半透明の紙の盾へと広がった――「ドンッ」と衝撃を受け止め、攻撃を防ぐ!紙は灰と化したが、監視カメラはすでにその異常を捉えていた。地下鉄が緊急停止し、すべての明かりが消える。暗闇の中でドアが開いた。","next":{"type":"choice","choices":[{"id":"b4__exit","label":"続ける","effect":{"kind":"change-scene","nextSceneSeed":"ストーリーが進行する"}}]}}],"entryBeatId":"b1","sceneKey":"subway-midnight","imageUuid":"b5a47724-3b31-4ec1-97d8-261a78ed71e8","imageUrl":"/home/firstscene-portrait/m20.webp","orientation":"portrait"},"imageUrl":"/home/firstscene-portrait/m20.webp","characters":[],"storyState":{"logline":"古の切り絵術が現代のネオンの中で目覚める時、影絵芝居の伝承者であるあなたは、命を吹き込まれた紙甲戦士を率いて、復活した紙人形の軍団に立ち向かねばならない――だが、召喚を行うたびに、祖父の遺品は少しずつ砕け散っていく。","genreTags":"ファンタジー / 現代都市 / 熱血 / どんでん返し / 男性向け","protagonist":"あなたは陳墨(チェン・モー)。最後となった古い影絵劇団の若き伝承者だ。今、あなたは廃工場の影に立っている。3メートル先には、あなたの切り絵術によって激怒した紙人形の首領がおり、あなたの紙甲戦士「飛燕(フェイイェン)」にはすでに亀裂が入っている。この街が古の戦争に巻き込まれるのを防ぎたいと願うあなただが、切り絵の力を使うたびに、祖父が遺した秘録が1ページずつ燃え尽きていくことに気づく。","castNotes":"林(リン)おじさん:かつての最高の相棒。理念の違いから去り、現在は文化クリエイティブショップを経営している。表向きは穏やかだが、裏ではあなたの家族の秘密を調査している。あなたとの関係は緊張状態にあり、現れるたびにあなたを試すような態度をとる。\n蘇晴(スー・チン):捜査一課の女性刑事。有能で鋭く、いくつかの奇妙な事件をきっかけにあなたに目をつけた。あなたが切り絵術に関わっている証拠を握っているようだ。彼女はあなたと法律の間に立ちはだかるが、あなたは彼女の手首に自分と同じ「紙紋」の印があることに気づく。\n紙影(しえい):謎の敵。流動する黒い切り絵を全身に纏い、あらゆる紙製品を操ることができる。自らを「歴史の墓守」と称し、あなたの祖先が切り絵の力を盗んだと主張している。彼の目的は、すべての生きた切り絵を冥界へと回収することだ。","synopsis":"深夜の地下鉄の終電で、あなたは突如動き出した紙製品の襲撃を受ける。素手で刃を受け止める(または切り絵で防御する)ことで逃れるものの、監視カメラにその異常な行動が記録された可能性がある。あなたは、祖父の手紙にあった「奴らが目覚めた」という言葉の意味を理解する。","openThreads":["祖父は一体どこへ行ったのか?「奴らが目覚めた」という手紙は何を指しているのか?","蘇晴の手首にある紙紋の印はどこから来たのか?彼女と切り絵術にはどんな関わりがあるのか?","紙影が口にした「盗まれた力」は真実か、それとも嘘か?あなたの家族は一体何を背負っているのか?","地下鉄の監視カメラにあなたの異常な行動が映った可能性があり、足取りがすでに割れているかもしれない"],"nextHook":"次回:地下鉄の駅を脱出したあなたは、スマホに見知らぬ番号から「家に帰るな」というメッセージが届いていることに気づく。"},"cardName":"m20","cardTitle":"紙影伝説","cardGender":"男性向け","worldSetting":"本作は【男性向け】のAIインタラクティブストーリーゲームです。縦型ショートドラマ(紅果短動画)のような、強いドラマチックな衝突とスピーディーな大どんでん返しが特徴です。\nストーリースタイル:マルチエンディング・急展開。テンポ:緊密で爽快。\n厳選シナリオ『紙影伝説』のオープニング設定:影絵芝居の芸人が、代々「生きた」切り絵を守り続けてきた。現代都市の影で、切り絵はあらゆるものを打ち砕く「紙甲戦士」へと姿を変える。古の紙人形の宿敵が再び現れた時、彼はネオンの光の下、最古の切り絵術を用いて究極の決戦に挑まなければならない。\nプレイヤーに強い没入感とカタルシスを与えるため、このオープニングから直接物語に入り込んでください。その後の分岐もショートドラマのような高密度のどんでん返しを維持し、プレイヤーが選択するたびに即座にリアクションが返ってくるようにしてください。","styleGuide":"Multilayered papercut art, vertical composition. A beautifully intricate silhouette of a handsome prince in armor standing in a dark forest before a towering gothic paper castle. Backlighting, soft paper shadows, deep dimensional layering.","imageUrlRemote":"https://im.runware.ai/image/os/a07dlim3/ws/3/ii/b5a47724-3b31-4ec1-97d8-261a78ed71e8.png"} |