骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

搜索
购买CDKEY 小黑盒加速器
查看: 783|回复: 3

[经验与教程] 关于用animate长距离瞄准类运动的缺陷和相关处理经验方法

[复制链接]

212

主题

1033

回帖

1049

积分

子爵[版主]

Rank: 7Rank: 7Rank: 7

UID
2893127
第纳尔
14847
精华
0
互助
93
荣誉
21
贡献
325
魅力
1382
注册时间
2017-11-5
鲜花(431) 鸡蛋(0)
发表于 2023-5-4 22:13:15 | 显示全部楼层 |阅读模式
本帖最后由 vegetto 于 2023-5-4 22:23 编辑

假如一个物体是a,动态获取的位置坐标为pos1,一个物体是b,动态获取的位置坐标为pos2,如果是用animate的op强制a运动到pos2,且两者之间相距距离较长并且animate最后一个要填的控制运行速度的完成时间参数过较大。实际上很多时候我们会发现这个轨迹很飘逸怪异,不太满足一些精致仪器比如导弹之类的轨迹需求。
首先要知道坐标的概念是一个矢量它是有方向的,所以轨迹奇怪的原因在于:
Animate运动本来是在一定的时间范围内系统根据自己的分析分解缓慢构造匀速运动。但是由于运动起点和终点之间两个坐标点可能存在距离较远,并且坐标的矢量朝向相差较大甚至反向的情况,
所以系统会产生三种运动的复合去先试图完成远距离瞄准:
1.平移
2.结合平移通过物体位置坐标面向的转向,来调整去面向目标的倾向,可以类比公转。
3.通过将自身原位旋转,使自身坐标位置的矢量方向和目标位置的矢量方向大致趋于同向,类似自转。


但是,由于系统不会智能的处理这一切,他并不会考虑先减缓一二两种运动,先原地把自身转向目标,然后在平滑的曲线前移运动。也不考虑放弃自身的自旋,先通过前进加整个身体按前进方向转弯的方式调头去瞄准目标。
当三种运动没有侧重在一起复合的时候就会互相干扰,产生了一些反复螺旋式的运动轨迹,主要是对于起点和终点坐标距离较远且面向几乎反向的情况。

所以说针对这种情形,我们不能完全放任animate直接全过程去校准目标,也不必完全放弃它而自己模拟。而是要分段控制,而分段的一个重要指标就是控制"面前"和″统一面向″,通俗来讲就是我面前能看到他并且他用屁股对着我。
我们首先要做的就是将我上面所说的三种运动形式,侧重一两点,在运动的起点和终点方向相差较大距离较远的时候,先根据运动主体自身的坐标将其通过自转或者是公转加平移的方式(即animate通过pos1的变换)先转向到保证起点和终点的坐标矢量oxy面夹角在180度内且z轴矢量均基本竖直(也就是判断两个坐标矢量的前后关系),然后当满足这一大致的朝向关系之后,在放任animate (pos2的变换)的追踪型animate,如果还需要经过抛物线的过程,需要考虑抛物线的上升阶段通过pos1变换animate,下降阶段到一定程度在给pos2变换的animate来减少运动最后阶段对校准精度要求高而产生的直接坐标计算用脑子。
然后注意pos2要在保证pos1与其夹角控制在面向可见的阶段后对pos1的角度复刻+修正,因为上面说的,当你运动到一个坐标的时候,运动的最终目的不仅是到他这个xyz的坐标值点,并且要和这个目的地坐标的矢量方向一致,所以如果你只是一板一眼的得到了你的目标的坐标,就开始对他锁定式animate,就会导致目标对象如果是面朝着你看着你时,你发射运动的物体比如说导弹就会倾向于用他的屁股去追踪目标,所以要对目标依据运动者的坐标方向角来修正。
此外,对于终点目标处于高速移动的动态位置状态时,运动主体的运动控制animate pos2变式的控制依旧可以采用高频触发器来修正调节,注意把后面控制完成时间的参数用两点之间的距离除以速度来控制动态变化的速度即可。

评分

参与人数 1第纳尔 +10 互助 +1 收起 理由
agjib + 10 + 1 您的帖子很有价值!

查看全部评分

31

主题

210

回帖

187

积分

见习骑士

Rank: 3

UID
2462463
第纳尔
1587
精华
0
互助
23
荣誉
0
贡献
0
魅力
83
注册时间
2015-3-3
鲜花(58) 鸡蛋(0)
发表于 2023-5-14 08:01:05 来自手机 | 显示全部楼层
多谢多谢!我研究研究来自: Android客户端

212

主题

1033

回帖

1049

积分

子爵[版主]

Rank: 7Rank: 7Rank: 7

UID
2893127
第纳尔
14847
精华
0
互助
93
荣誉
21
贡献
325
魅力
1382
注册时间
2017-11-5
鲜花(431) 鸡蛋(0)
 楼主| 发表于 2023-5-14 09:57:13 来自手机 | 显示全部楼层
补充说明一下这个使用场合:上面我只是简单说了一下相关精密仪器比较含糊。补充下,主要用于需要频繁传递东西和定点打击的,运动的物体运行轨迹基本处于悬空状态时,比如打球的传球投球,目标是高速动态状态比如我龙珠两个高速移动的人互相对打这种情况来自: iPhone客户端

31

主题

210

回帖

187

积分

见习骑士

Rank: 3

UID
2462463
第纳尔
1587
精华
0
互助
23
荣誉
0
贡献
0
魅力
83
注册时间
2015-3-3
鲜花(58) 鸡蛋(0)
发表于 2023-5-15 09:15:37 | 显示全部楼层
换了电脑终于能回帖了。。。关键我卡在"先根据运动主体自身的坐标将其通过自转或者是公转加平移的方式(即animate通过pos1的变换)先转向到保证起点和终点的坐标矢量oxy面夹角在180度内且z轴矢量均基本竖直(也就是判断两个坐标矢量的前后关系),"这一步了,怎么保证夹角在180度内呢?多谢多谢
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

Archiver|手机版|小黑屋|骑马与砍杀中文站

GMT+8, 2024-12-27 12:07 , Processed in 0.111258 second(s), 25 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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