Granny 3D

Granny 3D

Granny 是一个为创建所有类型的交互式3D应用的功能强大的工具包。我们将Granny设计成业界最高效率和最有弹性的动画系统,但是从功能上它也实现了一组功能强大的导出器(exporters)和数据处理工具。 Granny是模块化设计,因此您根据实际需要或多或少地使用它。一开始它设计为“只是一个动画系统”,但在支持超过 2,400款游戏之后,它已经大不相同了。

与它的世界级的动画系统一起,Granny能够帮助使您的管线更具弹性,强健,且易于开发。即使您已经有了一个动画系统,您仍会需要Granny!

看看 我们的客户是如何考虑的. 我们有一个不完全的 Granny SDK Features 列表供您查看,您也可以查看 Granny 版本历史,如果您正在寻找一些特定的内容。

我们已经将Granny设计成很容易适合任何项目,让您选择它如何正好适合您的项目。下面有一些实在的例子,您可以从中发现您可以如何来使用Granny,但是它并不是说接近于一组完整的use case集。 请记住,最快速学习Granny的方式是 给我们发邮件 来获得评估版本!

如果您以很慢的方式来学习Granny,它将随其他人而去!Follow us at @granny3d on Twitter 或查看我们的开发博客 at radgranny.blogspot.com.


Granny as a Run-time Animator

Granny运行时库的核心是一个独特的功能强大的角色动画系统。这个系统给予您基于B样条函数的回放,动态动画修改,混合(Blending),和反运动学等,它具有很强的灵活性和性能。 所有Granny的操作都是模块化的,允许您定制动画混合过程中的每一步。 无论从何种角度,我们永远不会成为阻碍你创建自己游戏角色的因素。

Granny as a Character Creator

我们也已经加入了一个状态机和混合图编辑器(Blend graph editor)。 Granny Animation Studio 是一个图形化,可扩展的工具,它用于创作动画行为。 Granny Animation Studio被设计为将以下变为可能:美术设计师无需写任何代码,也能像程序员一样对您的游戏动画有同样等级的控制力。

Granny的层级状态机允许一个角色的行为特性能够被一个相连的动画状态的图形所指定。 这些状态通过一些控制角色如何允许从一个动画特性移到另一个动画特性的过渡转换(transition)相连。 每个状态可以是一个混合图,一个简单的动画,或者是一个完全的状态机,这让美术设计师很容易去管理复杂的行为特性,而无需被一些细节淹没。

Granny as a Team Player

很多好的想法被放入到Granny API的设计之中,以此来确保在您写自己游戏的时候,API不会造成无谓的困扰。 例如,Granny被设计成大量地无状态特性,这让它很容易被整合到您所选择的物理引擎中。

就像所有的RAD的产品,性能和可定制从来都是一个首要的考虑。Granny的动画取样,mesh deformation(mesh变形),和文件函数都针对每个我们支持的平台被优化。 Granny能够从多线程取样动画信息,让您可以从现代平台的强大中获益。它能够运行在Sony Playstation(R) 3的SPU一边,而放过PPU。

我们给您完全控制内存分配的选项,重载I/O引擎,在运行中初始化创建数据结构,创建定制版本的内嵌函数,以及更多。 Granny的每一部分都被设计成将控制权交到您的手中,而不是交给我们。.

Granny as an Exporter

对所有主要3D开发工具(Maya, 3ds Max, and XSI)而言,Granny都具备了完全的内容导出器的特性。 该导出器(exporter)被设计为达到两个主要的目标。

首先,如果它在场景里,把它放进Granny文件里。我们导出动画,这是当然的了,而且也包括meshes,textures,cameras,lights,partical system,以及其它更多。 我们有许多客户,他们用Granny来导出的不仅是角色,而且也包括关卡。 一旦您拥有了Granny exporter,您就会停止和DCC包之间的争斗!

第二个目标是呆在美术设计人的领域以外!Granny不需要特别的标记,也不需要attach data来从您的场景中重获动画,mesh和材质。 使用您想要的不管什么插件(plugins),脚本(scripts)和流程,Granny都能够将数据导出!

Granny 通过每个工具的原生脚本接口提供完整的动画支持。您能够控制场景中每个对象(object),纹理(texture)和材质(material)的Granny的详细的手工和自动的偏好设定。 为每个asset类型和导出内容去设定相应的设置的过程,可以被简化为一个简单的按钮点击,当然对于不常用的情况下,Granny仍然提供手工的设定操作。

尽管您会想从Granny的运行时库特性中受益,但单独使用Granny作为您的导出层也是可以的。 所有的内容都被导出为一个标准的,严格定义的文件格式,它能够很容易被Granny运行库在一个单独的函数中读取。 一旦被读取,这些文件将在内存中映射为C结构,轻而易举进行数据分析和处理。

Granny as Build Tool

Granny提供了一个优化工具,它是为使装配(assembling)和自动化您的build和美术管线更容易而特别设计的。 这个优化器可以很容易插入到任何build system,帮助您转换您的数据,从而为发布游戏做好准备。 它提供将近40个常用的转换,从简单的任务像从您的字串中脚本化Maya名字空间,到一个复杂的操作像为一个morphing mesh建立一个一致的切线向量集。 当您把他们链在一起时,他们就不再简单,而是极为有用的。合并操作的灵活性极大降低了您的工作量。

更重要的是,这个优化器被设计成您能够很容易添加您自己的命令并插入到Granny的命令里。 这可能是很细微的,就像确保所有的顶点都有正确的格式,也可能是将一项很大的工作变成简单的任务,就像将Granny全部的动画和模型数据分开到您自己的引擎里。 在您亲自尝试前,您将无法相信围绕Granny建立一个多平台的美术pipeline是多么容易。

Granny as All of the Above

显然,在越多地方使用Granny,它就越有用。拥有一个完全且可自定义的导出器(exporter),预处理框架,运行时动画系统,状态机编辑器,以及一个深入的3D工具包,Granny使引擎的程序不再是苦力活。 您可以自由地将精力集中在能够使您的项目看起来感觉起来很独特的特性上,同时将其它的部分留给Granny。

我们直到您将会爱上Granny - 她真是太棒了!