mirror of
https://github.com/Leo501/CocosCreatorTutorial.git
synced 2026-05-08 06:38:37 +08:00
相机跟随
计算目标节点的前向量(世界坐标下)
节点当前四元数=获取世界坐标系下的旋转()
向向量=向量四元数乘法(节点默认前方向,节点当前四元数)
向向量=向向量.将当前向量归一化()
计算摄像机的向前四元数
摄像机前向量=摄像机位置-目标节点位置
摄像机节点前向量=摄像机前向量*-1
角度四元数=根据视口的前方向和上方向计算四元数()
摄像机节点角度四元数=角度四元数
计算跟随距离
CameraPos=TargetPos-TargetForward*hDist+targetUp*vDist;
摄像机位置=目标节点位置-目标节点单位前向量*水平距离+目标节点单位上向量*垂直距离
计算弹簧
理想位置=计算理想位置函数()
相对差值=实际位置-理想位置
加速度=-1*弹性系数*相对差值-阻尼系数*当前速度
速度=速度+加速度*间隔时间
实际位置=实际位置+速度*间隔时间
参考
- https://mp.weixin.qq.com/s?__biz=MzI1Nzk1MzExNw==&mid=2247485617&idx=1&sn=839880f5200bbf0376f1885c997a791d&chksm=ea0ed483dd795d950cbfe2150fb02a5deece940731ce1e240936c2b69cfc44ecdd53d546bb09&cur_album_id=1342270984425996289&scene=190#rd
- github https://gitee.com/lamyoung/cocos-creator-3d-examples/blob/master/springCamera/assets/src/SpringCamera.ts