Press Releases
   2008
   2007
   2006
   2005

Events
   2008
   2007
   2006
   2005

Newsletters

Archives

Journalists:
Subscribe to the Virtools Press List


News & Events > Press Reviews 2000


Excerpt from Real-Time 3D Authoring Tools for Windows
by David Duberman in 3D

Virtools Creation 1.0 & Virtus OpenSpace 3D Author 1.0

Many 3D artists are content to produce still images, and many animators want only to see their animations play back on TV or a movie screen. But what if you want to produce an interactive real-time experience, such as a game or an interactive architectural fly-through? If you're not a programmer, you need to use an interactive authoring tool.

The market for interactive authoring tools is dominated by Macromedia Director, but Director can't do 3D (despite several plug-ins that purportedly try to provide this functionality). Fortunately, two new Windows tools can: Virtools Creation 1.0 ($990) and Virtus OpenSpace 3D Author 1.0 ($395). Virtools is aimed at the game development community, and Virtus is best suited to the low end of the interactivity spectrum, such as flythroughs.

Virtools
In the old days, computer game characters lived in Flatland. You could wrangle them up, down, and sideways, but almost never in or out. Consequently, creating games was relatively simple, and many avid gamers jumped the fence and became developers without having to strain too many brain cells. But things change. Nowadays, most computer/video games take place in virtual worlds that are a lot closer to our own than were the vertical scrolling fields of yore. Development is complicated by object-oriented programming, 3D engines, physics simulation, force-feedback input devices, character animation, multiplayer functionality, and many more such issues. You still don't need to be a rocket scientist to develop games, but its no longer child's play.

Nevertheless, the temptation to create your own games is still great among those who've tired of simply playing. With greater obstacles, its an ideal situation in which enterprising toolmakers can produce development systems enabling the creation of relatively sophisticated games without the need to stare, bleary-eyed, at countless lines of cryptic source code deep into the night, every night. That's the goal of Virtools SA , the French company that has released Virtools Creation 1.0, a package targeted at independent multimedia authors and those who want to integrate real-time interactive 3D into their content. It lets you import 3D objects, 2D images, and audio, and add interactive by applying behaviors to the objects.

Virtools Creation includes the Virtools core engine (the foundation of the Virtools technology), the Virtools app, a library of about 200 behavior building blocks, and the Virtools Player (as a standalone exe file and Internet Explorer/Netscape Navigator plug-in for web deployment).

Also available from Virtools's web site (www.virtools.com) is a free plug-in for exporting Discreet 3D Studio MAX objects, scenes, and animations to the Virtools format. For high-end 3D game developers, the company makes Virtools Dev, which adds the Virtools SDK to Virtools Creation, giving developers low level access to Virtools technology.

Creating with Virtools
To illustrate how Virtools Creation works, I'll take you through a typical workflow. First, create your assets. The program supports three 3D file formats: .3ds; Virtools's proprietary nmo format, which you can export from MAX and Softimage with a plugin; and X (Direct3D). For texture maps, you can use image files in these formats: bmp, jpg, tga, dib, and pcx; for moving textures, avi. Sound support is limited to the wav format, MIDI files (.mid), and audio CD tracks.

Next, use the menu command Create New Data Resource to automatically build a directory structure, with subdirectories named Characters, Sounds, Textures, and so on. Jump over to Windows Explorer and copy your assets into the appropriate locations, then go back into Virtools to open the data resource and start building your project. Your resources appear in a tabbed window that displays an Explorer-style view, where you can see the contents of one directory at a time. Drag your assets and behaviors over to the 3D Layout, an optionally hardware-accelerated window (OpenGL or Direct3D) that displays your scene and lets you manipulate objects.

Here's a simple example: Say you've built a hierarchical character named Davey in MAX. You'd use Virtools's MAX plugin to export Davey along with a basic "Stand and Wait" animation, where he might look around and rock on his heels. Incidentally, the exporter can handle bipeds from Character Studio, and can optionally bundle texture maps in the .nmo file. It can export transform-based animations of entire objects and hierarchical objects, but not modifiers or sub-object animations. You can transfer a morphing animation created in MAX, but its not very straightforward; you have to save each morph target as a separate object, then set it up in Virtools.

Once you've exported Davey's basic data, you can go back into MAX to create a number of alternate animations for him, such as Walk, Run, Crouch, Jump, Walk Backwards, and so on, exporting each as a separate file. Find Davey in the Resource view (Characters folder) and drag him into the 3D Layout, where you'll see him right away.

The 3D Layouts accompanying vertical toolbar provides icons for transforming Davey and navigating the view. A certain MAX influence is evident here, not only from the look and feel of the tools, but from the fact that you can, for instance, lock the current selection or cancel an operation by right-clicking. Alas, you can't fit/jump the view to the scene or current selection, nor is there a standard undo function, although you can set an 'initial condition" for each objects position, rotation, and scale, and return to it at any time.

If Davey's in the dark, you can use creation tools to add light sources: point, spot, and two types of directional lights. Other creation tools let you add cameras, grids, curves for assigning objects to paths, and frames. A frame is a placeholder, much like a dummy or null object in other programs.

Behavior Modification
Next, you want to make all of Davey's animations available to Virtools. Find them in the Resource view and drag them, one at a time, onto Davey in the 3D Layout. Then, to activate the various animations, add a behavior; here's where the fun really begins. Virtools offers a range of controller behaviors using one of the standard input devices: keyboard, mouse, or joystick. But one of its most versatile tools for character animation is the Unlimited controller, which lets you assign different animations to joystick and mouse actions in a list dialog. Choose the input from one drop-down list and any animation you've applied to the character from a second list. For each activity, you can assign a priority, whether and how an animation blends with others, a time base, and more.

Virtools's behaviors are in a resource window called Building Blocks, which contains a wealth of tools for creating interactive applications. Here's some of the Building Block categories with examples:
3D Transformations: Move To moves a 3D entity to specified location over a set time or number of frames.
Characters: Animation Synchronizer generates messages at specific times during animation playback.
Collisions: Collision Detection provides the all-important function of sending a message when two objects touch.
Controllers: Get Mouse Relative Position outputs the number of pixels the mouse has moved after stopping.
Mesh Modifications: Skin Join lets you simulate seamless characters from jointed hierarchies.
Particles: Useful for special effects such as fire, smoke, explosions, and rain. Particle systems come in various shapes, including cylinder, disc, sphere, point, and planar. You can also emit particles from a curve and an objects surface. You can apply texture images and animations to particles, as well as "interactors" for real-world effects such as air resistance, gravity, wind, and deflection. There's also a "mutation box" interactor that causes particles that enter its volume to mutate in size, color, and texture.

Once you've applied behaviors to an entity, you have to do some wiring, using the Link function in the Schematic view. Virtools uses two types of links. Typically you start out with event links, hooking up the main output of a building block (on the right side) to the input of another (on the left side). For example, if you want a keypress to activate a characters animation, you can't use the unlimited controller, so you would use a keyboard controller that would wait for the desired keypress, and then pass an "activate" message to the animation block its linked to. You can even link an event to itself, creating a loop.

The other type of link is a parameter link, which lets, for example, a function reduce a character's health setting when he's hit by a bullet. These are indicated by dashed lines, compared to the event links solid line. Virtoolss Schematic functions let you create a working flowchart of your programs logic, and add comments as well. You can "bundle" a section of your schematic into a "black box," exposing only those parameters that need to be accessed by other function, and save it in a library to reuse elsewhere. Another nice feature is that you can edit the schematic even while your scene is live and see the results immediately. Programming was never like this!

In all, Virtools includes over 200 behaviors, all of which are useful and well designed, and more are being created by users and distributed freely. In addition, the program comes with a wide variety of demo files that you can load, examine, run, and modify. One particle demo uses a rotating fan to blow flames in different directions. Other demos show how to do collision detection, camera control, character animation, morphing, and dynamics.

Also related to program organization is the Level view, which is typically tabbed with the Schematic view in the bottom half of the screen (you can drag views to the three different Ul areas, but you can't float or resize them). The Level View displays the composition contents as a hierarchical list and lets you move and copy scene elements, scripts, and so on by dragging and dropping. Its particularly useful for finding specific items in complex scenes.

When you've finished development, you use the Export to Virtools Viewer function, which produces a single file containing all program content and logic. This can be played with the free standalone Virtools Player or with a version of the player that plugs into Netscape or Internet Explorer. It can also be brought back into Virtools, but the program login isn't available in Schematic view; thus your algorithms are protected.

Interaction & Documentation
European software developers have their own unique ways of doing things. Some might call them individualistic, others eccentric. Virtools is a classic example of this syndrome. It's a Windows program, but it doesn't adhere to Windows conventions. For example, the program screen when maximized covers the Windows task bar, even if the later is set to Always On Top. And its task bar button doesn't have an icon. When you're tabbing through a multi-field dialog, the cursor sometimes disappears for a bit, then reappears if you press the Tab key a few more times. Also, lack of a quad display can hinder scene setup. But the program is quite robust; it crashed only once in my extensive testing.

Virtools's weakest point (and this is a biggie) is its documentation. Its a deep, rich piece of software, but the reference material's sketchy. The reference documentation window works like any other program window, so it's hidden behind any open dialog. Also, it's in HTML format and uses a nonstandard structure, with a limited table of contents and no index. Worst of all, there's no search capability, so looking something up can be a bit like searching for the proverbial haystack-bound needle - frustrating as hell.

On the plus side, the printed manual provides a nice range of tutorials, but not nearly enough to teach the program's full range of capabilities. Some of the tutorials are incomplete, so you can't follow them unless you do some digging. Despite the documentation's weakness, Virtools is eminently usable, as demonstrated by FunRun, a decent racing game completed in 10 weeks by German development house Terratools.

It's All Fun & Games...
If you think you're going to sit down with Virtools and create a game single-handedly in a few hours or even a few days, think again. You still need most of the skills and concentration of an experienced producer of interactive software to produce good games with this system or any other. What Virtools brings to the game development table is a visual authoring paradigm, plus a bunch of general behaviors you may be able to use to shorten development time. Chances are, you'll want to develop your own behaviors, and for that you need Virtools Dev and classical programming skills. On the other hand, creating a highly interactive 3D presentation that's accessible to anyone on the web is much easier with Virtools, where it would be quite difficult with anything else.

Is the typical Virtools user going to create the next Quake or Battlezone II or Tomb Raiders? Probably not, but he or she could produce an original game or web diversion and have a fair bit of fun in the process while still getting to have a life. And with a bit of inspiration and a whole lot of elbow grease, a driven individual or small group could use Virtools to create something that could make money and cause gamers to think a little bit differently about themselves and the world. With all its quirks, Virtools has the overwhelming virtue of making complex technology way more accessible to the average person than it was before, and that's a good thing. And as soon as the program comes with adequate documentation, including lots more tutorials and a searchable online reference, it'll be a very good thing.