Files
infiplot-web/public/home/firstact-portrait/m20.json
T
yuanzonghao 95a66d94ed feat(web): support portrait preset story cards on mobile
Mobile users clicking preset story cards now get portrait (9:16) scene
images instead of landscape. Previously card paths hardcoded orientation
to "landscape"; now they respect detectOrientation() and load from
firstact-portrait/ with graceful fallback to landscape.

- Add --portrait and --only flags to prebake-firstacts.mjs
- Add --portrait flag to localize-firstact-images.mjs
- Fix prebake STYLE_MAP extraction (moved to lib/options.ts)
- Generate 60 portrait firstact JSONs + firstscene webp assets
- Remove hardcoded "landscape" in play page card path

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-07 00:12:37 +08:00

1 line
5.5 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":"你是陈墨,最后一家老皮影戏班子的年轻传人。此刻,你站在废弃工厂的阴影里,三米外是被你剪纸术激怒的纸人首领,而你的纸甲战士“飞燕”已出现裂痕。你想守护这座城市不卷入古老战争,却发现自己每动用一次剪纸能力,祖父留下的那本秘录就会焚毁一页。","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"}