agent-Specialization/website-design/exp/mock/activity-sub_2_1787459391_a9b055.json
JOJO 39a7a5fc6f chore(website): 归档官网文档内容与设计素材
- website-content/:官网 10 篇文档内容 + README
- website-design/:官网设计稿、动画实验、预览图与资源
- 根目录官网截图两张
- .gitignore 忽略 website-design/exp/static/dist 构建产物(7.1MB)
2026-09-02 14:38:51 +08:00

1 line
101 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"success": true, "data": {"status": "completed", "entries": [{"type": "progress", "id": "call_cfb299b68dde4a74bfe58bba", "tool": "todo_create", "status": "running", "args": {"overview": "调研弹幕射击游戏敌方弹幕模式并生成结构化调研报告", "tasks": [{"title": "检索项目记忆与检查交付目录结构"}, {"title": "网络搜索经典弹幕模式分类信息"}, {"title": "网络搜索Boss战弹幕设计与东方Project符卡"}, {"title": "网络搜索弹幕数学原理与实现、像素风格视觉设计"}, {"title": "整理生成 bullet_pattern_research.md 调研报告"}]}, "ts": 1787459395610}, {"type": "progress", "id": "call_cfb299b68dde4a74bfe58bba", "tool": "todo_create", "status": "completed", "args": {"overview": "调研弹幕射击游戏敌方弹幕模式并生成结构化调研报告", "tasks": [{"title": "检索项目记忆与检查交付目录结构"}, {"title": "网络搜索经典弹幕模式分类信息"}, {"title": "网络搜索Boss战弹幕设计与东方Project符卡"}, {"title": "网络搜索弹幕数学原理与实现、像素风格视觉设计"}, {"title": "整理生成 bullet_pattern_research.md 调研报告"}]}, "ts": 1787459395610}, {"type": "progress", "id": "call_ab623264136e48809599bf5b", "tool": "search_project_memory", "status": "running", "args": {"keywords": ["弹幕", "bullet hell", "STG", "符卡", "射击游戏"]}, "ts": 1787459395611}, {"type": "progress", "id": "call_ab623264136e48809599bf5b", "tool": "search_project_memory", "status": "completed", "args": {"keywords": ["弹幕", "bullet hell", "STG", "符卡", "射击游戏"]}, "ts": 1787459395613}, {"type": "progress", "id": "call_9a0e3d20ffd24ad8bf328c1f", "tool": "run_command", "status": "running", "args": {"command": "ls -la /Users/demo/starraid/ 2>/dev/null; echo \"---\"; ls -la /Users/demo/starraid/research/ 2>/dev/null; echo \"---\"; ls -la /Users/demo/starraid/research/bullet_patterns/ 2>/dev/null", "timeout": 30}, "ts": 1787459395614}, {"type": "progress", "id": "call_9a0e3d20ffd24ad8bf328c1f", "tool": "run_command", "status": "completed", "args": {"command": "ls -la /Users/demo/starraid/ 2>/dev/null; echo \"---\"; ls -la /Users/demo/starraid/research/ 2>/dev/null; echo \"---\"; ls -la /Users/demo/starraid/research/bullet_patterns/ 2>/dev/null", "timeout": 30}, "ts": 1787459395655}, {"type": "progress", "id": "call_9b9b4ee0cd984f2ba4727017", "tool": "web_search", "status": "running", "args": {"query": "bullet hell danmaku pattern design ring spiral fan patterns tutorial", "max_results": 8}, "ts": 1787459398723}, {"type": "progress", "id": "call_9b9b4ee0cd984f2ba4727017", "tool": "web_search", "status": "completed", "args": {"query": "bullet hell danmaku pattern design ring spiral fan patterns tutorial", "max_results": 8}, "ts": 1787459402243}, {"type": "progress", "id": "call_17b3177663a345848673cc5e", "tool": "web_search", "status": "running", "args": {"query": "东方Project 符卡系统 Spell Card 设计 弹幕", "max_results": 8}, "ts": 1787459402244}, {"type": "progress", "id": "call_17b3177663a345848673cc5e", "tool": "web_search", "status": "completed", "args": {"query": "东方Project 符卡系统 Spell Card 设计 弹幕", "max_results": 8}, "ts": 1787459407839}, {"type": "progress", "id": "call_59a10e058db24223b9289abc", "tool": "web_search", "status": "running", "args": {"query": "STG bullet hell boss pattern design safe zone spell card phases", "max_results": 8}, "ts": 1787459407842}, {"type": "progress", "id": "call_59a10e058db24223b9289abc", "tool": "web_search", "status": "completed", "args": {"query": "STG bullet hell boss pattern design safe zone spell card phases", "max_results": 8}, "ts": 1787459414145}, {"type": "progress", "id": "call_e7310866f9084952b71c96c3", "tool": "extract_webpage", "status": "running", "args": {"mode": "read", "url": "https://note.com/npaka/n/n5d38b7d84173?hl=en"}, "ts": 1787459418076}, {"type": "progress", "id": "call_e7310866f9084952b71c96c3", "tool": "extract_webpage", "status": "completed", "args": {"mode": "read", "url": "https://note.com/npaka/n/n5d38b7d84173?hl=en"}, "ts": 1787459419644}, {"type": "progress", "id": "call_bb3045de87664f97a67f4214", "tool": "extract_webpage", "status": "running", "args": {"mode": "read", "url": "https://sparen.github.io/ph3tutorials/ddsga2.html"}, "ts": 1787459419649}, {"type": "progress", "id": "call_bb3045de87664f97a67f4214", "tool": "extract_webpage", "status": "completed", "args": {"mode": "read", "url": "https://sparen.github.io/ph3tutorials/ddsga2.html"}, "ts": 1787459421081}, {"type": "progress", "id": "call_b0e393bf872f4f91a80bcf83", "tool": "web_search", "status": "running", "args": {"max_results": 8, "query": "bullet hell bullet movement math angle speed acceleration curved bullets implementation tutorial"}, "ts": 1787459421085}, {"type": "progress", "id": "call_b0e393bf872f4f91a80bcf83", "tool": "web_search", "status": "completed", "args": {"max_results": 8, "query": "bullet hell bullet movement math angle speed acceleration curved bullets implementation tutorial"}, "ts": 1787459427682}, {"type": "progress", "id": "call_476f023ddc4546089e39867d", "tool": "extract_webpage", "status": "running", "args": {"mode": "read", "url": "https://dmk.bagoum.com/docs/articles/t06.html"}, "ts": 1787459432747}, {"type": "progress", "id": "call_476f023ddc4546089e39867d", "tool": "extract_webpage", "status": "completed", "args": {"mode": "read", "url": "https://dmk.bagoum.com/docs/articles/t06.html"}, "ts": 1787459434192}, {"type": "progress", "id": "call_3b00045226594af1ac8b841c", "tool": "web_search", "status": "running", "args": {"max_results": 8, "query": "pixel art bullet design shmup bullet shapes readability color coding hitbox"}, "ts": 1787459434196}, {"type": "progress", "id": "call_3b00045226594af1ac8b841c", "tool": "web_search", "status": "completed", "args": {"max_results": 8, "query": "pixel art bullet design shmup bullet shapes readability color coding hitbox"}, "ts": 1787459438062}, {"type": "progress", "id": "call_0f5194dad6614e369cad6d30", "tool": "web_search", "status": "running", "args": {"max_results": 8, "query": "Touhou bullet types pellet star knife orb tama danmaku bullet graphics"}, "ts": 1787459438066}, {"type": "progress", "id": "call_0f5194dad6614e369cad6d30", "tool": "web_search", "status": "completed", "args": {"max_results": 8, "query": "Touhou bullet types pellet star knife orb tama danmaku bullet graphics"}, "ts": 1787459443104}, {"type": "progress", "id": "call_126797b4564045079c9e273f", "tool": "extract_webpage", "status": "running", "args": {"mode": "read", "url": "https://www.slynyrd.com/blog/2020/12/14/pixelblog-31-shmup-sprite-design"}, "ts": 1787459446601}, {"type": "progress", "id": "call_126797b4564045079c9e273f", "tool": "extract_webpage", "status": "completed", "args": {"mode": "read", "url": "https://www.slynyrd.com/blog/2020/12/14/pixelblog-31-shmup-sprite-design"}, "ts": 1787459448476}, {"type": "progress", "id": "call_107e79f15560482196aa6d4a", "tool": "extract_webpage", "status": "running", "args": {"mode": "read", "url": "https://touhou.fandom.com/wiki/Touhou_Danmakufu:_Bullets"}, "ts": 1787459448482}, {"type": "progress", "id": "call_107e79f15560482196aa6d4a", "tool": "extract_webpage", "status": "completed", "args": {"mode": "read", "url": "https://touhou.fandom.com/wiki/Touhou_Danmakufu:_Bullets"}, "ts": 1787459450129}, {"type": "progress", "id": "call_968d7e3352034f479e45e023", "tool": "web_search", "status": "running", "args": {"max_results": 8, "query": "shmup boss phase design pattern escalation rhythm light heavy phase spell card survival card"}, "ts": 1787459450136}, {"type": "progress", "id": "call_968d7e3352034f479e45e023", "tool": "web_search", "status": "completed", "args": {"max_results": 8, "query": "shmup boss phase design pattern escalation rhythm light heavy phase spell card survival card"}, "ts": 1787459455165}, {"type": "progress", "id": "call_c4229bb8ffb54b61998b8367", "tool": "extract_webpage", "status": "running", "args": {"mode": "read", "url": "https://www.gamedeveloper.com/design/video-game-boss-design-for-shmups"}, "ts": 1787459459458}, {"type": "progress", "id": "call_c4229bb8ffb54b61998b8367", "tool": "extract_webpage", "status": "completed", "args": {"mode": "read", "url": "https://www.gamedeveloper.com/design/video-game-boss-design-for-shmups"}, "ts": 1787459461213}, {"type": "progress", "id": "call_2934c9ba32d0416aa497fca2", "tool": "extract_webpage", "status": "running", "args": {"mode": "read", "url": "https://zhuanlan.zhihu.com/p/37282998"}, "ts": 1787459461220}, {"type": "progress", "id": "call_2934c9ba32d0416aa497fca2", "tool": "extract_webpage", "status": "completed", "args": {"mode": "read", "url": "https://zhuanlan.zhihu.com/p/37282998"}, "ts": 1787459463340}, {"type": "progress", "id": "call_0bec51e442e7459bb1052633", "tool": "extract_webpage", "status": "running", "args": {"mode": "read", "url": "https://raw.githubusercontent.com/nickschuetz/o3de-diorama/main/Docs/howto/24-bullet-patterns.md"}, "ts": 1787459471280}, {"type": "progress", "id": "call_0bec51e442e7459bb1052633", "tool": "extract_webpage", "status": "completed", "args": {"mode": "read", "url": "https://raw.githubusercontent.com/nickschuetz/o3de-diorama/main/Docs/howto/24-bullet-patterns.md"}, "ts": 1787459473022}, {"type": "progress", "id": "call_c2f251df800740a78a8665c6", "tool": "web_search", "status": "running", "args": {"max_results": 8, "query": "东方 弹幕 子弹图形 小玉 中玉 大玉 针弹 刀弹 激光 种类"}, "ts": 1787459473027}, {"type": "progress", "id": "call_c2f251df800740a78a8665c6", "tool": "web_search", "status": "completed", "args": {"max_results": 8, "query": "东方 弹幕 子弹图形 小玉 中玉 大玉 针弹 刀弹 激光 种类"}, "ts": 1787459477934}, {"type": "progress", "id": "call_84737b8b5a16471b86d12727", "tool": "web_search", "status": "running", "args": {"max_results": 8, "query": "danmaku pattern safe spot routing macro dodge micro dodge stream pattern design"}, "ts": 1787459477940}, {"type": "progress", "id": "call_84737b8b5a16471b86d12727", "tool": "web_search", "status": "completed", "args": {"max_results": 8, "query": "danmaku pattern safe spot routing macro dodge micro dodge stream pattern design"}, "ts": 1787459484039}, {"type": "progress", "id": "call_f1ebaba62f454ec59804c5d6", "tool": "extract_webpage", "status": "running", "args": {"mode": "read", "url": "https://old.reddit.com/r/shmupdev/comments/13w730k/bullet_hell_shmup_design_101_bullet_patterns/"}, "ts": 1787459491121}, {"type": "progress", "id": "call_f1ebaba62f454ec59804c5d6", "tool": "extract_webpage", "status": "completed", "args": {"mode": "read", "url": "https://old.reddit.com/r/shmupdev/comments/13w730k/bullet_hell_shmup_design_101_bullet_patterns/"}, "ts": 1787459493861}, {"type": "progress", "id": "call_61e2abeec97f4ddcb26c7a6c", "tool": "extract_webpage", "status": "running", "args": {"mode": "read", "url": "https://tig.fandom.com/wiki/Danmaku"}, "ts": 1787459493867}, {"type": "progress", "id": "call_61e2abeec97f4ddcb26c7a6c", "tool": "extract_webpage", "status": "completed", "args": {"mode": "read", "url": "https://tig.fandom.com/wiki/Danmaku"}, "ts": 1787459495749}, {"type": "progress", "id": "call_040e7861b94e4ca4a127bbf3", "tool": "web_search", "status": "running", "args": {"max_results": 8, "query": "DoDonPachi Ketsui Mushihimesama bullet patterns design Cave shmups famous patterns"}, "ts": 1787459499225}, {"type": "progress", "id": "call_040e7861b94e4ca4a127bbf3", "tool": "web_search", "status": "completed", "args": {"max_results": 8, "query": "DoDonPachi Ketsui Mushihimesama bullet patterns design Cave shmups famous patterns"}, "ts": 1787459503921}, {"type": "progress", "id": "call_722e3b8c9f504c5382e76d1b", "tool": "todo_update_task", "status": "running", "args": {"completed": true, "task_indices": [1, 2, 3, 4]}, "ts": 1787459530962}, {"type": "progress", "id": "call_722e3b8c9f504c5382e76d1b", "tool": "todo_update_task", "status": "completed", "args": {"completed": true, "task_indices": [1, 2, 3, 4]}, "ts": 1787459530963}, {"type": "progress", "id": "call_221c64a46fc24b6eb696fcd8", "tool": "write_file", "status": "running", "args": {"file_path": "research/bullet_patterns/bullet_pattern_research.md", "content": "# 弹幕射击游戏STG / Bullet Hell敌方弹幕模式调研报告\n\n> **调研目的**为像素风格的弹幕射击游戏STG / Bullet Hell提供敌方弹幕bullet pattern设计的系统性参考。\n> **调研方式**:网络搜索 + 网页资料提取(来源见第 7 章)。\n> **调研时间**2026-08-23\n> **交付目录**`research/bullet_patterns/`\n\n---\n\n## 0. 摘要TL;DR\n\n- 弹幕danmaku / 弾幕,字面义\"弹幕幕帘\",西方称 bullet hell / curtain fire与普通 STG 的本质区别**不是子弹数量**,而是\"**整个屏幕都是弹幕的舞台**\"——大量子弹不是为了全部命中玩家而是组成可观赏、可读、有图案pattern的\"幕帘\"玩家在其中寻找缝隙穿行。多数子弹在诞生之初就注定打不到玩家Sparen's Danmaku Design Studio, Guide A2。\n- 经典弹幕模式可用\"**规律 + 微扰**\"统一描述:先排布几何图案(环形、螺旋、扇形、直线、激光、网格等),再叠加少量可控随机(角度/速度抖动),并始终**以\"设计缝隙\"为核心**,而不是\"设计密度\"。\n- Boss 战的核心设计杠杆:**阶段Phase/符卡)转换、节奏(轻/重交替与紧张-释放)、密度控制(难度曲线)、安全路径/安全点safe zone/safespot/routing、公平性信号预警 telegraph**。\n- 实现上只靠 5 个基础参数即可组合出绝大多数模式:**发射角度、子弹数量、发射间隔、子弹速度、加速度(角速度)**;曲线弹幕依赖角速度转向、极坐标/参数方程(如螺旋 `r=a·t, θ=b·t`)、贝塞尔曲线或正弦扰动。\n- 像素风格下弹幕可读性readability压倒一切**高饱和颜色 + 描边(尤其双层描边)+ 闪烁/呼吸动画 + 明确的子弹形状语义 + 绘制层级(敌方子弹永远最上层)**并让判定hitbox远小于视觉尺寸。\n\n---\n\n## 1. 背景认知:弹幕射击与普通 STG 的区别\n\n| 维度 | 普通 STG | 弹幕射击Bullet Hell |\n|---|---|---|\n| 子弹目的 | 命中玩家 | 大量子弹作\"装饰 + 制造缝隙谜题\",很多子弹故意不打玩家 |\n| 屏幕利用 | 子弹从上方来袭 | 全屏都是舞台,子弹可从任何方向/任何规律出现 |\n| 判定 | 机体整体判定 | 微型判定点hitbox东方等游戏中判定远小于机绘大小 |\n| 玩家速度 | 较快 | 有\"低速聚焦模式\"focus/slow mode用于精确微调 |\n| 美学 | 战场感 | \"弹幕舞蹈\",图案本身有独立观赏价值 |\n\n关键概念\n\n- **幕帘火Curtain fire**'curtain fire'精确描述了弹幕的本质——用弹幕填满一片空间形成\"幕帘\",玩家面对的是\"图案\",而不是\"几发子弹\"Sparen Guide A2。\n- **判定点Hitbox**子弹只有碰到自机中心的微小判定点才算命中。Cave 的《虫姬后传》《怒首领蜂大复活》甚至有 1 像素判定DoDonPachi 系列子弹判定通常只占子弹直径约 20%来源TimeExtension CAVE 历史长文、Shmups Wiki CAVE 词条)。\n- **擦弹Graze**:子弹掠过判定点外围的\"擦弹判定圈\"得分鼓励玩家贴着子弹走Summer Engine、maribelhearn 术语表)。\n- **心理过滤Mental filtering**:高手玩家会自动忽略大量\"注定打不中自己\"的子弹(例如环形弹幕中飞向两侧/上方的子弹),只对逼近自己的弹道做出反应——这是弹幕\"装饰性子弹\"能成立的心理学基础Sparen Guide A2。\n\n---\n\n## 2. 经典弹幕模式分类\n\n> 本节以任务要求的 9 类为主干2.12.9),然后在 2.10 补充调研中发现的其它常用模式。每个模式给出:**名称 / 视觉描述 / 数学与实现要点 / 经典游戏例子 / 像素风格设计建议**。\n> 注:任务要求的 9 类与社区常用分类(如 note.com 归纳的 15 种模式)并非一一对应,本报告将两类分类体系做了映射与合并。\n> 经典例子部分,凡未在本轮调研资料中明确出现的,均标注为\"常识(通用认知)\",置信度说明见第 7 章。\n\n### 2.1 环形弹幕Ring / Circle Burst日语\"轮弾/円形弾\"\n\n- **视觉描述**:从中心点向 360° 均匀放射一圈子弹,呈涟漪/烟花/魔法阵状。变化包括扩展环从小半径环向外扩、收缩环、多重同心环、旋转环、分裂环飞到中途爆成更多子弹note.com 2-8 Rings\n- **数学与实现要点**\n ```\n n = 子弹数; base = 基准角\n for i in 0..n-1:\n angle = base + i * (360° / n)\n vx = speed * cos(angle); vy = speed * sin(angle)\n ```\n 若每帧/每次发射让 `base` 增加固定角,环就\"旋转/缭乱\"起来。o3de-diorama 文档Ring 参数含 Count、Aim、Speed、Fire Rate、Spin Per ShotTed Lim / GameMaker 论坛同款公式)\n- **经典游戏例子**:东方系列几乎所有 Boss 都有环弹常识琪露诺的冰符「Icicle Fall -Easy-」的冰柱环是知名的入门环弹Sparen Guide A2 以其为例讲述固定角);环形常用作 Boss 战开场或\"轻阶段\"的通用压迫弹note.com 入门 Boss 组合)。\n- **像素风格设计建议**:环弹数量多且对称,适合用**小尺寸圆形弹**68px保证低视觉占用用\"带圈的小玉\"(外圈描边)区分装饰环和危险环;旋转环可给子弹加 12 帧的旋转动画增强\"轮转感\"。\n\n### 2.2 螺旋弹幕Spiral\n\n- **视觉描述**:发射角连续旋转,子弹留下螺旋尾迹,像银河/风车/玫瑰。变体:单螺旋、多螺旋、顺逆时针双螺旋交叉、不同色相/速度的螺旋。note.com 2-2 Spiral\n- **数学与实现要点**\n - 离散式:每次发射一个环,环的基准角 += 每发旋转角Spin Per Shot即\"每发转一点\"o3de-diorama。\n - 参数方程(连续式):极坐标 `r = a·t`、`θ = b·t`,则 `x = cx + r·cos(θ)``y = cy + r·sin(θ)`来源Danmokou Tutorial 6 的螺旋示例 `polar(2*t, 80*t)`)。\n - 替代实现让发射器父对象缓慢旋转Ted Lim——\"空对象 + 3 个子发射点 + 旋转父对象即可做出螺旋\")。\n- **经典游戏例子**:螺旋是弹幕最经典的高性价比模式,\"低子弹数也能很华丽\"note.com东方各作螺旋遍地常识双反向螺旋常作中后期难度YouTube Week 25 Boss 设计演示了\"顺+逆双螺旋\"Boss 阶段)。\n- **像素风格设计建议**:螺旋强调\"轨迹\",适合用**细长子弹(针弹/米弹/箭弹)**来勾勒弧线或给圆形弹加方向性贴图箭头形让旋转方向可读Sparen Guide A2 说明了\"有方向性的子弹图形\"对旋转/转向弹幕的可读性价值)。\n\n### 2.3 扇形弹幕Fan / Wedge\n\n- **视觉描述**:在一个方向张开成扇面。窄扇高压、宽扇适合场景演出;朝玩家发射时进攻性强(\"瞄准开火\"的观感固定方向发射则可控、适合道中演出。note.com 2-3 Fan\n- **数学与实现要点**\n ```\n n = 子弹数; spread = 扇形总张角; aim = 瞄准角\n step = spread / (n - 1)\n start = aim - spread / 2\n for i in 0..n-1:\n angle = start + i * step\n ```\n 来源Unity 教程Unity Discussions 搜索片段)与 Ted Lim 的扇面公式——\"startAngle = target - halfSpread / 2endAngle = target + halfSpread/2逐颗递增 step\"\n- **经典游戏例子**:几乎所有 STG 的追踪射击采用\"瞄准玩家的扇\"aimed fan东方道中妖精惯用常识DoDonPachi 等 Cave 游戏的\"concentrated fire\"即窄/快扇来源Zen of the SHMUP 对 Cave 的归类)。\n- **像素风格设计建议**:扇弹适合 711 颗一组的中型子弹(如 10px 小玉),发射瞬间用**同一色系**表示同一波;窄扇用暖色(红/橙)暗示高风险,宽装饰扇用冷色。\n\n### 2.4 直线弹幕Line / Stream / Wall\n\n- **视觉描述**\n - **流弹Stream**:从一处连续射出单发子弹,形成一条密集弹流,玩家\"引弹\"时可把它带成一条可利用的空隙带maribelhearn 术语streaming / 引弹)。\n - **墙Wall**:同排/同列子弹连成不可穿越的\"墙\"迫使玩家整体绕过宏闪避或在墙隙中微闪避。Sparen Guide A3 的定义:\"墙 = 玩家无法从中间穿过的子弹群/编队\"。\n- **数学与实现要点**连续发射fire rate 控制密度)+ 固定方向;若每发角度做正弦微扰,直线流会变成\"S 形波流\"Unity 论坛示例0°→180° 递增、180°→360° 递减即正弦半波)。\n- **经典游戏例子**:东方\"针山/米弹雨\"类密集直线常识Sparen 用 Utsuho地灵殿 阿空)的符卡组合说明微/宏闪避结合的动态弹幕Sparen Guide A3。\n- **像素风格设计建议**:直线弹适合**针弹/米弹/箭弹**(细长、方向明确);流弹用同色细弹,墙用同色+同速保证\"墙\"的视觉连续性给子弹加方向性贴图可让玩家立即读出弹道Sparen Guide A2。\n\n### 2.5 随机散射Random Spread\n\n- **视觉描述**:子弹角度/速度在随机范围内散射,像火花、星尘、碎片。纯随机易显得\"无设计\"且不公平,优秀做法是给角度、速度、密度赋予\"范围与偏置\"bias即受控随机。note.com 2-12 ParticlesSparen Guide A2 对随机角的负面评价)\n- **数学与实现要点**\n - 在固定规律上叠加小随机:\"受控随机看起来更像弹幕\"note.com 3-1\n ```\n angle = base + i * even_angle + sin(t) * 波动幅度 # 规律性\n speed = base_speed + random(-0.2, 0.2) # 微扰\n ```\n - 随机角度也可用作\"种子角度\":例如连续发射环形弹时,每轮用一个随机初始角,避免盲区/避免每轮覆盖完全相同的路径Sparen Guide A2。\n- **经典游戏例子**:东方的\"小虫型符卡\"《魔理沙的魔法书》分类子弹细碎、颜色丰富多为弱妖怪用来源Wikipedia 符卡与妖精群随机弹常识Cave 的 Mushihimesama 强调\"更快、更集中\"的火力其随机感更强来源Zen of the SHMUP / Reddit 讨论)。\n- **像素风格设计建议**:随机弹适合**点弹/星弹/米粒弹**等小尺寸,配合\"闪烁\"动画强调危险性;随机弹颜色可用亮白/黄等\"危险信号色\"注意与背景对比度slynyrd。\n\n### 2.6 追踪弹幕Homing / Aimed\n\n- **视觉描述**\n - **瞄准弹Aimed**:开火瞬间朝玩家当前位置瞄准(可加扇形成\"瞄准扇/散弹\"),考验玩家\"引弹\"misdirection能力note.com 2-4、maribelhearn 术语)。\n - **追踪弹Homing**:飞行中持续转向玩家。转向性能越弱越容易躲,追求\"稍微弯曲\"而非\"全程咬死\"反而更美观note.com 2-13。\n- **数学与实现要点**\n ```\n desired = atan2(player.y - bullet.y, player.x - bullet.x)\n turn = clamp(desired - bullet.angle, -maxTurnRate*dt, +maxTurnRate*dt)\n bullet.angle += turn # 限速转向turning performance\n # 可选加速度朝玩家、停顿后重新加速、分裂后重新锁定note.com 2-13 变体)\n ```\n- **经典游戏例子**:瞄准弹是 Cave\"concentrated fire / tracking\"风格的基石来源SHMUP Workshop 03 YouTube——\"tracking and spread gates, 经典 CAVE 做法\");东方 Boss 的瞄准时间差/瞄准散弹(常识)。追踪弹在 DoDonPachi 的\"自爆弹\"suicide bullets击破敌人释放的追踪自机弹中大量出现来源TimeExtension。\n- **像素风格设计建议**:追踪弹要用**明显的方向性贴图**(箭头/小刀/蝴蝶等且贴图随角度旋转否则玩家读不出它在转弯Sparen Guide A2\"无方向性贴图的圆弹不传达转向\")。用发光/描边强调\"这只子弹会追我\"。\n\n### 2.7 反弹弹幕Bounce / Ricochet\n\n- **视觉描述**:子弹撞到屏幕边缘/墙壁后反弹继续飞行,轨迹呈折线。属于\"轨迹型\"弹幕中较少见的一类。\n- **数学与实现要点**:碰撞边缘时反射角度:`angle = π - angle`(左右边)或 `angle = -angle`(上下边),或对速度向量做分量取反;可加转数上限让子弹弹几次后消失。\n- **经典游戏例子**:相比东方式纵版弹幕(子弹通常出屏即消),反弹弹更常见于街机/横版与部分同人弹幕(如某些 Cave 之外的 STG东方中近乎**没有**常规反弹弹(常识判断,未见调研资料佐证其广泛存在)。⚠️ 这属于\"相对少见\"的类型,若要在本项目中使用,建议作为特色武器或 Boss 特殊阶段引入,而非基础词库。\n- **像素风格设计建议**:反弹弹适合圆润的**圆形/椭弹**(避免方向性贴图在反弹瞬间的旋转跳变违和);反弹瞬间加 12 帧\"压缩-回弹\"动画或火花粒子,强化物理感;用预警或颜色提示\"它会弹\"。\n\n### 2.8 滞留弹幕Static / Lingering\n\n- **视觉描述**:子弹停留在场上形成持续障碍,或极慢速移动封锁区域。包括:静止弹墙、悬浮使魔、地面/空中持续存在的弹laser 也可视为线状滞留)。作用是**区域封锁area denial**封住一部分屏幕为后续弹幕做铺垫或堵住之前的逃逸路线SHMUP Workshop 03area denial patterns 的定义Boghogbullet sealing、ceasefire zone 等反挫败机制)。\n- **数学与实现要点**寿命lifespan拉长 + 速度降到 ~0或通过\"分裂条件=凝固\"实现\"飞行到某点后停住\"。可让滞留弹周期性闪烁(半透明 + 呼吸)提示\"仍在威胁中\"。\n- **经典游戏例子**:东方\"压迫型符卡\"(《魔理沙的魔法书》:限制自机移动范围的符卡,来源 Wikipedia如灵梦的梦符「二重结界」以弹幕构成双重结界限制移动——B 站文章以它为例激光墙封路也是常见形式note.com 2-14激光\"clearly block off parts of the screen\")。\n- **像素风格设计建议**:滞留弹必须与\"会动的危险弹\"在视觉上区分——建议**低频闪烁 + 半透明 + 固定描边**;或用\"发光的柱子/结界\"图形(如结界/棱镜形状)表示区域阻碍物。静止弹用冷色系(蓝/紫),活动弹用暖色系,形成语义分离。\n\n### 2.9 组合弹幕Compound Patterns\n\n- **视觉描述**:把多个模式叠加。例如\"螺旋铺满屏 + 瞄准弹逼玩家移动\",或\"展开环 + 中途分裂 + 激光堵路\"。note.com 2-15 Composite\n- **设计原则**note.com 3-2 / 2-15\n - 组合时**指定一个主模式**,其余为伴奏,避免信息过载。\n - 元素越多,越要依赖颜色编码、预警、缝隙设计来保证可读性。\n - 组合要形成\"分工\":背景压迫 + 前景逼迫(如中间难度组合:旋转全向弹 + 上方落雨 + 周期性瞄准弹)。\n- **经典游戏例子**:东方高阶符卡几乎都是组合(常识,如多层螺旋+分裂环+预警激光即 note.com 高级 Boss 推荐组合);阿空(地灵殿)的符卡是微/宏闪避结合的著名组合Sparen Guide A3。\n- **像素风格设计建议**:组合弹幕在像素风下最容易\"糊成一团\"。建议:每个模式用**不同主色**;不同模式用**不同子弹形状**(圆=压迫、针=直线、星=装饰/特殊);层与层之间拉开速度差,让玩家能分层读取。\n\n### 2.10 调研补充的常用模式\n\n以下模式来自 note.com 的《15 种经典弹幕模式》与 Sparen 指南,按需并入本项目词库:\n\n| 模式 | 视觉/玩法特征 | 要点 | 像素建议 |\n|---|---|---|---|\n| **波型/幕帘Wave/Curtain** | 正弦波排列的子弹带,像波浪/极光/瀑布,容易与 BGM 节奏联动 | 重点是\"缝隙的流动感\"而非子弹本身;`y = a·sin(ωt + φ)` 排布 | 用细长米弹/针弹沿正弦排布,同色系渐变 |\n| **网格Grid** | 横竖规则排列,钻石/晶体状,几何美且缝隙可读;纯网格易单调,加大小的速度差/局部缺口 | 强规律、易读、密度↑难度↑ | 用规则小圆弹 + 网格闪烁/错位动画 |\n| **花状Floral** | 对称花瓣排列5/6/8 瓣),华丽,适合符卡演出 | 对称越高越精致;过度均匀会单调,周期性转相位 | 花瓣用两类颜色交替(瓣=亮、蕊=暗)强化图案 |\n| **星形/多边形Star** | 强调特定顶点5/6/8 向)的星形放射 | 少弹星形也醒目,适合元素/性格表达 | 用星形贴图子弹 + 旋转动画 |\n| **交叉Intersection** | 多股弹流交叉如编织/光流;视觉美但缝隙易被切断 | 关注\"玩家可走的路径\"而非交点;调速度/密度/交叉角 | 两条交叉流用互补色(如青 vs 品红)|\n| **落雨Rain** | 自上而下倾泻,天然适合道中演出 | 全随机易不公平,保持一定规律美观 | 竖直方向子弹用垂直长条贴图或水滴形 |\n| **粒子Particles** | 火花/星尘式散落适合爆炸、花瓣、魔法粒子、Boss 登场 | 给角度/速度/密度一个\"范围+偏置\" | 小尺寸 + 闪烁,可叠加在其他弹幕上做纹理 |\n| **激光Laser** | 线/带状攻击,视觉冲击强,可明确封路 | 发射前先给**细预警线telegraph**最公平;有固定/旋转/弯曲/网格激光 | 预警线细→粗的 2 帧过渡动画;激光主体用高亮+描边 |\n| **分裂弹Split** | 飞行中途/定时/到距离后爆成子弹(如 1→3常伴随\"先停顿\"预警 | 分裂条件:时间/距离/位置分裂后子弹可重新锁定玩家note.com 2-13 | 母弹大而亮(告知\"会爆\"),子弹小一号;停顿帧加\"蓄力闪光\" |\n\n---\n\n## 3. Boss 战弹幕设计\n\n### 3.1 阶段转换与东方Project符卡系统Spell Card\n\n**东方Project 的符卡系统**来源Wikipedia《符卡》、百度百科、PIXNET 东方介绍):\n\n- **来源与规则**符卡Spell Cardスペルカード由《东方红魔乡》首次引入ZUN 自述为\"比其它系统更早面世\"而开发本作)。符卡规则 = \"给绝技命名并宣言\"的决斗规则:宣言、约定符卡张数、击破对方全部符卡即胜。\n- **敌方符卡流程**\n 1. **非符nonspell**Boss 的普通攻击,一般耐久条分格为单位;\n 2. **符卡宣言**:血量削到阈值时 Boss \"念符\"(宣言),画面切换为该角色专属 Spell Card 背景,进入符卡攻击;\n 3. **符卡红利Spell Card Bonus, SCB**:无 Miss 无 Bomb 击破符卡可获得额外分数,随时间递减;擦弹可增加红利;\n 4. **时间限制**:每张符卡有残余时间显示,超时 Boss 自动进入下一波(此时无法收取符卡)。\n- **符卡变体**\n - **增强型符卡**:随血量削减,弹幕密度/速度逐渐增加,越到后面越难(强化难度的天然手段);\n - **时效型/时限型符卡**:耐久无法直接削减,玩家必须\"死守到时间结束\"才能收取(生存符卡 survival card如《永夜抄》部分符卡\n - **Last Spell / Last Word / Overdrive**残机为零或特定条件下的最终符卡Extra/隐藏挑战用)。\n- **难度变化**:同一符卡在 Easy/Normal 与 Hard/Lunatic 下常有**不同名字**Higher 难度名字更华丽弹幕排列与颜色也会变化Wikipedia。\n- **《魔理沙的魔法书》对符卡的分类**Wikipedia演剧型重视觉效果、大量非瞄准装饰弹、奴隶型用使魔/人偶/式神攻击)、小虫型(细碎多彩、弱妖怪)、压迫型(限制自机移动范围)、兴奋剂型(强化自身)。\n\n**对本项目的启示**阶段Phase不必按血量硬切可以模仿\"非符→符卡宣言→符卡\"的节奏:普通阶段保持低密度教学,宣言瞬间清场 + 特效 + 显示符卡名,制造\"仪式感\";生存符卡(时限型)能复用已有图案、只改目标(熬过 X 秒),开发成本低、演出效果好。\n\n### 3.2 弹幕密度控制\n\n- **密度不是越多越好**'curtain fire'不等于无限堆弹密度阈值之后可读性readability崩坏玩家感到\"不公平\"而非\"华丽\"note.com 3-2设计缝隙而非密度。\n- **难度曲线**\n - 报告参考\"轻/重阶段交替\"Danmaku Unlimited 3 采用东方式 light/heavy 交替:轻阶段让玩家喘息与移动,重阶段密集压迫,来源 Forgotten Worlds 采访);\n - 每个 Boss 阶段内\"缓慢升级\":起点是玩家已见过的简单变体,随后逐次加大子弹量/缩小缝隙/提高速度SHMUP Workshop 03slow escalation。\n - 不同难度等级通过\"同一图案改密度/速度/名字\"来分层东方难度差异Wikipedia。\n- **可控变量**(可做成运行时调参工具):子弹数、速度、发射间隔、扇形张角、环形偏转、随机种子、加层数。\n- **Cave 的 rank 系统**:根据玩家当前表现(残机/雷/击破率动态调整弹幕强度——可选的高级机制来源TimeExtensionBoghog 亦建议用\"credit feed 降 rank\"来练习 Boss。\n\n### 3.3 安全路径设计Safe Zones / 缝隙 / 路线)\n\n弹幕的本质是\"缝隙谜题\",安全路径是设计对象而非巧合:\n\n- **微闪避micrododging**在密集子弹的缝隙间小幅移动穿行Sparen A3 / maribelhearn / Boghog\n- **宏闪避macrododging**对整个弹幕编队进行大幅度绕行、找到整块安全区safe spot / safespot——\"内部完全不会被击中(或近于)的点/区域\"maribelhearn 术语);东方中 BOWAP、咲夜道中非符等是经典 safespotmaribelhearn Beginner Guide / jargon\n- **引弹streaming / misdirection**:瞄准弹只有在玩家\"把弹流引到别处\"时才安全——设计上,持续的瞄准弹迫使玩家移动并制造\"下一波更难\"的位置压力SHMUP Workshop 03被满屏引导到尴尬位置会削弱后续应对maribelhearnmisdirection 常在数秒空隙内完成);\n- **路线routing**:玩家在静态/半静态弹幕中规划的具体移动路径,是\"设计缝隙\"的最终产物;\n- **设计检查表**(综合 note.com 3-2 与 SHMUP Workshop 03\n 1. 画图时刻意留下**可见的缝隙**gap width > 判定点 + 子弹判定 + 误差余量);\n 2. 区分\"安全点型\"(原地不动即可)与\"移动型\"(需要持续引弹)两类安全路径,交替使用;\n 3. 用瞄准弹/区域封锁弹**主动关闭**上一轮的安全点防止玩家蹲坑area denialSHMUP Workshop 03以及\"anti-camping避免玩家龟缩\"的 Boss 设计目标);\n 4. 每次重复图案时用随机种子旋转相位避免出现固定盲区Sparen A2。\n\n### 3.4 时间限制与弹幕压力\n\n- **时限符卡**:上面已述(生存符卡)。在设计上,时限 = \"不需要 DPS 检验,纯粹考验躲避\",适合放在 Boss 战中段作为节奏变化点(东方文花帖/弹幕天邪鬼等衍生作品以\"时限+道具\"为核心玩法)。\n- **压力节奏tension-release loop**\n - 每个波次设计\"入口压力→主压力→释放\"三段式:先预警(低压力、可读),再高压(核心躲避),最后 12 秒\"突然变简单\"给玩家胜利快感Boss Up YouTubesurvive 之后的那 1 秒喘息极具成瘾性);\n - 压力来源可以分层:视觉压力(满屏)、逻辑压力(瞄准)、时间压力(超时/残机消耗)。\n- **Boss 战的五个设计要素**来源Game Developer《Video Game Boss Design for Shmups》\n 1. **难度 Difficulty**:首关 Boss 必须让\"认真玩的人\"能过Boss 攻击应与关卡已有敌人/道具主题连贯(\"进化\"而非\"空降\"\n 2. **多样性 Variety**Boss 血量条分段显示图案边界;同一段血内可循环多个攻击,且每次攻击要求不同的躲避/输出策略;\n 3. **时长 Length**Boss 战时长与关卡时长成比例;中 Boss 不应比关底 Boss 长;把\"信息不对等的假 Boss → 真 Boss\"当一次性惊喜;\n 4. **回报 Pay-off**Boss 战末尾(濒死前)往往\"倾泻所有弹幕\"制造最终高潮Mushihimesama、ESPGaluda2、Ikaruga 第 3 章 Boss 都是例子);好回报 = 节奏铺垫 + 假危机;\n 5. **角色 Character**:爆炸方式、受击反馈、蓄力/宣言动画、音效都要符合角色性格——这是\"为什么这个 Boss 挡在这里\"的叙事答案。\n\n### 3.5 东方式 Boss 战结构参考(综合)\n\n1. 开战:非符 1轻、教学、环/扇)\n2. 符卡宣言(换背景、念符名)→ 符卡 1主题图案时间限制收取奖励\n3. 非符 2中压引入瞄准/引弹)\n4. 符卡 2组合图案增强型随血量变密→ ……\n5. 濒死Last Spell / 最终符卡(最强+最华丽)→ 消弹演出(击破瞬间子弹变道具)\n6. 挑战层隐藏Extra 时限符卡 / 弹幕天邪鬼式\"看似不可能\"组合\n\n---\n\n## 4. 数学原理与实现\n\n### 4.1 基础参数体系\n\n任何一个弹幕模式都可由以下参数组合生成来源note.com 第 4 章o3de-diorama 参数表):\n\n| 参数 | 作用 | 备注 |\n|---|---|---|\n| 发射位置 | 敌中心/屏幕边缘/多炮塔 | 决定子弹出生点阵型 |\n| **发射角度** | 固定 / 旋转 / 瞄准 / 随机 | 最易出效果 |\n| 子弹数量 | 密度 | 环形=一圈数量、扇形=扇内数量 |\n| 发射间隔 | 节奏 | 决定\"流\"还是\"波\" |\n| 子弹速度 | 难度与观感 | 快=危险、慢=可读 |\n| 加速度 | 节奏与曲线 | 减速弹、加速弹 |\n| 角速度 | 螺旋、转向弹 | 曲线弹的核心 |\n| 寿命 | 消失时机 | 滞留弹=长寿命 |\n| 分裂条件 | 时间/距离/位置 | 分裂弹 |\n| 颜色/大小 | 可读性与美观 | 颜色=属性编码 |\n\n### 4.2 角度与排列公式(常用)\n\n- **环形**`angle_i = base + i·360/n``v = speed·(cos, sin)`2.1 节)\n- **扇形**`angle_i = aim - spread/2 + i·spread/(n-1)`2.3 节)\n- **瞄准**`angle = atan2(py - ey, px - ex) + 偏移`(瞄准扇 = 在其两侧均匀分布)\n- **网格**:对 `(i,j)` 行列给固定 x/y 间距\n- **正弦波**`x 或 y += A·sin(ω·t + φ)`2.10 波型)\n- **花瓣/星形**`angle_i = base + i·(360/petal) + 相位`,再由花瓣内多颗子弹构成瓣形\n- **规律+微扰**`angle = base + i·even + sin(t)·fluct``speed = base + random(-δ,δ)`note.com 3-1\n- **周期循环**:如\"每 60 帧一波大浪、每 15 帧小弹、每 4 发反转角度\"制造音乐性节奏note.com 3-4\n\n### 4.3 速度变化(加速/减速弹幕)\n\nDanmokouDMK 引擎归纳的常见运动来源Danmokou Tutorial 6\n\n1. 恒定速度直线(默认)\n2. **直线加速**`v(t) = v0 + a·t`,可正可负:赶人弹/诱导弹)\n3. 速度在慢/快之间周期切换\n4. 两位置间往返\n5. 极坐标运动(径向+角速度)\n6. 波浪线squiggly\n7. 旋转运动方向(追踪/转向)\n8. 相对另一运动物体运动(随从弹/母舰子机)\n9. 任意参数方程轨迹\n\n工程提示DMK 把运动建模为**函数**`rvelocity(px(3 + sine(4, 0.6, t)))`),而不是\"速度/加速度两个标量\",从而任意轨迹即插即用;其子弹更新循环一次函数调用即可支撑 10 万以上子弹 @4K 120FPSDMK 官方数据)。\n\n### 4.4 曲线弹幕(转向 / 极坐标 / 贝塞尔)\n\n- **限速转向(追踪弹)**每帧把朝向转向上限内的目标方向2.6 节公式);\"转向弱一点更好躲也更好看\"note.com 2-13。\n- **极坐标螺旋**`r(t)=a·t, θ(t)=b·t` → 直角坐标 `x = cx + r·cosθ, y = cy + r·sinθ`DMK 示例 `polar(2*t, 80*t)`。注意极坐标绕圈时转速均匀性需要弧长参数化DMK 作者自述\"没有闭式解,需迭代求解\"。\n- **贝塞尔曲线(弯曲弹)**:二次贝塞尔 `B(t) = (1-t)²·P0 + 2(1-t)·t·P1 + t²·P2`,每帧采样 t∈[0,1] 作为下一位置(通用图形学做法,非本次调研单一来源;用于\"弧形弹道/水漂弹\")。三次贝塞尔 `C(t)` 用于更复杂的 S 形弹道。\n- **正弦扰动**:在固定方向上叠加正弦横向偏移,成为\"S 形\"弹Unity 论坛实现示例)。\n- **角度退化/曲线激光**:东方中存在\"准激光\"弧形激光、曲线灵弹判定比直线激光大thwiki 弹型介绍)——曲线弹道要么给足预警,要么减小判定。\n\n### 4.5 性能实现建议\n\n- **对象池object pool**:固定容量池 + 硬上限防止无限生成o3de-diorama 的 `Max Bullets` 硬上限设计)。\n- **批量渲染**:同一纹理的整组子弹一次 draw callsprite batch / 合批)。\n- **碰撞**:每颗活子弹对目标碰撞层做一次重叠查询,目标层只放玩家/护盾几个碰撞体几百颗子弹也便宜o3de-diorama。\n- **功能分层**发射器emitter只管几何与碰撞伤害/计分留在游戏侧o3de-diorama 的分工建议)。\n\n---\n\n## 5. 像素风格下的弹幕视觉设计\n\n### 5.1 子弹形状库\n\n**核心原则**'shmup 最核心的是弹幕的可读性visibility——在任何背景下都能被读出'slynyrd Pixelblog 31。形状即语义**形状要匹配行为**Sparen Guide A2 / Pixelblog 32箭形弹配直线飞行才合理追踪弹要旋转指向的运动方向。\n\n**东方参考形状清单**来源thwiki《东方全弹型介绍与中弹判定分析》、maribelhearn 子弹类型表、Steam Touhou Bullets Model Pack\n\n| 类别 | 形状 | 用途/特点 | 像素建议 |\n|---|---|---|---|\n| 圆形系 | 小玉(带圈/不带圈)、中玉、大玉(空心) | 通用基础弹;大玉实际判定仅中心空洞 | 610px 圆 + 描边;大玉用\"中空环\"贴图配透明中心 |\n| 粒状 | 点弹、米弹 | 点弹最小(<判定点),米弹为最高发弹量弹型之一 | 34px 点、8×4 米粒;米弹风速后有变短/判定变大差异 |\n| 尖形 | 针弹/箭弹/晶弹 | 速度感、方向感最强 | 长 814px 的三角/箭头,尖端高亮 |\n| 刀剑形 | 刀弹、剑弹、苦无 | 角色辨识度高(如咲夜/蕾米) | 剑身+尖端高光;前端无判定所以略细 |\n| 星光形 | 星弹(大/小)、光弹 | 华丽、魔法感;光弹判定偏大 | 4 角/5 角星 + 旋转动画 |\n| 特殊形 | 蝶弹、心弹、音符弹、钱弹、鳞弹(带\"翼\" | 角色主题、装饰 | 2 帧扇翅/跳动动画;鳞弹判定仅中心点 |\n| 火焰/流体 | 炎弹、水滴/滴弹 | 不规则 | 23 帧沸腾动画,\"躲前端\"语义 |\n| 激光 | 线段激光/射线激光、弧形激光 | 封路、视觉冲击 | 预警线(细)→ 实体2 帧过渡;线身描边 |\n\n**东方判定参考**thwiki多数弹\"判定 < 视觉\":大玉只有中心空洞有效、鳞弹只有中心点、剑弹前端无判定、激光靠预警线判定;当\"准激光/粥弹/核弹\"等判定欺诈弹出现时,需要玩家另行学习——像素风下**不要滥用判定欺诈**,默认\"所见即所判\"更公平。\n\n### 5.2 颜色编码\n\n- **基础原则**:子弹是屏幕上最鲜艳的元素;用高饱和色与背景拉开对比;颜色可传达属性/机制语义slynyrdnote.com 3-3。\n- **按属性/危险度编码**示例:\n - 红/橙 = 高速、致命、普通攻击;\n - 蓝/青 = 特殊判定、特殊移动(如反弹/曲线/激光);\n - 紫/白 = 装饰弹、非致命、演出用;\n - 绿 = 通常用于玩家/友方,避免敌方子弹大量用绿(语义混淆)。\n - (以上为常见实践惯例,属综合常识,非单一文献结论。)\n- **注意**:颜色要与背景/特效区分note.com 3-3考虑红绿色盲——**不要只靠红/绿区分要害**,同时用形状/大小/闪烁区分。\n- **同波同色**:同一次发射的子弹用同一色系,方便玩家把\"一波子弹\"当整体读note.com 3-3子弹类型或危险度不同则换色。\n\n### 5.3 子弹大小与可躲避性\n\n- **判定点 vs 视觉**:自机 hitbox 远小于机绘Cave 1px hitbox、DoDonPachi 子弹判定约直径 20%,来源 TimeExtension/Shmups Wiki聚焦模式时在判定点处显示小红点让玩家能\"穿缝\"。\n- **子弹尺寸**:越大越可见但占屏;太小(<判定点)会\"消失\"且威胁感弱。建议子弹视觉 616px 常见、点弹 34px、激光不限长slynyrd子弹应大小多样通常越大伤害越高。\n- **缝隙设计**:安全缝隙宽度 = 玩家判定 + 子弹判定 + 玩家操作误差(微闪避用低速聚焦移动保证精度);设计时给缝隙留 ≥23px 冗余(工程经验法则)。\n- **密度 vs 大小**:子弹越小越能密(给留出视觉通道);同屏密度高时,小弹+弱判定(空心大玉)是\"看起来吓人、实际可穿\"的经典手法thwiki 大玉示例)。\n\n### 5.4 发光/粒子效果在像素风格中的处理\n\n- **描边outline**:几乎必备,最好**双层描边**(亮色外圈+暗色内圈以保证任何背景下可读pixel 风格常用白描边与其它精灵深描边区分slynyrd。\n- **闪烁/双帧动画**:两帧交替即可做出\"呼吸/危险脉冲\"对比度越大越激烈但太强会难以追踪快速弹slynyrd。\n- **发光**:像素风发光 = 亮色核心 + 1 层半透明同色光晕(加色混合 additive或\"外扩 1px 亮描边\";避免真实 bloom 破坏像素感。\n- **粒子**:爆炸/火花/花瓣用\"范围+偏置\"的受控随机note.com 2-12粒子可叠加在弹幕上做纹理而不是独立威胁。\n- **脉冲缩放**:呼吸/脉动expanding-contracting可让呆滞的圆弹\"活起来\"slynyrd 的 rotation/motion 建议)。\n- **消弹特效**Boss 符卡击破瞬间,全屏子弹转为道具/星点是东方色的标志性演出Touhou Wiki Items子弹在 Boss 攻击结束/未超时被打掉时转为星道具;消弹 cancel 亦为计分要素maribelhearn 术语)。\n\n### 5.5 弹幕层级的视觉优先级\n\n绘制顺序从底层到顶层工程惯例 + Reddit shmupdev 设计 101 摘要:\"敌方子弹永远画在其它对象之上\"\n\n1. 背景/场景层\n2. 地面敌人/可破坏物\n3. 道具、点数\n4. 玩家射击、爆炸特效(半透明)\n5. **敌方子弹(最高优先级之一,必须覆盖玩家机绘)**\n6. 玩家机绘 + 判定点指示(聚焦时)\n7. UI血量/符卡名/时间)\n\n理由玩家需要\"先读弹,再读自己\";若子弹被机绘/特效遮挡,就会产生\"判定杀clipdeath\"的挫败感maribelhearn 术语)。\n\n### 5.6 像素风格弹幕设计清单(落地用)\n\n- [ ] 每种模式指定**1 个主色 + 1 种子弹形状**(勿两种都在变);\n- [ ] 危险弹用暖色+闪光,装饰弹用冷色/暗色调;\n- [ ] 所有敌方子弹带描边(建议双层),且在玩家机绘之上绘制;\n- [ ] 直线/追踪/曲线弹使用**方向性贴图**(箭头/针/刀)并随角度旋转;\n- [ ] 预警:激光先细线→粗线;分裂弹先停顿+蓄力闪光;大威力攻击让 Boss 本体发光note.com 3-5\n- [ ] 判定 < 视觉:默认简化判定(圆/椭圆),为\"大玉/鳞弹\"这类特殊判定做贴图注释(空心=可穿);\n- [ ] 像素分辨率建议在 320×180640×360 区间定基准slynyrd 建议 480×270保证单个子弹仍有足够像素表达细节\n- [ ] 每张符卡/阶段限定子弹色彩数(建议 23 色),避免像素噪点化。\n\n---\n\n## 6. 对本项目(像素风弹幕游戏)的落地建议汇总\n\n1. **词库起步**:环形 / 螺旋 / 扇形 / 直线(流+墙)/ 瞄准扇 / 受控随机 / 分裂弹 / 激光(带预警)/ 滞留结界,共 9 个基础模式,先用\"参数化发射器\"Count/Aim/Spread/Spin/Speed/FireRate/Lifetime实现参照 o3de-diorama 的参数表Boss 脚本只做\"模式序列 + 转场\",成本最低。\n2. **难度曲线**:按\"非符(轻)→ 符卡(重)→ 非符 → 符卡 …\"排布;每张符卡 = 1 主题图案 + 增强型变密 + 时限生存变体(一套图案三种玩法)。\n3. **公平性**所有危险性一定要有预警telegraph缝隙 > 判定 + 冗余;颜色+形状双通道编码。\n4. **像素视觉**:双层描边 + 双帧闪烁 + 加色发光小光晕 + 同波同色 23 色限制 + 子弹层级最高。\n5. **性能**:对象池 + 合批 + 简化碰撞层(目标只放玩家/护盾),确保几百到几千颗子弹稳定 60FPS。\n\n---\n\n## 7. 信息来源与置信度说明\n\n按信息诚实原则对所有关键结论标注来源与置信度\n\n**A本轮调研直接引用的网页来源置信度高可复核**\n\n1. npaka《A Summary of 15 Beautiful Bullet Hell Patterns in Danmaku Shooters》note.com——15 种模式分类、组合配方、参数与设计 tipshttps://note.com/npaka/n/n5d38b7d84173?hl=en\n2. Sparen's Danmaku Design StudioGuide A2角度类型、方向性子弹、心理过滤、danmaku vs 普通 STG、Guide A3墙的定义、微/宏闪避、Utsuho 例子https://sparen.github.io/ph3tutorials/ddsga2.html 、ddsga3.html\n3. DanmokouDMK 引擎Tutorial 6函数式运动系统、极坐标螺旋公式、性能数据、贝塞尔/参数方程讨论https://dmk.bagoum.com/docs/articles/t06.html\n4. Wikipedia《符卡》符卡规则、宣言、红利、时效/增强型、Last Spell/Last Word/Overdrive、难度差异、魔理沙魔法书分类https://zh.wikipedia.org/zh-hans/符卡\n5. thwiki/东方吧Wiki《东方全弹型介绍与中弹判定分析》小玉/米弹/点弹/大玉/光弹/针弹/鳞弹/剑弹/炎弹/激光/核弹/粥弹及判定细则https://touhou8.thwiki.cc/index.php?edition-view-1281-1.html=\n6. maribelhearn 《Touhou Community Jargon》子弹类型表、micro/macro dodge、safespot、streaming、misdirection、routing、cancel、clipdeath 等术语https://maribelhearn.com/faq/jargon含中文版\n7. maribelhearn Beginner Guide微/宏闪避、流弹引弹、safespot 举例 BOWAP 等https://wiki.maribelhearn.com/wiki/Beginner_Guide\n8. slynyrd Pixelblog 31《Shmup Design Part 1》像素子弹设计颜色/大小/形状/描边/闪烁/旋转、分辨率建议Pixelblog 32外观与行为匹配https://www.slynyrd.com/blog/2020/12/14/pixelblog-31-shmup-sprite-design\n9. Game Developer《Video Game Boss Design For Shmups》Boss 五要素:难度/多样性/时长/回报/角色健康条分段Cave 例子https://www.gamedeveloper.com/design/video-game-boss-design-for-shmups\n10. SHMUP Workshop 03《Bullet Pattern Design》模式角色警告/位移/区域封锁/最终引导slow escalation微宏闪避CAVE tracking 做法Boss 设计目标YouTube ArZRZSYICLo\n11. TimeExtension《CAVE Story: The History of DonPachi》命中率 20% 判定、自爆弹、rank 系统、1px hitboxShmups Wiki《CAVE》词条1px 判定、游戏清单https://www.timeextension.com/features/cave-story-the-history-of-donpachi-the-shmup-series-that-changed-everything\n12. Forgotten Worlds《A guide to Danmaku Unlimited 3》脚本化弹幕、Touhou 式轻/重阶段交替https://www.forgottenworlds.net/bullet-hell-danmaku\n13. Zen of the SHMUPDonPachi 系列=图案+记忆、Mushihimesama=快速集中火、Cave 组合https://richardschupp.wordpress.com/tag/the-zen-of-the-shmup\n14. o3de-diorama《24-bullet-patterns.md》Ring/Fan/Spiral 参数表、对象池、合批、碰撞层设计https://github.com/nickschuetz/o3de-diorama/blob/main/Docs/howto/24-bullet-patterns.md\n15. Boghog's bullet hell shmup 101bullet sealing、micro/macro dodge 补充https://shmups.wiki/library/Boghog%27s_bullet_hell_shmup_101\n16. Reddit r/shmupdev《BULLET HELL SHMUP DESIGN 101》\"敌方子弹永远绘制在其他对象之上\"等原则仅经搜索摘要获取置信度中https://www.reddit.com/r/shmupdev/comments/13w730k/\n17. 其它Summer Engine判定点/聚焦/擦弹术语、Touhou Wiki Items消弹转星道具、Steam Touhou Bullets Model Pack子弹形状清单、Ted Lim《Day 49》sin/cos 扇面公式)等。\n\n**B置信度说明**\n\n- 上述 (A) 列来源中的具体论断:**我很确定**它们出自对应来源(可直接复核)。\n- \"经典游戏例子\"中标注为\"常识\"的条目(如\"东方各作螺旋遍地\"\"雅雅…\"),来自模型通用知识,**没有在本轮调研中逐条核实**,读者如需引用请自行在对应游戏攻略中确认。\n- \"像素建议\"\"设计检查表\"\"落地建议\"等小节为**基于上述来源的综合工程建议**(合理推断,非文献原文),置信度中上,请结合游戏实测调整。\n- 反弹弹2.7)在东方系纵版弹幕中近乎缺席是**常识判断**;调研资料中未找到专门文献,如要使用建议先做原型验证。\n\n---\n\n## 附录 A参考链接汇总\n\n- https://note.com/npaka/n/n5d38b7d84173?hl=en 15 种弹幕模式)\n- https://sparen.github.io/ph3tutorials/ddsga2.html / ddsga3.html (弹幕设计工作室指南)\n- https://dmk.bagoum.com/docs/articles/t06.html Danmokou 运动函数哲学)\n- https://zh.wikipedia.org/zh-hans/符卡 (符卡系统)\n- https://touhou8.thwiki.cc/index.php?edition-view-1281-1.html= (东方全弹型介绍与判定分析)\n- https://maribelhearn.com/faq/jargon (东方社区术语与子弹类型)\n- https://wiki.maribelhearn.com/wiki/Beginner_Guide (躲避策略入门:微/宏闪避、引弹、安全点)\n- https://www.slynyrd.com/blog/2020/12/14/pixelblog-31-shmup-sprite-design (像素弹幕设计)\n- https://www.gamedeveloper.com/design/video-game-boss-design-for-shmups STG Boss 设计)\n- https://shmups.wiki/library/CAVE CAVE 公司与其游戏)\n- https://www.timeextension.com/features/cave-story-the-history-of-donpachi-the-shmup-series-that-changed-everything DonPachi 历史)\n- https://richardschupp.wordpress.com/tag/the-zen-of-the-shmup Cave 弹幕风格对比)\n- https://www.forgottenworlds.net/bullet-hell-danmaku Danmaku Unlimited 3 访谈)\n- https://github.com/nickschuetz/o3de-diorama/blob/main/Docs/howto/24-bullet-patterns.md (发射器实现与参数)\n- https://shmups.wiki/library/Boghog%27s_bullet_hell_shmup_101 bullet hell 设计 101\n- https://www.youtube.com/watch?v=ArZRZSYICLo SHMUP Workshop 03 弹幕模式设计)\n- https://www.youtube.com/watch?v=zEPgFaIpa6o Boss 设计 Week 25螺旋/双螺旋实现)\n- https://www.youtube.com/watch?v=To5rOl6pn08 Boss 战设计:攻击前摇、防龟缩)\n- https://tedlim-65557.medium.com/day-49-bullet-hell-pattern-2d-space-shooter-series-c91e4eccad7c sin/cos 扇面数学)\n- https://www.summerengine.com/ai-bullet-hell-maker (判定点/聚焦/擦弹/密度调参)\n\n*报告完*"}, "ts": 1787459605714}, {"type": "progress", "id": "call_221c64a46fc24b6eb696fcd8", "tool": "write_file", "status": "completed", "args": {"file_path": "research/bullet_patterns/bullet_pattern_research.md", "content": "# 弹幕射击游戏STG / Bullet Hell敌方弹幕模式调研报告\n\n> **调研目的**为像素风格的弹幕射击游戏STG / Bullet Hell提供敌方弹幕bullet pattern设计的系统性参考。\n> **调研方式**:网络搜索 + 网页资料提取(来源见第 7 章)。\n> **调研时间**2026-08-23\n> **交付目录**`research/bullet_patterns/`\n\n---\n\n## 0. 摘要TL;DR\n\n- 弹幕danmaku / 弾幕,字面义\"弹幕幕帘\",西方称 bullet hell / curtain fire与普通 STG 的本质区别**不是子弹数量**,而是\"**整个屏幕都是弹幕的舞台**\"——大量子弹不是为了全部命中玩家而是组成可观赏、可读、有图案pattern的\"幕帘\"玩家在其中寻找缝隙穿行。多数子弹在诞生之初就注定打不到玩家Sparen's Danmaku Design Studio, Guide A2。\n- 经典弹幕模式可用\"**规律 + 微扰**\"统一描述:先排布几何图案(环形、螺旋、扇形、直线、激光、网格等),再叠加少量可控随机(角度/速度抖动),并始终**以\"设计缝隙\"为核心**,而不是\"设计密度\"。\n- Boss 战的核心设计杠杆:**阶段Phase/符卡)转换、节奏(轻/重交替与紧张-释放)、密度控制(难度曲线)、安全路径/安全点safe zone/safespot/routing、公平性信号预警 telegraph**。\n- 实现上只靠 5 个基础参数即可组合出绝大多数模式:**发射角度、子弹数量、发射间隔、子弹速度、加速度(角速度)**;曲线弹幕依赖角速度转向、极坐标/参数方程(如螺旋 `r=a·t, θ=b·t`)、贝塞尔曲线或正弦扰动。\n- 像素风格下弹幕可读性readability压倒一切**高饱和颜色 + 描边(尤其双层描边)+ 闪烁/呼吸动画 + 明确的子弹形状语义 + 绘制层级(敌方子弹永远最上层)**并让判定hitbox远小于视觉尺寸。\n\n---\n\n## 1. 背景认知:弹幕射击与普通 STG 的区别\n\n| 维度 | 普通 STG | 弹幕射击Bullet Hell |\n|---|---|---|\n| 子弹目的 | 命中玩家 | 大量子弹作\"装饰 + 制造缝隙谜题\",很多子弹故意不打玩家 |\n| 屏幕利用 | 子弹从上方来袭 | 全屏都是舞台,子弹可从任何方向/任何规律出现 |\n| 判定 | 机体整体判定 | 微型判定点hitbox东方等游戏中判定远小于机绘大小 |\n| 玩家速度 | 较快 | 有\"低速聚焦模式\"focus/slow mode用于精确微调 |\n| 美学 | 战场感 | \"弹幕舞蹈\",图案本身有独立观赏价值 |\n\n关键概念\n\n- **幕帘火Curtain fire**'curtain fire'精确描述了弹幕的本质——用弹幕填满一片空间形成\"幕帘\",玩家面对的是\"图案\",而不是\"几发子弹\"Sparen Guide A2。\n- **判定点Hitbox**子弹只有碰到自机中心的微小判定点才算命中。Cave 的《虫姬后传》《怒首领蜂大复活》甚至有 1 像素判定DoDonPachi 系列子弹判定通常只占子弹直径约 20%来源TimeExtension CAVE 历史长文、Shmups Wiki CAVE 词条)。\n- **擦弹Graze**:子弹掠过判定点外围的\"擦弹判定圈\"得分鼓励玩家贴着子弹走Summer Engine、maribelhearn 术语表)。\n- **心理过滤Mental filtering**:高手玩家会自动忽略大量\"注定打不中自己\"的子弹(例如环形弹幕中飞向两侧/上方的子弹),只对逼近自己的弹道做出反应——这是弹幕\"装饰性子弹\"能成立的心理学基础Sparen Guide A2。\n\n---\n\n## 2. 经典弹幕模式分类\n\n> 本节以任务要求的 9 类为主干2.12.9),然后在 2.10 补充调研中发现的其它常用模式。每个模式给出:**名称 / 视觉描述 / 数学与实现要点 / 经典游戏例子 / 像素风格设计建议**。\n> 注:任务要求的 9 类与社区常用分类(如 note.com 归纳的 15 种模式)并非一一对应,本报告将两类分类体系做了映射与合并。\n> 经典例子部分,凡未在本轮调研资料中明确出现的,均标注为\"常识(通用认知)\",置信度说明见第 7 章。\n\n### 2.1 环形弹幕Ring / Circle Burst日语\"轮弾/円形弾\"\n\n- **视觉描述**:从中心点向 360° 均匀放射一圈子弹,呈涟漪/烟花/魔法阵状。变化包括扩展环从小半径环向外扩、收缩环、多重同心环、旋转环、分裂环飞到中途爆成更多子弹note.com 2-8 Rings\n- **数学与实现要点**\n ```\n n = 子弹数; base = 基准角\n for i in 0..n-1:\n angle = base + i * (360° / n)\n vx = speed * cos(angle); vy = speed * sin(angle)\n ```\n 若每帧/每次发射让 `base` 增加固定角,环就\"旋转/缭乱\"起来。o3de-diorama 文档Ring 参数含 Count、Aim、Speed、Fire Rate、Spin Per ShotTed Lim / GameMaker 论坛同款公式)\n- **经典游戏例子**:东方系列几乎所有 Boss 都有环弹常识琪露诺的冰符「Icicle Fall -Easy-」的冰柱环是知名的入门环弹Sparen Guide A2 以其为例讲述固定角);环形常用作 Boss 战开场或\"轻阶段\"的通用压迫弹note.com 入门 Boss 组合)。\n- **像素风格设计建议**:环弹数量多且对称,适合用**小尺寸圆形弹**68px保证低视觉占用用\"带圈的小玉\"(外圈描边)区分装饰环和危险环;旋转环可给子弹加 12 帧的旋转动画增强\"轮转感\"。\n\n### 2.2 螺旋弹幕Spiral\n\n- **视觉描述**:发射角连续旋转,子弹留下螺旋尾迹,像银河/风车/玫瑰。变体:单螺旋、多螺旋、顺逆时针双螺旋交叉、不同色相/速度的螺旋。note.com 2-2 Spiral\n- **数学与实现要点**\n - 离散式:每次发射一个环,环的基准角 += 每发旋转角Spin Per Shot即\"每发转一点\"o3de-diorama。\n - 参数方程(连续式):极坐标 `r = a·t`、`θ = b·t`,则 `x = cx + r·cos(θ)``y = cy + r·sin(θ)`来源Danmokou Tutorial 6 的螺旋示例 `polar(2*t, 80*t)`)。\n - 替代实现让发射器父对象缓慢旋转Ted Lim——\"空对象 + 3 个子发射点 + 旋转父对象即可做出螺旋\")。\n- **经典游戏例子**:螺旋是弹幕最经典的高性价比模式,\"低子弹数也能很华丽\"note.com东方各作螺旋遍地常识双反向螺旋常作中后期难度YouTube Week 25 Boss 设计演示了\"顺+逆双螺旋\"Boss 阶段)。\n- **像素风格设计建议**:螺旋强调\"轨迹\",适合用**细长子弹(针弹/米弹/箭弹)**来勾勒弧线或给圆形弹加方向性贴图箭头形让旋转方向可读Sparen Guide A2 说明了\"有方向性的子弹图形\"对旋转/转向弹幕的可读性价值)。\n\n### 2.3 扇形弹幕Fan / Wedge\n\n- **视觉描述**:在一个方向张开成扇面。窄扇高压、宽扇适合场景演出;朝玩家发射时进攻性强(\"瞄准开火\"的观感固定方向发射则可控、适合道中演出。note.com 2-3 Fan\n- **数学与实现要点**\n ```\n n = 子弹数; spread = 扇形总张角; aim = 瞄准角\n step = spread / (n - 1)\n start = aim - spread / 2\n for i in 0..n-1:\n angle = start + i * step\n ```\n 来源Unity 教程Unity Discussions 搜索片段)与 Ted Lim 的扇面公式——\"startAngle = target - halfSpread / 2endAngle = target + halfSpread/2逐颗递增 step\"\n- **经典游戏例子**:几乎所有 STG 的追踪射击采用\"瞄准玩家的扇\"aimed fan东方道中妖精惯用常识DoDonPachi 等 Cave 游戏的\"concentrated fire\"即窄/快扇来源Zen of the SHMUP 对 Cave 的归类)。\n- **像素风格设计建议**:扇弹适合 711 颗一组的中型子弹(如 10px 小玉),发射瞬间用**同一色系**表示同一波;窄扇用暖色(红/橙)暗示高风险,宽装饰扇用冷色。\n\n### 2.4 直线弹幕Line / Stream / Wall\n\n- **视觉描述**\n - **流弹Stream**:从一处连续射出单发子弹,形成一条密集弹流,玩家\"引弹\"时可把它带成一条可利用的空隙带maribelhearn 术语streaming / 引弹)。\n - **墙Wall**:同排/同列子弹连成不可穿越的\"墙\"迫使玩家整体绕过宏闪避或在墙隙中微闪避。Sparen Guide A3 的定义:\"墙 = 玩家无法从中间穿过的子弹群/编队\"。\n- **数学与实现要点**连续发射fire rate 控制密度)+ 固定方向;若每发角度做正弦微扰,直线流会变成\"S 形波流\"Unity 论坛示例0°→180° 递增、180°→360° 递减即正弦半波)。\n- **经典游戏例子**:东方\"针山/米弹雨\"类密集直线常识Sparen 用 Utsuho地灵殿 阿空)的符卡组合说明微/宏闪避结合的动态弹幕Sparen Guide A3。\n- **像素风格设计建议**:直线弹适合**针弹/米弹/箭弹**(细长、方向明确);流弹用同色细弹,墙用同色+同速保证\"墙\"的视觉连续性给子弹加方向性贴图可让玩家立即读出弹道Sparen Guide A2。\n\n### 2.5 随机散射Random Spread\n\n- **视觉描述**:子弹角度/速度在随机范围内散射,像火花、星尘、碎片。纯随机易显得\"无设计\"且不公平,优秀做法是给角度、速度、密度赋予\"范围与偏置\"bias即受控随机。note.com 2-12 ParticlesSparen Guide A2 对随机角的负面评价)\n- **数学与实现要点**\n - 在固定规律上叠加小随机:\"受控随机看起来更像弹幕\"note.com 3-1\n ```\n angle = base + i * even_angle + sin(t) * 波动幅度 # 规律性\n speed = base_speed + random(-0.2, 0.2) # 微扰\n ```\n - 随机角度也可用作\"种子角度\":例如连续发射环形弹时,每轮用一个随机初始角,避免盲区/避免每轮覆盖完全相同的路径Sparen Guide A2。\n- **经典游戏例子**:东方的\"小虫型符卡\"《魔理沙的魔法书》分类子弹细碎、颜色丰富多为弱妖怪用来源Wikipedia 符卡与妖精群随机弹常识Cave 的 Mushihimesama 强调\"更快、更集中\"的火力其随机感更强来源Zen of the SHMUP / Reddit 讨论)。\n- **像素风格设计建议**:随机弹适合**点弹/星弹/米粒弹**等小尺寸,配合\"闪烁\"动画强调危险性;随机弹颜色可用亮白/黄等\"危险信号色\"注意与背景对比度slynyrd。\n\n### 2.6 追踪弹幕Homing / Aimed\n\n- **视觉描述**\n - **瞄准弹Aimed**:开火瞬间朝玩家当前位置瞄准(可加扇形成\"瞄准扇/散弹\"),考验玩家\"引弹\"misdirection能力note.com 2-4、maribelhearn 术语)。\n - **追踪弹Homing**:飞行中持续转向玩家。转向性能越弱越容易躲,追求\"稍微弯曲\"而非\"全程咬死\"反而更美观note.com 2-13。\n- **数学与实现要点**\n ```\n desired = atan2(player.y - bullet.y, player.x - bullet.x)\n turn = clamp(desired - bullet.angle, -maxTurnRate*dt, +maxTurnRate*dt)\n bullet.angle += turn # 限速转向turning performance\n # 可选加速度朝玩家、停顿后重新加速、分裂后重新锁定note.com 2-13 变体)\n ```\n- **经典游戏例子**:瞄准弹是 Cave\"concentrated fire / tracking\"风格的基石来源SHMUP Workshop 03 YouTube——\"tracking and spread gates, 经典 CAVE 做法\");东方 Boss 的瞄准时间差/瞄准散弹(常识)。追踪弹在 DoDonPachi 的\"自爆弹\"suicide bullets击破敌人释放的追踪自机弹中大量出现来源TimeExtension。\n- **像素风格设计建议**:追踪弹要用**明显的方向性贴图**(箭头/小刀/蝴蝶等且贴图随角度旋转否则玩家读不出它在转弯Sparen Guide A2\"无方向性贴图的圆弹不传达转向\")。用发光/描边强调\"这只子弹会追我\"。\n\n### 2.7 反弹弹幕Bounce / Ricochet\n\n- **视觉描述**:子弹撞到屏幕边缘/墙壁后反弹继续飞行,轨迹呈折线。属于\"轨迹型\"弹幕中较少见的一类。\n- **数学与实现要点**:碰撞边缘时反射角度:`angle = π - angle`(左右边)或 `angle = -angle`(上下边),或对速度向量做分量取反;可加转数上限让子弹弹几次后消失。\n- **经典游戏例子**:相比东方式纵版弹幕(子弹通常出屏即消),反弹弹更常见于街机/横版与部分同人弹幕(如某些 Cave 之外的 STG东方中近乎**没有**常规反弹弹(常识判断,未见调研资料佐证其广泛存在)。⚠️ 这属于\"相对少见\"的类型,若要在本项目中使用,建议作为特色武器或 Boss 特殊阶段引入,而非基础词库。\n- **像素风格设计建议**:反弹弹适合圆润的**圆形/椭弹**(避免方向性贴图在反弹瞬间的旋转跳变违和);反弹瞬间加 12 帧\"压缩-回弹\"动画或火花粒子,强化物理感;用预警或颜色提示\"它会弹\"。\n\n### 2.8 滞留弹幕Static / Lingering\n\n- **视觉描述**:子弹停留在场上形成持续障碍,或极慢速移动封锁区域。包括:静止弹墙、悬浮使魔、地面/空中持续存在的弹laser 也可视为线状滞留)。作用是**区域封锁area denial**封住一部分屏幕为后续弹幕做铺垫或堵住之前的逃逸路线SHMUP Workshop 03area denial patterns 的定义Boghogbullet sealing、ceasefire zone 等反挫败机制)。\n- **数学与实现要点**寿命lifespan拉长 + 速度降到 ~0或通过\"分裂条件=凝固\"实现\"飞行到某点后停住\"。可让滞留弹周期性闪烁(半透明 + 呼吸)提示\"仍在威胁中\"。\n- **经典游戏例子**:东方\"压迫型符卡\"(《魔理沙的魔法书》:限制自机移动范围的符卡,来源 Wikipedia如灵梦的梦符「二重结界」以弹幕构成双重结界限制移动——B 站文章以它为例激光墙封路也是常见形式note.com 2-14激光\"clearly block off parts of the screen\")。\n- **像素风格设计建议**:滞留弹必须与\"会动的危险弹\"在视觉上区分——建议**低频闪烁 + 半透明 + 固定描边**;或用\"发光的柱子/结界\"图形(如结界/棱镜形状)表示区域阻碍物。静止弹用冷色系(蓝/紫),活动弹用暖色系,形成语义分离。\n\n### 2.9 组合弹幕Compound Patterns\n\n- **视觉描述**:把多个模式叠加。例如\"螺旋铺满屏 + 瞄准弹逼玩家移动\",或\"展开环 + 中途分裂 + 激光堵路\"。note.com 2-15 Composite\n- **设计原则**note.com 3-2 / 2-15\n - 组合时**指定一个主模式**,其余为伴奏,避免信息过载。\n - 元素越多,越要依赖颜色编码、预警、缝隙设计来保证可读性。\n - 组合要形成\"分工\":背景压迫 + 前景逼迫(如中间难度组合:旋转全向弹 + 上方落雨 + 周期性瞄准弹)。\n- **经典游戏例子**:东方高阶符卡几乎都是组合(常识,如多层螺旋+分裂环+预警激光即 note.com 高级 Boss 推荐组合);阿空(地灵殿)的符卡是微/宏闪避结合的著名组合Sparen Guide A3。\n- **像素风格设计建议**:组合弹幕在像素风下最容易\"糊成一团\"。建议:每个模式用**不同主色**;不同模式用**不同子弹形状**(圆=压迫、针=直线、星=装饰/特殊);层与层之间拉开速度差,让玩家能分层读取。\n\n### 2.10 调研补充的常用模式\n\n以下模式来自 note.com 的《15 种经典弹幕模式》与 Sparen 指南,按需并入本项目词库:\n\n| 模式 | 视觉/玩法特征 | 要点 | 像素建议 |\n|---|---|---|---|\n| **波型/幕帘Wave/Curtain** | 正弦波排列的子弹带,像波浪/极光/瀑布,容易与 BGM 节奏联动 | 重点是\"缝隙的流动感\"而非子弹本身;`y = a·sin(ωt + φ)` 排布 | 用细长米弹/针弹沿正弦排布,同色系渐变 |\n| **网格Grid** | 横竖规则排列,钻石/晶体状,几何美且缝隙可读;纯网格易单调,加大小的速度差/局部缺口 | 强规律、易读、密度↑难度↑ | 用规则小圆弹 + 网格闪烁/错位动画 |\n| **花状Floral** | 对称花瓣排列5/6/8 瓣),华丽,适合符卡演出 | 对称越高越精致;过度均匀会单调,周期性转相位 | 花瓣用两类颜色交替(瓣=亮、蕊=暗)强化图案 |\n| **星形/多边形Star** | 强调特定顶点5/6/8 向)的星形放射 | 少弹星形也醒目,适合元素/性格表达 | 用星形贴图子弹 + 旋转动画 |\n| **交叉Intersection** | 多股弹流交叉如编织/光流;视觉美但缝隙易被切断 | 关注\"玩家可走的路径\"而非交点;调速度/密度/交叉角 | 两条交叉流用互补色(如青 vs 品红)|\n| **落雨Rain** | 自上而下倾泻,天然适合道中演出 | 全随机易不公平,保持一定规律美观 | 竖直方向子弹用垂直长条贴图或水滴形 |\n| **粒子Particles** | 火花/星尘式散落适合爆炸、花瓣、魔法粒子、Boss 登场 | 给角度/速度/密度一个\"范围+偏置\" | 小尺寸 + 闪烁,可叠加在其他弹幕上做纹理 |\n| **激光Laser** | 线/带状攻击,视觉冲击强,可明确封路 | 发射前先给**细预警线telegraph**最公平;有固定/旋转/弯曲/网格激光 | 预警线细→粗的 2 帧过渡动画;激光主体用高亮+描边 |\n| **分裂弹Split** | 飞行中途/定时/到距离后爆成子弹(如 1→3常伴随\"先停顿\"预警 | 分裂条件:时间/距离/位置分裂后子弹可重新锁定玩家note.com 2-13 | 母弹大而亮(告知\"会爆\"),子弹小一号;停顿帧加\"蓄力闪光\" |\n\n---\n\n## 3. Boss 战弹幕设计\n\n### 3.1 阶段转换与东方Project符卡系统Spell Card\n\n**东方Project 的符卡系统**来源Wikipedia《符卡》、百度百科、PIXNET 东方介绍):\n\n- **来源与规则**符卡Spell Cardスペルカード由《东方红魔乡》首次引入ZUN 自述为\"比其它系统更早面世\"而开发本作)。符卡规则 = \"给绝技命名并宣言\"的决斗规则:宣言、约定符卡张数、击破对方全部符卡即胜。\n- **敌方符卡流程**\n 1. **非符nonspell**Boss 的普通攻击,一般耐久条分格为单位;\n 2. **符卡宣言**:血量削到阈值时 Boss \"念符\"(宣言),画面切换为该角色专属 Spell Card 背景,进入符卡攻击;\n 3. **符卡红利Spell Card Bonus, SCB**:无 Miss 无 Bomb 击破符卡可获得额外分数,随时间递减;擦弹可增加红利;\n 4. **时间限制**:每张符卡有残余时间显示,超时 Boss 自动进入下一波(此时无法收取符卡)。\n- **符卡变体**\n - **增强型符卡**:随血量削减,弹幕密度/速度逐渐增加,越到后面越难(强化难度的天然手段);\n - **时效型/时限型符卡**:耐久无法直接削减,玩家必须\"死守到时间结束\"才能收取(生存符卡 survival card如《永夜抄》部分符卡\n - **Last Spell / Last Word / Overdrive**残机为零或特定条件下的最终符卡Extra/隐藏挑战用)。\n- **难度变化**:同一符卡在 Easy/Normal 与 Hard/Lunatic 下常有**不同名字**Higher 难度名字更华丽弹幕排列与颜色也会变化Wikipedia。\n- **《魔理沙的魔法书》对符卡的分类**Wikipedia演剧型重视觉效果、大量非瞄准装饰弹、奴隶型用使魔/人偶/式神攻击)、小虫型(细碎多彩、弱妖怪)、压迫型(限制自机移动范围)、兴奋剂型(强化自身)。\n\n**对本项目的启示**阶段Phase不必按血量硬切可以模仿\"非符→符卡宣言→符卡\"的节奏:普通阶段保持低密度教学,宣言瞬间清场 + 特效 + 显示符卡名,制造\"仪式感\";生存符卡(时限型)能复用已有图案、只改目标(熬过 X 秒),开发成本低、演出效果好。\n\n### 3.2 弹幕密度控制\n\n- **密度不是越多越好**'curtain fire'不等于无限堆弹密度阈值之后可读性readability崩坏玩家感到\"不公平\"而非\"华丽\"note.com 3-2设计缝隙而非密度。\n- **难度曲线**\n - 报告参考\"轻/重阶段交替\"Danmaku Unlimited 3 采用东方式 light/heavy 交替:轻阶段让玩家喘息与移动,重阶段密集压迫,来源 Forgotten Worlds 采访);\n - 每个 Boss 阶段内\"缓慢升级\":起点是玩家已见过的简单变体,随后逐次加大子弹量/缩小缝隙/提高速度SHMUP Workshop 03slow escalation。\n - 不同难度等级通过\"同一图案改密度/速度/名字\"来分层东方难度差异Wikipedia。\n- **可控变量**(可做成运行时调参工具):子弹数、速度、发射间隔、扇形张角、环形偏转、随机种子、加层数。\n- **Cave 的 rank 系统**:根据玩家当前表现(残机/雷/击破率动态调整弹幕强度——可选的高级机制来源TimeExtensionBoghog 亦建议用\"credit feed 降 rank\"来练习 Boss。\n\n### 3.3 安全路径设计Safe Zones / 缝隙 / 路线)\n\n弹幕的本质是\"缝隙谜题\",安全路径是设计对象而非巧合:\n\n- **微闪避micrododging**在密集子弹的缝隙间小幅移动穿行Sparen A3 / maribelhearn / Boghog\n- **宏闪避macrododging**对整个弹幕编队进行大幅度绕行、找到整块安全区safe spot / safespot——\"内部完全不会被击中(或近于)的点/区域\"maribelhearn 术语);东方中 BOWAP、咲夜道中非符等是经典 safespotmaribelhearn Beginner Guide / jargon\n- **引弹streaming / misdirection**:瞄准弹只有在玩家\"把弹流引到别处\"时才安全——设计上,持续的瞄准弹迫使玩家移动并制造\"下一波更难\"的位置压力SHMUP Workshop 03被满屏引导到尴尬位置会削弱后续应对maribelhearnmisdirection 常在数秒空隙内完成);\n- **路线routing**:玩家在静态/半静态弹幕中规划的具体移动路径,是\"设计缝隙\"的最终产物;\n- **设计检查表**(综合 note.com 3-2 与 SHMUP Workshop 03\n 1. 画图时刻意留下**可见的缝隙**gap width > 判定点 + 子弹判定 + 误差余量);\n 2. 区分\"安全点型\"(原地不动即可)与\"移动型\"(需要持续引弹)两类安全路径,交替使用;\n 3. 用瞄准弹/区域封锁弹**主动关闭**上一轮的安全点防止玩家蹲坑area denialSHMUP Workshop 03以及\"anti-camping避免玩家龟缩\"的 Boss 设计目标);\n 4. 每次重复图案时用随机种子旋转相位避免出现固定盲区Sparen A2。\n\n### 3.4 时间限制与弹幕压力\n\n- **时限符卡**:上面已述(生存符卡)。在设计上,时限 = \"不需要 DPS 检验,纯粹考验躲避\",适合放在 Boss 战中段作为节奏变化点(东方文花帖/弹幕天邪鬼等衍生作品以\"时限+道具\"为核心玩法)。\n- **压力节奏tension-release loop**\n - 每个波次设计\"入口压力→主压力→释放\"三段式:先预警(低压力、可读),再高压(核心躲避),最后 12 秒\"突然变简单\"给玩家胜利快感Boss Up YouTubesurvive 之后的那 1 秒喘息极具成瘾性);\n - 压力来源可以分层:视觉压力(满屏)、逻辑压力(瞄准)、时间压力(超时/残机消耗)。\n- **Boss 战的五个设计要素**来源Game Developer《Video Game Boss Design for Shmups》\n 1. **难度 Difficulty**:首关 Boss 必须让\"认真玩的人\"能过Boss 攻击应与关卡已有敌人/道具主题连贯(\"进化\"而非\"空降\"\n 2. **多样性 Variety**Boss 血量条分段显示图案边界;同一段血内可循环多个攻击,且每次攻击要求不同的躲避/输出策略;\n 3. **时长 Length**Boss 战时长与关卡时长成比例;中 Boss 不应比关底 Boss 长;把\"信息不对等的假 Boss → 真 Boss\"当一次性惊喜;\n 4. **回报 Pay-off**Boss 战末尾(濒死前)往往\"倾泻所有弹幕\"制造最终高潮Mushihimesama、ESPGaluda2、Ikaruga 第 3 章 Boss 都是例子);好回报 = 节奏铺垫 + 假危机;\n 5. **角色 Character**:爆炸方式、受击反馈、蓄力/宣言动画、音效都要符合角色性格——这是\"为什么这个 Boss 挡在这里\"的叙事答案。\n\n### 3.5 东方式 Boss 战结构参考(综合)\n\n1. 开战:非符 1轻、教学、环/扇)\n2. 符卡宣言(换背景、念符名)→ 符卡 1主题图案时间限制收取奖励\n3. 非符 2中压引入瞄准/引弹)\n4. 符卡 2组合图案增强型随血量变密→ ……\n5. 濒死Last Spell / 最终符卡(最强+最华丽)→ 消弹演出(击破瞬间子弹变道具)\n6. 挑战层隐藏Extra 时限符卡 / 弹幕天邪鬼式\"看似不可能\"组合\n\n---\n\n## 4. 数学原理与实现\n\n### 4.1 基础参数体系\n\n任何一个弹幕模式都可由以下参数组合生成来源note.com 第 4 章o3de-diorama 参数表):\n\n| 参数 | 作用 | 备注 |\n|---|---|---|\n| 发射位置 | 敌中心/屏幕边缘/多炮塔 | 决定子弹出生点阵型 |\n| **发射角度** | 固定 / 旋转 / 瞄准 / 随机 | 最易出效果 |\n| 子弹数量 | 密度 | 环形=一圈数量、扇形=扇内数量 |\n| 发射间隔 | 节奏 | 决定\"流\"还是\"波\" |\n| 子弹速度 | 难度与观感 | 快=危险、慢=可读 |\n| 加速度 | 节奏与曲线 | 减速弹、加速弹 |\n| 角速度 | 螺旋、转向弹 | 曲线弹的核心 |\n| 寿命 | 消失时机 | 滞留弹=长寿命 |\n| 分裂条件 | 时间/距离/位置 | 分裂弹 |\n| 颜色/大小 | 可读性与美观 | 颜色=属性编码 |\n\n### 4.2 角度与排列公式(常用)\n\n- **环形**`angle_i = base + i·360/n``v = speed·(cos, sin)`2.1 节)\n- **扇形**`angle_i = aim - spread/2 + i·spread/(n-1)`2.3 节)\n- **瞄准**`angle = atan2(py - ey, px - ex) + 偏移`(瞄准扇 = 在其两侧均匀分布)\n- **网格**:对 `(i,j)` 行列给固定 x/y 间距\n- **正弦波**`x 或 y += A·sin(ω·t + φ)`2.10 波型)\n- **花瓣/星形**`angle_i = base + i·(360/petal) + 相位`,再由花瓣内多颗子弹构成瓣形\n- **规律+微扰**`angle = base + i·even + sin(t)·fluct``speed = base + random(-δ,δ)`note.com 3-1\n- **周期循环**:如\"每 60 帧一波大浪、每 15 帧小弹、每 4 发反转角度\"制造音乐性节奏note.com 3-4\n\n### 4.3 速度变化(加速/减速弹幕)\n\nDanmokouDMK 引擎归纳的常见运动来源Danmokou Tutorial 6\n\n1. 恒定速度直线(默认)\n2. **直线加速**`v(t) = v0 + a·t`,可正可负:赶人弹/诱导弹)\n3. 速度在慢/快之间周期切换\n4. 两位置间往返\n5. 极坐标运动(径向+角速度)\n6. 波浪线squiggly\n7. 旋转运动方向(追踪/转向)\n8. 相对另一运动物体运动(随从弹/母舰子机)\n9. 任意参数方程轨迹\n\n工程提示DMK 把运动建模为**函数**`rvelocity(px(3 + sine(4, 0.6, t)))`),而不是\"速度/加速度两个标量\",从而任意轨迹即插即用;其子弹更新循环一次函数调用即可支撑 10 万以上子弹 @4K 120FPSDMK 官方数据)。\n\n### 4.4 曲线弹幕(转向 / 极坐标 / 贝塞尔)\n\n- **限速转向(追踪弹)**每帧把朝向转向上限内的目标方向2.6 节公式);\"转向弱一点更好躲也更好看\"note.com 2-13。\n- **极坐标螺旋**`r(t)=a·t, θ(t)=b·t` → 直角坐标 `x = cx + r·cosθ, y = cy + r·sinθ`DMK 示例 `polar(2*t, 80*t)`。注意极坐标绕圈时转速均匀性需要弧长参数化DMK 作者自述\"没有闭式解,需迭代求解\"。\n- **贝塞尔曲线(弯曲弹)**:二次贝塞尔 `B(t) = (1-t)²·P0 + 2(1-t)·t·P1 + t²·P2`,每帧采样 t∈[0,1] 作为下一位置(通用图形学做法,非本次调研单一来源;用于\"弧形弹道/水漂弹\")。三次贝塞尔 `C(t)` 用于更复杂的 S 形弹道。\n- **正弦扰动**:在固定方向上叠加正弦横向偏移,成为\"S 形\"弹Unity 论坛实现示例)。\n- **角度退化/曲线激光**:东方中存在\"准激光\"弧形激光、曲线灵弹判定比直线激光大thwiki 弹型介绍)——曲线弹道要么给足预警,要么减小判定。\n\n### 4.5 性能实现建议\n\n- **对象池object pool**:固定容量池 + 硬上限防止无限生成o3de-diorama 的 `Max Bullets` 硬上限设计)。\n- **批量渲染**:同一纹理的整组子弹一次 draw callsprite batch / 合批)。\n- **碰撞**:每颗活子弹对目标碰撞层做一次重叠查询,目标层只放玩家/护盾几个碰撞体几百颗子弹也便宜o3de-diorama。\n- **功能分层**发射器emitter只管几何与碰撞伤害/计分留在游戏侧o3de-diorama 的分工建议)。\n\n---\n\n## 5. 像素风格下的弹幕视觉设计\n\n### 5.1 子弹形状库\n\n**核心原则**'shmup 最核心的是弹幕的可读性visibility——在任何背景下都能被读出'slynyrd Pixelblog 31。形状即语义**形状要匹配行为**Sparen Guide A2 / Pixelblog 32箭形弹配直线飞行才合理追踪弹要旋转指向的运动方向。\n\n**东方参考形状清单**来源thwiki《东方全弹型介绍与中弹判定分析》、maribelhearn 子弹类型表、Steam Touhou Bullets Model Pack\n\n| 类别 | 形状 | 用途/特点 | 像素建议 |\n|---|---|---|---|\n| 圆形系 | 小玉(带圈/不带圈)、中玉、大玉(空心) | 通用基础弹;大玉实际判定仅中心空洞 | 610px 圆 + 描边;大玉用\"中空环\"贴图配透明中心 |\n| 粒状 | 点弹、米弹 | 点弹最小(<判定点),米弹为最高发弹量弹型之一 | 34px 点、8×4 米粒;米弹风速后有变短/判定变大差异 |\n| 尖形 | 针弹/箭弹/晶弹 | 速度感、方向感最强 | 长 814px 的三角/箭头,尖端高亮 |\n| 刀剑形 | 刀弹、剑弹、苦无 | 角色辨识度高(如咲夜/蕾米) | 剑身+尖端高光;前端无判定所以略细 |\n| 星光形 | 星弹(大/小)、光弹 | 华丽、魔法感;光弹判定偏大 | 4 角/5 角星 + 旋转动画 |\n| 特殊形 | 蝶弹、心弹、音符弹、钱弹、鳞弹(带\"翼\" | 角色主题、装饰 | 2 帧扇翅/跳动动画;鳞弹判定仅中心点 |\n| 火焰/流体 | 炎弹、水滴/滴弹 | 不规则 | 23 帧沸腾动画,\"躲前端\"语义 |\n| 激光 | 线段激光/射线激光、弧形激光 | 封路、视觉冲击 | 预警线(细)→ 实体2 帧过渡;线身描边 |\n\n**东方判定参考**thwiki多数弹\"判定 < 视觉\":大玉只有中心空洞有效、鳞弹只有中心点、剑弹前端无判定、激光靠预警线判定;当\"准激光/粥弹/核弹\"等判定欺诈弹出现时,需要玩家另行学习——像素风下**不要滥用判定欺诈**,默认\"所见即所判\"更公平。\n\n### 5.2 颜色编码\n\n- **基础原则**:子弹是屏幕上最鲜艳的元素;用高饱和色与背景拉开对比;颜色可传达属性/机制语义slynyrdnote.com 3-3。\n- **按属性/危险度编码**示例:\n - 红/橙 = 高速、致命、普通攻击;\n - 蓝/青 = 特殊判定、特殊移动(如反弹/曲线/激光);\n - 紫/白 = 装饰弹、非致命、演出用;\n - 绿 = 通常用于玩家/友方,避免敌方子弹大量用绿(语义混淆)。\n - (以上为常见实践惯例,属综合常识,非单一文献结论。)\n- **注意**:颜色要与背景/特效区分note.com 3-3考虑红绿色盲——**不要只靠红/绿区分要害**,同时用形状/大小/闪烁区分。\n- **同波同色**:同一次发射的子弹用同一色系,方便玩家把\"一波子弹\"当整体读note.com 3-3子弹类型或危险度不同则换色。\n\n### 5.3 子弹大小与可躲避性\n\n- **判定点 vs 视觉**:自机 hitbox 远小于机绘Cave 1px hitbox、DoDonPachi 子弹判定约直径 20%,来源 TimeExtension/Shmups Wiki聚焦模式时在判定点处显示小红点让玩家能\"穿缝\"。\n- **子弹尺寸**:越大越可见但占屏;太小(<判定点)会\"消失\"且威胁感弱。建议子弹视觉 616px 常见、点弹 34px、激光不限长slynyrd子弹应大小多样通常越大伤害越高。\n- **缝隙设计**:安全缝隙宽度 = 玩家判定 + 子弹判定 + 玩家操作误差(微闪避用低速聚焦移动保证精度);设计时给缝隙留 ≥23px 冗余(工程经验法则)。\n- **密度 vs 大小**:子弹越小越能密(给留出视觉通道);同屏密度高时,小弹+弱判定(空心大玉)是\"看起来吓人、实际可穿\"的经典手法thwiki 大玉示例)。\n\n### 5.4 发光/粒子效果在像素风格中的处理\n\n- **描边outline**:几乎必备,最好**双层描边**(亮色外圈+暗色内圈以保证任何背景下可读pixel 风格常用白描边与其它精灵深描边区分slynyrd。\n- **闪烁/双帧动画**:两帧交替即可做出\"呼吸/危险脉冲\"对比度越大越激烈但太强会难以追踪快速弹slynyrd。\n- **发光**:像素风发光 = 亮色核心 + 1 层半透明同色光晕(加色混合 additive或\"外扩 1px 亮描边\";避免真实 bloom 破坏像素感。\n- **粒子**:爆炸/火花/花瓣用\"范围+偏置\"的受控随机note.com 2-12粒子可叠加在弹幕上做纹理而不是独立威胁。\n- **脉冲缩放**:呼吸/脉动expanding-contracting可让呆滞的圆弹\"活起来\"slynyrd 的 rotation/motion 建议)。\n- **消弹特效**Boss 符卡击破瞬间,全屏子弹转为道具/星点是东方色的标志性演出Touhou Wiki Items子弹在 Boss 攻击结束/未超时被打掉时转为星道具;消弹 cancel 亦为计分要素maribelhearn 术语)。\n\n### 5.5 弹幕层级的视觉优先级\n\n绘制顺序从底层到顶层工程惯例 + Reddit shmupdev 设计 101 摘要:\"敌方子弹永远画在其它对象之上\"\n\n1. 背景/场景层\n2. 地面敌人/可破坏物\n3. 道具、点数\n4. 玩家射击、爆炸特效(半透明)\n5. **敌方子弹(最高优先级之一,必须覆盖玩家机绘)**\n6. 玩家机绘 + 判定点指示(聚焦时)\n7. UI血量/符卡名/时间)\n\n理由玩家需要\"先读弹,再读自己\";若子弹被机绘/特效遮挡,就会产生\"判定杀clipdeath\"的挫败感maribelhearn 术语)。\n\n### 5.6 像素风格弹幕设计清单(落地用)\n\n- [ ] 每种模式指定**1 个主色 + 1 种子弹形状**(勿两种都在变);\n- [ ] 危险弹用暖色+闪光,装饰弹用冷色/暗色调;\n- [ ] 所有敌方子弹带描边(建议双层),且在玩家机绘之上绘制;\n- [ ] 直线/追踪/曲线弹使用**方向性贴图**(箭头/针/刀)并随角度旋转;\n- [ ] 预警:激光先细线→粗线;分裂弹先停顿+蓄力闪光;大威力攻击让 Boss 本体发光note.com 3-5\n- [ ] 判定 < 视觉:默认简化判定(圆/椭圆),为\"大玉/鳞弹\"这类特殊判定做贴图注释(空心=可穿);\n- [ ] 像素分辨率建议在 320×180640×360 区间定基准slynyrd 建议 480×270保证单个子弹仍有足够像素表达细节\n- [ ] 每张符卡/阶段限定子弹色彩数(建议 23 色),避免像素噪点化。\n\n---\n\n## 6. 对本项目(像素风弹幕游戏)的落地建议汇总\n\n1. **词库起步**:环形 / 螺旋 / 扇形 / 直线(流+墙)/ 瞄准扇 / 受控随机 / 分裂弹 / 激光(带预警)/ 滞留结界,共 9 个基础模式,先用\"参数化发射器\"Count/Aim/Spread/Spin/Speed/FireRate/Lifetime实现参照 o3de-diorama 的参数表Boss 脚本只做\"模式序列 + 转场\",成本最低。\n2. **难度曲线**:按\"非符(轻)→ 符卡(重)→ 非符 → 符卡 …\"排布;每张符卡 = 1 主题图案 + 增强型变密 + 时限生存变体(一套图案三种玩法)。\n3. **公平性**所有危险性一定要有预警telegraph缝隙 > 判定 + 冗余;颜色+形状双通道编码。\n4. **像素视觉**:双层描边 + 双帧闪烁 + 加色发光小光晕 + 同波同色 23 色限制 + 子弹层级最高。\n5. **性能**:对象池 + 合批 + 简化碰撞层(目标只放玩家/护盾),确保几百到几千颗子弹稳定 60FPS。\n\n---\n\n## 7. 信息来源与置信度说明\n\n按信息诚实原则对所有关键结论标注来源与置信度\n\n**A本轮调研直接引用的网页来源置信度高可复核**\n\n1. npaka《A Summary of 15 Beautiful Bullet Hell Patterns in Danmaku Shooters》note.com——15 种模式分类、组合配方、参数与设计 tipshttps://note.com/npaka/n/n5d38b7d84173?hl=en\n2. Sparen's Danmaku Design StudioGuide A2角度类型、方向性子弹、心理过滤、danmaku vs 普通 STG、Guide A3墙的定义、微/宏闪避、Utsuho 例子https://sparen.github.io/ph3tutorials/ddsga2.html 、ddsga3.html\n3. DanmokouDMK 引擎Tutorial 6函数式运动系统、极坐标螺旋公式、性能数据、贝塞尔/参数方程讨论https://dmk.bagoum.com/docs/articles/t06.html\n4. Wikipedia《符卡》符卡规则、宣言、红利、时效/增强型、Last Spell/Last Word/Overdrive、难度差异、魔理沙魔法书分类https://zh.wikipedia.org/zh-hans/符卡\n5. thwiki/东方吧Wiki《东方全弹型介绍与中弹判定分析》小玉/米弹/点弹/大玉/光弹/针弹/鳞弹/剑弹/炎弹/激光/核弹/粥弹及判定细则https://touhou8.thwiki.cc/index.php?edition-view-1281-1.html=\n6. maribelhearn 《Touhou Community Jargon》子弹类型表、micro/macro dodge、safespot、streaming、misdirection、routing、cancel、clipdeath 等术语https://maribelhearn.com/faq/jargon含中文版\n7. maribelhearn Beginner Guide微/宏闪避、流弹引弹、safespot 举例 BOWAP 等https://wiki.maribelhearn.com/wiki/Beginner_Guide\n8. slynyrd Pixelblog 31《Shmup Design Part 1》像素子弹设计颜色/大小/形状/描边/闪烁/旋转、分辨率建议Pixelblog 32外观与行为匹配https://www.slynyrd.com/blog/2020/12/14/pixelblog-31-shmup-sprite-design\n9. Game Developer《Video Game Boss Design For Shmups》Boss 五要素:难度/多样性/时长/回报/角色健康条分段Cave 例子https://www.gamedeveloper.com/design/video-game-boss-design-for-shmups\n10. SHMUP Workshop 03《Bullet Pattern Design》模式角色警告/位移/区域封锁/最终引导slow escalation微宏闪避CAVE tracking 做法Boss 设计目标YouTube ArZRZSYICLo\n11. TimeExtension《CAVE Story: The History of DonPachi》命中率 20% 判定、自爆弹、rank 系统、1px hitboxShmups Wiki《CAVE》词条1px 判定、游戏清单https://www.timeextension.com/features/cave-story-the-history-of-donpachi-the-shmup-series-that-changed-everything\n12. Forgotten Worlds《A guide to Danmaku Unlimited 3》脚本化弹幕、Touhou 式轻/重阶段交替https://www.forgottenworlds.net/bullet-hell-danmaku\n13. Zen of the SHMUPDonPachi 系列=图案+记忆、Mushihimesama=快速集中火、Cave 组合https://richardschupp.wordpress.com/tag/the-zen-of-the-shmup\n14. o3de-diorama《24-bullet-patterns.md》Ring/Fan/Spiral 参数表、对象池、合批、碰撞层设计https://github.com/nickschuetz/o3de-diorama/blob/main/Docs/howto/24-bullet-patterns.md\n15. Boghog's bullet hell shmup 101bullet sealing、micro/macro dodge 补充https://shmups.wiki/library/Boghog%27s_bullet_hell_shmup_101\n16. Reddit r/shmupdev《BULLET HELL SHMUP DESIGN 101》\"敌方子弹永远绘制在其他对象之上\"等原则仅经搜索摘要获取置信度中https://www.reddit.com/r/shmupdev/comments/13w730k/\n17. 其它Summer Engine判定点/聚焦/擦弹术语、Touhou Wiki Items消弹转星道具、Steam Touhou Bullets Model Pack子弹形状清单、Ted Lim《Day 49》sin/cos 扇面公式)等。\n\n**B置信度说明**\n\n- 上述 (A) 列来源中的具体论断:**我很确定**它们出自对应来源(可直接复核)。\n- \"经典游戏例子\"中标注为\"常识\"的条目(如\"东方各作螺旋遍地\"\"雅雅…\"),来自模型通用知识,**没有在本轮调研中逐条核实**,读者如需引用请自行在对应游戏攻略中确认。\n- \"像素建议\"\"设计检查表\"\"落地建议\"等小节为**基于上述来源的综合工程建议**(合理推断,非文献原文),置信度中上,请结合游戏实测调整。\n- 反弹弹2.7)在东方系纵版弹幕中近乎缺席是**常识判断**;调研资料中未找到专门文献,如要使用建议先做原型验证。\n\n---\n\n## 附录 A参考链接汇总\n\n- https://note.com/npaka/n/n5d38b7d84173?hl=en 15 种弹幕模式)\n- https://sparen.github.io/ph3tutorials/ddsga2.html / ddsga3.html (弹幕设计工作室指南)\n- https://dmk.bagoum.com/docs/articles/t06.html Danmokou 运动函数哲学)\n- https://zh.wikipedia.org/zh-hans/符卡 (符卡系统)\n- https://touhou8.thwiki.cc/index.php?edition-view-1281-1.html= (东方全弹型介绍与判定分析)\n- https://maribelhearn.com/faq/jargon (东方社区术语与子弹类型)\n- https://wiki.maribelhearn.com/wiki/Beginner_Guide (躲避策略入门:微/宏闪避、引弹、安全点)\n- https://www.slynyrd.com/blog/2020/12/14/pixelblog-31-shmup-sprite-design (像素弹幕设计)\n- https://www.gamedeveloper.com/design/video-game-boss-design-for-shmups STG Boss 设计)\n- https://shmups.wiki/library/CAVE CAVE 公司与其游戏)\n- https://www.timeextension.com/features/cave-story-the-history-of-donpachi-the-shmup-series-that-changed-everything DonPachi 历史)\n- https://richardschupp.wordpress.com/tag/the-zen-of-the-shmup Cave 弹幕风格对比)\n- https://www.forgottenworlds.net/bullet-hell-danmaku Danmaku Unlimited 3 访谈)\n- https://github.com/nickschuetz/o3de-diorama/blob/main/Docs/howto/24-bullet-patterns.md (发射器实现与参数)\n- https://shmups.wiki/library/Boghog%27s_bullet_hell_shmup_101 bullet hell 设计 101\n- https://www.youtube.com/watch?v=ArZRZSYICLo SHMUP Workshop 03 弹幕模式设计)\n- https://www.youtube.com/watch?v=zEPgFaIpa6o Boss 设计 Week 25螺旋/双螺旋实现)\n- https://www.youtube.com/watch?v=To5rOl6pn08 Boss 战设计:攻击前摇、防龟缩)\n- https://tedlim-65557.medium.com/day-49-bullet-hell-pattern-2d-space-shooter-series-c91e4eccad7c sin/cos 扇面数学)\n- https://www.summerengine.com/ai-bullet-hell-maker (判定点/聚焦/擦弹/密度调参)\n\n*报告完*"}, "ts": 1787459605774}, {"type": "progress", "id": "call_eea8998dbc584718a8560e5d", "tool": "run_command", "status": "running", "args": {"command": "ls -la /Users/demo/starraid/research/bullet_patterns/ && echo \"---\" && wc -l /Users/demo/starraid/research/bullet_patterns/bullet_pattern_research.md && echo \"---\" && head -20 /Users/demo/starraid/research/bullet_patterns/bullet_pattern_research.md", "timeout": 30}, "ts": 1787459610683}, {"type": "progress", "id": "call_eea8998dbc584718a8560e5d", "tool": "run_command", "status": "completed", "args": {"command": "ls -la /Users/demo/starraid/research/bullet_patterns/ && echo \"---\" && wc -l /Users/demo/starraid/research/bullet_patterns/bullet_pattern_research.md && echo \"---\" && head -20 /Users/demo/starraid/research/bullet_patterns/bullet_pattern_research.md", "timeout": 30}, "ts": 1787459610737}, {"type": "progress", "id": "call_5637635943d546359790678a", "tool": "read_file", "status": "running", "args": {"path": "research/bullet_patterns/bullet_pattern_research.md", "type": "search", "query": "雅雅"}, "ts": 1787459614924}, {"type": "progress", "id": "call_5637635943d546359790678a", "tool": "read_file", "status": "completed", "args": {"path": "research/bullet_patterns/bullet_pattern_research.md", "type": "search", "query": "雅雅"}, "ts": 1787459614929}, {"type": "progress", "id": "call_19b6b3039b6f452b9b75ab59", "tool": "edit_file", "status": "running", "args": {"file_path": "research/bullet_patterns/bullet_pattern_research.md", "replacements": [{"old_string": "\"经典游戏例子\"中标注为\"常识\"的条目(如\"东方各作螺旋遍地\"\"雅雅…\"),来自模型通用知识,**没有在本轮调研中逐条核实**,读者如需引用请自行在对应游戏攻略中确认。", "new_string": "\"经典游戏例子\"中标注为\"常识\"的条目(例如\"东方各作螺旋遍地\"\"芙兰朵露星弧破碎\"等),来自模型通用知识,**没有在本轮调研中逐条核实**,读者如需引用请自行在对应游戏攻略中确认。"}]}, "ts": 1787459618982}, {"type": "progress", "id": "call_19b6b3039b6f452b9b75ab59", "tool": "edit_file", "status": "completed", "args": {"file_path": "research/bullet_patterns/bullet_pattern_research.md", "replacements": [{"old_string": "\"经典游戏例子\"中标注为\"常识\"的条目(如\"东方各作螺旋遍地\"\"雅雅…\"),来自模型通用知识,**没有在本轮调研中逐条核实**,读者如需引用请自行在对应游戏攻略中确认。", "new_string": "\"经典游戏例子\"中标注为\"常识\"的条目(例如\"东方各作螺旋遍地\"\"芙兰朵露星弧破碎\"等),来自模型通用知识,**没有在本轮调研中逐条核实**,读者如需引用请自行在对应游戏攻略中确认。"}]}, "ts": 1787459619034}, {"type": "progress", "id": "call_881806772c334794ba09e781", "tool": "todo_update_task", "status": "running", "args": {"completed": true, "task_indices": [5]}, "ts": 1787459622283}, {"type": "progress", "id": "call_881806772c334794ba09e781", "tool": "todo_update_task", "status": "completed", "args": {"completed": true, "task_indices": [5]}, "ts": 1787459622284}]}}