仿赛马比赛,8匹马在赛场上跑一圈,按系统预生成的结果名次演示。
打算用贝塞尔曲线之类实现按路径跑,可是会发生马重叠在一起,特别在拐弯的时候,有什么好的实现方法呢?用的是3D模型场景

仿赛马比赛,8匹马在赛场上跑一圈,按系统预生成的结果名次演示。
打算用贝塞尔曲线之类实现按路径跑,可是会发生马重叠在一起,特别在拐弯的时候,有什么好的实现方法呢?用的是3D模型场景

啊,没看过赛马,不是只能在自己的道跑么。。。
赛马不是像田径场那样分道的,如果分道跑就很好实现了。 
这个可以分
不分赛道的话 一个3d寻路导航应该可以实现了navmesh寻路 就是有点大
如果你是要做一个赌马游戏,那关键应该是按照预先的顺序跑出结果
每匹马都有各自的跑道,各自不做碰撞检测,只做深度遮挡排序。
模拟跑:
先循环执行跑马逻辑,直至所有马抵达终点,记录关键帧数据(每匹马水平速度、垂直速度、持续时间)。注意,这里不需要播动画,只是循环运算数据,得出结果。
真实跑:
模拟跑结果与预期排名做比较,把不符合预期名次的马数据进行交换,使符合排名预期。在update里,利用交换后的模拟跑数据运算并渲染,就是符合预期的动画了
整体思路类似即时战略的Replay
需求是模拟真实赛马比赛,不分道,拐弯的时候每匹马都会抢占内湾。想不到怎么演示好了 
用贝塞尔曲线呗,每局开始把路径计算好,然后播放就行了
加上刚体分组就不重叠了,想超越只能跟真实赛跑一样从外道超越
RVO…
初始每匹马各占一道,比赛开始后每匹马每隔N秒变换一次水平速度X、垂直速度Y,并记录下来
N、X、Y都是伪随机数
这样就可以表现出互相抢道的效果,并不是自始至终都只在自己跑道上
实现这个就已经可以模拟真实赛马画面了
你一定要实现碰撞,只要简单的矩形检测就行,外道不能挤压内道
这样会稍微复杂一点,个人觉得没必要
我认为用rvo2 已经足够, 在已知全程路径的情况下, 每匹马都会选择位移或减速避开完全满足需求, 只需要定时更新每匹马的速度
我问了一下AI:
Context Steering Behaviors (上下文导向行为)是一种用于游戏AI的决策系统,特别适用于需要精确控制和复杂行为的场景,比如赛车游戏。它的核心思想是通过 上下文地图 (Context Maps)来指导实体的行为,而不是直接依赖传统的 导向行为 (Steering Behaviors)。以下是它的详细描述:
总结来说,Context Steering通过上下文地图和子槽位移动机制,提供了一种高效、精确且易于维护的行为决策系统,特别适合赛车游戏等需要复杂行为控制的场景。
厉害,总结这么到位。
感觉各位提供的思路,我都尝试去看看
感觉各位提供的思路 
ai干这活强啊,直接把项目喂给ai让它写个creator的ts版本是不是也可以 
你会发现写出来后跑不了, 让ai修, 越修越奇葩, 最后还是自己去修bug 
想了一个:各位看看行不行
用二维数组做一个地图,不用考虑贝尔塞,你地图数据设置好了,马儿自然是围着圈跑。寻路算法修改一下,只能顺时针方向跑(主要就优化这里)
考虑碰撞,马跑到一个格子,就把这个地图格子数据设置不可经过,离开的时候再设置可经过,实时寻路,只需要寻下一个位置就行(只寻一个位置,计算量也不大),因为你的游戏地图决定了,一定能寻到路。后面的马儿寻路的时候,就不会挤到一个地方