UDN
Search public documentation:

AllegorithmicSubstanceCH
English Translation
한국어

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 主页 > 材质 & 贴图 > Allegorithmic Substance整合

Allegorithmic Substance整合


header.jpg width=

UDK的Substances


Substance是一种新的贴图格式,提供相比标准位图多种优势的格式:

  • 多种输出-单个文件可以包含所有单一或更多材质所需的所有地图
  • 单独的分辨率 - 动态缩放可达2048x2048
  • 参数化及动态化-修改UDK编辑器贴图甚至游戏内贴图
  • 可使用动态位图输入作为多功能过滤器
  • 非线性和无损性的创建过程

Substance的生态系统


参考指南

  • 不知道什么叫substance? 参见 此页面 来快速预览此项技术.
  • 想了解更多关于Substance的设计者? 就是你需要的内容。
  • 想学得更快? 参见视频指南 此处.
  • 不想花钱? Substance工具 免费供应.

Substance工具让您可以转换您的贴图到substance,可以在编辑器内有更快的导入时间,自动材质创建和动态贴图调整。

文件格式

在Substance生态系统中有两种主要文件格式。 可编辑的,基于文本的并很容易进行来源控制的,是sbs文件格式。 这种格式被用来在Substance设计器中保存包,它可以包含多种图像,每种图像都有多种输出。 外部资源例如SVG和位图都可以被嵌入sbs文件,类似于.PSD 文件。

在使用UDK的substance文件前,您必须先发布此文件。 此过程的结果是substance归档,或sbsar文件。 这是在UDK和Substance被整合的其他软件内可以被支持的文件格式。 它是压缩的,二进制文件格式并且不再可被编辑。

注意: 可将Substance的输入值存储为预设值。 那些文件有扩展sbsprs并可被用来保存单个Substance的多个变量。 它们基于文本并且权重很轻。 预设值可被从 Substance图表实例中导入或导出(参见"Substance图表实例").

工作流程


schemaUDK.png

SBSAR导入

当导入sbsar,两个对象被创建: 为sbsar文件中包含的每个图表创建Substance实例库及图表实例 实例库可被用来创建其他图表实例。 虚幻材质可被用来创建每个Substance图表实例。

ImportDialog.png

  • 创建材质将会创建图表实例被创建的包的子组的材质。 substance的输出将会自动被插入正确的材质空位。

  • 您可以在您导入时为Substance的图表实例定义目标。 在这种情况下,图表实例及其输出将会被存储进特定的包。

contentbrowser.jpg

Substance图表实例

每个sbsar的图表都可以被尽可能的实例化,使得单个substance可以获得不同的变量。 这个图表实例可以被存储在不同的包内。

修改参数


图表实例编辑器

如需在图表实例编辑器中编辑输入值,可双击您想要的图表实例,您将可以访问动态数值(包括图像输入)

instanceEditor.png

  • 输出
根据您的需要,您可以取消一些Substance 的输出。
  • 图像输入
动态图像输入被通过新型对象,Substance图像输入被支持。 他们通过导入jpeg或tga图像或转换标准已存在的贴图来被创建。 Substance输出也可被直接用来作为图像输入。 可使用任何分辨率,当substance输出被渲染时图像输入将会被重设尺寸。
  • 输入
数值和颜色输入让您可以在UDK视图中实时修改substance的外观.
  • 烘焙输出
当关闭烘焙输出的选项时,substance的输出将在其包被载入时被生成。 当此选项被开启时,位图将会在虚幻烘焙过程中被保持(例如在载入时不需被渲染) 此选项将会在CPU使用和打包的尺寸间进行折中(开启烘焙选项) 在两种情况下,启动时输入仍可被修改并且输出将会被重新运算。

游戏中

  • Kismet
当使用Kismet修改输入时,从Substance目录创建合适的顺序: 设置输入浮点,整型或图像。

kismet.png

使用标识符要小心,它被显示为标签的工具提示。 当您修改了您的输入时,您需要通过使用“Substance渲染器”序列来触发渲染事件。

tooltip.jpg

  • Matinee
在您的场景中创建图表实例Actor,而他将被插入matinee的数据。 为修改输入,您需要在定义输入的标识符处创建Substance输入轨迹。 这和修改材质实例的材质实例Actor一样。

技术信息


虚幻脚本的实例修改

为修改输入,使用图表实例对象(SubstanceAirGraphInstance类)。 界面为以下:

//获得输入列表
native final function array<string> GetInputNames();

// retrieve an input's type
native final function SubstanceAirInputType GetInputType(const string InputName);

// modify the input value of the specified input (by name)
native final function bool SetInputInt(const string InputName, const array<int> Value);
native final function bool SetInputFloat(const string InputName, const array<float> Value);

// modify an image input, object must be a SubstanceAirImageInput or a SubstanceAirTexture2D
native final function bool SetInputImg(const string InputName, Object Value);

// get the input value of the specified input (by name)
native final function array<int> GetInputInt(const string InputName);
native final function array<float> GetInputFloat(const string InputName);
native final function Object GetInputImg(const string InputName);

特定的整数型值

  • 在烘焙的步骤中,可以限制包中的迷你地图数量,从而节省大量的空间。 可以在Substance部分,以及MipCountAfterCooking参数的BaseEngine.ini设置文件中设置mip的数量:

[SubstanceAir]
; number of mipmaps to keep during cooking
MipCountAfterCooking=7

  • Substance引擎的CPU和内存使用量在以下部分的BaseEngine.ini中被设置:

[SubstanceAir]
(...)
; memory budget
MemBudgetMb=256
; allow use of every CPU core available for generation (will leave one free for the main thread)
FreeCore=0

免费的substance资源


  • The Beneath Demo 是一个完全使用substance的可下载的贴图化的UDK项目 源码打包将很快可用!

  • 超过60个substance被和Autodesk Maya以及3dsMax(2012及以上)绑定。

.