以下两种导入方法哪一种是正确的呢?两者又有什么区别?
问题:
通过unity导入(直接拖进去)。 2.在底层目录,Ctrl+C/V复制过去。
从结果看,我这两种操作,都会影响Model项里面的File Scale参数,并且两种操作影响的结果,数值都不一样。直接导入的结果是0.01,手动复制的则是0.0254。
这个参数是灰色的,无法手动修改。如下图。
该模型是我从AssetStore中下载的,所以我需要修改模型,当在max中改完,再次导入unity后,发现模型的大小已经被改变了,变小了。
我以为是max导出设置的问题,也清楚两个软件之间的单位不同,
但是我发现,即使是unity中的原始模型文件,再次通过上面的两种操作,重新导入(复制)一次;在没有通过max修改的过程中,模型仍然变小了。
不过,如果用复制的方法,把“A.FBX”和“A.FBX.meta”一起复制,那么模型的大小比例都是完全正确的,没有发生变化,和原始文件一样。
所以,我就很疑惑,怎么才能正确导入模型文件呢(fbx)?
为什么同样的模型文件,在没有做任何修改的情况下,再次导入一遍就会改变大小?
为什么连着.meta一起复制,就会没有问题?.meta文件的作用到底是什么?
(我以为.meta仅仅只是作为一个文件的标识,难道还包含着文件信息?)
本人新手,unity很多都不明白,问题有些多,先在此谢过各位了!
1.回答1
在 Maya 或者3DMax 里导出时,单位设成米或厘米,不要用英寸。
造成这个原因多半是 fbx 有好几个常用的格式标准,它们之间不兼容导致的,操蛋的 Autodesk!!
我们模型一般都是在Blender3D里做的,外来的模型也都先导入到 Blender 里做统一的整理。标准这个东西很麻烦的,我们以前喜欢直接在 Unity 里用 Blender 的源文件,后来遇到各种不兼容,现在都是统一导出 fbx 再复制到 Unity 里,所以一直没有太多问题。
Fbx 导入 Unity 时,优先考虑复制粘贴的方法,建议不要拖动。
随便搜了一下,这里有答案:
File Scale FBX
帖子里也说到.meta文件会影响到 filescale 的值,至于 Unity 官方为什么这么设计就不得而知了。
不过解决方案依然不完美。只能先这么凑合着用,在3D 软件里建模时多迁就一下。记得Unity 里所有的 fbx的 filescale都保证为统一的值,一般是0.01。
2.回答二
两种导入方式应该是一样的啊?
unity 不会修改fbx文件,所有在Unity中设置的属性都保存在meta文件里。
如果没有meta文件,那么Unity会自动按默认设置生成一个。
关于3dsmax的单位,真正有效的是1 unit=xxx
缩放比例是来自导出单位米和1unit对应的单位。如果1unit是英制单位,导出用米,就会有0.0254这种奇怪的比例了。
(如果统一用英制也是整数比例,如果你把unity的单位也当英制看的话)
设置好3dsmax之后,把购买的模型在3dsmax里统一一下尺寸再导入unity里就肯定正确了。
3dsmax的设置我以前写过一个。
=======================================
3dsmax导出Unity3D
1.单位设置
系统单位比例设置为1unit=1厘米
导出时单位选择厘米
2.导出前重置变换:
消除缩放比例
3.Y轴方向
3dsmax是z轴朝上,Unity3D是y轴朝上;
默认设置导出到Unity3D中,会有-90的旋转;
注:重置变换会归零对Y轴方向的修改,所以这步要在导出前最后一步做;
导出前在3dsmax中调整轴向
默认为这样;
转一下,X转90把Y轴朝上,Z转90把Z朝前
注:导出时的Yup,Zup没有实际影响
3.回答三
因为MAX之类的建模工具一般是一个单位一厘米。可是Unity里面是一个单位一米。所以导入后unity默认缩放比例为0.01。
至于为什么底层复制会是0.254就不得而知了。
建议使用拖拽导入的方式。如果导入的资源有问题,在拖拽导入的时候Unity会提示导入失败的原因。而且可以在project面板直接打开树状图选择要把文件导入哪。若是打开文件夹直接复制到工程目录,一是麻烦,得多开一个文件夹;二是有些unity会自动生成或者自动关联的东西,如果从文件夹Ctrl+C/V复制过去,它可能就不会创建了。比如常见的导入模型贴图丢失。
拖拽导入的时候有几个小点要注意一下:
1.拖拽的位置:
假如要导入模型,有的人喜欢拖拽到红框的位置,因为看的到上一层文件夹
但是这红框太小了,一不小心手抖就可能导入到其他文件夹去了,所以我建议拖拽到这里:
地方大,不容易错。
2.拖拽成功后记得要看看属性面板,有些虽然导入进来没报错,但还是不能用的。建议所有模型、视频、音频、图片资源导入后稍微检查一下属性。以此避免代码写了一大堆,结果死活播放不出声音,最后发现是音频属性有问题的悲剧发生。
比如这个材质,属性面板完全看不到属性(我拿了个5.X版本的人模导入到4.X,材质就完全不能用了)。
而正常的材质属性是这样的:
题主图片里的file scale来源可能是 在MAX中显示单位为米 而系统单位是英寸
“与原点之间的距离”的值与题主所提到的值可以说是相呼应的, 不过MAX文档对于这个东西的解释我没有看懂~~~ 但是如果系统单位改为米的话 那么这个值就会是“1” 这个我倒是验证了。