AX 爱鲜报

Elemental Sandbox 元素技能特效沙盒

基于 Three.js、Vite 与手写 GLSL 的技能射击特效沙盒,包含六种程序化生成的法术特效、两种瞄准方式,以及 938 个可实时调节的参数滑块,支持暂停后逐帧调整视觉效果。

爱鲜报评分

0.0

0 人评分

963

星数

否

中文

JavaScript

主语言

是

活跃

2

贡献者

人工分析

EDITORIAL

推荐理由

这是一个纯粹用代码生成视觉特效的 Three.js 项目,没有任何贴图、精灵图或磁盘网格模型,所有冰晶、闪电、光束、粒子都由着色器和程序化几何体实时生成。938 个实时滑块让开发者可以暂停模拟后逐帧调整轮廓、配色和时序,非常适合学习 WebGL 着色器编程和程序化特效。

适用场景

  • 学习 Three.js 与 GLSL 着色器编程
  • 游戏技能特效原型设计与验证
  • 程序化几何体与 GPU 粒子系统研究
  • 实时 VFX 参数调优与视觉参考
  • Web 端 3D 交互演示与教学

优点

  • 完全程序化生成,无外部贴图或网格资源依赖
  • 938 个实时参数滑块,支持暂停后逐帧调整
  • 六种技能特效覆盖线型施法与远距离施法两种瞄准方式
  • 代码结构清晰,使用 Vite 构建,开发体验流畅
  • MIT 协议开源,可自由用于学习与二次开发

缺点

  • 需要一定的 Three.js 和 GLSL 着色器基础才能深入理解
  • 角色模型依赖 Mixamo 导出的 FBX 资源,需自行准备
  • 项目定位为特效沙盒,不包含完整游戏逻辑或战斗系统
  • 938 个参数虽灵活,但缺乏预设管理,调参门槛较高
上手难度 进阶

Elemental Sandbox 元素技能特效沙盒

一个用 Three.js、Vite 和手写 GLSL 构建的技能射击特效沙盒。项目最大的特点是:你看到的一切都是程序化生成的——没有贴图、没有精灵图、除了角色之外磁盘上没有任何网格模型。

核心特性

六种技能特效

项目包含六种法术,分为两种瞄准方式:

  • 线型施法(Line Cast):按技能键后地面出现类似《英雄联盟》的箭头指示器,随鼠标摆动,点击发射。

    • Q — Frost Lance 霜冻长矛:断裂锋面沿直线冲出,冰晶从地面撕裂而出,近处密集、远端展开成刀刃之墙。
    • E — Storm Lance 风暴长矛:闪电束从手中射出,身后拖曳着闪电丝束,地面留下分支状电灼痕迹。
    • R — Cinder Fall 烬落:燃烧的岩石沿弧线抛射,拖曳光线步进的燃烧尾迹,落地后炸开熔岩裂缝。
    • F — Nova Beam 新星光束:双手蓄光后沿直线释放光柱,白热核心、青色鞘层、金色螺旋带与冲击盘竞速而下。
  • 远距离施法(Far Cast):箭头被一个带有明显粗边界的圆形指示器取代,跟随光标移动,直观展示 AoE 范围。

    • V — Voltaic Snare 伏特陷阱:电流鞭甩出,落地后圆环弹开再收回,紫色光柱从中心撕裂而出。
    • X — Glacial Crown 冰川王冠:寒潮冲向目标点,圆盘冻结至边界,一圈水晶刀刃从地面环绕撕裂而出。

全程序化生成

  • 冰晶是程序化几何体
  • 闪电是顶点着色器完全放置的带状条
  • 陨石是 CPU 上被断裂面切割的二十面球
  • 光束是三个半径上绘制的参数化管体
  • 陷阱的整个笼子是同一条带状条沿四条不同参数路径穿线而成
  • 箭头、瞄准圈、白霜、灼痕和熔岩裂缝都是符号距离场与噪声着色器
  • 雾气、火花、碎片和闪光都是 GPU 粒子

938 个实时参数滑块

每个参数都是实时滑块,模拟暂停时它们依然生效。这是项目的核心设计:用 P 键冻结爆发、打击或燃烧中的某一帧,然后针对静止画面重塑轮廓、配色和时序。

快速开始

npm install
npm run dev

然后打开 Vite 打印的地址(默认 http://127.0.0.1:5173)。

构建与预览:

npm run build
npm run preview

资源说明

public/ 目录下提供六个二进制资源,启动时自动加载:

文件 用途
public/models/Idle.fbx 带骨骼的角色及其待机动画
public/models/diffuse.png 角色颜色贴图
public/models/cast1.fbx 施法动画
public/models/cast2.fbx 施法动画
public/models/cast3.fbx 施法动画——霜冻长矛、根须陷阱和冰川王冠的默认动画
public/hdri/spruit_sunrise.hdr 用于基于图像的光照和冰晶反射的 HDR 探针

四个 FBX 文件都是同一骨骼的 Mixamo 导出,各自携带一个蒙皮网格和一个动画栈。角色来自待机文件;施法文件仅加载其动画片段,随附的重复骨骼在 AnimationClip 被取出后立即释放。

操作方式

输入 动作
Q(或 1) 装备霜冻长矛——再次按下收起
E(或 2) 装备风暴长矛——再次按下收起
R(或 3) 装备烬落——再次按下收起
F(或 4) 装备新星光束——再次按下收起
V(或 5) 装备伏特陷阱——远距离施法,用圆形瞄准
X(或 6) 装备冰川王冠——远距离施法,用圆形瞄准
P 暂停/恢复模拟

适用人群

本项目适合对 WebGL 着色器编程、程序化特效生成 和 Three.js 高级用法 感兴趣的开发者。如果你正在研究如何用纯代码实现游戏技能特效,或者想学习符号距离场、噪声着色器和 GPU 粒子的实际应用,这个项目是很好的参考。

评论

登录后才可评论与评分

0 条评论

  • 暂无评论,来写第一条吧。