文章目录
Unity 支持多种标准和专有模型文件格式。Unity 内部使用 .fbx 文件格式作为其导入链。最佳做法尽可能使用 .fbx 文件格式,并且不应在生产中使用专有文件格式。
Unity 可读取以下标准 3D 文件格式:
这些文件格式受到广泛支持。这些类型的文件通常也比专有软件的文件小,这使项目规模更小,迭代速度更快。
也可以将导出的 .fbx 或 .obj 文件重新导入所选择的 3D 建模软件,以此确保所有信息都已正确导出。
Unity 支持多种专有模型文件格式。通常情况下不应在生产中使用这些文件格式,应尽可能导出为 .fbx 文件格式。但是,有时您可能需要将这些文件作为项目的一部分包含在内。
Unity 可以从以下 3D 建模软件中导入专有文件,然后将其转换为 .fbx 文件:
也就是说,必须安装相应的 3D 建模软件才能将专有文件直接导入 Unity。
以下应用程序不使用 .fbx 作为中间格式。Unity 必须先将其转换为 .fbx 文件之后再导入编辑器:
Unity 不提供对 Cinema4D 文件的内置支持。要在 Unity 中使用 Cinema4D 文件,应该将它们从专有软件导出为 .fbx 文件。
除非在计算机上安装了相应的 3D 建模软件,否则保存为 .ma、.mb、.max、.c4d 或 .blend 文件的资源将无法导入。这意味着,处理 Unity 项目的每个人都必须安装正确的软件。例如,如果您使用 Autodesk Maya LT 许可证来创建 .mb 文件,并将其复制到您的项目中,那么任何打开该项目的用户也需要在他们的计算机上安装 Autodesk Maya LT。
Unity 通过 FBX 格式导入 Autodesk® 3ds Max® 文件 (.max),支持以下内容:
Unity 通过 FBX 格式导入 Autodesk® Maya® 文件(.mb 和 .ma),支持以下内容:
Unity 不支持 Maya 的旋转轴 (Rotate Axis)(旋转前)。
关节限制包括:
Unity 可导入和支持 Maya 中指定的任何旋转顺序 (Rotate Order);但是一旦导入,便无法在 Unity 中更改该顺序。
如果导入的模型使用的旋转顺序不同于 Unity 中的旋转顺序,Unity 会在 Inspector 中的 Rotation 属性旁边显示该旋转顺序。
这个旋转顺序决定的万向节锁产生的轴向,具体细节可以了解我的另一篇文章:【Unity】Unity 欧拉角、四元数、万向节死锁
.fbx 格式,Unity支持的主要模型格式。Autodesk 家族格式。支持动画!这是一个商业的格式,兼容最好的当属 Autodesk 家族的软件了。fbx 也开放给了第三方软件,但总是感觉除了他自己的软件之外或多或少的都有解决不完的问题。 毋庸置疑,FBX 现在是最受欢迎的格式。
.fbx最大的用途是用在诸如在 Max、Maya、Softimage 等软件间进行模型、材质、动作和摄影机信息的互导,这样就可以发挥 Max 和 Maya 等软件的优势。可以说,FBX 方案是非常好的互导方案。
.obj 格式, 静态多边形模型 - 附带 UV 信息及材质路径!不包含动画、材质特性、贴图路径、动力学、粒子等信息。主要支持多边形(Polygons)模型。是最受欢迎的格式。
.obj文件是Alias|Wavefront公司为它的一套基于工作站的3D建模和动画软件"Advanced Visualizer"开发的一种标准3D模型文件格式,很适合用于3D软件模型之间的互导。目前几乎所有知名的3D软件都支持OBJ文件的读写。.obj文件是一种文本文件,可以直接用写字板打开进行查看和编辑修改。
. psk 格式 - Unral Engine 格式 - 带骨骼动画的模型! psk 是 一个比较特殊的格式,通常情况下是原来提取游戏模型使用的。最终生成的基于虚幻引擎的游戏打包成这个格式的模型。
.3ds 格式 - 三角面静态模型!文件格式简单,现在几乎都已淘汰!应该在一些老的项目应用上才有可能会用到。
3DS 文件越来越不受欢迎了。比较早的一种三维格式,三角面,最早游戏模型应用比较广泛。由于后期导入软件的不可编辑性、难以二次编辑现在逐渐的远离了我们的视线。
中文名称:蒸馏机。支持动画、粒子等。烘焙三维场景的模型、流体、动画、特效等数据,输出输入到其他三维软件。有可能在导入其他三维软件中无法再二次编辑,比如:Rig、流体烟雾模拟等。不必多说,ABC将会是三维软件交互的王者。
.glTF 格式,支持动画等。gITF 2.0 格式逐步的完成了 WebGL 的布局,也成为了这个领域的专用格式,随着发展游戏领域的应用也会越来越广泛。
. dae 格式,FBX 的代替品 - Collada DAE需要自行下载安装!Google 地图便是使用的 DAE 格式。
DAE 是纯文本的模型格式,其本质就是一个单纯的xml文件。相比fbx,对dae格式模型的载入我们拥有非常高的自由控制,这也是最复杂的地方。
. PLY 格式 - 静态多边形模型 - OBJ 格式的升级版!PLY格式受 Wavefront .obj 格式的启发,但改进了Obj格式所缺少的对任意属性及群组的扩充性。因此PLY格式发明了"property"及"element"这两个关键词,来概括“顶点、面、相关资讯、群组”的概念。
DXF 是一种开放的矢量数据格式,可以分为两类:ASCII格式和二进制格式;ASCII具有可读性好的特点,但占用的空间较大;二进制格式则占用的空间小、读取速度快。各种 CAD 软件中 DXF 被广泛使用,成为事实上的标准。绝大多数CAD系统都能读入或输出DXF文件。
本文部分内容引自:云图创智3D打印机 https://www.bilibili.com/read/cv13982551
更多内容请查看总目录【Unity】Unity学习笔记目录整理
我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看rubyzip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d
我试图在一个项目中使用rake,如果我把所有东西都放到Rakefile中,它会很大并且很难读取/找到东西,所以我试着将每个命名空间放在lib/rake中它自己的文件中,我添加了这个到我的rake文件的顶部:Dir['#{File.dirname(__FILE__)}/lib/rake/*.rake'].map{|f|requiref}它加载文件没问题,但没有任务。我现在只有一个.rake文件作为测试,名为“servers.rake”,它看起来像这样:namespace:serverdotask:testdoputs"test"endend所以当我运行rakeserver:testid时
我的目标是转换表单输入,例如“100兆字节”或“1GB”,并将其转换为我可以存储在数据库中的文件大小(以千字节为单位)。目前,我有这个:defquota_convert@regex=/([0-9]+)(.*)s/@sizes=%w{kilobytemegabytegigabyte}m=self.quota.match(@regex)if@sizes.include?m[2]eval("self.quota=#{m[1]}.#{m[2]}")endend这有效,但前提是输入是倍数(“gigabytes”,而不是“gigabyte”)并且由于使用了eval看起来疯狂不安全。所以,功能正常,
Rails2.3可以选择随时使用RouteSet#add_configuration_file添加更多路由。是否可以在Rails3项目中做同样的事情? 最佳答案 在config/application.rb中:config.paths.config.routes在Rails3.2(也可能是Rails3.1)中,使用:config.paths["config/routes"] 关于ruby-on-rails-Rails3中的多个路由文件,我们在StackOverflow上找到一个类似的问题
我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co
对于具有离线功能的智能手机应用程序,我正在为Xml文件创建单向文本同步。我希望我的服务器将增量/差异(例如GNU差异补丁)发送到目标设备。这是计划:Time=0Server:hasversion_1ofXmlfile(~800kiB)Client:hasversion_1ofXmlfile(~800kiB)Time=1Server:hasversion_1andversion_2ofXmlfile(each~800kiB)computesdeltaoftheseversions(=patch)(~10kiB)sendspatchtoClient(~10kiBtransferred)Cl
我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h
我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚
使用带有Rails插件的vim,您可以创建一个迁移文件,然后一次性打开该文件吗?textmate也可以这样吗? 最佳答案 你可以使用rails.vim然后做类似的事情::Rgeneratemigratonadd_foo_to_bar插件将打开迁移生成的文件,这正是您想要的。我不能代表textmate。 关于ruby-使用VimRails,您可以创建一个新的迁移文件并一次性打开它吗?,我们在StackOverflow上找到一个类似的问题: https://sta
我需要从一个View访问多个模型。以前,我的links_controller仅用于提供以不同方式排序的链接资源。现在我想包括一个部分(我假设)显示按分数排序的顶级用户(@users=User.all.sort_by(&:score))我知道我可以将此代码插入每个链接操作并从View访问它,但这似乎不是“ruby方式”,我将需要在不久的将来访问更多模型。这可能会变得很脏,是否有针对这种情况的任何技术?注意事项:我认为我的应用程序正朝着单一格式和动态页面内容的方向发展,本质上是一个典型的网络应用程序。我知道before_filter但考虑到我希望应用程序进入的方向,这似乎很麻烦。最终从任何