- SignalDesk1小时前
实现一个完整、可玩的浏览器实时 3D 互动作品: 《鹈鹕海岸骑行》。 目标不是“一个鸟模型加两个旋转的圆圈”,而是一段用户既能观看、 也能随时接管的海岸骑行小冒险。直接实现可运行作品,不要只交设计文档。 对低风险的美术细节自主决策。 【技术与交付】 使用原生 JavaScript、Three.js 和 Web Audio API。 最终交付一个 index.html,内联业务代码和 CSS,可通过静态 HTTP 服务运行。 允许使用固定版本 CDN 加载 Three.js,核心库与 addons 必须版本一致。 依赖 CDN 时说明需要联网,不得声称完全离线。 所有模型、环境、特效和音频通过程序生成。 禁止使用外部 3D 模型、图片贴图、HDR 环境图、音频文件或预渲染视频。 可以在运行时生成几何体、纹理、着色器效果和声音。 【主角与视觉】 主角是一只可明确辨认的白鹈鹕: 长而宽的喙、明显的喉囊、自然弯曲的颈部、圆润身体、分层翅膀与蹼足。 戴骑行头盔,围红色围巾,骑一辆结构完整的复古自行车。 自行车需要合理连接的车架、前叉、车把、坐垫、车轮、辐条、 曲柄、踏板、链条和车铃。 优先保证轮廓、比例、连接关系和接触点正确,再增加细节。 不要把鸟做成鸭子,也不要用明显断开的几何体拼凑自行车。 采用风格化但有体积感的 3D 美术。 默认呈现温暖黄昏、偏冷海水与红围巾的色彩对比。 主体清晰,地面接触可信,背景不抢主角。 【骑行与动作】 通过统一运动状态驱动动画、声音和仪表,不使用彼此无关的循环动画。 车轮旋转由行驶距离和轮径驱动;曲柄旋转由踏频驱动。 左右踏板相差 180 度,左右腿分别位于车架两侧。 先确定踏板位置,再使用两骨 IK 或等效几何方法求解腿部姿态。 保证脚持续接触踏板,不发生膝盖翻转、腿穿车架或脚悬空。 正常骑行时,翅膀与车把保持合理接触。 区分加速、刹车、换挡和滑行。 滑行时允许车轮继续转而曲柄停止,不能把踏频等同于车轮转速。 提供转向倾斜、轻微身体起伏、跳跃与落地缓冲。 特技可以展翅和短暂抬前轮,结束后平滑恢复正常骑姿。 红围巾使用稳定的柔性模拟,优先采用 Verlet 积分与长度约束。 颈部连接点固定,考虑重力、阻尼和随速度变化的相对风。 不要把围巾做成绕单点旋转的硬板。 【海岸世界】 程序化生成可持续骑行的海岸道路、海面、岸边细节、远景和路灯。 循环复用道路区块和装饰,避免对象数量无限增长。 海浪使用少量不同方向、波长的 Gerstner 波叠加。 根据波形生成合理法线、高光和随视角变化的反射感。 提供连续昼夜循环和时间控制。 天空、主光源、环境光、雾、海面色调、星空与路灯共同响应时间。 不要只换背景颜色而保持场景照明不变。 夜晚仍然要看得清主角与道路。 【玩法与反馈】 支持加速、刹车、变道、换挡、跳跃和展翅特技。 在可见且可到达的位置生成鱼。 普通鱼记 1 分,稀有金色鱼记 5 分。 收集有明确的视觉、声音和计分反馈。 点击鹈鹕会叫,点击车铃会响,点击海面可触发鱼跃出。 闲置后自动骑行和追鱼,玩家输入立即接管。 自动驾驶与手动驾驶共用运动和收集逻辑。 显式暂停、打开菜单和窗口失焦时,不得自动恢复驾驶。 围绕已实现行为设计成就,保存成就和最佳成绩。 不要添加对应功能尚未实现的假成就。 【镜头、音频与界面】 提供自由环绕、后方追随、侧向跟拍、电影展示和角色视角。 镜头切换平滑,避免穿模、遮挡主体和过度晃动。 默认镜头需要同时展示鹈鹕、自行车和海岸。 使用 Web Audio 合成鸟叫、车铃、棘轮声、风浪声与轻量音乐。 音乐节奏随踏频平滑变化,并限制在舒适范围。 用户明确开启音频后再创建或恢复 AudioContext。 提供真正的静音入口,避免暂停恢复后叠加多个音乐循环。 界面简洁,不遮挡主角。 展示速度、踏频、档位、里程、鱼分数、成就进度和世界时间。 提供帮助、镜头切换、截图、全屏、暂停和隐藏界面。 支持桌面键盘与移动端触控。 所有可见按钮必须实际有效。 【实施与验收】 先完成主角可辨认、车架完整、脚踩踏板、镜头好看的最小骑行场景, 再加入环境、玩法、声音和界面。 优先级: 主体与接触关系 > 动作一致性 > 构图与光照 > 环境层次 > 玩法反馈 > 装饰数量。 实际检查正侧面和斜后方骑姿、低速与高速、滑行、特技恢复、 白天与夜晚、镜头切换、收集判定、自动驾驶接管、静音与暂停恢复。 有浏览器工具时,必须运行作品、检查控制台,并保存真实运行截图。 没有执行的测试明确标记“未验证”,不得伪造通过结论。 交付完整 HTML、运行方式、实测情况与已知限制。 1 个帖子 - 1 位参与者 阅读完整话题
- 情报分类:硬件与数码
- 分类依据:内容涉及硬件、数码产品或通信卡
- 信息来源:服务器 / LINUX DO - 最新话题
- 发布时间:2026/9/24 09:34:17
- 暂无回复