什么是Content

原文地址:http://msdn.microsoft.com/zh-cn/library/bb447756。

XNA Game Studio Content Pipeline是一组施加在游戏素材上的处理过程,这个过程从素材的原始文件格式开始,借助于XNA框架类库,通过一系列处理将素材转换为XNA Game Studio可以使用的数据。

Content是你的游戏中的所有非可执行的托管代码,它包括美术素材,例如纹理、sprite、mesh,effect和font;还包括声音素材,例如音乐或音效;数据也是Content,例如关卡的数据或角色的属性等。

大多数content是使用digital content creation (DCC)工具创建的,例如一个绘图程序或3D建模程序。你的游戏中使用的content的文件格式各不相同,大多数都是标准的文件格式,例如用于纹理的JPEG格式或用于模型的Autodesk FBX格式。但是,也有可能会使用自定义格式或将自定义数据以XML格式保存。

Content Pipeline(素材管道)的优点

使用Content Pipeline最主要的原因是让你的游戏运行得更快。如果不使用content pipeline,你的游戏就必须使用素材的原始文件格式。当需要加载素材并将它们绘制在屏幕上时,游戏就必须首先判断文件格式并将数据转换为它能够直接使用的形式,这个过程将在运行时进行,会影响游戏的运行速度。

使用Content Pipeline可以消除上述弊端,它将这个费时的工作移到生成游戏的时候。在生成时(build time),每个素材从原始文件格式被导入,然后被处理为一个托管代码对象,接着这些对象被串行化为一个文件包含在游戏的可执行文件中。

运行时(run time),游戏可以直接从文件读取串行化后的数据并可立即使用。

这个架构还提供了另外的好处。

使用Content Pipeline

对那些使用常见格式素材的XNA Game Studio游戏来说,没必要知道Content Pipeline的工作细节。XNA Game Studio为常见的DCC文件格式提供了标准的importer和processor,你唯一需要进行的工作就是将这些素材添加到游戏的content项目中。XNA Game Studio内置支持的格式请参见本文的后半部分。

例如要使用一个DirectX Effect (.fx)文件,只需将这个文件添加到XNA Game Studio游戏解决方案的content项目中。XNA Game Studio可以辨认.fx文件类型,然后施加正确的组件,当生成游戏时会使用这个组件处理这个文件。然后游戏就可以通过标准的ContentManager.Load方法访问到这个effect,而程序员无需关心Content Pipeline的细节步骤。

但是在以下情况中,你需要理解Content Pipeline工作原理。

Content Pipeline组件(Components)

根据XNA Game Studio Content Pipeline处理过程的执行时刻,它分为两种类型:生成时组件(build-time components)和运行时组件(run-time components)。

生成时组件(Build-Time Components)

当你在Visual Studio中生成游戏的可执行文件时, Content Pipeline的生成时组件会处理素材。这些处理过程将素材从原始的DCC格式转换为一个托管代码对象,游戏在运行时可以直接使用这个托管代码对象。

这些生成时组件使用的是XNA类库,而类库可以进行扩展用来创建自定义的Content Pipeline生成时组件

组件 描述
Importer 导入器importer将素材从DCC文件格式转换为XNA Game Studio Content Document Object Model对象,而这个对象可以被标准的content processor处理,或者可以被自定义处理器处理的其他格式。
Content processor 处理器processor 接受导入的特定类型的素材,例如一组mesh,然后将它们编译为托管代码对象,这些对象可以在Windows,Xbox 360或Windows Phone上被XNA Game Studio游戏加载和使用。

当你在content项目中导入素材文件时,它的Properties页会选择合适的importer和processor。当生成游戏时(按F5),就会自动调用每个素材对应的importer和processor,这些素材会转换为在运行时可以加载的形式,而这个加载操作是通过ContentManager.Load方法实现的。

运行时组件(Run-time Components)

XNA Game Studio Content Pipeline的运行时组件(run-time components)支持加载和使用转换过的素材。这些运行时组件使用的是XNA类库,而类库可以进行扩展用来创建自定义的Content Pipeline运行时组件。

标准Importer和Processor

原文地址:http://msdn.microsoft.com/zh-cn/library/bb447762。

Importers和content processors是以程序集(assemblies)的形式实现的,除了使用XNA自带的标准导入器和处理器,你还可以使用自己或第三方开发的自定义导入器和处理器。使用属性窗口可以对每个素材施加正确的导入器和处理器。

标准Importer

下表是XNA Game Studio自带的标准导入器的说明,所有标准导入器都声明在Microsoft.Xna.Framework.Content.Pipeline命名空间之下。

名称 Type名称 输出类型 描述
Autodesk FBX FbxImporter NodeContent 导入Autodesk FBX文件格式(.fbx)的素材这个导入器可以导入由FBX exporter的2006.11版本导出的文件。
Effect EffectImporter EffectContent 导入DirectX Effect文件格式(.fx)的素材。
Sprite Font Description FontDescriptionImporter FontDescription 导入一个在.spritefont文件中指定的font description。
Texture TextureImporter TextureContent 导入纹理。文件类型可以是:.bmp,.dds,.dib,.hdr,.jpg,.pfm,.png,.ppm和.tga。
X File XImporter NodeContent 导入DirectX文件格式(*.x)的游戏资源。这个导入器使用左手坐标系。
XACT Project N/A N/A

导入Microsoft跨平台音频创建工具(XACT)的文件类型的音频资源。

技巧

把.xap文件关联到XACT,可以使你在编辑任何.xap文件的时候自动打开XACT。

  • 解决方案管理器中右键点击.xap文件,选择Open With... .对话框出现后,选择XACT,然后点击Set As Default
  • 如果XACT-specific选项不可用,你必须首先运行XACT。这个程序在Microsoft XNA Game Studio组中。在这个组中点击Tools然后选择Microsoft Cross-Platform Audio Creation Tool (XACT)。
XML Content XmlImporter object

导入XML用于在运行时编辑自定义对象的值。例如,你可以将XML代码传递到导入器查询自定义类型的指定属性并改变它的值。然后在一个处理器中转换这个自定义对象,或使用No Processing Required processor不做改变地传递到游戏中。

这个导入器被设计用来在运行时导入XML文件中的游戏数据(类似于Sprite Font Description导入器)或导入XML文件中的地形数据,然后使用这个数据在处理器中生成一个随机地形。

标准Content Processors

XNA Game Studio自带的处理器支持常见的素材类型,许多标准处理器,例如TextureProcessor,可以使用参数调整处理器的默认行为。

下表是标准处理器的说明和支持的素材类型。

名称 Type名称 输入类型 输出类型 描述
Model ModelProcessor NodeContent Class ModelContent Class

可选择参数的处理器,将模型输出为一个ModelContent Class 对象。

可用参数:

  • Color Key Color–任何可用的Color。默认值为Magenta。
  • Color Key Enabled–Boolean值,表示color keying是否可用,默认为true。
  • Generate Mipmaps–Boolean值,表示是否生成mipmaps,默认值为false。
  • Generate Tangent Frames–Boolean值,表示是否生成切线数据。默认值为false。
  • Resize Textures to Power of Two–Boolean值,表示是否调整纹理的大小,使之成为最接近的2的幂。默认值为false。
  • Scale–任意float值,默认为1.0。
  • Swap Winding Order–Boolean值,表示是否翻转顶点绕行顺序。当一个模型是从里向外绘制时,将这个选项设置为true即可显示正常。默认为值为false。
  • Texture Format–任意SurfaceFormat值。纹理要么是不可改变的,则转换为Color格式,要么是DXT压缩的。更多信息请参见TextureProcessorOutputFormat。
  • X Axis Rotation–绕x轴的旋转角度。默认值为0。
  • Y Axis Rotation–绕y轴的旋转角度。默认值为0。
  • Z Axis Rotation–绕z轴的旋转角度。默认值为0。
No Processing Required PassThroughProcessor Object Object

不对文件做任何操作。如果你的素材已经是游戏直接可用的格式(比如,一个外部的已经准备好的DDS文件)或者设计给XNA Game Studio Express使用的一个特殊的XML格式(*.xml)的文件,选择这个处理器。

Sprite Font Description FontDescriptionProcessor FontDescription SpriteFontContent

将指定的.spritefont文件转换为一个font。

Sprite Font Texture FontTextureProcessor TextureContent SpriteFontContent

可选参数的处理器,将一个sprite font纹理输出为一个SpriteFontContent 对象。

可选参数:

  • First Character–任意字符。默认值为空格。
Sprite Font Texture FontTextureProcessor Texture2DContent SpriteFontContent 将一个指定标记的2D bmp文件转换为一个font。 Color.Magenta的像素会被转换为Color.Transparent。
Texture TextureProcessor TextureContent Class TextureContent Class

可选参数的处理器,将纹理输出为TextureContent Class 对象。

可用参数:

  • Color Key Color–任何Color。默认值为Magenta 。
  • Color Key Enabled–Boolean值,表示color keying是否可用,默认为true。
  • Generate Mipmaps–Boolean值,表示是否生成mipmaps,默认值为false。
  • Resize to Power of Two–Boolean值,表示是否调整纹理的大小,使之成为最接近的2的幂。默认值为false。
  • Texture Format–任意SurfaceFormat值。纹理要么是不可改变的,则转换为Color格式,要么是DXT压缩的。更多信息请参见TextureProcessorOutputFormat。
XACT Project N/A N/A N/A 从一个XACT工程创建音频资源。
文件下载(已下载 1839 次)

发布时间:2012/1/29 下午11:07:04  阅读次数:5957

2006 - 2024,推荐分辨率 1024*768 以上,推荐浏览器 Chrome、Edge 等现代浏览器,截止 2021 年 12 月 5 日的访问次数:1872 万 9823 站长邮箱

沪 ICP 备 18037240 号-1

沪公网安备 31011002002865 号