如何创建.usdz动画?

时间:2018-06-24 10:39:06

标签: animation augmented-reality arkit xcode10 usdz

您现在可以使用与Xcode 10 Beta捆绑在一起的Apple命令行工具将3D模型转换为.usdz文件(未压缩的zip存档)。

.obj文件转换为.usdz的示例代码:

xcrun usdz_converter magnifying_glass.obj -g frame magnifying_glass.usdz 
-color_map gold-basecolor.png -normal_map gold-normal.png
-roughness_map gold-roughness.png -metallic_map gold-metallic.png

支持以下输入3D文件类型:

  • OBJ文件
  • 单帧Alembic(ABC)文件
  • .usda(ascii)或.usdc(二进制)美元文件

据我了解,OBJ文件本身不支持动画。

单帧Alembic文件也不支持动画,因为它是单帧。

因此,我猜测您需要使用usda文件,该文件链接到一系列单帧Alembic或单帧OBJ文件以生成动画。

是否有任何公开的文档说明如何解决此问题?

usda文件可以使用有效载荷文件来引用单帧网格。下面的示例引用了Treasure Chest单帧Alembic文件的几何形状。

#usda 1.0

def "Chest_Base" (
     references = [ @./Chest.abc@</Chest_Base> ])
{

}

但是我还没有找到将.obj或单帧Alembic .abc文件的序列链接在一​​起以创建10秒动画的任何具体方法。

任何帮助或提示将不胜感激。

编辑6月30日:

我现在设法制作了USDZ文件的动画。我有live demo个旋转齿轮和直升机。

基本上,我需要从github下载usd管道并将其构建在我的Mac上。您可以从here

获得有关如何执行此操作的良好说明

警告至少保留几个小时,构建本身大约需要一个小时。

此后,我在usd管道捆绑包中运行了animated tutorial example。 Step5.usda(ascii usd文件)有一个动画示例,我跟随它使用旋转来创建自己的动画。

如果您按照上面链接中的pixar教程创建Step5.usda文件,则运行此usdz命令将创建一个旋转陀螺的简单动画。

xcrun usdz_convertor Step5.usda animationTest.usdz

编辑2018年7月10日:

usdz还支持Alembic资产(带有动画)。

我现在设法用usdz(使用alembic文件格式)制作了一个简单的动画。但是,我尝试过的角色的骨骼动画无法正常工作。

我与Blender和Modo Alembic出口商一起出口了Alembic资产...结果相同。

UV材料也未正确映射到网格。 uv缩放和贴图有问题...材料散乱了。在此阶段,我不知道这是否是错误,或者我在这里是否做错了什么。在Apple forum

上有关于此uv映射问题的一些讨论

编辑2018年9月8日:

这是一个快速发展的领域,我相信随着时间的推移,将会出现更多解决usdz动画创建的方法。但是,目前制作变形,骨骼,混合形状或变形动画usdz文件的最佳且成本最低的方法(开源)是使用托管在GitHub上的命令行工具glTF2usd

该工具可以将glTF动画文件转换为usda文件(中间文件类型)以创建usdz文件。它也应该不久就支持直接创建usdz,从而无需使用Apple的usdz_converter命令行工具从usda-> usdz中使用。

当前仅支持1个动画组。关于旋转仍然存在一些错误,--use-euler-rotation手柄可用于帮助平滑旋转。

我已经将使用该工具创建的usdz动画发布到在线usdz画廊www.fusionar.app

2 个答案:

答案 0 :(得分:1)

  

它可以正常工作!

enter image description here

在macOS中使用Alembic文件格式是真正的麻烦。但是我已经开发了自己的方法。因此,请在Autodesk Maya中为Mac(版本2016 Extension 2 SP 1)制作3D模型的动画。然后,使用以下方法烘焙动画/动力学:

Edit ->  Keys -> Bake Simulation

通过以下方法检查UI中是否存在Alembic模块:

Windows -> Settings/Preferences –> Plug-in Manager -> AbcExport.bundle

之后,请转到:

Cache –> Alembic Cache -> Export All to Alembic...

此命令允许您创建abc文件。它的播放速度比必须的慢25倍,但是您可以在Xcode中修复它。因此,是时候在终端机应用程序中使用Xcode 10命令转换动画了:

xcrun usdz_converter ~/Desktop/sphere.abc ~/Desktop/anime.usdz -v

enter image description here

您将以相同的播放速度(慢25倍)获得usdz文件。

enter image description here

让我们修复Xcode 10中的播放速度。创建一个项目,拖放usdz文件,单击Show the Scene Graph View picto,然后从场景的层次结构中选择任何动画对象(在我的情况下是{ {1}})。在pSphere1标签中,将Node Inspector属性从Speed更改为1。该数字实际上取决于动画软件的帧频设置(24fps,25fps,30fps等)。

enter image description here

就是这样。

enter image description here

吉米·古纳万(Jimmy Gunawan)也于2018年7月31日发布了this screen-captured Blender video。在此视频中,他将引导您通过25导出转换动画的整个过程{1}}。他具有使用.usdz创建的许多对象的程序转换动画,并以动画3D Alembic文件格式导出为iOS 12内部的增强现实。

基本上,对于Animation Nodes动画,您需要具有root或null对象才能正确导出。因此,请观看吉米·古纳万(Jimmy Gunawan)的视频。

enter image description here

  

此外,您可以使用以下专业3D工具以.usdz文件格式导出计算机动画: Autodesk Maya Foundry Katana SideFX Houdini 。有关更多详细信息,请访问this Pixar's webpage

答案 1 :(得分:-1)

在那里产生AR体验的工具太可怕了。

我在http://briovr.com/工作,我们建立了流程,以便您可以导入obj,fbx,collada并生成USDZ。