首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导出玛雅流体,以便将其导入three.js游戏

导出玛雅流体,以便将其导入three.js游戏
EN

Stack Overflow用户
提问于 2017-06-28 02:20:46
回答 1查看 1.1K关注 0票数 2

请原谅我在这个地区的无知,但是有没有人知道如何出口玛雅流体,使它能够被输入three.js?

我是玛雅人的新手,我刚为我正在制作的游戏做了第一个模型,见下文:

尾突的加力效应是由玛雅流体造成的。我没有问题,出口飞机和武器,但我不知道如何使用流体在一个three.js游戏。我做了好几个小时的研究,试图找出关于这个话题的任何信息,但都没有结果。如有任何参考或协助,将不胜感激!

编辑:这是我正在采取的步骤和收到的错误的更新。真的希望这是有意义的和可解决的。我在网上找不到与这些错误有关的任何好信息。

步骤1:修改>转换>流体到多边形(所有工作如预期)步骤2:选择创建几何>编辑>键>烘烤模拟,屏幕截图的选项如下。(所有工程均按预期进行)

步骤3:选择生成的几何从流体到多边形步骤,选择我的fluidShape2在超高速和执行超高速编辑>转换为文件纹理(玛雅软件)(不工作,得到一个错误)

下面是一个超级和多边形的截图:

玛雅说出的错误如下:

// Error: file: /Applications/Autodesk/maya2017/Maya.app/Contents/scripts/others/copyConvertSolidTx.mel line 93: Cannot convert a texture connected to initialShadingGroup

在我看来,超高速中的fluidShape2节点实际上不是一个着色器,所创建的多边形实际上被指定为lambert1。我不太确定,但考虑到我上周开始使用玛雅。

编辑2:

好的,这是一个截图,显示fluidShape集作为表面材料。

这里是流体阴影属性的截图。

正如你所看到的,颜色是黑色的,这个物体的唯一照明就是它产生的光。它完全不是从外部来源点燃的。

投射/接收阴影在渲染统计中也未被选中。

问:有什么方法可以烤香炉吗?

编辑#3:

按照你的10步计划,我有相同的结果,我以前做过。这里是截图显示前后。在火焰后面增加了一架绿色的飞机,以显示它在第二状态下更容易。

作为流动:

作为具有10个步骤的多边形:

下面是属性编辑器:

下面是通过超强子应用的材料:

我重复了你给我的10个步骤,每次结果都是一样的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-28 06:27:17

在导出之前,您需要将流体转换为多边形。

这是一个用于测试的MEL脚本。在脚本编辑器中运行它。

代码语言:javascript
复制
// opening nuke explosion example 
file -import -type "mayaAscii" -ignoreVersion -ra true -mergeNamespacesOnClash false -namespace "Nuke" -options "v=0;" -pr "/Applications/Autodesk/maya2016.5/Maya.app/Contents/Examples/FX/Fluid_Examples/Explosions/Nuke.ma" ;

// selecting fluid container
select -r Nuke:fluid ;

// converting fluid to polygons
fluidToPoly ;

// changing mesh resolution under shapeNode/outputMesh tab in Attribute Editor
setAttr "Nuke:fluidShape.meshResolution" 3 ; 

若要通过菜单将流体转换为多边形,请选择流体容器并选择:

Modify - Convert - Fluid to Polygons

然后在属性编辑器中选择形状节点的选项卡,并在输出网格区域更改网格分辨率。

查看有关导出的有用信息:Three.js玛雅出口

当转换完成时,默认玛雅着色器(Lambert1)被分配给新的多边形网格。你必须重新分配你的流体纹理到新的多边形网格。为此,打开超高速和MMB-拖降流体织构的表面材料槽的多目网眼.

请记住:如果场景中有动画,则需要在导出之前使用以下方法进行烘焙:

Edit - Keys - Bake Simulation

代码语言:javascript
复制
bakeResults -simulation true -t "1:100" -sampleBy 1 -disableImplicitControl true -preserveOutsideKeys true -sparseAnimCurveBake false -removeBakedAttributeFromLayer false -removeBakedAnimFromLayer false -bakeOnOverrideLayer false -minimizeRotation true -controlPoints false -shape true {"nurbsSphere1"} ;

你不需要任何类型的曲线插值(线性或贝塞尔),只是烤键在每一帧。您可以通过FBX或ABC文件格式导出动画。还有一种方法可以将动画网格导出为OBJ序列:免费OBJ序列导入/输出

此外,如果你在输出光有任何问题,烘焙光和它的阴影在物体的纹理。更好的方式为您导出动画和纹理的每个顶点的基础上。

分步指令:

  1. 选择一个流体容器并应用修改-转换-流形多边形.您将在Viewport中看到一个带有Lambert1着色器的多边形对象。
  2. 在外部选择FluidObject,然后在AE (属性编辑器)中改变网格分辨率和网格平滑迭代(分别为0.5和2)。
  3. 然后在外部选择PolyObject,在AE中选择带有initialShadingGroup的选项卡。
  4. 打开,选择FluidTexture并使用MMB-拖放分配到initialShadingGroup of PolyObject中的表面材料插槽中.
  5. 在场景中创建光斑。运行测试渲染。你会看到一个发光的保利。
  6. 要改变透明度,不透明或白炽灯只需选择PolyObject在外线和AE去fluidShape选项卡,并选择阴影区域。
  7. 使用Maya 2017的Arnold Renderer属性或在Maya 2016及更早的时候使用Maya属性烘焙光(如果需要的话还可以使用阴影)。
  8. 要从Maya输出一个Poly,您需要选择Mesh并应用命令Edit-Keys-BakeSimulation。
  9. 要为每个帧导出一个纹理序列,您需要在Hypershade中选择一个FluidTexture并向它应用Edit-RenderTextureRange(您必须为导出的纹理序列指定一个框架范围,例如1-200,以及文件格式,例如TIFF)
  10. 输出OBJ序列
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44792649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档