
https://proceduralspider.netlify.app/代码地址:https://github.com/majidmanzarpour/threejs-procedural-spider一只能够自我调整动作的程序生成蜘蛛,可以行走于任何地形。它有八条腿,通过封闭形式的逆运动学求解,步态能够即兴发挥,身体能够适应斜坡、墙壁和悬垂物——无需动画片段、骨骼绑定或物理引擎。每一帧都由数学运算完成。使用Three.js构建。特点
- 解析式IK腿部——每条腿都使用一个双骨骼闭合形式求解器(髋关节→膝关节→足部)进行求解。无需烘焙动画,无需IK迭代收敛:一个公式,精确计算,每一帧都适用。
- 即兴步态——双脚扎根于地面,而非身体之上。当身体移动超过一只脚的落脚点时,那条腿会抬起,划出一道弧线,找到新的落脚点,然后再次落下。步频是一种交替步态状态机,因此,当你加速、减速或转弯时,行走节奏会自然地重新调整。
- 地形是一个函数,而非网格——地面是一个封闭形式的高度场,因此蜘蛛可以对任意点的高度和法线进行精确采样。这使得足部落点和身体姿态的调整无比精准。
- 攀爬墙壁和悬垂物——身体的向上矢量与下方表面的法线融合,因此蜘蛛会倾斜到斜坡上,并紧紧抓住陡峭的墙面,而不是卡住或滑动。
- 它的身体可以弯曲——两个体节(头胸部+腹部)通过一个灵活的柄节连接,因此腹部可以在腰部折叠:它可以垂挂在墙上,搭在山脊上,或者因自身重量而下垂。这种蜘蛛像真正的蜘蛛一样灵活,而不是僵硬的肉团。(切换:身体弯曲。)
- 膝关节旋转避障——每条腿都会搜索一系列膝关节方向,并选择能使肢体远离地面和障碍物的方向(可实时调整)。
- 实时调校面板——速度、行驶高度、步高、步频、转弯速度、步幅和膝关节旋转搜索,所有这些都可以在行走过程中进行调节。
- 体积小巧,依赖项少——仅8个模块,约1200行代码,且
three只有一个运行时依赖项。运行速度高达数百帧/秒。 - 桌面和触控——WASD + 鼠标,或手机/平板电脑上的屏幕操纵杆。
工作原理这只蜘蛛从不播放动画。每一帧,它都会根据周围环境重新构建自己的整个姿态:
- 输入→意图。键盘/游戏手柄转化为所需的移动方向和速度。
- 身体控制器。身体转向意图,在地形上前进,并保持目标行驶高度高于其着地双脚形成的支撑面(与
BODY CONFORM),倾斜其向上矢量以与之匹配——因此它可以倚靠斜坡,爬上台阶/边缘,抓住墙壁,并且永远不会陷入隆起的地面。 - 步态状态机。八条腿共用一个交替四足动物式的计时轮。当身体在其上方移动时,一只脚始终固定在地面上;一旦身体伸展一条腿超过其步幅阈值,该腿就进入一个步态周期——抬起、划过地面
stepH,然后落在新的落脚点上。 - 搜索落脚点。新的落脚点是根据分析地形高度和碰撞器间隙进行采样,因此脚会落在真实的几何形状上——包括垂直和倒置的表面。
- 双骨逆运动学。给定髋关节位置、足部目标以及股骨/胫骨长度,膝关节角度可以闭合形式求解(
twoBoneKnee)。通过短距离膝关节旋转搜索,将膝关节平面旋转到最能避免穿透地面/障碍物的方向。 - 摄像机。第三人称跟随摄像机跟随人体移动,并在几何体可能导致画面裁剪时拉近。
一切都是分析性的——地形是一个公式,反向运动学是一个公式,碰撞是距离函数。没有物理求解器,没有骨骼绑定,没有动画数据。
相关案例:然后有大神用它开发了一个游戏,一个网站:
体验地址:https://re-presentation.jp/tool/arachne.html

© 版权声明
文章版权归作者所有,未经允许请勿转载。
