DNF阿拉德游戏论坛

 找回密码
 立即注册
查看: 4218|回复: 0
打印 上一主题 下一主题

[PVF] 台服DNF关于技能nut动态旋转的一些思路写法探究

[复制链接]

签到天数: 1 天

[LV.1]无主之魂

2

主题

2

帖子

11

积分

初入阿拉德

Rank: 1

积分
11
怒气
1
声望
4
战力
0
跳转到指定楼层
楼主
发表于 2020-11-8 18:39:54 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
动态旋转并不是ani写死的旋转,而是,他能根据不同的坐标能有不同的旋转角度。诸如
疾风骤雨,男冰洁的冰枪,瞎子的雷云
等等要使用动态旋转。这个直接可以在冰魄弓里抄到写法










如果是使用了accel写法的移动,他有很明确的开始坐标和最后结束坐标的概念,所以可以引用
编写好的函数,将开始坐标和最后坐标写入参数可获得旋转的参数然后
旋转
  1. function getRorateAngleByCurrentPos(obj,x1,y1,z1,x2,y2,z2)
  2. {
  3. if(!obj) return;


  4. local X = x1;
  5. local Y = y1;
  6. local Z = z1;


  7. local posX = x2;
  8. local posY = y2;
  9. local posZ = z2;


  10. local offset = posX - X;


  11. local distance = sq_GetDistance( X, Y - Z, posX, posY - posZ, true);


  12. local w = posX - X;
  13. if(w < 0) w = -w;


  14. local h = (posY - posZ) - (Y - Z);
  15. local width = sq_Abs(posX - X);
  16. local angle = sq_Atan2( h.tofloat(), width.tofloat());


  17. {
  18. angle = -angle;
  19. }


  20. local nRevision = distance;


  21. local cos = nRevision.tofloat() * sq_Cos(angle);
  22. local sin = nRevision.tofloat() * sq_Sin(angle);


  23. local nX = sq_Abs( cos.tointeger() );
  24. local nY = sq_Abs( sin.tointeger() );


  25. return angle;


  26. }
复制代码

函数(旋转)


这样就能完成效果
但是对于只有开始坐标,根本不知道最后坐标的,典型的ptl移动,破冰飞刃,
做法是,在接收数据那里存储一下开始坐标。而后在proc里,当特效运行超过了50毫秒后,取得坐标
,和存储的开始坐标进行运算,得出旋转坐标然后再设置,但是这个函数的旋转,他是有朝向问题的。
而破冰飞刃释放后所有的朝向都是玩家朝向(往玩家后方射击但是朝向还是玩家朝向,所以会导致,
明明往后射,结果旋转却是往前的窘况,所以比对x轴坐标,使其在旋转180度为反向。)


而后是男法的雷光链写法,用于了瞎子天雷波动剑




然而这个写法会导致当两个被链接的目标距离过远时,链子拉的老长的问题的。
所以在后期也是考虑要舍弃的写法




(玩家和怪物的链子、怪物与怪物之间的链子,会很明显的发现不一样)
而目前用于的,我发现的写法,是
一个ani旋转到对应的坐标,然后只改变ani的x大小,不要改变y轴大小,用于实现了怪物的线性警示条




和,剑鬼的一个技能效果,目前写法也尝试在逐渐用于其他地方
(瞬移至剑鬼替身身边的效果)








还有就是关于尾巴、拖尾(tail)的写法想法,目前也在逐步做尝试。



这类写法目前的思路可能就算贪吃蛇写法
因为accel写法的移动效果,很容易确定过去的路程
写法大致是,假定5个尾巴的临时特效,然后最主体获得10毫秒之前的坐标,和自身坐标
两个坐标为运算进行旋转而后第一个尾巴设置10毫秒之前的坐标。(获得n毫秒之前的坐标,均以主体为主)
第二个尾巴,10毫秒之前的坐标和20毫秒之前的坐标,进行旋转,连线,设置20毫秒之前的坐标,依次类推
第三个尾巴,20毫秒之前的坐标和30毫秒之前的坐标,进行旋转,连线,设置30毫秒之前的坐标。即可
当然,这个10毫秒越短,就越平滑。越长,就越拖尾越长


这些都是很细节写法,不过,细节写法也挺重要的,不然技能看起来可能从某方面会很尬
“邪恶如同灯光下的阴影,即使看不见也会存在。”——歌兰蒂斯
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|DNF阿拉德游戏论坛 ( 渝ICP备13007431号1 )

GMT+8, 2024-4-28 14:38 , Processed in 0.201086 second(s), 38 queries .

快速回复 返回顶部 返回列表

阿拉德大陆的勇士们!今天也会是充满希望的一天!