home   previous   next  contents

Shout3D™ 2.5 - User Guide


Creating 3D Content for Shout3D

Introduction

3D content for use in Shout3D is generally created in standard 3D modeling and animation packages, such as 3D Studio MAX, Lightwave3D, Maya or Nendo. All of these packages, like most others, can export scene information (including geometry and keyframe animation) to the VRML 97 (VRML 2.0) file format. However, Shout3D provides a special plugin for use with 3D Studio MAX R3 that exports to Shout3D's .s3d format. The .s3d format is a variation of VRML that follows the basic structure of that file format, but provides additional nodes to support more advanced modeling and animation features. Thus authors who use 3D Studio MAX can produce more sophisticated content, more easily, for use in Shout 3D.

Note that some elements of scene content need not be created by export from a 3D modeling and animation package. For example, simple geometric primitive objects such as Box, Sphere, Cone and Cylinder nodes can be easily typed into a .s3d scene file. Those who understand basic VRML routing concepts can add simple keyframe animation by hand. You'll find an example of this in the Shout3D Workflow Tutorial.

Spherical environment maps to be used as reflection or light maps cannot be exported (as of this release) in any case, and must be added to a MultiAppearance node by hand-editing an .s3d scene file, as follows:

MultiAppearance {
   environmentMap EnvironmentSphereMap {
      texture ImageTexture {
         url "my_sphere_envmap.jpg"
      }
   }
}

Using the 3D Studio MAX Export Plugin

The Shout3D Studio MAX Export Plugin supports a broad range of MAX's modeling, texturing and animation features. The best way to become introduced to the Export Plugin is to run through the 3D Studio MAX Export Tutorial. After you've completed this tutorial, use this section of the User Guide for reference.

Installing the Plugin

To install the plugin, copy the appropriate .dle file from the 3DStudioMAX_plugin directory in your Shout3D installation to the stdplugs directory in your MAX installation. Use s3dexp.dle for MAX 3, s3dexp4.dle for MAX 4, or s3dexp4.2.dle for MAX 4.2. The next time you launch MAX, you'll find Shout3D Scene Export as an export option. You can use the exporter for entire scenes (File>Export) or just selected objects (File>Export Selected). When you export entire scenes, hidden objects will not be exported.

Coordinate Systems

3D Studio MAX uses a relatively unusual coordinate system in which the z direction is vertical. VRML and Shout3D use the much more conventional system in which y is the vertical direction. The Export Plugin will make this conversion correctly, but this issue may arise in other contexts.

Exporting Geometry

Only the output of a given modifier stack is exported. Thus it makes no difference whether a stack has been collapsed prior to export. Only polygonal mesh geometry is exported. Patch (bezier patch) and NURBS surfaces are exported as polygon meshes using the tessellation that would result if converted to an Editable Mesh. Thus it may make sense to convert such spline surfaces to Editable Meshes prior to export to confirm the exportable result. Parametric primitives objects (such as Box and Sphere) are collapsed to fixed polygonal meshes for export.

MAX uses some internal processes with respect to transforms (position, rotation and scale) that can cause confusion when working with files exported from MAX. These issues are particularly noticeable when pivot points are moved or, especially, when objects are mirrored. To make sure that all transform issues are resolved prior to export, select each finished object and apply the Reset XForm utility in under the Utility Tab of the Command Panel (not Reset Transform in the Hierarchy Panel). The effect of this action is demonstrated in the 3D Studio MAX Export Tutorial. Be sure to perform any ResetXForm action prior to animating or linking objects into parent-child hierarchies.

The Export Plugin will export all smoothing group information assigned to selected faces.

Exporting Texture Coordinates

The Export Plugin correctly exports all texture mappings created in MAX, including those created with the UVW Mapping modifier or edited with the Unwrap UVW modifier.

Shout3D does not currently support multiple texture coordinates for a given set of faces. Thus you cannot make use of multiple Map Channels in MAX.

Tiling must be performed in the UVW Mapping modifier. The tiling information in the Material Editor will not export. However, the mapping offset values in the Material Editor will export properly.

Exporting Materials and Textures

The Export Plugin exports most of the parameters of the Standard Material. If an object is divided into multiple Material ID's, it will export separate Standard Materials for each designated group of faces if a Multi/Sub-Object Material is applied.

The following image summarizes Shout3D export from the MAX Material Editor:

Cubic Reflection Maps

For general reflection mapping, it will typically make sense to add spherical reflection maps to a scene file by hand, as indicated in the Introduction section, above. However, you can export cubic reflection maps created in the MAX Material Editor. These will typically make sense when the cubic reflection map (composed of six images) is also to be used as a Panoramic background.

You can use only the Reflect/Refract map type in the Reflection Map channel. You must supply the six maps, and you'll get the best results if all the maps are to the "power of 2" (e.g., 128x128 pixels, 256x256 pixels), though this is not a requirement. You can create your maps for this purpose by rendering an environment created within MAX in six images, as discussed in the following section on Creating Backgrounds and Panoramas.

Creating Backgrounds and Panoramas

The easiest way to create a background color or background image for Shout3D content is to set these values in the Shout3D Wizard. However, they can be exported from MAX if set in the Environment Panel.

A panoramic environment can be created in MAX by rendering the environment surrounding the center of a MAX scene as six separate images. After creating the environment, place an object in the center of the scene. Pick a material in the Material Editor and put a Reflect/Refract map type in the Reflection Map channel. Check the "From File" box. Under "Render Cubic Map Files," enter a file name under "To File." Click on "Pick Object and Render Maps." When you select the object in the middle of your scene, MAX will render six images from the position of the object.

The rendered images will be named "back," "down, "left," etc., and can be added by hand into the various texture fields of an EnvironmentalCubeMap node, whether in a Panorama node (for a panoramic background) or for a reflection map in a MultiAppearance node. You can export a Panorama node directly from MAX by loading the Reflect/Refract maps into the Environment panel as an Environment Map. Use the "copy" (not "instance" option) and render in MAX to make sure the environment is working. Then you can export out of MAX.

Exporting Lights

Shout3D supports only directional lights. Directional and spot lights in MAX are exported as directional lights. Omni lights are not supported at all.

Animation Issues

The Export Plugin can export bezier and TCB spline interpolated keyframes, in addition to linear ones. When you export animation from MAX, a dialog box will prompt you to choose between using the existing keyframes or creating linear keyframes by sampling at a given frame interval. You'll only need to use sampling if you have failed to use an animation controller supported by the Export Plugin.

The following animation controllers for transforms are supported:

The Export Plugin will correctly export animation created with the Morpher modifier (but not with the older Morph Compound Object). Make sure to hide your morph targets prior to export.

You can store multiple animations of the same scene in a single .s3d file, and use Java or JavaScript programming to allow users to switch between animations. You can arrange the different animations end-to-end and export a single scene file, or you can export each animation to a separate file, and consolidate the multiple TimeSensor and Interpolator nodes into a single .s3d file. If you arrange the multiple animations end to end, you can add a FractionRemapper node to your .s3d or .wrl scene file and specify a keyframe range to play in the startKey and endKey fields. You can then use Java or JavaScript code to permit users to switch to other segments by interactively changing the values in these fields. For a simple demo using JavaScript, check out the segmentedAnimationTest demo. Examine the HTML source code in this page to see how the field values can be reset. Open the underlying scene file, segmentedAnimationTest.wrl in the models directory, to see how the FractionRemapper node is added to scene.

Morpher Modifer

The Export Plugin will correctly export all animation created with the Morpher modifier (but not with the older Morph Compound Object). Make sure to hide your morph targets prior to export.

Note: A bug has been fixed since Shout3D 2.0.  It used to be that you needed to take special steps if your Morpher channels were not set to 0 at Frame 0 of your animation.  These special steps are no longer necessary.

MAX 4 Skeletal Deformation

The Skin Modifer is supported in export (through the same PhysiqueSkeletalDeformer node that is used for export of the Physique modifier). When you export a skinned object animated with MAX 4 bones, the animation will export correctly even if the bones are hidden in your MAX scene. If the bones are not hidden in MAX, you can still choose to hide them in the exported scene by checking the Hide All Bone Geometry option in the exporter dialog.

Mirroring bones in MAX can generate bones with negative scale (at least for the first bone in a mirrored chain). Such bones can behave correctly in MAX, but produce distorted results upon export to Shout3D. Check any mirrored bones in MAX to see if they have negative scale values before exporting. Note that negative scaling can be avoided by checking the Mirror Bones box in the Mirror dialog box. However, this option is available only for bones that have not been assigned to an IK Chain. Thus it can be necessary to mirror bones before assigning an IK Chain to them, and then applying IK separately to each mirrored chain.

Shout3D does not support inverse kinematics, and thus MAX 4 bones that are animated through IK chains will not export keyframes. One option is to check the Force Sample box in the exporter dialog, and set a sampling rate. This will generate rotational keyframes for bones in an IK chain at regular intervals. The problem with this method is that it may generate very large .s3d files when the sampling rate is high -- as may be necessary to accurately track the animation. However, you can at least delete the IK Chain object (with its animation data) from the resulting .s3d file.

Another approach is to convert IK animation to foward kinematics (rotational) keyframes on the bones directly in MAX 4, prior to export. This can be achieved by disabling IK after creating the IK animation (in the Motion panel for the selcted IK Chain) and resetting keyframes at selected points in the animation to generate rotational keyframes on the bones. (Check this process out in Track View.) This approach can require some experimentation to get a good result, but allows for more efficient results than pure periodic sampling.

Using Character Studio

The Export Plugin supports Character Studio Bipeds and the Physique modifier for full skeletal deformation - including envelopes with deformable and rigid vertices, Link/Joint settings, bulges and tendons. Both freeform and footstep animation are exportable.

Using VRML Export

Shout3D supports VRML 97 (VRML 2.0) files, with some qualifications discussed below. VRML export will be the only means for creating Shout3D content in 3D modeling and animation packages other that 3D Studio MAX 3. But even MAX 3 users may find themselves using MAX's VRML 97 export on occasion, as it supports some features (e.g., vertex color, quad and n-gon polygonal meshes) that are not currently available through the 3D Studio MAX Export Plugin.

.wrl files vs. .s3d files

It's important to understand that the Shout3D viewer uses only one file format, regardless of whether the file is named with an .s3d extension or a .wrl extension. The Shout3D file format is simply a modified and expanded form of the VRML 97 file format. The Shout3D viewer can therefore use .wrl files created by VRML 97 exporters or authoring packages, so long as they do not use certain VRML nodes that are not supported by Shout3D. The Shout3D viewer can also use .wrl files that contain new Shout3D node types that have been added to the scene file by hand-editing in a text editor.

VRML Nodes in Shout3D

A complete discussion of the differences between VRML 97 and Shout3D can be found in the Shout3D 2.5 Specification.

In brief, the following points should be noted:

Authoring for AOL Users

AOL has a feature that can break Shout3D browsers. The problem is that AOL will automatically compress all image files into a format that Java cannot read or understand. Users of AOL can turn this off, by following the instructions at http://webmaster.info.aol.com, but that does not safeguard the Shout3D author against AOL users who have not turned this feature off.

The workaround for this is to "fool" AOL into thinking that the images are not in fact images. To do this, you need to rename all of your image files to end with a phony extension. For example, change each myFile.jpg to myFile.xxx and then AOL will leave it alone.

If you do this, make sure to change all references to the image in your .s3d or .wrl scene file.

Authoring with Spazz3D

Spazz3D, by Virtock Technologies, is an authoring tool with a built in exporter to Shout3D format. It also has a pulldown menu item that will launch the Shout3DWizard with your new model, directly from within Spazz3D.

All Spazz3D content will export correctly to Shout3D, including a number of custom animation techniques that are not found in other packages.

Spazz3D is an inexpensive alternative to some of the other VRML and Shout3D modelers on the market. For more information, click this link to go to Spazz3D's website.


Copyright© 1999-2001, Shout3D LLC.