diff --git a/README.md b/README.md new file mode 100644 index 0000000000000000000000000000000000000000..d824c6a2bc809812c92d3a95c962f6a2c91d74ef --- /dev/null +++ b/README.md @@ -0,0 +1,79 @@ +--- +title: 腱鞘炎 3D 医学科普动画 +emoji: 🖐️ +colorFrom: indigo +colorTo: red +sdk: static +app_file: index.html +pinned: false +--- + +# 腱鞘炎 · 3D 人体解剖科普动画(网页实时渲染版) + +> 类型:医学科普 + 3D 人体解剖动画 | 时长:约 80–90 秒 | 画幅:9:16 竖屏 | 风格:真实医学 3D、清晰、干净、专业、易懂 +> 所有解剖结构、人物手部、器械均为**原创程序化 3D 医学示意模型**,不使用任何医院、品牌、教材或受版权保护的现成素材。 + +--- + +## 一、项目目标 + +1. 在网页中直接播放一部完整的 3D 动画视频(不是预渲染 mp4),含 **旁白配音 + 背景音乐 + 音效 + 字幕**。 +2. 网页内 **浏览器本地渲染导出 MP4**(WebCodecs 编码,H.264 + AAC/Opus),可选 **24 / 30 / 60 fps**,输出 1080×1920。 +3. **适配手机竖屏观看**:播放器自动铺满竖屏,支持全屏、点击暂停、拖动进度。 +4. 提供四大平台(小红书 / 抖音 / 哔哩哔哩 / 微信视频号)可一键复制的 **标题、描述、话题标签**,并按各平台规格生成 **封面图**(PNG 下载)。 + +## 二、技术方案 + +| 模块 | 技术 | +|---|---| +| 3D 渲染 | Three.js(WebGL),程序化建模:手部皮肤、骨骼、肌腱、腱鞘、器械、生活道具 | +| 分层透视 | 皮肤「深度预写 + 半透明」双通道渲染,实现透明皮肤无接缝;骨骼 / 肌腱 / 腱鞘三层独立淡入淡出 | +| 疼痛表达 | 统一红色发光(加色混合 Sprite + 肌腱着色器中的摩擦热区 黄→红) | +| 肌腱滑动 | 每帧按关节世界坐标重建 Tube 曲线,纹理 UV 随拇指屈伸偏移,表现肌腱在腱鞘内滑动 | +| 时间轴 | 纯函数 `timeline(t) → 场景状态`,同一时刻永远得到同一画面(保证导出逐帧一致) | +| 2D 叠加层 | Canvas 2D 绘制字幕、关键词、标注、超声画面、四宫格、分屏标签 | +| 旁白 | 中文神经网络 TTS 预生成逐句音频(构建期生成,存于 `public/audio`),句级精确字幕对齐 | +| 音乐/音效 | Web Audio `OfflineAudioContext` 程序化合成:氛围铺底和弦、低频脉冲、转场 whoosh、疼痛刺痛音、扫描提示音、松解释放音;旁白时自动压低音乐(ducking) | +| 导出 | mediabunny(MP4 封装)+ WebCodecs `VideoEncoder/AudioEncoder`,逐帧离线渲染,不依赖实时速度 | +| 封面 | 同一 3D 场景按 4:3 / 3:4 / 16:9 重新取景渲染 + 排版标题 | + +## 三、分镜大纲(11 个镜头 + 结尾互动) + +| # | 镜头 | 关键画面 | +|---|---|---| +| 1 | 疼痛开始 | 手部特写,拇指活动、抓握 → 疼痛抖动 → 推镜至腕部拇指侧 → 红色发光 → 皮肤半透明 → 骨骼 / 肌腱 / 腱鞘逐层出现 | +| 2 | 腱鞘炎发生了什么 | 肌腱在腱鞘中顺畅滑动 → 腱鞘增厚、空间变窄 → 摩擦区 黄→红;横截面插图;关键词「腱鞘增厚 / 空间变窄 / 活动疼痛」 | +| 3 | 为什么一动就疼 | 抓、捏、拧瓶盖三个动作,内部肌腱同步运动,红区随动作增强,镜头跟随疼痛点 | +| 4 | 哪些人更容易出现 | 键盘鼠标 / 工具抓握 / 家务拧提 / 抱孩子 四场景快切,红点闪现 + 关键词 | +| 5 | 不要一上来就治疗 | 3D 手旋转 → 锁定疼痛区 → 肌腱轨迹 → 超声画面(肌腱 / 腱鞘 / 狭窄位置) | +| 6 | 常见治疗方法 | 四宫格:减少抓握 / 拇指腕部支具 / 局部治疗示意 / 手术松解示意 | +| 7 | 进入小针刀 | 腱鞘放大,红区标记狭窄,原创器械从皮肤外缓慢进入 | +| 8 | 治疗过程 | 超声定位白点 → 消毒 → 局部麻醉 → 器械到达目标区域松解(3D 剖面,无血腥) | +| 9 | 松解前后对比 | 左右分屏:治疗前(狭窄、受限、红)vs 治疗后示意(变宽、顺滑、红区减弱) | +| 10 | 从疼痛到恢复 | 拇指困难 → 轻微活动 → 抓握 → 拿杯子 → 用手机 → 自然活动,红区渐淡 | +| 11 | 记忆点 | 再次进入 3D → 拉远恢复完整手部 → 红区消失 → 金句「手越疼,越不能只靠硬扛。」 | +| 尾 | 评论区互动 | 「评论区告诉我,是抓、捏、拧,还是抱孩子?」 | + +## 四、实施步骤(每完成一大步推送一次到本 Space) + +1. ✅ 编写本计划 README,初始化 Space(static)。 +2. ⏳ 生成中文旁白逐句音频 + 时间轴清单(`timeline.json`)。 +3. ⏳ 程序化 3D 手部解剖模型:皮肤 / 骨骼 / 肌腱 / 腱鞘 / 关节骨架绑定 / 疼痛发光 / 器械与道具。 +4. ⏳ 分镜时间轴:11 镜头 + 结尾的相机运动、姿态、图层、字幕、HUD。 +5. ⏳ 程序化音乐与音效、旁白混音、ducking。 +6. ⏳ 播放器 UI(手机竖屏适配、全屏、进度条)+ MP4 本地导出(24/30/60fps)。 +7. ⏳ 四平台文案(标题 / 话题 / 正文,严格字数校验)+ 封面生成与下载。 +8. ⏳ 生产构建、检查,推送最终静态站点。 + +## 五、目录结构(推送到 Space 的内容) + +``` +index.html, assets/ ← 构建产物,Space 直接可运行 +audio/ ← 旁白音频 + timeline.json +src/ ← 源码(engine / scenes / audio / export / covers / copy) +README.md ← 本文件(计划 + 进度) +``` + +## 六、进度日志 + +- [x] Step 1:计划与大纲完成 diff --git a/index.html b/index.html new file mode 100644 index 0000000000000000000000000000000000000000..b3b8a8f1528e2456759f9c880a4e8f91aca94b08 --- /dev/null +++ b/index.html @@ -0,0 +1 @@ +
项目制作中,进度见 README。
项目制作中,进度见 README。
+ Start your crypto project here! +
+Loading dependencies...
+Reloading automatically
+Component Error
+{this.state.error.message}
+