利用blender修改模型的局部坐标系(包括坐标系原点和方向),导入unity方便模型控制。
此教程在于给大家详细介绍解决方法,所以会讲各个方面都讲得很详细,有其他问题可以评论区交流。
最近在做一个unity机械臂的操作的教程,突然遇到了一个难题:
一个机械臂杆件从blender中转化成fbx后导入unity之后,默认的y轴方向不是我想要的,但是自己又不想把它放在其他的空物体下作为子物体,我就想着blender里面能不能改模型局部坐标系的y轴方向。但搜到的教程都只教了怎么改局部坐标系原点位置。没说坐标系的方向怎么改。
目录
2.教程-解决问题
1.问题描述
a.
blender中的模型如图所示,各位应该都不陌生,最头疼的问题,现在我想要将原点设置为机械臂模型的旋转关节点位置。很多教程其实都有讲,就是使用游标工具,然后选中自己想选的位置,再点击转化原点功能就行了。
b.
接下来我们将位置全都归零,再来看看效果。但是你会发现不怎么正,我想让绿色箭头所指的方向是机械臂的方向,这咋办。我最开始的方法是在全局坐标模式下对模型进行旋转。看起来就变正了,但是你导入到unity后,发现还是不行。
c.
unity中,导入模型,结果就是如下所示,模型位置和角度都归零后,神奇的歪了,我希望它变正啊。后来发现我在blender里面看到的是全局坐标系,改成局部坐标系就能看到一样的问题了。
痛苦万分,机械臂源码里面角度很多,这样如果每个模型都不正的话,那得该很多,而且逻辑也容易错乱,并且源码里面牵扯到子对象选择,所以我也不想去通过在unity中改坐标原点方向了。后来找了很多教程都没找到方法,最后我自己自己一个个试过去,真让我试出来了,废话不多说,上教程。
2.教程-解决问题
如下图所示,先把模型摆到我们需要的角度以及位置,然后我们直接就点击【物体/应用/全部变换】,就可以啦。上效果。
最后给大家展示一下导入的界面,我只选了网格,然后变化方向不变,但是unity和blender里面的x轴方向是相反的。另外我还说一下,我最近学会的,就是不直接拖入模型到场景里来,而是直接在创建中创建一个空物体,然后再把模型的网格和我们创建的材质拖到空物体上,这个空物体就是一个模型了,感觉可以解决一些潜在问题呢。
Pepe152: 感谢大佬解惑就是说按照文章中转换成世界坐标后就可以避免那种情况了嘛
咸鱼缸: 是这样的,面前物体的x,y坐标传到后台后,会立马结合当前的头部姿势以及mr深度相机计算其世界坐标系,转身后同样如此,也就是后台不保存物体的平面坐标(因为没有意义,如你所说任何物体的平面坐标都可以是在画面中心),后台将平面坐标转化为世界坐标再保存
Pepe152: 大佬你好,我有一个问题请教一下,你这个yolo识别后的坐标应该物体在一张图片上的坐标吧,假设面前有个物体它在画面中心那么这边传给HoloLens的坐标是(x中心,y中心),那么我转个身后又识别到一个物体在画面中心,那么传给HoloLens的坐标还是(x中心,y中心),原本这两个物体在空间里是不重合的,但传输给HoloLens的坐标是一样的,在HoloLens端看到的就是两个物体的标签重合了,像这种情况请问会遇到吗
咸鱼缸: 那手部能和UI交互吗
Hello@bug: 不知道为什么我在实机上获取不到手部聚合器,即使一开始手就在视线以内。