unity寻路标点遇到的坑

unity寻路标点的坑

最近项目程序要求在3D软件中标出一条道路的坐标点,必须要Y轴向上Z轴向前。这听着好像很容易不就标点嘛,但事实上,如果一条道路上要标几百上千个点,直道还好说,可是弯道的话,人工这么一个个摆。。。这个工作量,再见好吧。所以美术小姐姐必须要吐槽一下程序员,就不可以用iTween插件吗- _ -||

一坑

首先想到的是路径动画的方法,先在Maya里画一条曲线
unity寻路标点遇到的坑切换到 动画 模块,在 约束 菜单中找运动路径——>链接到运动路径
unity寻路标点遇到的坑注意点设置为跟随,设置为跟随以后,模型的旋转方向会跟随曲线的切线方向旋转(坑就从这来了),可以设置哪个轴向上和向前
unity寻路标点遇到的坑

注意Maya系统默认动画会有一个缓进缓出的效果,这样会导致动画不是均匀的播放

解决办法是:在首选项中,选择动画,——>切线,将默认入切线改为线性,默认出切线改为线性。或者在动画曲线编辑器中,把动画曲线改为线性
unity寻路标点遇到的坑动画做好后就可以直接用可视化菜单里面的,动画快照生成模型了。嗯到这里看似很完美,
unity寻路标点遇到的坑

然而问题来了- -||
maya的运动快照生成的是一个组,里面物体的坐标都在组的中心。
unity寻路标点遇到的坑
这样生成的模型的方向是对,但是轴不对,而且我们前面明确了,程序需要的是坐标轴而不是模型。居中枢轴后的坐标轴是这样的
unity寻路标点遇到的坑可以看到坐标不沿切线方向,而且无论是世界坐标还是对象坐标都是这样,所以第一种方法弃之

二坑

然后换一个软件,用3Dmax来做。
前面的步骤跟Maya的步骤类似,这里不赘述。关键还是轴的问题
使用工具菜单里面的对齐,间隔工具。选择模型后,设置好参数
unity寻路标点遇到的坑然后拾取曲线,点应用
max这样生成的模型比Maya的有一个好处就是模型的坐标轴都在各自的中心,不需要居中。
但还是有一个坑,那么坑二来了- -||
不单是我遇到了这个问题,很多人都遇到过,唉真希望这软件的工程师赶紧优化一下吧
下面转载一位仁兄的博客,他对这一问题描述得很详细
链接

3dsmax导出模型到unity时导出设置中的轴转化

导出模型时都是在导出设置中将轴转化改为Y轴向上,因为unity的轴向是Y轴向上,而max是z轴
所以在导出时要设置Y轴向上
unity寻路标点遇到的坑

但是不管设置是z还是y向上,到unity中都是一样的,都还是z轴向上,也不知道这个轴转化有什么用,上面是z向上导出的,下面是y向上导出的,没有什么区别- -
所以,需要在进行间隔工具前,先把模型处理一下,点层次,点仅影响轴,然后将模型的轴旋转90°,居中旋转轴,不居中也许会出现很奇怪的效果
unity寻路标点遇到的坑本以为这样总该可以了把,然而并没有,选择这一堆生成出来的模型会发现,这些生成的模型的轴还是不对的。所还需要旋转这些模型的坐标。
先全选所有的模型,然后改变模型的轴心,改为以自己为轴心unity寻路标点遇到的坑然后点仅影响轴,旋转到正确的位置。
unity寻路标点遇到的坑将绿色的Y轴旋转向上,Z轴向前,关闭仅影响轴就可以了
导入unity后,看到z轴还是没有沿切线方向,将unity的坐标从global切换到local就对了,终于搞定了。