1 Workflow and Complexity Issues in 3D Application ...

6 downloads 120268 Views 203KB Size Report
displayed by default) organized into 19 categories, and Adobe Photoshop CS has 568 menu commands ... purpose—creating documents for the former and creating images for the latter. This affords an ..... Up-Vector Constraint. Vertical Pan ...
Workflow and Complexity Issues in 3D Application Suites Paul Aumer-Ryan School of Information, the University of Texas at Austin

1. Introduction The major software players in the visual effects (i.e., photo-realistic computer-generated elements blended into film footage) industry have, over the years, developed large applications to address the many needs of visual effects artists, developers and programmers. Because of this iterative history of development, the inherent complexity of the tasks involved in producing visual effects, and the divergent workflows of the software users, these applications have reached a level of complexity that runs counter to intuition and usability. This whitepaper will discuss workflow modeling in general, workflow and complexity problems related to a representative 3D application suite, Softimage|XSI 4.2, and a short discussion of possible solutions to some of these issues.

2. Workflow Modeling In general, the study of workflow models is a burgeoning field somewhat synonymous with linguistic analysis. There exists a concept of “workflow language” that seeks to codify and express the different elements and actions of the workflow process with specific semantics. For a systematic overview of workflow pattern modeling, see [6]; for a sample methodology of workflow improvement techniques, see [2]. These workflow languages can be used to simplify the description of user tasks, which in turn can yield better analyses of these tasks and ultimately (the hope is) a more intuitive interface. Work has been done to create software logging applications that simplify the collection of user data and help in their analysis (for a procedural analysis of workflow processes using software logging, see [7]). These concepts and tools can be used to streamline individual workflow techniques within software applications, yielding better productivity and increased efficiency. In an artistic workflow, as much of visual effects work can be categorized as, the emphasis here is on reducing the interface distractions that interrupt a user’s train-of-thought and pull their focus away from the artistic goals. This line of research is important to apply to software applications in the visual effects industry, but there is an important caveat that will be explained in greater detail below. In short, the problem is this: 3D application suites typically embody about five discrete workflows, all expressed through the same user interface. If one were to apply standard workflow analyses to these applications, it is very likely that an improvement in one workflow would deleteriously impact one or more of the other workflows. One recommendation to this problem is a new line of study in what can be called “meta-workflow modeling”—in essence, the study of switching between related but different workflows and combining them in a common interface—but such a discussion is beyond the scope of this whitepaper.

1

3. Workflow and Complexity: Issues in Softimage|XSI As a brief metric of the complexity of a software application, the total number of menu commands and menu categories available to an end user serves to elucidate the difficulties in learning and interacting with the application. For instance, Softimage|XSI contains 1,540 separate menu commands (many of which open separate dialog boxes with anywhere from five to 50 further commands and parameters) organized into 37 categories (see Appendix A for a list of these commands and Appendix B for a list of these categories); for a detailed overview of the included components of a 3D application suite (Softimage|XSI), see [5]. In comparison, Microsoft Word 2003 has 1,040 possible menu/toolbar commands (although not all of them are displayed by default) organized into 19 categories, and Adobe Photoshop CS has 568 menu commands organized into a mere nine categories. While Microsoft Word and Adobe Photoshop have many hidden features, their main interface does not take an extensive amount of time to learn. For most users, they have one main purpose—creating documents for the former and creating images for the latter. This affords an interface that is (arguably in the case of Microsoft Word) fairly straightforward and intuitive. For example, if I want to place page numbers in my document, I would think that task would be under the general category of “insert,” and I would be able to insert page numbers through the Insert menu in Microsoft Word. Since Photoshop only has nine menus, it does not take too long to browse the available categories. Softimage|XSI, on the other hand, suffers from two main problems: an overabundance of available categories (and hence too many menus), and divergent user tasks (see Appendix C for a screenshot of the Softimage|XSI interface to get an idea of its complexity). In XSI, a user can do far more than create a document or an image—they can create and edit 3D objects, animate characters and scenes, create and edit raster (2D) images, composite layers of footage and 3D work, and write programming tools. All of these tasks carry with them a specific workflow understood by each of the user groups. For a sample workflow of a typical task in a 3D application suite (Softimage|XSI), see [4]. Unfortunately, there is little room for crossover between these five main groups (hereafter called Modelers, Animators, Painters, Compositors, and Technical Directors, respectively), so the interface becomes rather disjointed and unwieldy in trying to accommodate them all. In addition to the problems created by merging multiple workflows into one application, 3D application suites also suffer from constraints of a different nature: resource and time. Currently, the amount of raw processing power needed to create believable (photo-realistic) 3D elements far exceeds that of the typical personal computer or workstation. In response to this, many of those who work with 3D application suites are forced to contrive “fake” workarounds when simulating real world objects; this adds further complexity to anyone seeking to understand that which the 3D application is trying to represent. For a discussion of some of the complex tasks required of 3D application suites and the cobbled workarounds used to address time constraints, see [3]. All of these issues lead to what can be called a “terminology deluge”—where the amount of information that needs to be conveyed cannot be done in a simplified, symbolic manner (the traditional methods of iconic and keyword representation are used, but with little success). There exists are large, untapped usability problem here: how to effectively and efficiently communicate tasks from five different workflows to a user who (1) may be unfamiliar with the particular

2

implementation of a task, but knows how to describe in plain language what s/he wishes to accomplish, or (2) knows the specific details and steps of a task but needs an intuitive interface to afford the completion of those steps with minimal breaks in the cognitive process.

4. Workflow and Complexity: Possible Solutions These two main issues—multiple workflows and terminology deluge—need to be addressed for the benefit of the users working with 3D application suites. What follows is a brief discussion of some possible solutions. Perhaps the most straightforward solution (albeit somewhat of a stopgap measure) is to address the issues in an extensive user help system. This would not require any changes to the underlying software structure, but rather an understanding of the common problems encountered and their solutions. This solution can be generalized to the notion of a ubiquitous and readily apparent help querying system, much like a Google search bar, which is making appearances in many applications (e.g., Microsoft Office 2003). This allows a user to immediately search the product documentation upon encountering an error, without having to navigate to a separate help system or a physical user manual. Another method geared towards helping users recover from problems is the incorporation of an interactive feedback agent that can notify users (at their request) of similar actions to the one being performed. For example, if a user is trying to create a 3D sphere but only knows how to create a cube, s/he can create the cube and then query the feedback agent to get a list of tasks that are similar to the performed action. As it stands, most actions in Softimage|XSI are referred to by a key word or phrase (usually no longer than three words); with 1,540 menu commands and another slew of parameters related to these commands, this method of description quickly falls victim to overlapping terms and ambiguous identifiers. It would be worthwhile to add something akin to “tool tip text” that gives a longer description of individual items upon request, so the user can better predict the effects of an action without having to perform it. A complete rework of the menu categories in the program could notably reduce the seek time that novice and intermediate users consume when browsing for a task. 39 is a rather large number of categories to comprehend—cutting this number in half would present a better starting point for examining and navigating a menu structure. Perhaps the most important improvement would be one that untangles the multiple workflow issue. Since there is a commonality between the five main workflows—they all have the same goal of producing 3D generated content—it would be wise to emphasize this and other common elements. Additionally, there should be a direct link between complementary tasks across workflow boundaries—such as creating a 3D object and then painting it metallic blue. Finally, as a general purpose fallback measure, it is always important to allow multiple ways to perform a specific task (e.g., most major operating systems include this functionality, since it affords a wider range of user habits); if an Animator is used to doing things a certain way, those same methodologies should be applicable to, say, the Modeling process. All of these actions would be well-served by an extensive usability study, where usage data is gathered from both those familiar with the application and those not (for a current usability study being performed on Softimage|XSI, see [1]).

3

5. Conclusion The inclination towards 3D application suites as opposed to separate, individual tools is as much the product of historical eccentricities as it is a conscious choice. While there are many advocates for breaking products suites into applications that do one task and do it well, there is something to be said for the centrality of an application suite, especially in the visual effects industry, even though it creates problems of complexity and workflow. Since the creation of visual effects is composed of so many different tasks, and since artists in general are known for having their own individual work habits, compiling the set of tasks into one interface allows studios to run one application on the majority of their workstations, and it also encourages users to explore the elements of the application that they are unfamiliar with. If the philosophical goal inherent in the visual effects industry is the exploration of artistic abilities, then the motivation for addressing the problems discussed in this whitepaper become clear. Regardless, the economic motivations speak for themselves: better efficiency means better use of time and resources, which yields greater profits for the companies using 3D application suites.

4

Appendix A: Softimage|XSI Menu Commands NewScene New Selective Shadow Pass New Shadow Pass New Toon Pass New Volumic Pass NewWhite Matte Pass Next Frame Next Inspected Node NextKey Next ModiFied Paint Clip Frame Next Paint Shape Key Normals Nudge backward Nudge backward Nudge forward Nudge lorward Null Null Tool Nulls NURBS Birail NURBS Curve Net NURBS Extrusion NURBS Extrusion 2 Profiles NUROS Extrusion Along Axis NURBS Four-Sided NURRS Loft NURBS Revolution NURBS Revolution Around Axis Nurbs to Mesh OBJ Export Proc OBJ Export... OBJ Import... Object Annotation Property Object Display Property Object Select Tool Object to Cluster Constraint ObjectView Obstalce Popup Menu Offset Polygons OGL1 Pass Shader OGL2Pass Shader OGL3Pass Shader OGLAlphaTrans Shader OGLCom Shader Open Animation Editor on Kinematics Open Animation Editor on Position OpenAnimation Editor on PosX Open Animation Editor on PosY Open Animation Editor on PosZ Open Animation Editor on Rotation Open Animation Editor on RotX Open Animation Editor on RotY Open Animation Editor on RotZ OpenAnimation Editor on Scaling Open Animation Editor on SclX Open Animation Editor on SclY Open Animation Editor on SclZ Open Attachments Open NetView OpenScene Open Transient Explorer Orbit Tool Orientation Constraint Override Light Shader Paint Properties Paint Push Tool Paint Select Tool

Paint Shape Manipulator Tool Paint Tool Paint Vertex Color Tool Palettes Pan and Zoom Tool (Dope Sheet) Pan and Zoom Tool (Render Tree) Pan and Zoom Tool (Schematic View) Pan and Zoom Tool Parameter Bracketing Parent Tool Particle Cloud Particle Force Object Particle Type Pop-up Menu Particles Pass Options Pass Options Pass Options Paste (Global) Paste FCurve Keys Path Retime Phong Shader Pick and Move Tool (Schematic View) Pick Component Pick Emitter Pick Force Pick Goal Pick Obstacle Pick Position Pivot Tool Play Backwards Play Backwards From End Play Forwards Play Forwards From Start Play in Real Time Play in Real Time From Start Play/Reverse Play Playback Panel Plot All Transformations Plot Constrained Transforms Plot Curve Plot Marked Parameters Plot Positions Plot Rotations Plot Shape Plugin Manager View Shortcuts) Point Select Tool Points Polygon Cluster Visibility Property Polygon Detach Polygon Extract Polygon Normals Polygon Reduction Polygon Select Tool PolyMesh Hulls PolyMesh Subdivide With Center Pose Constraint Position Constraint Preset List Button (Special) Preview All Layers Preview Clip (Browser) Preview Current Layer Preview Options Preview Selection Preview Visible Layers Previous Container Previous Frame Previous Inspected Node

Previous Key Previous Modified Paint Clip Frame Previous Paint Shape Key Project Shell XSI Samples Property Editor Property Panel Push Quadrangulate Quick Stretch Quit (Global) Randomize Randomize Marked Parameters Randomize Marked Parameters Randomize Marked Parameters Randomize Marked Parameters Randomize Marked Parameters Raycast Edge Select Tool Raycast Polygon Select Tool Raycast Polygon Select Tool Raycast Select Tool Reconnect Model Rectangle Raycast Select Tool Rectangle Select Tool Rectangular Zoom Tool (Dope Sheet) Rectangular Zoom Tool (Render Tree) Rectangular Zoom Tool (Schematic View) Rectangular Zoom Tool Redo Redo Camera Refresh Browser (Browser) Refresh Render Region Refresh Custom Preferences RegenerateMaps Region Tool (Dope Sheet) Relational View Editor View Shortcuts) Relations Relax Reload Addon library Reload Addon libs Remove All Animation Remove All Constraint Animation Remove All Expression Animation Remove All Fcurve Animation Remove All Rotation Animation Remove All Scaling Animation VS I) Remove All Scripted Operator Animation Remove All Shaders Remove All Transform Animation Remove All Translation Animation Remove Animation Remove Cluster Remove COG (Custom Script Commands) Remove Custom Parameter Remove Floor (Custom Script Commands) Remove Foot (Custom Script Commands) Remove From Cluster Remove From Container Remove From Group Remove Group Remove Joint Limit (Custom Script Commands) Remove Key

5

Remove Object From Partition Remove Objects From Component List (Rend... Remove Shader Remove Surface Knot Remove ParType Instance Group Remove Rigid Body Render All Passes Render Pass Render Pass Render Region Tool Render Setup (Custom Script Commands) Render Tree Rendering Visibility of Current Layer RenderMap Reorder Nodes Tool (Schematic View) Repeat (Global) Replace Shader Replace Shader with Preset Replace Shape Key Reset Active Transform Reset Actor Reset All Transforms Reset Assignment For Flexible Envelope Points... Reset Camera Reset Rotation Reset Scaling Reset State (Custom Script Commands) Reset Translation Reset Velocities (Custom Script Commands) Reset EffectAtFrame Restore Default Preference Revert Paint Clip Revert Paint Clip Frame Revert Selected Paint Clip Frame Rigid Ball Socket Cns Rigid Fixed Cns Rigid Hinge Cns Rigid Slider Cns Rigid Spring Cns Roll Tool Rotation Tool Run Performance Test RV - Image Clip Viewer RV - Material and Texture Explorer RV - Material Editor RV - Mixer Explorer RV - Script Editor Dual-Pane RV - SDK Explorer) RV . Shape Explorer RV - ThumbnailViewer RV - Timeline Dop Fcv RV - Timeline Mix Dop RV - Timeline Mix Dop Fcv RV - Timeline Mix Fcv Sample Parameter Values Sampled Point Select Tool Sampled Points Save Action Key Save Actor (Custom Script Commands) SaveKey Save Key on Path Save Key on Pos Save Key on PosX Save Key on PosY ( Save Key on PosZ Save Key on Rot

Save Key on RotX Save Key on RotY Save Key on RotZ Save Key on Scl Save Key on SclX Save Key on SclY Save Key on SclZ Save Locked Key on Path Save offset keys Save Paint Clip Save Paint Shape Key Save Pivot Key Save Pivot Key on Pos Save Pivot Key on Rot Save Pivot Key on Sd Save Preset SaveRegionAs SaveScene SaveSceneAs Save Selected Paint Clip Frames SaveShapeKey Scale backward Scale backward Scale forward Scale forward Scaling Constraint Scaling Tool SceneRefresh Schematic SCM Topology Script Editor Scripted Operator Editor Scripts Select 3•Sided Polygons Select 4-Sided Polygons SelectAdjacent Edges Select Adjacent Points Select Adjacent Polygons S elect All Select All Objects Select All Using Filter Select and Move Tool (Render Tree) Select Boundary Edge Loop Select Branch Select Chain Select Child Nodes Select Deformers from Envelope Select Edge Loop Select First Select First Child Select First Child in Branch Select First in Branch Select Last Select Last in Branch Select Members/Components Select Model Select Next Sibling Select Next Sibling in Branch Select N-Sided Polygons Select Paint Clip Frames Select Parallel Edge Loop Select Parent Select Parent in Branch Select Previous Sibling Select Previous Sibling in Branch Select Shape Key Select Tool (Dope Sheet Docked In TimeLine) Select Tool (Dope Sheet) S elect Tool (Schematic View)

Select Tree Select UV Row Selectability of Current Layer Selection Panel Sell Collide (Custom Script Commands) Sequence SequenceAll Sequence Marked Parameters Sequence Selection Set a particle type Set Backround Color: Black Set Backround Color: Grey Set Branch Key Using Marking Set Set Cloth Points (Custom Script Commands) Set COG (Custom Script Commands) Set Collide Polys (Custom Script Commands) Set Collision Only (Custom Script Commands) Set Default (Custom Script Commands) Set Edge Crease Value ( Set Envelope Reference Poses Set Event Obstacle Set Filter to Edge Set Filter to Object Set Filter to Point Set Filter to Polygon Set Filter to SampledPoint Set Foot (Custom Script Commands) Set Home (Custom Script Commands) Set Key Using Marking Set Set Mass Map (Custom Script Commands) Set Nail (Custom Script Commands) Set Neutral Pose Set Object Display to Bounding Box Set Object Display to Constant Set Object Display to Default Set Object Display to Hidden Line Set Object Display to Shaded Set Object Display to Textured Set Object Display to Wireframe Set Pin (Custom Script Commands) Set RelativeValues Set Resolution Of All RefModels Set Self Polys (Custom Script Commands) Set Spring Map (Custom Script Commands) Set State (Custom Script Commands) Set Transient Reference Plane SetValue Map Offset Set Visual Only (Custom Script Commands) SetWire Color to Blue Set Wire Color to Brown Set Wire Color to Default Set Wire Color to Fuschia SetWire Color to Gold Set Wire Color to Green Set Wire Color to Light Green SetWire Color to Orange Set Wire Color to Pink Set Wire Color to Purple SetWire Color to Red SetWire Color to Teal Set Wire Color to Yellow SetCurrentMaterialLibrary SetParTypelnstanceGroup

6

SetResolutionOfRefModels_High SetResolutionOfRefModels_Low SetResolutionOfRelModels_Medium SetResolutionOfRelModels_OffLoaded SetRigidBodylnitState Shader Pop-up Menu Shader Presets Shaders Shape Jitter Shear Show Next Manipulator Show Next OGL Projection Show Previous Manipulator Show Previous OGL Projection Show RGB in Region Show Texture Supports Show/Hide Grid Show/Hide Render Region Shrink Wrap SlAddParticleGoal Simple Anisotropic Shader Simple Blinn Shader Simple Cook-Torrance Shader Simple Lambert Shader Simple Phong Shader Simple Translucent Shader Simplified Wireframe Display Sketch Curve Tool Slice Polygons Slice Polygons Tool Slip backward Slip backward Slip forward Slip forward Smooth Smooth Envelope Weighting SnapBoundary Snap Panel Sparks Shader Sphere Particle Cloud Split Edge Split Edge Tool Split Polygon Split Polygon Tool SpreadSheet StartChannelCapture Stop StopChannelCapture Store Shape Key StoreEnvironmentCachesToMixer StoreEnvironmentCacheToMixer Strauss Shader Subcurve Extract Subdivide Subdivide Edge Subdivide Polygon Subdivision Surfaces Surface Blend Surface Clean Surface Cone Surface Constraint Surface Cube Surface Curve Inverse Surface Curve Shift Surface Cylinder Surface Disc Surface Extend to Curve Surface Fillet Surface Fit Surface Grid

Surface Grid Tool Surface Intersect Surface Merge Surface Offset Surface Open/Close Surface Reparameterize Surface Shift Surface Snip Surface Sphere Surface Sphere Tool Surface Stitch Surface Subdivide Surface Swap Surface Torus Switch toAnimate Toolbar Switch to Model Toolbar Switch to Panel Hair Switch to Panel Palette Switch to Panel Toolbar Switch to Panel Weight Switch to Render Toolbar Switch to Simulate Toolbar SwitchtoView Syflex Syflex [add-on] (Layout Shortcuts) Symmetrize Polygons Symmetry Constraint Synoptic Editor Synoptic Property Tag Taper Text Editor Texture Controls Texture Editor Texture Layer Editor Texture Pop-up Menu Textured View Timeline Timeline 3D Toggle Alpha Compose Toggle Alpha Only Toggle Area Lights Toggle Freeze Refresh Toggle Grid Snap Toggle Mute State Toggle Pin Object in Position Toggle Point Snap Toggle Proportional Toggle PropVolume Toggle Selectability Toggle Selection Tracking Toggle Solo State Toolbar Group Label (Special) Toolbar Horizontal Line Separator (Special) Toolbar Horizontal Space Separator (Special) Toolbar Line Break (Special) Toolbar Panel Toon Host Shader Toon Paint Ambient Shader Toon Paint and Host Shader Toon Paint Highlight Shader Toon Paint Rimlight Shader Toon Paint Rounded Shader Toon Paint Shader Track and Zoom Tool (Render Tree) Track Tool Trajectory Constraint Transform Setup Property

Transformation Panel View Shortcuts) Translate Tool (Schematic View) Translate Tool Triangulate Trim After Trim After Trim backward Trim backward Trim Before Trim Before Trim by Projection Trim forward Trim forward Turbulence Twist UnassignMaterial Undo Undo Camera UnghostAll Objects Unhide All Objects Unhide All Polygon Clusters Unhide All Polygons Unload Addon library Unload Addon libs Unload COM libraries Unlock Unselected Clusters (except Sample) Untag Update Referenced Model Upgrade Shaders Up-Vector Constraint Vertical Pan and Zoom Tool (Dope Sheet) View Manager View Render Options ViewerOld Viewport Visibility of Current Layer Virtual Slider Tool Visibility Options (All Cameras) VolumeDeform Volumic Vortex WaIkTool Wave Object Weight Editor Weight Maps Viewport Visibility of Current Layer Virtual Slider Tool Visibility Options (All Cameras) VolumeDeform Volumic Vortex WaIkTooI Wave Object Weight Editor Weight Maps Weight Paint Panel Weight Points Weld Edges Weld Points to Target Wind XSI Explorer XSI Standard (Layout Shortcuts) Zoom Tool Move Center to Bounding Box Move Center to Points MoveJoint Tool Move Point Tool Move Selection to Current Layer Move to Partition

7

MoveToLibrary My Media Shelf My Project Shelf N Points Constraint Name Navigate Node Object Navigation Tool Netview NewAmbient Pass New Ambient/Diffuse Pass

New Caustic Pass New Custom Data Map Template New Custom Parameter New Custom Parameter Set New Depth Pass New Diffuse Pass New Global Illumination Pass New Glow Pass New Highlight Pass New Isolate Matte Pass

New Layer New Lens Flare Pass New Partition New Partition New Pass New Pass Based on Layers New Pass with Partition New Reflection Pass New Refraction Pass New RGBA Matte Pass

8

Appendix B: Softimage|XSI Menu Categories Animation Animation mixer Character rigging Cluster Constraint Custom Customization Deformation Devices Drawing Edit File General Generator Global Group Layer Layout shortcuts Manipulation Modeling Navigation Paint Primitive Property Rendering Scripting Selection Simulation Source Texturing Toolbar Topology Transform Transport control Value Viewing Views

9

Appendix C: Softimage|XSI Interface Screenshot

10

References [1] Donyaee, M., “Automated Metric-Based Usability Prediction,” Concordia University Human Centered Software Engineering Group, Montreal, Canada, 2005. [Available online at http://rana.cs.concordia.ca/amup/]. [2] Kim, Jaehyoun and Carlson, C. Robert, “A Design Methodology for Workflow System Development,” Lecture Notes in Computer Science, issue 2544, pp. 15-28, 2002. [3] Neyret, Fabrice, “Modeling, Animating, and Rendering Complex Scenes Using Volumetric Textures,” IEEE Transactions on Visualization and Computer Graphics, vol. 4, no. 1, pp. 55-70, Jan-Mar 1998. [4] Runke, Garry, “How to create perfect water,” Softimage|XSI Tutorial, 2003. [Available online at http://www.garryrunke.com/tutorials/Water-Tutorial.html]. [5] Softimage|XSI 4.2, Computer software and user’s manual. Montreal, Canada: Avid Technology, Inc., 2004. [6] Van der Aalst, W.M.P., Hofstede, A.H.M. ter, Kiepuszewski, B., et al., “Workflow Patterns,” Distributed and Parallel Databases, vol. 14, no. 1, pp. 5-51, 2003. [7] Van der Aalst, W.M.P., Van Dongen, B.F., “Discovering Workflow Performance Models from Timed Logs,” Lecture Notes in Computer Science, issue 2480, pp. 45-63, 2002.

11

Suggest Documents