This is a list of frequently asked questions about Granny. Almost all common questions are handled
here, so whenever you are having trouble, come here first!
|
Granny Frequently Asked Questions
|
|
Question
|
Answer
|
|
| Does Granny support normal mapping?
| Yes, as of version 2.2, Granny has complete normal mapping support,
for both tangent space and object space normal maps. It also includes
an powerful normal map generation tool that allows you to rapidly
generate normal maps from high-res geometry.
|
|
| What type of keyframe reduction is done when I export an animation
from Max?
| Granny uses motion fitting rather than keyframe reduction. This
means that the keyframes you set in MAX are not necessarily the
keyframes Granny will use. Granny picks its own set of keyframes based
on an error metric that attempts to make motion playback match the
original motion as closely as possible.
|
|
| Can I control Granny's motion sampling either at export time or
programatically?
| Yes. The sampling can be changed to any rate between 1x and 8x the
art tool's frame rate, and then the fitting uses the error tolerance
you specify in the exporter preferences to generate motion curves from
the samples.
|
|
| Is it possible to overload the rendering functions of Granny?
| Yes. In fact, Granny doesn't technically "render" anything directly
- she simply provides the application with vertex arrays and textures
that are ready to pass directly to Direct3D or OpenGL. However,
instead of handing them off, you can instead use them for other
purposes, such as cartoon rendering or shadow-casting. We tried to
leave it as open-ended as possible, because we know that everyone
likes to do their rendering differently.
|
|
| Does Granny support NURBS patches or other curved surfaces?
| Yes and no. We do support the exporting of NURBS from 3D Studio,
but we tessellate the NURBS during export and do not save the curved
surface representation. The run-time engine currently deals only with
triangles.
|
|
| How fast is Granny's texture decompression?
| Granny's texture compression is based on Bink Video's image
compression algorithms, which by necessity must perform very quickly
in order to maintain high framerate video playback. The image
compression gets similar compression ratios as JPEG 2000, but performs
at several times the speed. However, it obviously is not quite as fast
as simpler compression schemes such as S3TC which do not compress the
textures very much in the first place.
|
|
| Are textures with an alpha channel supported? What bit depth
options are there?
| Granny supports all alpha texture formats, including 0-bit, 1-bit,
and 8-bit alpha.
|
|
| Is Granny designed in a modular fashion? Can the IK be used
separately from the rest of the engine, for example?
| Yes. You can use Granny's IK so long as you can provide it
with a bone array that it understands. Also, since the source code to
Granny comes with the SDK when you license, you can also cut and paste
our IK routines and modify them to suit your needs.
|
|
| What platforms is Granny available for?
| Pretty much everything. Granny currently supports Win32, MacOS, MacOS X,
XBox, Xbox 306, PlayStation(R) 2, PLAYSTATION(R) 3, PlayStation(R) Portable (PSP),
GameCube, and it can be compiled in straight ANSI-C mode
(on both GCC and CodeWarrior) to easily add support for any other
platform you want.
|
|
| Can Granny queue up sequences of animations?
| Absolutely. Granny allows you to trigger an animation at any time
in the future, and it will automatically start the animation at that
time. You can queue as many animations as you like.
|
|
| Can Granny play back animations at different speeds?
| Certainly. Granny gives you complete control over the playback
speed and timing of every animation in the system, and you can
play animations backwards as well (also at any speed).
|
|
| How can I save an animated camera into a Granny file and play it
back inside my realtime engine?
| Cameras and lights are automatically saved out as bones with
additional information attached. Thus, they can be played back
through the regular animation system in Granny with no additional
calls necessary. Plus, all the camera and light data is included in
the export as well, like FOV information and aspect ratio for cameras,
and things like color and projected texture data for lights.
|
|
| How did you make the animations of the Swingin' Soldier pointing
and saluting blend in without affecting the rest of the animation?
| When you export a file with the Granny exporters, you can mark
which bones you do and do not want included in the animation. However,
you can also apply a thing called a track mask during playback which
will mask out parts of an existing animation that you do not want
applied. Either way will work.
|
|
| Does Granny do any level of detail processing?
| Granny gives you full access to all the mesh data its deforming, so
you're free to swap levels of detail at will, or even compute
progressive LOD triangle lists and use those for rendering if you want
continuous LOD. Our exporters will also generate edge connectivity
lists and vertex coincidence lists so that you can do LOD processing
easily. We recognize that most engines have a specific way they like
to handle LOD, and we try to support them all.
|
|
| Does Granny allow models to have attachment points or other markers
that can be used for positioning objects or sounds?
| You bet. There are no limits to the number of bones a particular
model can use, so your artists can add special bones for all sorts of
uses.
|
|
| Is there any way to attach application-specific scripts or
parameters to bones or meshes in my art tool in such that my application
can access them at run-time?
| Absolutely. Granny's exporters save all user data, and this data is
accessible by the application at run-time. Also, Granny automatically
saves source information about bones and meshes, such as what art tool
source file they came from or what bitmap file a texture map came
from.
|
|
| Is Bink texture compression the way to go? What about S3TC or
FXT1?
| It depends on your needs. Bink texture compression is vastly
superior in terms of image quality and file size, but S3TC can
be very important for minimizing graphics card memory use. So the
type of texture format depends quite a bit on the situation.
|
|
| Are there any restrictions on how my motions are created in 3D
Studio or Maya?
| Nope. We sample our animations and reconstruct b-splines from the
sampled data, which means that your animators can use whatever
techniques they want to produce the motions. IK, look-at targets, path
constraints, dynamics.
|
|
| Does Granny work with OpenGL? How about Direct3D? How about a
software renderer like Pixomatic?
| Granny works with all 3D APIs and software renderers. At render
time, Granny provides the application with data that can be fed
directly to all of today's popular 3D APIs, or directly interpreted by
a software renderer. Both OpenGL and Direct3D sample code is included
in the SDK.
|
|
| Does Granny help with collision detection?
| Yes. Granny provides oriented bounding boxes for all models so that
you can perform collision detection with scene elements or other
characters as you see fit, and it also includes ray-box, ray-triangle,
and ray-sphere collision detection routines for you to use with Granny
bounding boxes and meshes, or your own bounding boxes and meshes.
|
|
| How does Granny handle the application of animations to models?
| It is name-based. Any names that can't be matched are not applied. In
addition, you can specify a set of name translation rules that Granny
will use during matching to do conversions between animations and
models that were not made with the same bone naming convention.
|
|
| Do you have to save each animation in a separate file, or can they
all be saved in one file and referenced by name?
| Well, Granny allows multiple animations per file, but the catch is
that most art tools do not! So while we support it, there's really no
way to author this way, unless you write a preprocessing utility that
loads animations from multiple exports and packages them together.
But the .gr2 file format certainly allows for this.
|
|
| So, is Granny a 3D engine?
| No, Granny is meant to be a component of your 3D engine. It was
designed to work seamlessly with any 3D scene architecture. You'll be
able to get running with your 3D engine in minutes!
|
|
| Can Granny attach models together at run-time?
| Sure can. Any model can be attached to any other model, and you
are in control of when and how this happens.
|
|
| Can Granny blend two animations together at run-time?
| Absolutely. It can blend arbitrarily many animations together on
any model, and each animation can be weighted such that certain
animations will influence the model more or less than others.
Furthermore, the weights can be animated so that animations will "ramp
up" or "ramp down" in their effect, eliminating seams or popping that
might otherwise occur when blending animations that do not line up
correctly.
|
|
| Can you export an animation if there is no geometry in the scene?
| Absolutely. You have complete control over what gets exported and
what doesn't, so Granny exports can contain any combination of
animation, geometry, and material data that you see fit.
|
|
| Can Granny play back entire animated scenes?
| Granny's exporters and run-time engine impose no limits on
animations, so they can consist of multiple characters and even
background sets. However, keep in mind that Granny wasn't designed
specifically for rendering environments, so your mileage may vary
depending on what type of scene you're trying to animate.
|
|
| Is there any way that I could bundle a whole load of Granny files
into a resource file?
| Yes. In fact there are multiple ways to do this. You can use the
file reading callbacks, which allow you to replace the way Granny does
I/O with any type of file system you want. Or, you can just do the
I/O yourself and hand Granny a memory image of a .gr2 file and she
will parse that, never touching the file herself.
|
|
| Is there any way that I can control the loading and changing of
texture maps rather than Granny?
| Yes. You have two options. If you want to simply change texture
maps, that's easy, because you control what texture is loaded at
render-time - so you are free to not use the texture reference that
Granny gives you. If you'd like to do all the texture handling
yourself (and have Granny do no texture handling whatsoever), you can
export all your models without any included textures at all. This
will force Granny to embed only the texture and material names, but no
bitmap data. You can then use these names to load your own textures
with your own texture management system.
|
|
| How do I use animating textures with Granny?
| Currently Granny doesn't handle animating textures for you, so you
have to do it yourself. When you go to render an object, you can
modify the texture that you were using.
|
|
| Does Granny do Inverse Kinematics?
| Yes. You an do IK to fix up animations after they've been sampled
(to keep feet planted or to adjust hands to hold a weapon and so on),
or you can feed IK into the motion blending system as a pose.
|
|
| How fast is Granny?
| Real fast. Granny's animation system is rarely the bottleneck in
3D applications - the application's rendering pipeline generally
becomes the performance bottleneck long before Granny does.
|
|
| Can Granny play the same animation on different characters?
| You bet. In fact, it can adapt animations on-the-fly for
characters with different proportions so long as their bone structures
are similar.
|
|
| Does Granny ship with source code?
| Yes. The source code to the run-time library is included in the
SDK. The source code to the exporters, however, must be licensed
separately.
|
|
| Can Granny export any 3D Studio MAX scene?
| Because 3D Studio is plug-in based, there is no way Granny can
export all types of animations and models. However, Granny does
handle a wide variety of scenes, including those made with Skin,
Physique, and Bones Pro.
|
|
| Will Granny work with packages besides 3D Studio and Maya?
| Not yet. Be sure to e-mail us if you're using a package other than
these and would like to use Granny for your game.
|
|
| Do you currently support or plan to support vertex blending in
hardware?
| Yes. We expose the composite transform array and the vertex data,
so you are free to feed that data directly to the hardware instead of
asking Granny to deform it for you.
|