You are on page 1of 125

Content Pipelines

Document Issue: 1.1 Document Status: Draft


Date Issued: September 11, 2001 Filing Path: SV040:1676/depot/docs/TechDesign
Document Title: Dark Angel Content Pipeline Specification
Authors: Adam King, Bert Sandie
Keywords: Animations, NISs, Textures, Models, Sound, FMV, and Scripts

Revision History
Issue Date Person Reason - include problem #, ECN #, etc.

0.1 July 12, 2001 Adam King, Initial version of document.


Bert Sandie

0.2 July 20, 2001 Adam King General revisions and updates

0.3 July 23, 2001 Adam King Collision volume tool help in model pipeline

Additional script information

General minor updates

0.4 July 24, 2001 Adam King Table of Figures

Cloth pipeline updated

General revisions and updates based on reviewed


by Stephen Lambie

0.5 July 25, 2001 Adam King Added facial animation pipeline

General Revisions

0.6 July 27, 2001 Adam King General revisions based on review by Bert Sandie

0.7 Aug 1, 2001 Adam King General revisions based on reviews by Juneko
Kurahashi and Bert Sandie

0.8 Aug 17, 2001 Adam King Animation, Facial Animation, and World Builder
S ti d t d
 Radical Entertainment. All rights reserved. No part of this publication, or any software included with it may be reproduced, stored in a retrieval
system, or transmitted in any form or by any means, including photocopying, electronic, mechanical, recording or otherwise, without prior written
permission of the copyright holder.

This document contains proprietary information of Radical Entertainment. The contents are confidential and any disclosure to persons other than
the officers, employees, agents, or subcontractors of the owner or licensee of this document, without prior written consent of Radical
Entertainment is strictly prohibited.
Radical Entertainment
DA Content Pipelines 18-Oct-02
Sections updated.

0.9 Aug 29, 2001 Adam King General updates

1.0 Sept 10, 2001 Adam King Updated Bounding Volume Section

1.1 Sept 11, 2001 Adam King Letterboxing and NIS bundle info added

Issue: 0.1 Page 2 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

TABLE OF CONTENTS

1. Introduction............................................................................................................................13
1.1 Scope..............................................................................................................................13
1.2 Intended Audience .........................................................................................................13
1.3 References......................................................................................................................13
1.4 Acronyms and Definitions .............................................................................................14

2. General Information...............................................................................................................15
2.1 Loading Data..................................................................................................................15
2.2 Version Control..............................................................................................................16

3. Animation Pipeline ................................................................................................................17


3.1 Description.....................................................................................................................17
3.1.1 Pipeline Description...................................................................................................17
3.1.2 Goals of the Pipeline..................................................................................................17
3.1.3 Users of the Pipeline ..................................................................................................17
3.2 User Documentation ......................................................................................................17
3.2.1 Naming Conventions .................................................................................................17
3.2.2 Directory Structure ....................................................................................................17
3.2.3 Instructions.................................................................................................................20
3.2.4 How to Verify Data is Correct ...................................................................................20
3.2.5 Limitations and Recommendations............................................................................20
3.2.6 Troubleshooting .........................................................................................................20
3.2.7 References and Supporting Documentation ..............................................................20
3.3 Technical Documentation ..............................................................................................21
3.3.1 Naming Conventions and Directory Structure...........................................................21
3.3.2 File Format and Content ............................................................................................21
3.3.3 Pipeline Flow Chart with Descriptions......................................................................21
3.3.4 Current and Desired Tools .........................................................................................22
3.3.5 Limitations and Recommendations............................................................................23
3.3.6 Potential Extensions...................................................................................................24
3.3.7 Error Checking...........................................................................................................24

4. Facial Animation Pipeline......................................................................................................25


4.1 Description.....................................................................................................................25
4.1.1 Pipeline Description...................................................................................................25
4.1.2 Goals of the Pipeline..................................................................................................25
4.1.3 Users of the Pipeline ..................................................................................................25
4.2 User Documentation ......................................................................................................25
4.2.1 Naming Conventions .................................................................................................25
4.2.2 Instructions.................................................................................................................25
4.2.3 Location of Source and Final Files ............................................................................26

Issue: 0.1 Page 3 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
4.2.4 How to Verify Data is Correct ...................................................................................26
4.2.5 Limitations and Recommendations............................................................................26
4.2.6 Troubleshooting .........................................................................................................26
4.2.7 References and Supporting Documentation ..............................................................26
4.3 Technical Documentation ..............................................................................................26
4.3.1 Naming Conventions .................................................................................................26
4.3.2 File Format and Content ............................................................................................27
4.3.3 Pipeline Flow Chart with Descriptions......................................................................27
4.3.4 Current and Desired Tools .........................................................................................28
4.3.5 Platform Specific Instructions and Functionality ......................................................32
4.3.6 Limitations and Recommendations............................................................................32
4.3.7 Potential Extensions...................................................................................................32
4.3.8 Error Checking...........................................................................................................32

5. Model Pipeline .......................................................................................................................33


5.1 Description.....................................................................................................................33
5.1.1 Pipeline Description...................................................................................................33
5.1.2 Goals of the Pipeline..................................................................................................33
5.1.3 Users of the Pipeline ..................................................................................................33
5.2 User Documentation ......................................................................................................33
5.2.1 Naming Conventions .................................................................................................33
5.2.2 Directory Structure ....................................................................................................37
5.2.3 Instructions.................................................................................................................38
5.2.4 Location of Source and Final Files ............................................................................38
5.2.5 How to Verify Data is Correct ...................................................................................38
5.2.6 Limitations and Recommendations............................................................................39
5.2.7 Troubleshooting .........................................................................................................39
5.2.8 References and Supporting Documentation ..............................................................39
5.3 Technical Documentation ..............................................................................................39
5.3.1 Naming Conventions .................................................................................................39
5.3.2 File Format and Content ............................................................................................39
5.3.3 Pipeline Flow Chart with Descriptions......................................................................40
5.3.4 Current and Desired Tools .........................................................................................41
5.3.5 Platform Specific Instructions and Functionality ......................................................50
5.3.6 Limitations and Recommendations............................................................................50
5.3.7 Potential Extensions...................................................................................................50
5.3.8 Error Checking...........................................................................................................50

6. Texture Pipeline .....................................................................................................................51


6.1 Description.....................................................................................................................51
6.1.1 Pipeline Description...................................................................................................51
6.1.2 Goals of the Pipeline..................................................................................................51
6.1.3 Users of the Pipeline ..................................................................................................51
6.2 User Documentation ......................................................................................................51
6.2.1 Naming Conventions .................................................................................................51

Issue: 0.1 Page 4 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
6.2.2 Directory Structure ....................................................................................................51
6.2.3 Instructions.................................................................................................................53
6.2.4 Location of Source and Final Files ............................................................................53
6.2.5 How to Verify Data is Correct ...................................................................................53
6.2.6 Limitations and Recommendations............................................................................53
6.2.7 Troubleshooting .........................................................................................................53
6.2.8 References and Supporting Documentation ..............................................................53
6.3 Technical Documentation ..............................................................................................53
6.3.1 Naming Conventions .................................................................................................53
6.3.2 File Format and Content ............................................................................................54
6.3.3 Pipeline Flow Chart with Descriptions......................................................................54
6.3.4 Current and Desired Tools .........................................................................................56
6.3.5 Platform Specific Instructions and Functionality ......................................................60
6.3.6 Limitations and Recommendations............................................................................61
6.3.7 Potential Extensions...................................................................................................61
6.3.8 Error Checking...........................................................................................................61

7. NIS Pipeline ...........................................................................................................................62


7.1 Description.....................................................................................................................62
7.1.1 Pipeline Description...................................................................................................62
7.1.2 Goals of the Pipeline..................................................................................................62
7.1.3 Users of the Pipeline ..................................................................................................62
7.2 User Documentation ......................................................................................................62
7.2.1 Naming Conventions .................................................................................................62
7.2.2 Directory Structure ....................................................................................................63
7.2.3 Instructions.................................................................................................................64
7.2.4 Location of Source and Final Files ............................................................................64
7.2.5 How to Verify Data is Correct ...................................................................................64
7.2.6 Limitations and Recommendations............................................................................64
7.2.7 Troubleshooting .........................................................................................................64
7.2.8 References and Supporting Documentation ..............................................................64
7.3 Technical Documentation ..............................................................................................64
7.3.1 Naming Conventions .................................................................................................64
7.3.2 File Format and Content ............................................................................................64
7.3.3 Pipeline Flow Chart with Descriptions......................................................................65
7.3.4 Current and Desired Tools .........................................................................................66
7.3.5 Platform Specific Instructions and Functionality ......................................................67
7.3.6 Limitations and Recommendations............................................................................68
7.3.7 Potential Extensions...................................................................................................68
7.3.8 Error Checking...........................................................................................................68

8. FMV Pipeline.........................................................................................................................69
8.1 Description.....................................................................................................................69
8.1.1 Pipeline Description...................................................................................................69
8.1.2 Goals of the Pipeline..................................................................................................69

Issue: 0.1 Page 5 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
8.1.3 Users of the Pipeline ..................................................................................................69
8.2 User Documentation ......................................................................................................69
8.2.1 Naming Conventions .................................................................................................69
8.2.2 Instructions.................................................................................................................69
8.2.3 Location of Source and Final Files ............................................................................70
8.2.4 How to Verify Data is Correct ...................................................................................70
8.2.5 Limitations and Recommendations............................................................................70
8.2.6 Troubleshooting .........................................................................................................70
8.2.7 References and Supporting Documentation ..............................................................70
8.3 Technical Documentation ..............................................................................................70
8.3.1 Naming Conventions .................................................................................................70
8.3.2 File Format and Content ............................................................................................70
8.3.3 Pipeline Flow Chart with Descriptions......................................................................71
8.3.4 Platform Specific Instructions and Functionality ......................................................74
8.3.5 Limitations and Recommendations............................................................................74
8.3.6 Potential Extensions...................................................................................................74
8.3.7 Error Checking...........................................................................................................74
8.3.8 Technical Documentation ..........................................................................................74
8.3.9 Pipeline Ownership....................................................................................................74

9. General Scripting Pipeline .....................................................................................................75


9.1 Description.....................................................................................................................75
9.1.1 Pipeline Description...................................................................................................75
9.1.2 Goals of the pipeline ..................................................................................................75
9.1.3 Users of the Pipeline ..................................................................................................75
9.2 User Documentation ......................................................................................................75
9.2.1 Naming Conventions .................................................................................................75
9.2.2 Instructions.................................................................................................................75
9.2.3 Location of Source and Final Files ............................................................................75
9.2.4 How to Verify Data is Correct ...................................................................................76
9.2.5 Limitations and Recommendations............................................................................76
9.2.6 Troubleshooting .........................................................................................................76
9.2.7 References and Supporting Documentation ..............................................................76
9.3 Technical Documentation ..............................................................................................76
9.3.1 Naming Conventions .................................................................................................76
9.3.2 File Format and Content ............................................................................................76
9.3.3 Pipeline Flow Chart with Descriptions......................................................................77
9.3.4 Current and Desired Tools .........................................................................................77
9.3.5 Platform Specific Instructions and Functionality ......................................................77
9.3.6 Limitations and Recommendations............................................................................77
9.3.7 Potential Extensions...................................................................................................78
9.3.8 Error Checking...........................................................................................................78

10. Animation Scripting Pipeline.............................................................................................79


10.1 Description.....................................................................................................................79

Issue: 0.1 Page 6 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
10.1.1 Pipeline Description...............................................................................................79
10.1.2 Goals of the pipeline ..............................................................................................79
10.1.3 Users of the Pipeline ..............................................................................................79
10.2 User Documentation ......................................................................................................79
10.2.1 Naming Conventions .............................................................................................79
10.2.2 Instructions.............................................................................................................79
10.2.3 Location of Source and Final Files ........................................................................80
10.2.4 How to Verify Data is Correct ...............................................................................80
10.2.5 Limitations and Recommendations........................................................................80
10.2.6 Troubleshooting .....................................................................................................80
10.2.7 References and Supporting Documentation ..........................................................80
10.3 Technical Documentation ..............................................................................................80
10.3.1 Naming Conventions .............................................................................................80
10.3.2 File Format and Content ........................................................................................80
Script commands....................................................................................................................83
10.3.3 Pipeline Flow Chart with Descriptions..................................................................85
10.3.4 Platform Specific Instructions and Functionality ..................................................85
10.3.5 Limitations and Recommendations........................................................................85
10.3.6 Potential Extensions...............................................................................................86
10.3.7 Error Checking.......................................................................................................86

11. Fight Scripting Pipeline .....................................................................................................87


11.1 Description.....................................................................................................................87
11.1.1 Pipeline Description...............................................................................................87
11.1.2 Goals of the pipeline ..............................................................................................87
11.1.3 Users of the Pipeline ..............................................................................................87
11.2 User Documentation ......................................................................................................87
11.2.1 Naming Conventions .............................................................................................87
11.2.2 Instructions.............................................................................................................87
11.2.3 Location of Source and Final Files ........................................................................88
11.2.4 How to Verify Data is Correct ...............................................................................88
11.2.5 Limitations and Recommendations........................................................................88
11.2.6 Troubleshooting .....................................................................................................88
11.2.7 References and Supporting Documentation ..........................................................88
11.3 Technical Documentation ..............................................................................................88
11.3.1 Naming Conventions .............................................................................................88
11.3.2 File Format and Content ........................................................................................88
11.3.3 Pipeline Flow Chart with Descriptions..................................................................90
11.3.4 Platform Specific Instructions and Functionality ..................................................91
11.3.5 Limitations and Recommendations........................................................................91
11.3.6 Potential Extensions...............................................................................................91
11.3.7 Error Checking.......................................................................................................91

12. Lighting Pipeline................................................................................................................92


12.1 Description.....................................................................................................................92

Issue: 0.1 Page 7 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
12.1.1 Pipeline Description...............................................................................................92
12.1.2 Goals of the pipeline ..............................................................................................92
12.1.3 Users of the Pipeline ..............................................................................................92
12.2 User Documentation ......................................................................................................92
12.2.1 Naming Conventions .............................................................................................92
12.2.2 Instructions.............................................................................................................92
12.2.3 Location of Source and Final Files ........................................................................94
12.2.4 How to Verify Data is Correct ...............................................................................94
12.2.5 Limitations and Recommendations........................................................................94
12.2.6 Troubleshooting .....................................................................................................94
12.2.7 References and Supporting Documentation ..........................................................95
12.3 Technical Documentation ..............................................................................................95
12.3.1 Naming Conventions .............................................................................................95
12.3.2 File Format and Content ........................................................................................95
12.3.3 Pipeline Flow Chart with Descriptions..................................................................95
12.3.4 Current and Desired Tools .....................................................................................95
12.3.5 Platform Specific Instructions and Functionality ..................................................95
12.3.6 Limitations and Recommendations........................................................................96
12.3.7 Potential Extensions...............................................................................................96
12.3.8 Error Checking.......................................................................................................96
12.3.9 Pipeline Ownership................................................................................................96

13. Localization Pipeline .........................................................................................................97


13.1 Description.....................................................................................................................97
13.1.1 Pipeline Description...............................................................................................97
13.1.2 Goals of the Pipeline..............................................................................................97
13.1.3 Users of the Pipeline ..............................................................................................97
13.2 User Documentation ......................................................................................................97
13.2.1 Naming Conventions .............................................................................................97
13.2.2 Instructions.............................................................................................................98
13.2.3 Location of Source and Final Files ........................................................................98
13.2.4 How to Verify Data is Correct ...............................................................................98
13.2.5 Limitations and Recommendations........................................................................98
13.2.6 Troubleshooting .....................................................................................................99
13.2.7 References and Supporting Documentation ..........................................................99
13.3 Technical Documentation ..............................................................................................99
13.3.1 Naming Conventions .............................................................................................99
13.3.2 File Format and Content ........................................................................................99
13.3.3 Pipeline Flow Chart with Descriptions..................................................................99
13.3.4 Platform Specific Instructions and Functionality ................................................100
13.3.5 Limitations and Recommendations......................................................................100
13.3.6 Potential Extensions.............................................................................................100
13.3.7 Error Checking.....................................................................................................100

14. Sound Pipeline .................................................................................................................101

Issue: 0.1 Page 8 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
14.1 Description...................................................................................................................101
14.1.1 Pipeline Description.............................................................................................101
14.1.2 Goals of the Pipeline............................................................................................101
14.1.3 Users of the Pipeline ............................................................................................101
14.2 User Documentation ....................................................................................................101
14.2.1 Naming Conventions ...........................................................................................101
14.2.2 Instructions...........................................................................................................101
14.2.3 Location of Source and Final Files ......................................................................101
14.2.4 How to Verify Data is Correct .............................................................................101
14.2.5 Limitations and Recommendations......................................................................102
14.2.6 Troubleshooting ...................................................................................................102
14.2.7 References and Supporting Documentation ........................................................102
14.3 Technical Documentation ............................................................................................102
14.3.1 Naming Conventions ...........................................................................................102
14.3.2 Dependencies .......................................................................................................102
14.3.3 File Format and Content ......................................................................................102
14.3.4 Current and Desired Tools ...................................................................................102
14.3.5 Pipeline Flow Chart with Descriptions................................................................104
14.3.6 Platform Specific Instructions and Functionality ................................................104
14.3.7 Limitations and Recommendations......................................................................104
14.3.8 Potential Extensions.............................................................................................105
14.3.9 Error Checking.....................................................................................................105
14.3.10 Pipeline Ownership..............................................................................................105

15. Physics Cloth Simulation Pipeline...................................................................................106


15.1 Description...................................................................................................................106
15.1.1 Pipeline Description.............................................................................................106
15.1.2 Goals of the Pipeline............................................................................................106
15.1.3 Users of the Pipeline ............................................................................................106
15.2 User Documentation ....................................................................................................106
15.2.1 Naming Conventions ...........................................................................................106
15.2.2 Instructions...........................................................................................................107
15.2.3 Location of Source and Final Files ......................................................................107
15.2.4 How to Verify Data is Correct .............................................................................107
15.2.5 Limitations and Recommendations......................................................................107
15.2.6 Troubleshooting ...................................................................................................107
15.2.7 References and Supporting Documentation ........................................................107
15.3 Technical Documentation ............................................................................................107
15.3.1 Naming Conventions ...........................................................................................107
15.3.2 File Format and Content ......................................................................................107
15.3.3 Pipeline Flow Chart with Descriptions................................................................108
15.3.4 Current and Desired Tools ...................................................................................109
15.3.5 Platform Specific Instructions and Functionality ................................................110
15.3.6 Limitations and Recommendations......................................................................110
15.3.7 Potential Extensions.............................................................................................110

Issue: 0.1 Page 9 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
15.3.8 Error Checking.....................................................................................................110
15.3.9 Potential Risks .....................................................................................................110
15.3.10 Pipeline Ownership..............................................................................................110

16. World Builder Pipeline ....................................................................................................111


16.1 Description...................................................................................................................111
16.1.1 Pipeline Description.............................................................................................111
16.1.2 Goals of the Pipeline............................................................................................111
16.1.3 Users of the Pipeline ............................................................................................111
16.2 User Documentation ....................................................................................................111
16.2.1 Naming Conventions ...........................................................................................111
16.2.2 Instructions...........................................................................................................112
16.2.3 Location of Source and Final Files ......................................................................112
16.2.4 How to Verify Data is Correct .............................................................................112
16.2.5 Limitations and Recommendations......................................................................112
16.2.6 Troubleshooting ...................................................................................................112
16.2.7 References and Supporting Documentation ........................................................112
16.3 Technical Documentation ............................................................................................112
16.3.1 Naming Conventions ...........................................................................................112
16.3.2 File Format and Content ......................................................................................112
16.3.3 Pipeline Flow Chart with Descriptions................................................................113
16.3.4 Current and Desired Tools ...................................................................................114
16.3.5 Platform Specific Instructions and Functionality ................................................115
16.3.6 Limitations and Recommendations......................................................................115
16.3.7 Potential Extensions.............................................................................................115
16.3.8 Error Checking.....................................................................................................115

17. Appendix A: Television Display Issues...........................................................................116


17.1 NTSC and PAL ............................................................................................................116
17.1.1 Colors...................................................................................................................116
17.1.2 Overscan ..............................................................................................................117
17.1.3 Interlaced Video...................................................................................................117
17.1.4 Resolution Issues .................................................................................................117
17.1.5 Miscellaneous Issues............................................................................................117

18. Appendix B: When your Maya files are blowing out of proportion:...............................119
18.1 Regular maintenance on the file ..................................................................................119
18.2 After the Maya file is final and is ready to be exported to the game….......................122

19. Appendix C: How Tristripping Works ............................................................................124

Issue: 0.1 Page 10 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
Table of Figures
Figure 1: Top-level art directory....................................................................................................18

Figure 2: anims directory structure................................................................................................19

Figure 5: Menu containing the plug-in manager ...........................................................................29

Figure 6: Plug-in manager were p3dDeformer.mll must have both boxes checked......................30

Figure 7: Plug-in shelf with Deformer Tools.................................................................................30

Figure 8: Models Directory Structure............................................................................................38

Figure 9: Art Build Flowchart .......................................................................................................55

Figure 10: Menu containing the plug-in manager .........................................................................44

Figure 11: Plug-in Manager...........................................................................................................45

Figure 12: Plug-in shelf with Bounding Volume Tool ..................................................................45

Figure 13: Bounding Volume Tool Window .................................................................................46

Figure 14: Maya Hypergraph with Transform node highlighted...................................................47

Figure 15: Model in Maya with a box bounding volume ..............................................................48

Figure 16: Sourceimages Directory Structure ...............................................................................52

Figure 17: Texture Pipeline Flowchart ..........................................................................................54

Figure 18: NIS Directory Structure ...............................................................................................63

Figure 19: NIS Pipeline Flowchart ................................................................................................65

Figure 20: FMV Pipeline Flowchart..............................................................................................71

Figure 21: RAD Video Tools Screenshot ......................................................................................72

Figure 22: Bink option interface for files being converted............................................................73

Figure 23: Scripting Pipeline Flowchart........................................................................................77

Figure 24: Set Lit to NO to flag a material as being pre-lit. ..........................................................93

Figure 25: Applying pre-lighting to a selected geometry. .............................................................93

Figure 26: Setting custom polygon display options to show CBV lighting. .................................94

Issue: 0.1 Page 11 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
Figure 27: Lighting Pipeline Flowchart.........................................................................................95

Figure 28: Localization Pipeline Flowchart.................................................................................100

Figure 29: Sound Pipeline Flowchart ..........................................................................................104

Figure 30: Cloth Pipeline Flowchart............................................................................................108

Figure 31: World Builder Pipeline Flowchart .............................................................................113

Figure 32: NTSC safe title area. ..................................................................................................116

Figure 33: Finding intermediate objects in the hypergraph.........................................................119

Figure 34: A disconnected intermediate object. ..........................................................................120

Figure 35: Deleting image planes. ...............................................................................................121

Figure 36: Hypergraph showing Trax..........................................................................................122

Figure 37: Export options when cleaning up file.........................................................................123

Figure 38: Triangles without Tri-Stripping Applied ...................................................................124

Figure 39: Tri-stripped Triangles.................................................................................................124

Figure 40: Example of a set of tri-strips for a mesh. ...................................................................125

Issue: 0.1 Page 12 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

1. INTRODUCTION

The document describes all of the pipelines to be used for the Dark Angel project. It outlines the
pipelines purpose, associated tools, workflows, restrictions, etc. The main purpose is to collect
all of the information for all pipelines for the game in a single technical document.

1.1 Scope

This document deals with all of the content pipelines for the DA game.

1.2 Intended Audience

Primarily this document is aimed at programmers and other technical personnel on the project
team and in support and management roles. The document will also be of interest to the art
director and the technical artists working on the team.

1.3 References

[1.] Inglehart, Mike. DA Game Design High Concept


(//depot/docs/GameDesign/DA_High_Concept.doc).

[2.] Inglehart, Mike. DA Preliminary Game Design


(//depot/docs/GameDesign/DA_Preliminary_Design.doc).

[3.] Kusy, Brad: World Builder Design (//depot/docs/TechDesign/WorldBuilderDesign.doc).

[4.] Sandie, Bert: DA Master Requirements


(//depot/docs/TechRequirements/DA_MasterRequirements.doc).

[5.] Sandie, Bert and Kusy, Brad: DA World Builder Technical Overview
(//depot/docs/TechDesign/DA_WorldBuilderTechOverview.doc).

[6.] Kurahashi, Juneko and Maruno, Yayoi: Dark Angel Art Directory Structure and
Nomenclature (//depot/docs/ArtTech/ArtDirStructure.doc).

[7.] Sony Computer Entertainment: IPU Stream Format


(T:\Devsys\PS2\V2.14\usr\local\sce\tools\ps2str\doc\word\Ipustrea.doc).

[8.] Brandt, Bryan: Fight Tree Reference Hair Club Perforce (SV060:1679).

[9.] Ancessi, Laurent: Building the Motion Tree and Animation System Hair Club Perforce
(SV060:1679).

[10.] Brooke, Nigel: Dark Angel Rendering Engine Technical Design Document
(//depot/docs/TechDesign/RenderingEngine.doc).

Issue: 0.1 Page 13 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
[11.] Lambie, Stephen and Sandie, Bert: Dark Angel Technical Art Specification
(//depot/docs/ArtTech/DATechnicalArtReqs.doc).

[12.] Pure3D Artists Guide (T:\Pure3d\Guides\Artist\index_art.htm).

[13.] Mark James: Tristrips (Perforce sv040:1677//depot/docs/courses/Tristrips.ppt).

[14.] Bink Help Documentation (http://www.radgametools.com/binkhlp2.htm).

[15.] Keong Gary and Sandie, Bert: Requirements for DA Skeleton Structure
(//depot/docs/TechRequirements/DA_SkeletonRequirements.doc).

[16.] Maya Skeleton Tutorials (http://www.highend3d.com/maya/tutorials/realtimechar1/).

[17.] Kurahashi, Juneko and Kusy, Brad: World Builder Workflow Description
(//depot/docs/TechDesign/WorldBuilderFlow.doc).

1.4 Acronyms and Definitions

Some useful acronyms and definitions to help the reader better understand some concepts are
provided below.

DA Dark Angel
PS2 Playstation2
NPC Non-player character – characters in the game that are controlled completely by
the AI without user input
Level A collection of connected rooms or areas ( via portals ) on which a mission takes
place
Mission A set of objectives that must be met by the user player in the game
NIS Non-interactive sequence
SFX Special Effects
FE Front-End
HUD Heads-up Display
LOD Level of Detail
AI Artificial Intelligence
Mipmapping Mipmapping is a method of avoiding the shimmering effect that can result from
high detail textures being displayed on an object that is “far” away which can
result in pixels popping in and out.
Tri-strip A set of connected triangles that share vertices for efficient drawing.
Portal A connection between any two rooms or areas.
Room The smallest interior unit of a world that can be realized without passing through a
portal (convex).
World A collection of levels that compose the world the game will take place in.
Blueprint A 2D construction/layout of a level upon which a 3D model will be built.
Trigger volume When a collision with this geometrical construct takes place a game event will be
generated.
TBD To Be Determined
Multicontroller The controller that looks after an animation.

Issue: 0.1 Page 14 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

2. GENERAL INFORMATION

This section deals with information that is applicable to more than one of the pipelines that will
follow.

2.1 Loading Data


The rendering engine for DA will be using something called a Bundle to load files. This will be a
text file specifying a number of things, including files to load, objects to be retrieved from the
files loaded, dependencies to other bundles, etc. Bundles can consist of multiple .p3d or other
files. Each bundle will be defined using a text file. Furthermore there will be a master list of all
bundles used in the game (the manifest), also stored as a text file. A loader will be able to load
the text file, parse it, and load all the files that it needs based on the information contained within
the file.

For example, a bundle may look like this:

[shot12]
file nis\preprod\nis1\shot12.p3d
file nis\preprod\nis1\shot12.seq
export nis1 nis control:shot12 draw:shot12 camera:pp_shotShape1 lights:Scene
events:shot12 next:shot3 alone

[shot3]
file nis\preprod\nis1\shot3.p3d
export shot3 nis control:shot3 draw:shot3 camera:pp_shotShape3 next:shot4
lights:Scene alone

[shot4]
file nis\preprod\nis1\shot4.p3d
export shot4 nis control:shot4 draw:shot4 camera:pp_shotShape4 lights:Scene
next:shot4b alone

[shot4b]
file nis\preprod\nis1\shot4b.p3d
export shot4b nis control:shot4b draw:shot4b camera:pp_Shot4bShapeo next:shot4c
lights:Scene alone

[shot4c]
file nis\preprod\nis1\shot4c.p3d
export shot4c nis control:shot4c draw:shot4c camera:ppShot4cShape next:shot5
lights:Scene alone

[shot5]
file nis\preprod\nis1\shot5.p3d
export shot5 nis control:shot5 draw:shot5 camera:anim_camsShape lights:Scene alone

Each bundle starts with the name of the bundle in square brackets, then has a list of keywords.
The three keywords are file, depend and export.

"file" just adds a file to the list of what will be loaded for that bundle

"depend" indicates that the given bundle required another bundle to be loaded previously, and
the local objects can reference object in the other bundle.

Issue: 0.1 Page 15 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
"export" is the most interesting, it indicates defines what there is in this bundle that is actually of
interest to the game (high level objects). The form for export statements is:
export <object name> <object type> <arguments>

"object name" is the name used to reference the object in the game.

"object type" is a standard identifier indicating what the object is, and "arguments" are additional
type specific initialization info.

The loading system is set up in such a way that it is easy to add new export types without
changing the rest of the system.

A couple of points that should be noted for the loading of NIS files in bundle files you will want
to add on the extra parameters for specifying the control, drawing, camera, transition (specify
next NIS in the sequence, and allowing for specification on whether the NIS will be running over
the regular world or not. The camera parameter allows you to specify the camera that will be
used to start the NIS off. There is also the capability to use either alone or nothing that gives the
NIS the capability to be displayed over the game geometry or separate from the game geometry.

For any set of files that need to be loaded you should be using the Bundle Loader. By using the
Bundle Loader consistently we will minimize duplicating code and will also make the way
things are loaded uniform so that anybody on the team should be able to understand it.

For more information on bundles and how you can use them you can refer to the Dark Angel
Rendering Engine Technical Design Document
(//depot/docs/TechDesign/RenderingEngine.doc).

2.2 Version Control

The version control for all the textures, models, p3d files, scripts, and code is handled through
Perforce. Perforce provides an excellent way to organize versions of and allows for easy access
to older versions of files.

Issue: 0.1 Page 16 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

3. ANIMATION PIPELINE

3.1 Description

3.1.1 Pipeline Description

The animation pipeline is the process by which animations are created, exported into a supported
format, tweaked for optimal use within the game, and finally imported for use within the game.
Also included within this pipeline are any verification tools that are needed to ensure that data is
correct and will be able to work in the game. It is important to note here that the modeling
occurs in the model pipeline. The end result of that modeling (the Maya binary) is used in the
animation pipeline as the starting point for all the work that is done.

3.1.2 Goals of the Pipeline

The goals of this pipeline are:

- To provide a means for animators to preview and analyze their work

- Determine the structure of files for importing and exporting

- To provide a means for creation and tweaking of animations

3.1.3 Users of the Pipeline

The users of this pipeline will be animators as well as those programmers who will be using the
output provided from these tools and methods.

3.2 User Documentation

3.2.1 Naming Conventions

The skeletons placed in the master_skeleton directory must be prefixed with the name of the
character. For example, for the max character, the characters in the master_skeleton directory
will be named max_master.mb and max_master_core.mb. The _master file contains the master
skeleton for this character. The _master_core file contains the core skeleton for this character
(only the primary bones that are the same as the master skeleton).

3.2.2 Directory Structure

The animations are contained in the art directory in perforce under the directory anims.

Issue: 0.1 Page 17 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

Figure 1: Top-level art directory

The anims directory contains all character animations. This includes all animations to be used in-
game by the user characters and NPCs. The anims directory contains a chars directory that holds
all the individual characters. The anims directory structure can be seen in Figure 2.

Issue: 0.1 Page 18 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

Figure 2: anims directory structure

Under the chars directory is a folder for each character in the game. The global folder contains
animations that can be applied to all characters in the game. The assumption is that every
character in the game will share the same core skeleton. The global animations are those that are
applied to that core skeleton. These animations could be reapplied to any character in the game,
as they do not animate any secondary bones.

Under each character’s directory are a clips directory, a p3d directory, and a scenes directory.

The artists will work on Maya binary (.mb) files in the scenes directory. At export time, the
animation in the Maya binary file will be applied to a skeleton that exists in the master_skeleton
directory by the animation export tool developed by Hair Club (see Section 3.3.4.1 for more
details on this tool). The resulting animation will be stored in a Maya ASCII (.ma) file that will
be placed in the corresponding clips directory. Files in the clips directory contain only animation
data; no models or skeletons will be stored in the clips directory. Further manual work can be
done on the files in the clips directory by temporarily importing the master skeleton file. At final
export, the files in the clips directory will be exported into Pure3D (.p3d) files in the
corresponding p3d directory.

Issue: 0.1 Page 19 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
Folders under the clips, p3d, and scenes directories must match exactly, with the exception of the
master_skeleton folder, which exists only in the scenes directory. For example, if a grapple
folder is added to the scenes directory, then one must be added to the clips and p3d directories as
well.

3.2.3 Instructions

When you are working on your animations in Maya make sure that you are using the same
skeleton as the model uses and also ensure that you use the same skeleton for all the animations
related to a character.

3.2.4 How to Verify Data is Correct

To verify that the data going through the animation pipeline is correct we can follow a series of
simple steps. The first step is to verify the animation is working in Maya. The second step
would be to use the p3dviewer to not only preview the animation, but also to see the vital
information pertaining to the animation. The vital information that is displayed for the
animation includes the frames per second it is running at, the number of polygons and vertices,
and it also allows for viewing of the multicontroller. The third and final step for verifying the
correctness of the data would be to run it in the game itself and ensure that it works properly.

A key point that should be verified is that the number of joints in the animation matches the
number of joints in all the other animations of that character. This can be extended to make sure
that the animations and models for a character are using the same skeletons.

3.2.5 Limitations and Recommendations

The current limitations of the animation pipeline are that the animation tools that were created by
Hair Club are still in the process of becoming supported by Pure3d. Both of these tools should
become available by the end of August and will be very important for the users of the pipeline.
There is minimal risk involved in the waiting for these tools from Pure3D because the tools
already exist and are just being amalgamated into Pure3D.

3.2.6 Troubleshooting

If you are having problems some key points to check are:

- Animation skeleton same as Model skeleton

- All animation skeletons for a character are the same

3.2.7 References and Supporting Documentation

Kurahashi, Juneko and Maruno, Yayoi: Dark Angel Art Directory Structure and
Nomenclature (//depot/docs/ArtTech/ArtDirStructure.doc).

Issue: 0.1 Page 20 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
Hair Club Art Guidelines (Hair Club Perforce --- HC_Art_Guidelines.doc).

Pure3D Artists Guide (T:\Pure3d\Guides\Artist\index_art.htm).

3.3 Technical Documentation

3.3.1 Naming Conventions and Directory Structure

See section 3.2.1.

3.3.2 File Format and Content

The file format being used for the animations that will be loaded into the game is p3d. Initially
the animations will be stored in a Maya binary file (.mb) that will then be converted to a Maya
ASCII file by Hair Club’s animation exporting tool. This process will be done outside of Maya
by running the tool.

It is important point to note is that the master skeleton that is referred to in this section is a
texture-less model whose skeleton is used in the pipeline. The reason the textures are not stored
here is to avoid having huge scene files.

3.3.3 Pipeline Flow Chart with Descriptions

Animation Pipeline

Take the
Create an animation Use Hair Club's Use Pure3D
Maya binary Take the Take the p3d Run in the game
in Maya animation exporter exporter
file Maya ASCII file

Figure 3: Animation Pipeline Flowchart

Step 1: Create an animation in Maya and save as a Maya binary file.

Step 2: Use Hair Club exporter to convert from Maya binary format to Maya ASCII format. In
the conversion process this exporter provides the ability to generate animation sequences for
movement and also allows for retargeting of animations to different skeletons.

Step 3: Use the Pure3d exporter to convert the Maya ASCII file to a p3d file

Step 4: Run the p3d file in the game

Issue: 0.1 Page 21 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
3.3.3.1 Exporting

Guidelines that should be followed when exporting animations are:

1. Use specific p3d profiles for exporting animations.


Rationale: This will minimize pipeline errors caused by animations being exported with the wrong
options set.

2. Export all animations and test on console viewer with NTSC monitor with a composite video
connector before checking into Perforce. Animations can also be tested through the
p3dviewer on the PC.

Rationale: Animations must be thoroughly tested before it is placed into the build – we wish to
discover issues/problems with content early in the process and correct it.

One area of exporting in the animation pipeline is with the Hair Club animation exporter, which
takes a Maya binary file and creates a Maya ASCII file.

Another area where exporting is used in the animation pipeline is with the Pure3d exporter,
which takes the Maya ASCII file and creates a p3d file.

3.3.3.2 Data Optimization

The animations are optimized via the p3d export. Pure3D provides compression capabilities for
handling animations. The areas where compression is available are: angles are stored in
11:11:10 compressed format; joints that don't animate are special cased in the animations to take
less memory; one-degree-of-freedom (DOF) joints are also special cased.

3.3.3.3 Importing / Loading into the Game

The procedure for loading is standard because the file format is p3d.

3.3.4 Current and Desired Tools

3.3.4.1 Animation Export Tool

Location:

This tool consists of two components: an exporter and a re-targeting capability. The animation
exporter takes a Maya binary file and converts it into a Maya ASCII file. The re-targeting
capability allows animations developed for one skeleton to be re-targeted to allow them to work
with a different skeleton. This tool was created by Hair Club and is soon to be supported by
Pure3d.

Issue: 0.1 Page 22 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
3.3.4.2 Animation Locomotion Generator

Location:

The animation locomotion generator takes a character and will generate a series of animations
for it based on the number of directions that the character should be able to move in as well as
the length of the player’s stride. This tool was created by Hair Club and is soon to be supported
by Pure3d.

The animation locomotion generator takes as input a skeleton, which it will then generate,
animations for based on inputs such as stride length and the desired direction of locomotion.

3.3.4.3 Motion Capture and Full Body Animation Tool

Location: Currently not needed

The role for this type of tool has yet to be defined and the necessity of it is as of yet still
undetermined. If we do decide that we need a tool of this nature then the initial plan is to use a
third party tool.

3.3.4.4 Animation Replay Tool

Location: Needs to be created

The purpose of this tool would be to give the animators the ability to view their animations
repeatedly in order to determine improvements that could be made. This tool does not currently
exist and will have to be created. The projected timeline for this tool is to start on it in October
or November. The tool would end up allowing for animations to be previewed and strung
together in a game environment without actually being loaded into the game itself. This would
allow artists to be able to view their animations quicker and with less effort since the current
viewer and Maya are not able to provide all of this on their own. More detailed requirements for
this tool will be laid out later on.

3.3.4.5 Platform Specific Instructions and Functionality

There are not any platform specific instructions or functionality at this time.

3.3.5 Limitations and Recommendations

The size of animations will need to be considered. For more information on the data
optimization methods available for animations you can refer to the data optimization section.

Issue: 0.1 Page 23 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
3.3.6 Potential Extensions

Potential extensions for the animation pipeline are the expansion of the verification scripts that
were used by Hair Club. These scripts provide useful functionality, but could be altered to focus
more on the constraints that are unique to our game.

3.3.7 Error Checking

Error checking in the animation pipeline is currently limited to the exporting phase of Maya.
Hair Club also wrote some additional verification scripts to handle ensuring that the skeleton
used in the animation was the same as that used in the model.

Issue: 0.1 Page 24 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

4. FACIAL ANIMATION PIPELINE

4.1 Description

4.1.1 Pipeline Description

The facial animation pipeline is responsible for the animations that appear on the faces of
characters from the initial design in Maya to their actual use in the game.

4.1.2 Goals of the Pipeline

The goals of this pipeline are:

- To provide a means for animators to preview and analyze their work

- Determine the structure of files for importing and exporting

- To provide a means for creation and tweaking of animations

4.1.3 Users of the Pipeline

The users of this pipeline will be animators as well as those programmers who will be using the
output provided from these tools and methods.

4.2 User Documentation

4.2.1 Naming Conventions

The directory structure for facial animations is going to be very similar to the one used for
character animations. Under the art directory there will be a facialanims directory that will
contain a chars directory. The chars directory holds the directories for each character that will
have facial animations in the game. For every character directory there will be a p3d and scenes
directory.

The naming convention for the facial animations is a combination of character name, a phrase or
word describing the facial animation, and a number if it is part of sequence of animations.

E.g. Max_NISTalk_1.mb or Max_NISTalk_1.p3d

4.2.2 Instructions

See Section 4.3.3.

Issue: 0.1 Page 25 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
4.2.3 Location of Source and Final Files

TBD

4.2.4 How to Verify Data is Correct

To verify that the data going through the animation pipeline is correct we can follow a series of
simple steps. The first step is to verify the animation is working in Maya. The second step
would be to use the p3dviewer to not only the preview the animation, but also the see the vital
information pertaining to the animation. The third and final step for verifying the correctness of
the data would be to run it in the game itself and ensure that it works properly.

4.2.5 Limitations and Recommendations

A current limitation of the facial animation system is that it needs to be viewed as an AVI that
has been exported or in the game in order for the sound to be heard. Currently there is a request
to Pure3D to add sound support to the viewer, but this is not being done for release V15.

4.2.6 Troubleshooting

Currently the deformer will only allow you to have 3 blend states. Another point to note when
using the deformer in Maya is that you cannot have more than 32 expressions. It is possible to
get around this in Maya, but any additional expressions used in Maya will not be exported.

If a problem occurs with tweaks not having any data you can export using the MEL export script
instead. By using the MEL export script you slow down the export process, but all offset data
will be exported. The reason this occurs is that some operations that can be performed in Maya
are not stored in the tweak node. Generally this should not be a problem so only worry about
this if you get a message saying that there is no tweak data to export.

One other point to watch out for is ensuring that you skin the mesh before you try to export it to
make sure that the offsets are exported correctly.

4.2.7 References and Supporting Documentation

Pure3D Artists Guide (T:\Pure3d\Guides\Artist\index_art.htm).

4.3 Technical Documentation

4.3.1 Naming Conventions

See Section 4.2.1.

Issue: 0.1 Page 26 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
4.3.2 File Format and Content

The file format for the facial animations is the standard pure3d file. The specific chunks that are
used in the facial animation file are: tlExpressionGroupChunk16, tlExpressionMixerChunk16,
tlExpressionAnimChunk16, and tlPoseAnimChunk16.

4.3.3 Pipeline Flow Chart with Descriptions

Facial Animation Pipeline

Create Import and


Use Deformer Export and
Geometry in Test in the
Plug-in Verify
Maya Game

Figure 4: Facial Animation Pipeline Flowchart

Step 1: The first step in the facial animation pipeline is to create the facial geometry that will be
animated.

Step 2: To create the facial animation you need to use the deformer plug-in for Maya.

Step 3: After the facial animation has been completed it needs to be exported from Maya. Make
sure that it is skinned and double check that it uses the proper skeleton. It is also possible at this
point to run p3dskin or p3dprimgroup to optimize the data.

Step 4: Finally the facial animation can be loaded into the game and tested. Before you load it
into the game make sure that it has been tested in the p3dviewer.

4.3.3.1 Exporting

Exporting from Maya is done just like all other exporting from Maya with the exception that the
meshes must be skinned. This is a small abnormality that Pure3D currently requires.

4.3.3.2 Data Optimization

One method of optimizing the data is to use the p3dskin tool with the –T option. This tool will
allow for offsets that are less the number specified to be deleted. By deleting offsets that are

Issue: 0.1 Page 27 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
very near to zero we can save a large amount of memory. This tool should only be run if it is
discovered that there are a large number of these near zero offsets.

Another means of optimization is to use the p3dprimgroup tool with the –s option. This update
to the p3dprimgroup tool has yet to be released, but should be available shortly. By using the –s
option the tool will take primgroups and split them into two new primgroups: one with offsets
and one without. The result of this process is a large memory savings due to the fact that non-
offset primgroup elements will not have to have any offset storage space where as in the original
single primgroup they would have enough storage space to hold the maximum number of offsets.

4.3.3.3 Importing / Loading into the Game

The loading of facial animations into the game is handled through the default p3d load
mechanism. There are not any special files in the facial animation pipeline that need to be
loaded.

4.3.4 Current and Desired Tools

4.3.4.1 Deformer

Steps needed to set up Deformer:

1) Shut down Maya if you are currently running it.

2) It is critical that the Maya files that you are going to copy over via Perforce go into the
correct location. To ensure that this happens you need to make the following addition to
your Perforce Client Specification.

//depot/tools/p3dplugins/... //host_name/c:/AW/Maya3.0/...

+//depot/tools/maya/DAWB/distribution/... //host_name/c:/AW/Maya3.0/...

3) Sync to Perforce to get the latest plug-ins and scripts that are located under
//depot/tools/p3dplugins/bin/plug-ins.

4) Open Maya and in the menu choose Window, Settings/Preferences, and Plug-in Manager.
In the window that appears you need to make sure that you select p3dDeformer.mll for
loaded and auto-loaded (check both of the boxes beside it).

Issue: 0.1 Page 28 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

Figure 5: Menu containing the plug-in manager

Issue: 0.1 Page 29 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

Figure 6: Plug-in manager were p3dDeformer.mll must have both boxes checked

Figure 7: Plug-in shelf with Deformer Tools

4.3.4.1.1 Expression Deformer

The Expression Deformer is a tool contained in the Deformer plug-in. The Expression Deformer
is a vertex animation tool designed to help you easily create simple facial animations. The
Expression Deformer allows you to:

- Create expression states

- Edit expression states you have created

Issue: 0.1 Page 30 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
- Control how overlapping states are blended

- Create preset expressions

An extension of the Expression tool is the expression presets. An expression preset is a blended
combination of expression states. When selected, a preset will combine the expressions states to
these stored values.

With expression presets, you can easily set keyframes on previously created states. As well, you
can create overall facial expression made up of a number of states (e.g., brow up, eyes wide,
mouth open and nostrils flared to indicate a global facial state of surprise).

Steps to create an expression state:


1. Tweak the mesh into the form you would like to set as a state.

2. Switch to object mode and select the tweaked mesh. (Note: You can quickly toggle
between object and component mode in Maya with F8)

3. Click the Expression Deformer shelf button to launch the Expression Deformer tool.

4. Select the tweaked mesh and click Create State. A new expression state will be created,
appearing in the expression window, and the mesh will snap back to its neutral position.

4.3.4.1.2 Joint Deformation

The joint deformer gives you a way to connect the orientation of a particular joint with the slider
value of an expression state. Clicking the “Pure3D Joint Deformer” shelf button launches the
Pure3D Joint Deformer window.

4.3.4.1.3 Convert

The convert tool on the deformer shelf allows for the conversion of geometry from the pure3d
version 13 format to the current format. This should not be necessary for us because all of our
geometry should have been and will be created under the new format.

4.3.4.2 Snap to Reference


The Snap To Reference Mesh tool is a convenience tool that allows the setting of a target mesh's
object-space vertex positions to match those of a source mesh of similar topology. By selecting
two meshes and then clicking on the “Snap To Reference Mesh” button on the Deformer shelf
we can run this tool.

With the Snap to Reference tool you can:

• Take a duplicate of your target mesh (the mesh you wish to apply expression states to),

• Use any kind of editing tools desired to manipulate the duplicate

Issue: 0.1 Page 31 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
• And then snap the target's vertices to the duplicate's

You can also use this tool to create a new expression state that blends between the target mesh's
neutral state, and the duplicate's shape.

4.3.5 Platform Specific Instructions and Functionality

At this time there are not any specific instructions or functionality for any of the platforms.

4.3.6 Limitations and Recommendations

A limitation of the Snap to Reference tool is that it will not work properly on skinned meshes
whose joints are rotated away from the bind pose.

When creating an expression state a limitation that exists is that you cannot apply materials to a
mesh after adding expression states (especially when rendering meshes). This bug will appear
intermittently.

Another limitation is that when using the Erase function of the Script Polygon tool, or undoing a
Sculpt Polygons operation and then performing further tweaks prior to creating an expression
state, will cause undesirable deformations in the original mesh. To fix this problem you can use
Updated Mesh to revive the mesh’s neutral state.

4.3.7 Potential Extensions

Pure3D is continuing to update and improve this tool.

4.3.8 Error Checking

There is not any specific error checking that occurs in this pipeline at the present time.

Issue: 0.1 Page 32 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

5. MODEL PIPELINE

5.1 Description

5.1.1 Pipeline Description

The model pipeline is the process by which models are created in Maya, exported into a
supported format, tweaked for optimal use within the game, converted to the pure3d file format,
and finally imported for use within the game. Also included within this pipeline are the
verification tools that are needed to ensure that data is correct and will be able to work in the
game.

5.1.2 Goals of the Pipeline

The goals of this pipeline are:

- Importing and exporting of files

- Provide a means for models to be tweaked and undergo changes in format to allow for
moving content quickly into the game

5.1.3 Users of the Pipeline

The main users of this pipeline will be artists. The results of this pipeline will also be of great
importance to programmers involved in rendering and anyone else interested in the rendering
process.

5.2 User Documentation

5.2.1 Naming Conventions

Character models will use 3-letter abbreviations. Here is a list of the following symbols for each
character.

Characters Abbreviation

1. Max Max

2. Logan Log

3. Brin Brn

4. Y-5 (Brin look-alike) Y5

5. Madame X Mad

Issue: 0.1 Page 33 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
6. Original Cindy Cin

7. Stretch Str

8. Herbal Hbl

9. Normal Nor

10. Beka (Max look-alike- but larger) Bek

11. Zeke Zek

12. Y-5 Bear Ybr

13. Y-5 Monkey Ymk

14. Y-5 Alligator Yag

15. Y-5 Fish Yfi

16. Y-5 Insect Yin

17. Y-5 pregnant mother Ypm

18. Sector Police Spo

19. Manticore Guard Mgu

20. Manticore Sergeant (Multiple Textures) Msg

21. Female Scientist Fsc

22. Male Scientist Msc

Models will be created with different LODs. This is especially true for art targeted towards the
XBox or for the PS2. The following postfixes will be used to identify the different LODs.

• _x – XBox target

• _p – PS2 target

• _n – NIS target

Due to the fact that NISs will be used on both the XBox and the PS2 the last postfix can be used
in conjunction with the first two for NISs models.

Geometry/Maya:

Issue: 0.1 Page 34 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
The naming convention for models will identify the character, the geometry (style) version and
the LOD. Using the character symbols above, naming convention for Maya and p3d files as well
as models will follow this structure.

Example: XBox in-game model for MAX in stealth out fit.

Maya file: max_stlh_x.mb

P3d file: max_stlh_x.p3d

Model name: max_stlh_x

Skeleton Structure:

5.2.1.1 World Root

Naming:

World_Root

Description:

The world root is used to parent IK rigs and skeleton controls under and is used to
position and scale the character in Maya for other Maya purposes

5.2.1.2 Motion Root

Naming:

Motion_Root

Description:

The Motion_Root is the skeleton root as far as Pure3D is concerned. The key points are:
• It contains X and Z translation only.
• It is used to describe the simple major motion of the character.
• It has the Character_Root as a dependent.

The motion root joint is placed underneath the character (at coordinate y = 0) and traces
the characters movement path across the XZ plane. This joint will have Tx,z data and
traces the path which the character moves in space.

The motion root coordinate data will be used in game to translate the character in world-
space.

Issue: 0.1 Page 35 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
So why do we have a motion root at all and not just use the character’s root joint? The
main reason for using the motion root is that it has full damping on a character’s lateral
“sway” applied so that it traces a true arc or line for the character’s path. Having both
roots will give the animated character translation in world-space along with a lateral
sway.

5.2.1.3 Character Root

Naming:

Character_Root

Description:

The Character_Root is the first real bone in the hierarchy and contains all 3 degrees of
freedom (DOF) in rotation and translation. An animator uses this joint to describe the
subtle motion of a characters center of mass (i.e., side-to-side hip motion) and all Y
translation.

The Character_Root joint is placed at the character’s pelvis. This joint will have Rotx,y,z
and Tx,y,z data.

It encodes the location and rotation angle of the character at the pelvis. The game will
use the location of this joint to derive the in-game location of effectors such as the hands
and feet.

In case you went straight to this section, we should contrast the character root with the
motion root. The main difference is that the character root may have a lateral “sway”
relating to counterbalancing of a body at the area as the body moves forward. So if we
were to project the character root onto the XZ plane (by setting y = 0) for the duration of
the animation, and overlaying this path onto the path mapped out for the motion root, we
would find that the line made by the character root would criss-cross the line made by the
motion root.

5.2.1.4 Orientation Root

Naming:

Orientation_Root (sometimes called Facing_Root)

Description:

The Orientation_Root is used to describe the facing direction of the character - it is


animated by the artist but:

• Unlike the Motion_Root it has no dependencies;

Issue: 0.1 Page 36 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
• It contains only Y Rotation.

The orientation root joint encodes the facing direction of the character using Roty data.
The orientation direction is essentially the direction that the character has its face
oriented towards. So recall that while the character root also records the pelvic forward-
facing direction, the orientation root represents the head facing direction. For instance, a
boxer’s stance is an example where the pelvic forward-facing direction differs from that
of his facing direction.

5.2.1.5 Effectors

Naming:

WristRight, WristLeft, AnkleRight, AnkleLeft

Description:

These joints will be the effector points where functions such as punches, grabs, foot plants and
kicks are triggered in game.

Textures:

Majority of the characters will have at least two textures: a texture for the head and a texture for
the body. Naming convention for body textures will identify the character, the geometry (style)
version, body/clothing part, colour palette change and the LOD. Naming convention for body
textures will identify the character, the body part, and the LOD. Naming convention for texture
will follow this structure.

Example: XBox in-game model for MAX in red stealth outfit.

Head: maxstl_head1_x.bmp

Body: maxstl_body1_x.bmp (1 indicates colour variation of the bitmap)

*Please note: if alpha maps are required, we will use png files. Similar to targa files in saving
the alpha map in a layer. These png files are supported by P3d and will export as an 8-bit
texture.

5.2.2 Directory Structure

All models will be located in the models directory. The models directory contains source art for
the character models and skeletons. Each model should have its own directory containing a
scenes and p3d folder. An example can be seen in Figure 5.

Issue: 0.1 Page 37 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

Figure 8: Models Directory Structure

5.2.3 Instructions

TBD

5.2.4 Location of Source and Final Files

See Section 5.2.2.

5.2.5 How to Verify Data is Correct

The data in the model pipeline can verified for correctness in many ways. One way to verify the
correctness of the data is to use the p3dviewer or the quickviewer. These two tools will allow
models to be viewed to ensure that they are coming through the pipeline properly before they are
even loading the work into the game.

An additional verification step that should be done is to view model textires on the PS2 and
XBox viewers on a NTSC monitor to ensure that they look okay.

Issue: 0.1 Page 38 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
5.2.6 Limitations and Recommendations

TBD

5.2.7 Troubleshooting

Some common problems that occur are:

- Naming collisions

5.2.8 References and Supporting Documentation

Kurahashi, Juneko and Maruno, Yayoi: Dark Angel Art Directory Structure and
Nomenclature (//depot/docs/ArtTech/ArtDirStructure.doc).

Lambie, Stephen and Sandie, Bert: Dark Angel Technical Art Specification
(//depot/docs/ArtTech/DATechnicalArtReqs.doc).

Pure3D Artists Guide (T:\Pure3d\Guides\Artist\index_art.htm).

Mark James: Tristrips (Perforce sv040:1677//depot/docs/courses/Tristrips.ppt).

5.3 Technical Documentation

5.3.1 Naming Conventions

See section 5.2.1.

5.3.2 File Format and Content

Characters & props are stored using standard Pure3D data chunks, namely a Pure3D skeleton,
for the base hierarchy if the object has one, and a drawable for the rendering structure (generally
a composite drawable in the case of characters, or a geometry in the case of props).

Issue: 0.1 Page 39 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
5.3.3 Pipeline Flow Chart with Descriptions

Model Pipeline Overview

Load and Use


Create Model Model Verification
Models in Game

Figure 8: Broad Overview of the Model Pipeline Flowchart

5.3.3.1 Exporting

A guideline that should be followed when exporting models is:

1. Check polygon counts in console viewers to ensure they are within budgets.

Rationale: The budgets for art content will be based on numbers that are shown in the P3D
viewers, these numbers are to be used as the final numbers for determining art budgets.

When models are being exported from Maya it is important to remember whether or not
tristripping should be done. All character geometry that is going to be used must be tristripped.
On the other hand, when dealing with world geometry we do not need any tristripping to be
done.

Another important point to note is that for all geometry to be used on the PS2 the geometry must
be deindexed.

Additional guidelines for exporting can be found in Section 3.3.3.1.

5.3.3.2 Data Optimization

One aspect of data optimization for the model pipeline is ensuring that the tristrips that are used
for the model are as long as possible. We can accomplish this by running the tristrip tool and
having it color the various tristrips. This allows the artists to see where potential snags are in
and make improvements that will speed up the use of the model in the game. This functionality
does exist in the tristrip tool.

Issue: 0.1 Page 40 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
5.3.3.3 Importing / Loading into the Game

Model files will be in p3d format so loading into the game will follow standard practice.

5.3.4 Current and Desired Tools

5.3.4.1 Exporter Profiles

The exporter profiles that would be used are: animations, character models, world objects, NISs,
and world/level. The functionality that would be provided by these profiles may be replaced
with pre-existing tools (Pure3D command line tools).

5.3.4.2 Shading Exporters

Location: Needs to be created

Shader exporters will be an extension of what is currently found in toollib. This is currently in
development and being explored by Pure3D (Mark James)

5.3.4.3 Quick Viewer

Location: //depot/tools/quickview

This viewer is based on the p3dviewer found in the Pure3D command line tools. What makes
the quick viewer different is that the debug information has been removed, the background is
now black, and the camera begins in a more useful position. Altering the scripts that are used by
the viewer made these alterations possible.

5.3.4.4 tristrip

Location: //depot/sdks/pure3d/tools/commandline/bin/

This is a pre-existing command line tool provided by Pure3D that deals with taking meshes and
converting them into tristrips. It is important to use tristrips and to set your geometry up in such
a way that you maximize the number of triangles per tristrip, but it is also important that art is
not compromised for the sake of tristripping. It should also be noted that the cubic interior nature
of the Dark Angel environment does not lend itself to good tri-stripping. Tri-stripping of this
type of geometry will not produce any speed gains because the resulting strips are too short.
Hard edges are fine for the geometries, but should not be used if they are not really needed.

Note: For vertices in a mesh to be shared in a tristrip, ALL the vertex components must be the
same. The components of a vertex are:

- Texture map

- UV coordinates. If the UV coordinates aren’t welded, the tristrip will be broken

Issue: 0.1 Page 41 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
- Colour

- Normals. If the normals don’t match, the strip will be broken. This typically occurs with
“hard edges”

- Bone Weightings

The tristrip tool can be run with the following command:

“tristrip.exe -m -D <filename>.p3d”.

This particular command line will artificially colour the individual tristrips so that they are easily
visible. The advantage of this is that it allows the artist to identify vertices that break the tristrip.

The most common options that will be used with this tool are –o, -D, and –x. The –o option is
used to specify an output filename so that the changes made to the file are saved in a new
location. The –D option, as mentioned above, is used to run the program in debug mode
allowing for the easy identification of spots that are breaking up tristrips. The last option that
could be used is the –x option, which optimizes the strips for the XBox.

For more information on what tristripping is and how it works look at Appendix A.

5.3.4.5 p3ddeindex

Location: //depot/sdks/pure3d/tools/commandline/bin/

The p3ddeindex tool converts indexed prims to non-indexed prims for the PS2. The only option
that is important to remember is the –o, which allows you to specify an output file for the results
of the de-indexing process.

5.3.4.6 p3ddeinstance

Location: //depot/sdks/pure3d/tools/commandline/bin/

The p3ddeinstance tool converts meshes to polyskins for batched rendering on the Xbox. The
common options that will be used with p3ddeinstance are –o, -S, and –m. The –o option as usual
allows for the specification of an output file where the results of the process are saved. The –m
and –S options respectively allow for specific meshes or skeletons to be selected for processing.

5.3.4.7 p3dprimgroup

Location: //depot/sdks/pure3d/tools/commandline/bin/

The p3dprimgroup tool manipulates primitive groups in meshes and skins. The options for the
p3dprimgroup tool allow for separating and reorganizing the primgroups in a p3d file.
Primgroups can be separated base on vertices weighted against one bone vs. many bones (-b),

Issue: 0.1 Page 42 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
two bones vs. many bones (-t), the number of bones in general (-m), and based on the number of
vertices (-x).

5.3.4.8 p3dskin

Location: //depot/sdks/pure3d/tools/commandline/bin/

The p3dskin tool modifies skins. p3dskin is used to control the number of influences on joints. It
allows you to delete joints that have too few influences (-t) and cap joints to a certain maximum
number of influences (-m).

5.3.4.9 p3dsubdivide

Location: //depot/sdks/pure3d/tools/commandline/bin/

The p3dsubdivide tool subdivides all of the triangles in a mesh. The main option that will be
used with this tool is –a, which allows for the specification of an area of polygons over which the
subdivision will occur.

5.3.4.10 Bounding/Collision Volume Tool

Location: //depot/tools/plugins/

The bounding/collision volume tool is a plug-in that works with Maya. This plug-in was created
and is supported by Pure3d. The online help documentation can be found on the intranet under
Pure3d’s Artist Guide.

Steps needed to set up Bounding Volumes

1) Sync to Perforce to get the latest plug-ins and scripts that are located under
//depot/tools/p3dplugins/bin/plug-ins.

2) Open Maya and in the menu choose Window, Settings/Preferences, and Plug-in Manager.
In the window that appears you need to make sure that you select
p3dBoundingVolume.mll for loaded and auto-loaded (check both of the boxes beside it).

Issue: 0.1 Page 43 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

Figure 9: Menu containing the plug-in manager

Issue: 0.1 Page 44 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

Figure 10: Plug-in Manager

3) Once the bounding volume tool is loaded you can then load in a model that you will be
putting bounding volumes around.

4) Before you can place bounding volumes you must first click on Create Bounding Volume
to pop up the bounding volume editing tool.

Figure 11: Plug-in shelf with Bounding Volume Tool

Issue: 0.1 Page 45 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

Figure 12: Bounding Volume Tool Window

5) All bounding volumes must be based off a transform node. This means that before you
can create a bounding volume you must click on a transform node in the Hypergraph. To
bring up the Hypergraph you go to the Window menu and click on Hypergraph.

Issue: 0.1 Page 46 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

Figure 13: Maya Hypergraph with Transform node highlighted

6) Once you have clicked on a transform node you can then go to the bounding volume tool
and click on one of the bounding volumes at the top of the window (box, sphere,
cylinder, capsule, and plane). This will automatically place the bounding volume around
what the transform node is related to (i.e. foot, arm, body, etc.).

Issue: 0.1 Page 47 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

Figure 14: Model in Maya with a box bounding volume

Bounding Nodes

Bounding nodes are used to organize multiple bounding volumes for an object. A bounding
node may have any number of bounding volumes beneath it. A bounding node may also have
another bounding node as a child. You should never parent a bounding volume to another
bounding volume however.
In the hypergraph, bounding nodes and volumes will show up under the mesh or joint that they
surround.
Bounding nodes are created in the same way as volumes, and behave the same. You cannot
control their size in Maya. You can set the handle size (one of the bounding node's attributes in
the attribute editor) to make it easier to see. The handle size just sets the size of the node in Maya
and is not exported. The size of the bounding node after export will always be just big enough to
contain all the bounding volumes underneath it in the Hypergraph hierarchy.

Issue: 0.1 Page 48 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
One other point to note is that bounding nodes that do not have any children will not be
exported.

Bounding Volumes
Bounding volumes can be one of the following five options: box, sphere, cylinder, capsule, and
plane. After you have selected a transform node you can click on a type of bounding volume and
the bounding volume will automatically be sized to fit around the object that is being bounded.
If you choose to, it is also possible to resize the bounding volume just like a normal piece of
geometry.

Setting Physics Attributes


Another aspect of the Bounding Volume/Collision tool is that you have the ability to apply
physics attributes for an object. If you look at Figure 12 you will notice that you can check if the
object is dynamic (i.e. whether or not the bounding volume will move in reaction to a collision)
provide string data for the game that is attached to the object, and provide the object with a mass.
The string data could be used to store information that could in turn be used to associate with
things like sound events and friction coefficients.
In order for this to work properly you need to highlight the character or object, then you can alter
the physics data in the bounding volume tool, and then you need to click on the apply physics
attributes button. This will attach the attributes to that object. In the future it is possible to view
and edit these attributes by right clicking on the node the attributes were attached to (viewable in
the hypergraph) and then choosing attributes editor from the list of choices.

Making it Easier to Pick Bounding Volumes


You can make selecting bounding volumes easier by using your selection toggles. These are
located at the top of the maya window in the tool bar (just below the pull down menus). By
turning off the Mesh icon you can pick bounding volumes alot easier because now maya will not
look for meshes when selecting objects.

Figure 14: Mesh Toggle in Maya

Issue: 0.1 Page 49 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

For more information on the bounding volume tool make sure you take a look at the Artist Guide
that is available on the intranet.

5.3.4.11 Art Asset Management Tool

Location: //depot/sdks/pure3d/tools/commandline/bin/

The art asset management tool allows for the viewing of model related information through an
Access database. In addition to displaying information in Access it will also provide a means for
querying on fields in the data. In addition to viewing and querying the data through Access a
web interface is currently being built to allow for a secondary means of viewing the data. This
web interface will allow for easy viewing of the data by artists and programmers alike.

The database consists of six tables that provide information on file updates, tool history, meshes
and skins, p3d files, shaders, and textures.

The tool will be used on a nightly basis to create the database. After the first night, however,
only the changes (i.e. new files or changed files) will be taken into consideration rather than
rebuilding the entire database. This will allow for quicker updates of the database as the number
of files that it runs on increases. One point to note here is that the program will remove all data
pertaining to files that are deleted or don’t appear in the files that are processed on a given night.

5.3.5 Platform Specific Instructions and Functionality

One point to note is that the XBox works well with indexed primitives, but the Playstation2 does
not. This means that for the PS2 we must use a pure3d tool to de-index the primitives in the
pipeline to ensure maximum performance.

5.3.6 Limitations and Recommendations

TBD

5.3.7 Potential Extensions

TBD

5.3.8 Error Checking

An error that needs to be checked for in this pipeline is identifying duplicate naming of p3d files
during the batch process.

Issue: 0.1 Page 50 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

6. TEXTURE PIPELINE

6.1 Description

6.1.1 Pipeline Description

The texture pipeline encapsulates the entire process from the initial creation of the textures to the
conversion of the files to p3d format and ending with the loading of the textures into the game.
Two aspects that are involved in this pipeline and are still being researched/analyzed are:
mipmapping and bilinear filtering.

6.1.2 Goals of the Pipeline

The goals for this pipeline are:

- Importing and exporting of texture files

- Provide a means for textures to be altered and tweaked so that their format is efficient
and workable for the game

- Provide a means for information/reports to be displayed for p3d and texture files

6.1.3 Users of the Pipeline

The users of this pipeline will be artists as well as those programmers who are interested in the
output provided by the pipeline.

6.2 User Documentation

6.2.1 Naming Conventions

This is discussed in the other pipeline sections (models and world builder).

6.2.2 Directory Structure

All of the texture maps that are going to be used in the game will be contained in the
sourceimages directory. This is the directory that all artists should have their project
“sourceimages” path set to. This will prevent the problem of being unable to find texture files
because the “sourceimages” path is set incorrectly; the collection of all the texture maps means
that any artist should be able to load any art file without worrying about the “sourceimages”
path. Furthermore it is crucial that all artists are setup using the same drive, generally the D:
drive.

The collection of the texture maps also serves another purpose: that of unifying the look of the
game. With the textures collected in one place, it is easier for artists to peruse the textures. This

Issue: 0.1 Page 51 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
will allow them to easily pinpoint any textures that may not match the art direction for a
particular character or level. It will also allow easier texture reuse as all the textures are collected
in one area and the artist will not need to hunt around to look for textures.

The sourceimages directory will have two folders, the ps2 folder and the xbox folder. This is
required because the texture use in the two consoles will be different. Artists will generally
create new textures targeted for the XBox platform, and then reduce their size or colour depth for
the PS2. Naming textures for the XBox and PS2 will be identical for easy straightforward
organization.

The sourceimages directory will also contain a psd folder that will store all source art created
from Photoshop. Naming should correspond to the final texture name in the XBOX/PS2
directory.

Shown in Figure 10 is an example of the sourceimages directory structure.

Figure 15: Sourceimages Directory Structure

Issue: 0.1 Page 52 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
6.2.3 Instructions

TBD

6.2.4 Location of Source and Final Files

See Section 6.2.2.

6.2.5 How to Verify Data is Correct

One way to determine the correctness of the data moving through the texture pipeline is to use
the texture profiler that can be found in Perforce under
//depot/sdks/pure3d/tools/commandline/TextureProfiler. The texture profiler will allow those
who have an interest whether or not there are any errors or problems with any of the textures to
be used.

6.2.6 Limitations and Recommendations

TBD

6.2.7 Troubleshooting

Some common problems that occur are:

- Naming collisions

- Incorrect texture sizes and bit depths

There aren’t any quick fixes for these problems, but they are flagged in the texture profiler as
errors that will be brought to the attention of those that need to know about them.

6.2.8 References and Supporting Documentation

Kurahashi, Juneko and Maruno, Yayoi: Dark Angel Art Directory Structure and
Nomenclature (//depot/docs/ArtTech/ArtDirStructure.doc).

Lambie, Stephen and Sandie, Bert: Dark Angel Technical Art Specification
(//depot/docs/ArtTech/DATechnicalArtReqs.doc).

6.3 Technical Documentation

6.3.1 Naming Conventions

See Section 6.2.1.

Issue: 0.1 Page 53 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
6.3.2 File Format and Content

Texture files start off as one of the following: png, bmp, or tga. The texture files during the
course of the pipeline then get brought into p3d files. Textures in a p3d file are stored in a
texture chunk and information about them can be viewed in the p3dexplorer and/or p3dviewer.

6.3.3 Pipeline Flow Chart with Descriptions

Texture Pipeline Overview

Texture Load and Use


Create Texture
Verification Texture in Game

Figure 16: Texture Pipeline Flowchart

Issue: 0.1 Page 54 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

Art Build Flowchart

build nis
-runs a makefile
follow ed by build.pl
and buildNis.pl

build art
-starts the process of
preparing art files to
be used in the game

build frontend
-runs a makefile and
scrbylst.pl

Figure 17: Art Build Flowchart

Step 1: To build the models and textures into the final, game ready format the batch file build
must be run with argument art.

Step 2: The build batch file then will run build fe and build nis to get the individual components
ready

Step 3fe: For build fe a makefile and perl script, scrbylst.pl, are run.

Step 3nis: For build nis a makefile is run as well as two scripts, build.pl and buildNis.pl, are run.

Step 4: The end result of this process is to have the art (models/textures) in the cd directory
ready to be run by the game.

Issue: 0.1 Page 55 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
6.3.3.1 Exporting

The textures created can be compressed. When working with the XBox you can compress the
textures using the DxTn compression format. The DxTn compression format is a lossy
compression scheme so it is very important that artists preview their art and ensure that the
quality is not dropping dramatically. The level of compression can be set for textures
compressed in this format by using the convert2dxtn tool.

6.3.3.2 Data Optimization

TBD

6.3.3.3 Importing / Loading into the Game

Textures are stored inside p3d files and as a result of this are loaded via the standard method for
loading p3d files.

6.3.4 Current and Desired Tools

6.3.4.1 NTSC Color Check Tool

Location: //depot/sdks/pure3d/tools/commandline/ntsccheck/texturelist.exe

The NTSC Color Check tool has been integrated into the Texture Profiler. It provides a listing
of all the invalid colors that are present in an image and recommended fixes for the invalid
colors. This tool has also been integrated into the Penthouse menu in Maya so that the artists can
run it as they work with textures. The results of this are immediate concrete feedback on the
textures that they are working with and control over what changes are made to the texture rather
than just automatically changing colors for them.

6.3.4.2 Texture Generation Tool

Location: Not necessary at this point

As it stands right now this category of tool has been deemed unnecessary, but there is the
possibility that in the near future something might come up that will require the use of something
like this so it is being noted here. If it were decided that a tool like this was required then we
would most likely use a third party tool.

6.3.4.3 Texture Profiler

Location: //depot/sdks/pure3d/tools/commandline/bin/texturelist.exe

This profiler provides reports on p3d and image files that are passed into the tool. The profiler
should be used to verify the contents of the files to ensure that all information that will be used in
the game is in the proper format. The reports display information on the following areas: texture

Issue: 0.1 Page 56 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
name, file size (for image files), texture dimensions, image format, texture format, bit depth,
number of mipmaps, memory size, alpha (yes/no), destination console, and errors with the
texture. The errors that are currently checked for are improper texture sizes for the destination
console/bit depth and filenames that are too long.

By using the –R argument on the command line for the tool any subdirectories that may be found
in the directory you passed as your input directory will be traversed as well.

The texture profiler also allows for more general information to be displayed at the end of the
report about overall texture statistics. The statistics compiled include the total number of
textures for each bit depth (4, 8, 16, 24, and 32), the number of textures with or without alpha
blending, the number of textures with mipmapping, and the sizes of the textures in memory and
file.

Sample Command Line

texturelist –s –i –o info.txt c:\da\cd\win\fe\Resource\images\*.png

In the above sample command line:

- texturelist is the executable file

- s prints overall totals at the bottom of the report

- i tells the profiler that the input files are images and not p3d files

- o info.txt provides the profiler with the name of the report file (info.txt)

- c:\da\cd\win\fe\Resource\images\*.png represents the input files that are to be profiled

6.3.4.3.1 Limitations/Recommendations

There are not any limitations or recommendations at this time.

6.3.4.4 convert2dxtn

Location: //depot/sdks/pure3d/tools/commandline/bin/

The convert2dxtn tool will be used to convert all textures and images that are found in a p3d file
into DXTn image format. The DXTn format is a compressed format that is available in three
varieties (1, 3, 5) that affect the amount of compression. DXTn images are used for the XBox
exclusively so this tool will only be used when building art for this platform. The flag that will
be used most often with this tool is –f, which will allow you to specify the amount of
compression that you want to have for the DXTn image (1, 3, 5).

Issue: 0.1 Page 57 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
6.3.4.5 dxtnreplace

Location: //depot/sdks/pure3d/tools/commandline/bin/

The dxtnreplace tool will, like the convert2dxtn tool, be used when dealing with art for the
XBox. This tool gives us the ability to replace images in pure3d files with DXTn image chunks.
There are two flags that are most likely to be used for this tool (-i and -o). The –i flag allows
you to specify the path from which all dxtn images will be taken. The -o flag allows you to
specify the output file where the DXTn image chunks will be stored.

6.3.4.6 imgextract

Location: //depot/sdks/pure3d/tools/commandline/bin/

The imgextract tool will be used whenever we want to take images that are in p3d file and put
them back into separate files. This will probably not be used very often since all image files that
are found in p3d files will be stored separately at all times so it should not be necessary to extract
them. One instance where this tool is used is in the art asset management tool to extract images
from p3d files, but generally this will not need to be done. The important flags to remember
when using this tool are –t, -p, -1, -3, and –5. These flags allow you to specify the file format
that will be used for the image files that are created in the extraction process. The flags have the
following meanings: –t is tga, -p is png, -1 is for DXT1, -3 is for DXT3, and –5 is for DXT5.

6.3.4.7 imgrestore

Location: //depot/sdks/pure3d/tools/commandline/bin/

The imgrestore tool will be used whenever it is necessary to replace texture references in a p3d
file with real textures. The only option that is available for use with this tool is –o, which allows
you to specify the name of the new p3d file that will contain the real textures.

6.3.4.8 p3dcompress

Location: //depot/sdks/pure3d/tools/commandline/bin/

This tool allows for compression of files. It has been updated to allow for faster decompression
(55MB/s on the PS2) and slightly better compression. The downside is that the new compressor
is a lot slower than the old one.

To get the new compressed file stuff, you need:

To generate compressed files:

tools/commandline/bin/p3dcompress
tools/commandline/bin/p3dps2
To load compressed files:

Issue: 0.1 Page 58 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

p3d/file.hpp
p3d/file.cpp
p3d/lzr.hpp
p3d/lzr.hpp

To explore compressed files:

tools/gui/p3dexplorer

6.3.4.9 p3dimage

Location: //depot/sdks/pure3d/tools/commandline/bin/

The p3dimage tool takes textures and images and uses them to create a p3d file that will hold
them in the proper format for use in the game. This tool is a very important part of the texture
pipeline as it takes the texture files that have been created by the artists and combines them into a
file format that can be used within the game. One important flag that can be used with this tool
is –i, which tells p3dimage that the files it is taking in are image files and not p3d files. A couple
of additional flags that are of interest are –O (optimization of the images through reduction in
bits per pixel if few enough colors are used), -b value allows you to change the bpp for the image
to the stated value, and finally –a allows you to avoid making changes to images with alpha.

6.3.4.10 p3dmipmap

Location: //depot/sdks/pure3d/tools/commandline/bin/

The p3dmipmap tool is used to generate mipmaps for textures. This tool will be used when
artists or programmers come across a texture that needs mipmapping to avoid the shimmering
artifact. One important flag that you will use with this tool is –l, which allows you to set the
number of mipmap levels that you want. Another flag that goes hand in hand with –l is –m,
which allows you to set the minimum dimension of the mipmap to a certain value. The last flag
that may be of interest is –x, which allows you to remove n levels from a texture.

6.3.4.11 p3dps2

Location: //depot/sdks/pure3d/tools/commandline/bin/

The p3dps2 tool processes art for the PS2. It will flip the width and height for art where the
height is greater than the width and will convert textures and geometries to memory image
format if the flag is specified (-m). This tool will be used whenever art is being built for the PS2.

6.3.4.12 p3dxbox

Location: //depot/sdks/pure3d/tools/commandline/bin/

Issue: 0.1 Page 59 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
The p3dxbox tool creates art for the XBox. This tool will convert textures and geometries to
memory image format if the –m flag is specified on the command line. This tool will be used
whenever art is being built for the XBox.

6.3.4.13 spltbmp

Location: //depot/sdks/pure3d/tools/commandline/bin/

The spltbmp tool splits a bitmap into several numbered textures. At this point in time it is
questionable as to whether or not it will be necessary to use this tool, but if it is required it is
available. The two main flags that should be noted are –x and –y, which respectively represent
the number of divisions along the x and y-axes.

6.3.5 Platform Specific Instructions and Functionality

When dealing with the XBox you need to be sure and try to avoid the use of 1024x1024 textures.
When making the decision on texture sizes make sure to use smaller textures like 256x256 8 bit
textures which should be the most commonly used size. The reason behind this is that textures
of the larger size, 1024x1024, consume a relatively huge amount of memory. Their size will
reduce the effectiveness of the texture cache unless they are used infrequently in a small area.
The XBox has a total of “N” MB of memory for textures, but this is complimented with the
DXTn compression that guarantees a 4:1 compression rate for 32 bit textures and 6:1 for 24 bit
textures.

When you are working with the Playstation2 you need to make sure that you try to use textures
that are 256x256 or smaller because textures that are bigger than this take up a relatively huge
amount of memory. The PS2 only has a total of up to 2 MB or less of memory to use for textures
(the PS2 has 4 MB of video RAM).

Physical limitations of PS2 hardware

Maximum 8 bit texture 1024 x 1024

Maximum 16 bit 512 x 512


texture

Maximum 32 bit 512 x 512


texture

When you are working with textures for the Playstation2 remember that small texture chunks can
be swapped in and out of memory effortlessly without hiccups. This can allow artists to break the
2 MB texture limit. This is due to the fact that the PS2, while limited in actual memory for
textures, does allow for very fast texture swapping. The PS2 can upload ~5MB of textures per
frame at a frame rate of 60Hz

Issue: 0.1 Page 60 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
For the Playstation2 you need to make sure that you do not use specular lighting on world
geometry or geometry that has large off screen portions close to the camera. The reason for this
is that the PS2 does not clip specularly lit polygons. This is a design feature of Pure3D to save
speed. Specularly lit polygons will simply be dropped out once they touch the clipping planes.

6.3.6 Limitations and Recommendations

TBD

6.3.7 Potential Extensions

TBD

6.3.8 Error Checking

TBD

Issue: 0.1 Page 61 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

7. NIS PIPELINE

7.1 Description

7.1.1 Pipeline Description

The NIS pipeline is responsible for the creation, importing and exporting, and running of NISs
for the game.

7.1.2 Goals of the Pipeline

The goals for the NIS pipeline are:

- Provide necessary tools/data files to support NISs

- Importing and exporting of the NIS files

7.1.3 Users of the Pipeline

The users of the NIS pipeline will be artists and animators who are working specifically on
models and related NIS materials. The programmers who are working with the NISs will also be
interested in the results and processes of this pipeline.

7.2 User Documentation

7.2.1 Naming Conventions

Maya:

There will be two types of Maya files. The first Maya file will be the original setup file of the
entire scene for the animator’s reference. This file will not be exported to the game. The other
type of Maya file, which will be exported, will contain a scene shot. There will be several of
these files for the various shots of the scene that will be taken. Naming convention for the NIS
scene reference file will identify the NIS version, location (descriptive) and setup to indicate the
file. Naming convention for NIS in-game file will identify the NIS version, location (using
alphabet) and the shot number. The naming convention is as follows:

Example: Max hiding from guard warehouse ready to attack him.

NIS Scene Maya: nis1whouseattack_setup.mb (a = location)

NIS Maya: nis1a_sh1. mb, nis1a_sh2.mb

P3d: nis1a _sh1.p3d, nis1a_sh2.p3d

Issue: 0.1 Page 62 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
Please note: XBox and PS2 swapping of NIS models will be handled programmatically,
therefore LOD will not be identified in the filename. What this means is that in general NISs
will not contain any model information just the animation information. The end result of this is
that the game itself will load the proper models independently of the NISs based on the system
that the game is running on.

7.2.2 Directory Structure

All NISs are contained within the nis directory. The nis directory contains levela, etc. folder in
which multiple NIS folders exist identified by number. For example: nis1, nis2, nis3. These
folders will in turn contain a scenes folder and p3d folder. Within the scenes folder will exist a
main scene Maya file called nis1a_setup.mb, which the animators will use as the main source for
reference but will not be exported to game. If the NIS has multiple scenes, it will be indicated by
alphabetic ordering; for example: nis1a_setup.mb, nis1b_setup.mb. Next there will be multiple
Maya files separated by camera edits and shots for ease of management and re-edits for
animators. Naming conventions are laid out in Section 7.2.1. Only the camera animation,
character animation, and any other animations that are specific to the NIS sequence will be
exported. An example of the directory structure can be seen in Figure 18.

Figure 18: NIS Directory Structure

Issue: 0.1 Page 63 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
7.2.3 Instructions

TBD

7.2.4 Location of Source and Final Files

See Section 7.2.2.

7.2.5 How to Verify Data is Correct

The NIS can be previewed using the p3dviewer to ensure that the NIS is correct before it is used
in the game. As an additional check, the NISs should also be run with the XBox and PS2
viewers on a NTSC device to ensure that they still look good.

7.2.6 Limitations and Recommendations

One limitation that must be considered is the size of the NIS files. It is critical that every NIS
file must be 1.5MB or less.

One possibility that may be explored is the streaming of NISs on the XBox off of the hard drive.

7.2.7 Troubleshooting

TBD

7.2.8 References and Supporting Documentation

Kurahashi, Juneko and Maruno, Yayoi: Dark Angel Art Directory Structure and
Nomenclature (//depot/docs/ArtTech/ArtDirStructure.doc).

7.3 Technical Documentation

7.3.1 Naming Conventions

See Section 7.2.1.

7.3.2 File Format and Content

The files that are going to be used by this pipeline are Maya binaries, texture files, p3d files, and
seq files. The Maya binaries will come from the specification of the NIS in Maya and the
textures used in the sequence will be contained in the texture files. The Maya binaries and the
textures that they use will be used to create the p3d files that can later be used in the game.

Before the files go into the game, in the phase where all of the art is built, bundle files will also
be generated. The bundle file generation will take place in buildNis.pl. A description of bundles
and what they contain is specified in the General Information Section of this document.

Issue: 0.1 Page 64 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
7.3.3 Pipeline Flow Chart with Descriptions

NIS Pipeline

Create NIS in
Maya

Export to p3d
format and create
seq files

Use in Game

Verify p3d files


Build NIS
and NIS

Figure 19: NIS Pipeline Flowchart

Step 1: The first step in the NIS pipeline is to create the files related to the NIS (models, textures,
sequence (.seq) files).

Step 2: After the NIS files have been created it is time to convert them into p3d format and create
the sequence (.seq) files.

Step 3: The next step is to verify the p3d files and the NISs in general. This verification step is
important because it ensures that the NIS is working properly before it goes into the game. By
ensuring that the NIS is working properly outside of the game we can guarantee that any
problems involved with its running in the game are probably with the code and not the art itself.
The tools that can be used to verify the files and NISs in general are p3dexplorer and p3dviewer
(quickviewer).

Step 4: After the verification step has been completed it is now time to build the NIS into the
playable format for the game. The building of the NISs is a subset of the build process that was

Issue: 0.1 Page 65 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
described for art in the texture pipeline. This build process involves the build.pl and buildNis.pl
scripts that are involved in copying the NIS files into the proper directories, setting up files that
contain a list of all p3d/seq files being used by the NIS, and soon will also handle the building of
bundles that will be used for loading in addition to the p3d files.

Step 5: The last step is to run the NISs in the game and ensure that they run properly.

7.3.3.1 Exporting

There are not any special export steps that need to be run for the NIS pipeline.

7.3.3.2 Data Optimization

TBD

7.3.3.3 Importing / Loading into the Game

For the loading of NISs into the game the two NISs that will be used next are loaded into
memory and as an NIS finishes playing we unload it from memory and load a new one in.

7.3.4 Current and Desired Tools

Currently the two scripts that are run for processing the NISs are: build.pl and buildNis.pl.
These two scripts are located in //depot/build/art/nis.

The script buildNis.pl will search in a specified directory and create a text file with the name of
the directory that contains a list of the pure3d files that make up the NIS, in alphabetical order.
The other script build.pl will copy NIS pure3d files from the art folders to the cd folders. This
script will also check the timestamps of the pure3d files to see if they need to be copied. The
build.pl script calls the buildNis.pl script if there have been new additions to the directory or it is
necessary to update everything.

The initial pure3d files are stored in //depot/art/nis/levela/nis1/p3d. Once the processing has
taken place the files needed for the NIS are stored in //depot/cd/nis/levela/nis1.

An important file that is generated from the perl scripts is nis1.txt. This states all of the p3d files
that will be used for the NIS. In addition to the p3d files that are found in the directory there will
also be sequence (.seq) files. The sequence files are created manually by the programmer
working on the NISs and reflect the attributes of the NISs. The .seq files also allow you to
specify events that are to occur during the NIS and the frame of the NIS that they should be sent
on.

Issue: 0.1 Page 66 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

E.g. Sample Sequence File (shot12.seq)

eventanim
{
name shot12 // Name of the event animation (matches the NIS)
framerate 30.0 // Frame rate of the animation
length 693 // Length of the event animation (matches the NIS)
cyclic 0 // 1 if the animation should be cyclic
count 1 // Number of events in this animation
event
{
name camera2
address camera
param 1
time 486
data
{
string pp_shotShape2
}
}
}

Two events that should be noted here are: subtitle and letterbox.

The subtitle event takes two parameters both of which are integers. The first parameter is used
to specify whether the subtitle is to be displayed or hidden (1 = display; 2 = hide). The second
parameter in the subtitle event allows you to specify the number of the subtitle that is to be
displayed/hidden.

The letterbox event is the other event of note and the format is as follows:
event
{
name <whatever>
address letterbox
param <on>
time <frame-to-start>
data
{
float <coverage>
int <doMove>
int <moveTime>
int <doFade>
int <fadeTime>
}
}

<on> = is the letterboxing coming on (1) of going off (0)

<coverage> = how much of the screen is covered by the letterboxing (1.0 =


whole screen, 0.5 = half screen 1/4 on top, 1/4 on bottom, 0.0 = nothing).
Only has meaning if on = 1

<doMove> = should it slide on, ala the previos NIS demo (1 = yes)

<moveTime> how long it takes to slide on in ms

<doFade> should it fade in, alpha blended on the scene (1 = yes)

Issue: 0.1 Page 67 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
<fadeTime> how long does the alpha fade take

7.3.5 Platform Specific Instructions and Functionality

One platform dependent requirement is to ensure that the proper models and textures are used for
the system the game is being run on.

7.3.6 Limitations and Recommendations

The current limitations of the NIS pipeline are that some of the necessary components are hacked
in. One area of note that is hacked that will need to be fixed is dealing with the levela directory
level.

It may be desirable to at some point to delete the geometries from the pure3d file in the
processing phase and just keep the animation information. Something else that could be
undertaken at some point is the cleaning up of the scripts and getting rid of areas of duplication
by making them leaner.

The initial groundwork has been laid out to get the buildNis.pl script to handle the outputting of
bundle files. As soon as the final format for bundles has been laid out the update of this script
file can be completed.

7.3.7 Potential Extensions

TBD

7.3.8 Error Checking

TBD

Issue: 0.1 Page 68 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

8. FMV PIPELINE

8.1 Description

8.1.1 Pipeline Description

The FMV pipeline looks after the movies played in the game from their initial creation through
the conversion process that differs depending on the target platform. Once the conversion has
taken place the files can be run on their specific platform using the files in the radmovie library.

8.1.2 Goals of the Pipeline

The goals of the pipeline are:

- Exporting of MPEG2 (PS2) or AVI (XBox) movies

- Conversion of movies to formats that are usable on the XBox and PS2

- Loading of movies into the game

8.1.3 Users of the Pipeline

Both artists and programmers will use the FMV Pipeline during the course of the project. Artists
will use the pipeline to create assets that will then be converted into a format that can be used in
the game. Programmers will be interested in the format of the FMV data and how the process is
carried out.

8.2 User Documentation

8.2.1 Naming Conventions

The naming conventions for FMV will be broken down into two categories: XBox and PS2.

XBox names: moviename_x.bik

PS2 names: moviename_p.pss

8.2.2 Instructions

XBox Movie Creation Instructions

PS2 Movie Creation Instructions

Issue: 0.1 Page 69 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
8.2.3 Location of Source and Final Files

Both the source and final in-game files should be checked into Perforce in the fmv directory.

8.2.4 How to Verify Data is Correct

To verify the correctness of your original data you can view the MPEG2 or AVI file that has
been created with a movie player.

8.2.5 Limitations and Recommendations

Limitations that need to be considered the FMV pipeline are the size of the movies and the speed
at which the movies can be loaded.

8.2.6 Troubleshooting

TBD

8.2.7 References and Supporting Documentation

Bink Help Documentation (http://www.radgametools.com/binkhlp2.htm).

8.3 Technical Documentation

8.3.1 Naming Conventions

See Section 8.2.1.

8.3.2 File Format and Content

The file format for the fmvs will be either .bik for XBox movies or .pss for PS2 movies.

Issue: 0.1 Page 70 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
8.3.3 Pipeline Flow Chart with Descriptions

FMV Pipeline

XBox Movie:
Convert AVI w ith
Bink

Create movie Load into Game:


uses radmovie

PS2 Movie:
Convert MPEG2
w ith ps2str

Figure 20: FMV Pipeline Flowchart

Step 1: Create a movie

- XBox movie Æ .avi file

- PS2 movie Æ .mpeg2 file

Step 2: Convert the movie to a format that is useable in the game

PS2 movies

- Use the ps2str tool to combine your mpeg2 and wav files into a PSS file

Issue: 0.1 Page 71 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
XBox movies

- Use Bink to take your avi and wav files into an XBox movie

Step 3: Load the movie into the game

- The movies are loaded into the game using the radmovie library

8.3.3.1 Exporting

8.3.3.1.1 XBox Exporting

Figure 21: RAD Video Tools Screenshot

The above figure displays the interface that is found when creating XBox movies using Bink.
Some of the more commonly used features of this interface and how to use them are as follows.
File name: Enter the filename that you want to work with here. You can use the pulldown at
the top to choose a directory with your mouse.
For example, if you just want to play a file, then just highlight it and click the "Play" button.
You can change the default playback parameters in the "Advanced play" window.

Bink it: This button opens the Bink compressor window where you can compress your movies
with our true-color Bink codec.

Issue: 0.1 Page 72 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
Analyze file: The "Analyze" button opens one of the handiest features in the RAD Video Tools. It
displays a visual representation of the video file’s data rate.
To create a Bink version of your avi file all you have to do is insert the name of the file you want
to convert in the filename field and then click on the Bink It icon. This will bring up the window
shown below that allows you to set the options for your Bink video. For more information on
the parameters that you can set click on Help on the Bink interface.

Figure 22: Bink option interface for files being converted

8.3.3.2 Data Optimization

TBD

8.3.3.3 Importing / Loading into the Game

The importing/loading of the FMVs into the game will be done through the radmovie library.
The library will end up loading the file formats that we have saved our movies in (e.g. PSS) and

Issue: 0.1 Page 73 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
if the FMV is in the proper format for the platform that it is being played on then it will be
played at the appropriate time.

8.3.4 Platform Specific Instructions and Functionality

For the XBox we will be using third party movie player called Bink that is made by Radgames.
The cost associated with this will be approximately $5000 US per sku. It is possible that
Microsoft or another third party might develop something cheaper, but it is unlikely that
something along these lines will become available in time (or at all) to be useful to us. Bink
takes AVI and WAV files as input and combines them into a movie file that can be loaded on the
XBox. The process of exporting files from Bink is described in the exporting section.

For the PS2 Sony provides a converter tool that will convert a combination of MPEG2 and WAV
files to a PS2 format (PSS) that we will be using. The tool is called ps2str and is found in the
Sony libraries under usr\local\sce\tools\ps2str\. Sony provides us with the option to either create
movies using the PSS format or we could alternatively use the IPU format. Currently while there
is code support on Radicals part for both of the formats only the PSS approach has been
thoroughly tested. A possible area where it could be beneficial to use the IPU format is if it is
decided to have a movie playing on a texture in the game. The reason that IPU format would be
preferred for this type of movie playing is that it has very quick load times when compared to the
PSS format because it is not as compressed.

8.3.5 Limitations and Recommendations

It is possible that the game could have textures that will play movies during the game. In order
to have this feature it would be necessary to have the movies running with the IPU format. This
code to run this format does exist in radmovie, but at this point in time it has not been tested.
This feature should be tested to ensure that it will be working in the near future.

8.3.6 Potential Extensions

The main extension that could be undertaken here is to ensure that the existing untested code for
the IPU format works and is available for use in the game if we choose to explore that route.

8.3.7 Error Checking

TBD

8.3.8 Technical Documentation

T:\Devsys\PS2\V2.14\usr\local\sce\tools\ps2str\doc\word\Ipustrea.doc, Sony Computer


Entertainment IPU Information

8.3.9 Pipeline Ownership

This pipeline is owned by the RGB group.

Issue: 0.1 Page 74 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

9. GENERAL SCRIPTING PIPELINE

9.1 Description

9.1.1 Pipeline Description

The scripting pipeline is responsible for the seeing the scripts used for the various facets of the
game through from creation to their interpretation and use within the game. This pipeline deals
with a subsection of scripts that deal with NPC AI and game scripting (director, mission, and
character attribute scripting).

9.1.2 Goals of the pipeline

The goals of this pipeline are:

- Look at the importing and exporting of scripts

- Determine how scripts will be initially created, associated with the correct phase of the
game, and executed

- Determine what support will need to be provided by programmers

9.1.3 Users of the Pipeline

The users of the scripting pipeline are game designers and programmers involved in handling the
NPC AI, and overall control scripts like mission and director.

9.2 User Documentation

9.2.1 Naming Conventions

TBD

9.2.2 Instructions

TBD

9.2.3 Location of Source and Final Files

The scripts will be located in the ai directory. Further subdivisions of the ai directory into
subdirectories for improved organization may occur in the future. The final files will be stored
in the cd directory under the same ai directory.

Issue: 0.1 Page 75 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
9.2.4 How to Verify Data is Correct

In order to verify the correctness of the scripts they will have to be run in the game. It is still
being considered whether or not we should create some sort of syntax checker. If it is created
then this would be the only step of pre-game verification.

9.2.5 Limitations and Recommendations

TBD

9.2.6 Troubleshooting

TBD

9.2.7 References and Supporting Documentation

None at this point.

9.3 Technical Documentation

9.3.1 Naming Conventions

See Section 9.2.1.

9.3.2 File Format and Content

9.3.2.1 NPC AI Scripts

Location: Needs to be specified

- What are the actual requirements for this script?

9.3.2.2 Director and Mission Control Scripts

Location: Needs to be specified

- What are the actual requirements for this script?

Issue: 0.1 Page 76 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
9.3.3 Pipeline Flow Chart with Descriptions

Scripting Flowchart

Load and Run in the


Write the Scripts
Game

Figure 23: Scripting Pipeline Flowchart

9.3.3.1 Exporting

No exporting occurs in the scripting pipeline.

9.3.3.2 Data Optimization

TBD

9.3.3.3 Importing / Loading into the Game

TBD

9.3.4 Current and Desired Tools

9.3.4.1 Lua

We will be using Lua (www.lua.org) for AI, mission controls, and director scripts.

9.3.5 Platform Specific Instructions and Functionality

There are no platform specific instructions or functionality for scripting.

9.3.6 Limitations and Recommendations

One limitation or potential risk in the scripting pipeline is the use of Lua. If all goes well Lua
should be a great asset for the team and allow the expanding of our scripting system over the one
that currently exists. However, Lua is new territory so there will be pitfalls that will exist and
extra work that will need to be done at times to get it to do what we want it to.

Issue: 0.1 Page 77 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
9.3.7 Potential Extensions

TBD

9.3.8 Error Checking

There is currently no means of error checking scripts.

Issue: 0.1 Page 78 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

10. ANIMATION SCRIPTING PIPELINE

10.1 Description

10.1.1 Pipeline Description

The animation script pipeline is responsible for the process of script creation all the way through
to the interpretation and use of the scripts in the game. The scripts that this pipeline deals with
relate specifically to the animating of characters and are based largely on the work done by Hair
Club.

10.1.2 Goals of the pipeline

The goals of this pipeline are:

- Look at the importing and exporting of scripts

- Determine how scripts will be initially created, associated with the correct phase of the
game, and executed

- Determine what support will need to be provided by programmers

10.1.3 Users of the Pipeline

The users of this pipeline will be the designers who are working on the scripting as well as any
programmers who are helping in the script creation aspect. The pipeline will also be of interest
to the programmers who are working on the loading of the animation scripts into the game.

10.2 User Documentation

10.2.1 Naming Conventions

The animation scripts will be created for characters and character types. This means that the
most intuitive naming scheme would be to have the name of the character included in the name
of the file. The table of character abbreviations in section 5.2.1 will be used with the prefix of
“anim”. The extension for these scripts will be “.ais”.

10.2.2 Instructions

TBD

Issue: 0.1 Page 79 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
10.2.3 Location of Source and Final Files

The scripts will be located in the ai directory. Further subdivisions of the ai directory into
subdirectories for improved organization may occur in the future. The final files will be stored
in the cd directory under the same ai directory.

10.2.4 How to Verify Data is Correct

In order to verify the correctness of the scripts they will have to be run in the game. It is still
being considered whether or not we should create some sort of syntax checker. If it is created
then this would be the only step of pre-game verification.

10.2.5 Limitations and Recommendations

TBD

10.2.6 Troubleshooting

TBD

10.2.7 References and Supporting Documentation

Laurent Ancessi: Building the Motion Tree and Animation System (Hair Club Perforce).

10.3 Technical Documentation

10.3.1 Naming Conventions

See Section 10.2.1.

10.3.2 File Format and Content

The animation scripts that will be used for DA are basically identical to the ones used by Hair
Club. Below is a portion of a sample script used by Hair Club. There will be some syntax
additions and changes that will be noted here when/if they happen.

The partition priority portion of the script is used to blend different animations together. If the
lower body in one animation has priority over the lower body in the other animation then they
won’t be blended together and the higher priority lower body will be used. On the other hand, if
the two lower bodies have the same priority then they will be blended together. The priorities of
the different partitions depend on how fast the character is going and the movements the
different partitions are making.

#---------------------------------------------------------------
# Loading of the animation.
#---------------------------------------------------------------

Issue: 0.1 Page 80 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
# Load all the locomotion
#Must load the skeleton first!
LOAD_P3D "art\\actors\\al\\skeleton.p3d"
LOAD_P3D "art\\actors\\al\\alanims.p3d"
#Load skins
LOAD_P3D "art\\actors\\al\\skin.p3d"
LOAD_P3D "art\\actors\\al\\shadow.p3d"
# Load physics
LOAD_P3D "art\\actors\\al\\alphys.p3d"
LOAD_P3D "art\\actors\\al\\alflex.p3d"
#---------------------------------------------------------------
# Setup the animation to be used by the fighting tree
#---------------------------------------------------------------
# Set the blend time for all locomotion
SET_BLEND_TIME 0.1
# Set the partition definition and priority for all locomotion
SET_PARTITION_PRIORITY "locomotion" 0 "upper_body" 1
#SETUP_IDLE "al_amb_washthecar_b_anim"
#SETUP_IDLE "al_amb_korr_b_anim"
#SETUP_IDLE "al_amb_hulk_b_anim"
SETUP_IDLE "al_amb_b_anim"
#idle
#SETUP_ANIMATION "AnimID_al_close_idle" "al_amb_b_anim" cyclic
#SETUP_ANIMATION "AnimID_al_med_idle" "al_amb_b_relax_anim" cyclic
#SETUP_ANIMATION "AnimID_al_med_far_idle" "al_amb_b_taunt_far_anim"
cyclic
#SETUP_ANIMATION "AnimID_al_far_idle" "al_amb_b_taunt_anim" cyclic
# idle pivots
#SETUP_ANIMATION "AnimID_al_turn_ccw_60" "al_turn_ccw_60_anim"
semi_cyclic
#SETUP_ANIMATION "AnimID_al_turn_cw_60" "al_turn_cw_60_anim"
semi_cyclic
SETUP_LOCOMOTION "al_loco_def_strafe_sw_anim"
SETUP_LOCOMOTION "al_loco_def_strafe_se_anim"
SETUP_LOCOMOTION "al_loco_def_strafe_s_anim"
#jog
SETUP_LOCOMOTION "al_loco_jog_n_anim"
SETUP_LOCOMOTION "al_loco_jog_s_anim"
SETUP_LOCOMOTION "al_loco_jog_e_anim"
SETUP_LOCOMOTION "al_loco_jog_w_anim"
SETUP_LOCOMOTION "al_loco_jog_nw_anim"
SETUP_LOCOMOTION "al_loco_jog_ne_anim"
SETUP_LOCOMOTION "al_loco_jog_sw_anim"
SETUP_LOCOMOTION "al_loco_jog_se_anim"

10.3.2.1 Animation bank

An animation bank is associated with each character. This bank contains all the running partition
(animation and procedural animation) used by the character in every situation (NIS, fight…). A
running partition locomotion and upper body are enough to animate a character. By superposing
subtle secondary motion (secondary running partition), we will develop interesting animated
behavior.

10.3.2.2 Running partition

A running partition is the combination of a partition definition name, a level of priority, where 0
is the highest level of priority, and an animation or procedural animation.

Several running partitions contribute independently to the skeleton pose. It’s a system of
paralleled threads. This system is resolved every frame and the level of priority of each running
partition is the main criteria. If a high priority running animation disappears, then another thread
of lower priority may become active and blending occurs (factor vary between [0-1]). The

Issue: 0.1 Page 81 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
weight of the partition is multiplied with the current blending level to work out the proper
blending.

The following commands define a new running partition: SETUP_ANIMATION,


SETUP_PANIMATION, SETUP_LOCOMOTION and SETUP_IDLE. A running partition can
be fired from many places in the engine (fighting engine, NIS, CSM, Showcase…).

The goal is to fire redundant running partition with different levels of priority. The system
resolves at every frame the active partitions: 1 running partition per partition definition. The
level of priority is the main criteria.

CAPTURE RUNNING PARTITIONS

Idle, upper_body, priority 1


Play Idle
Idle, locomotion, priority 0

Grapple, upper_body, p0
Play Grapple
Grapple, locomotion, p1

RESOLVE SKELETON

Upper body Idle Grapple Idle

Locomotion Idle

Time

Idle Blending level =1

Grapple Blending level =0

10.3.2.2.1 Partition definition

A partition definition is a set of weighted joints. The format of a partition definition is:
SETUP_PARTITION [name partition]
{
SETUP_JOINT [name p3d joint] [weight]
SETUP_JOINT [name p3d joint] [weight]
….
}

The weight allows overlapping the partition definition (progressive blending of the running
partition).

Issue: 0.1 Page 82 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
SETUP_PARTITION "locomotion"
{
SETUP_JOINT "Spine1" 0.5
SETUP_JOINT "Spine2" 0.2
…..

SETUP_PARTITION "upper_body"
{
SETUP_JOINT "Spine1" 0.5
SETUP_JOINT "Spine2" 0.8

Spine 1 and spine 2


progressively blended

Upper partition

Locomotive partition

Important facts:

The partition definitions are not mutually exclusive. For a particular joint, the sum of all weight
(defined in all the partition definition of a characters) can exceed 1.

The final weight is computed with the current blending level and the weight associated with each
joint.

Script commands

The following commands setup the animation bank of a given characters.

LOAD_P3D [filename].

Load the content of the file in the inventory.

SET_BLEND_TIME [duration]

Set the blend time for all the following running partition setup (animation and procedural
animation). The value is in second.

SET_PARTITION_PRIORITY [partition name] [level priority]…the pair can be repeated.

Issue: 0.1 Page 83 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
Set the partition definition and priority for all the following running partition setup (animation
and procedural animation).

SETUP_ANIMATION [animation name] [animation id].

Setup the animation to be used by the fighting tree (punch, kick, grapple…).

SETUP_LOCOMOTION [animation name]

Register the animation in the locomotion tree. The direction of the motion root (8 directions) and
the speed (in m/s) are the main criteria to sort these animations.

SETUP_IDLE [animation name]

Register the animation in the idle tree. The main criterion is the comparison [current gait
(position of the feet)-gait of the first frame in the animation]. The logic is simple: match the gait
and play the sequence.

SETUP_PANIMATION [procedure name].

Define a new procedural animation. The procedure name can be: flexible object, head tracker,
and world head tracker.

SETUP_PARTITION [name partition].

Setup a new partition definition. This definition will be referred by its name.

SETUP_JOINT [name p3d joint] [weight].

Setup a joint definition based on the p3d joint [name p3d joint]. A weight [weight] is associated
with this joint.

10.3.2.3 Calling the animation system

The 2 main primitives used by the fighting engine are: ANIMATION and PANIMATION to
fired respectively an animation and a procedural animation. These command are used in the fight
nodes and the default fight node.

A fight node is fired when the conditions associated with it are matched (context, controller
input…).
FIGHTNODE chef_grapple_lock
{
ANIMATION source 0 "AnimID_chef_amb_grapple_a" 1
ANIMATION target 0 "AnimID_chef_amb_grapple_b" 1
}

The default node is fired systematically in addition to the current fight node. The default node is
mainly used to control the secondary motions.
IMPORT FIGHTBANK defaultPre
FIGHTNODE chef

Issue: 0.1 Page 84 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
{
PANIMATION source 0 -1 "AnimID_head_tracker"
PANIMATION source 0 -1 "AnimID_belly"
}

The following is setup in Chef.txt.


SETUP_PARTITION "flex_belly"
{
SETUP_JOINT "Belly" 1.0
SETUP_JOINT "BellyEnd" 1.0
}
SET_PARTITION_PRIORITY "flex_belly" 1
SETUP_PANIMATION flexible_object "AnimID_belly"

10.3.3 Pipeline Flow Chart with Descriptions

Scripting Flowchart

Load and Run in the


Write the Scripts
Game

10.3.3.1 Exporting

No exporting occurs in the scripting pipeline.

10.3.3.2 Data Optimization

TBD

10.3.3.3 Importing / Loading into the Game

When the animation script files are loaded into the game they are tokenized and put into a token
stream from which the necessary structures are later built.

10.3.4 Platform Specific Instructions and Functionality

There are no platform specific instructions or functionality for scripting.

10.3.5 Limitations and Recommendations

TBD

Issue: 0.1 Page 85 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
10.3.6 Potential Extensions

TBD

10.3.7 Error Checking

There is currently no means of error checking scripts.

Issue: 0.1 Page 86 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

11. FIGHT SCRIPTING PIPELINE

11.1 Description

11.1.1 Pipeline Description

The fight script pipeline is responsible for the process of script creation all the way through to
the interpretation and use of the scripts in the game. The scripts that this pipeline deals with
relate specifically to the fight sequences that the characters can progress through and are based
largely on the work done by Hair Club.

11.1.2 Goals of the pipeline

The goals of this pipeline are:

- Look at the importing and exporting of scripts

- Determine how scripts will be initially created, associated with the correct phase of the
game, and executed

- Determine what support will need to be provided by programmers

11.1.3 Users of the Pipeline

The users of this pipeline will be the designers who are working on the scripting as well as any
programmers who are helping in the script creation aspect. The pipeline will also be of interest
to the programmers who are working on the loading of the fight scripts into the game.

11.2 User Documentation

11.2.1 Naming Conventions

The fight scripts will be created for characters and character types. This means that the most
intuitive naming scheme would be to have the name of the character included in the name of the
file. The table of character abbreviations in section 5.2.1 will be used with the prefix of “fight”.
The extension for these scripts will be “.ais”.

11.2.2 Instructions

TBD

Issue: 0.1 Page 87 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
11.2.3 Location of Source and Final Files

The scripts will be located in the ai directory. Further subdivisions of the ai directory into
subdirectories for improved organization may occur in the future. The final files will be stored
in the cd directory under the same ai directory.

11.2.4 How to Verify Data is Correct

In order to verify the correctness of the scripts they will have to be run in the game. It is still
being considered whether or not we should create some sort of syntax checker. If it is created
then this would be the only step of pre-game verification.

11.2.5 Limitations and Recommendations

TBD

11.2.6 Troubleshooting

TBD

11.2.7 References and Supporting Documentation

Brandt, Bryan: Fight Tree Reference (Hair Club Perforce).

11.3 Technical Documentation

11.3.1 Naming Conventions

See Section 11.2.1.

11.3.2 File Format and Content

The fight tree script outlines the interdependency of the various nodes throughout the fight tree
and specifies the rules for traversal from one node to the next. This script format was created by
Hair Club and will be used almost as is for DA. The following is an excerpt from a fight tree
script used by Hair Club.

########################################################################
# DETONATA
########################################################################

FIGHTNODE detonata_flex_hair
{
PANIMATION source 0 -1 "AnimID_flex_hair"
}

FIGHTNODE detonata_grapple_throw_reversal
{
NAME "Detonata Grapple Throw Reversal"

Issue: 0.1 Page 88 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
CONDITION (target.fightNodeInput(source.input))
ANIMATION source 0 -1 "AnimID_throw_reversal_give" 1
ANIMATION target 0 -1 "AnimID_throw_reversal_receive" 1
SPECIAL source 0 0.2
EFFECT target 1 30 "gen_simple_hitShape" world (trg.jointPos("WristLeft"))
SOUND source 1 "KickBody"
LIGHT source 0 80 (colour(190, 121, 30)) 2 1 WristLeft (v(0, 0, .1))
INHERIT detonata_flex_hair
}

FIGHTNODE sourgrapes_bugeye
{
CONDITION (target.character == "al")
# FACIAL_MOOD target 25 30 ouch 1.0
}

FIGHTBANK detonataGrappleBank
{
FIGHTNODE grapple_throw_kneehammer
{
NAME "Knee Hammer"
INHERIT detonata_flex_hair
CONDITION (input(defend_light))

OPPORTUNITY target 0 0 -1 detonata_grapple_throw_reversal


ANIMATION source 0 -1 "AnimID_grapple_jkneehammer_give" 1
ANIMATION target 0 -1 "AnimID_grapple_jkneehammer_receive" 1
SOUND source 10 "Grunt"
SOUND target 30 "KickFace"
SOUND target 35 "Oof"
SOUND target 70 "BodyFall"
SOUND source 80 "Laugh"
DAMAGE target 30 0.07

##EFFECTS START (WHEEHEEEE)


MOTIONTRAIL source 10 55 (colour(100, 20, 5, 20))
blue_swoosh_colour 1.0 Spine4 (v(0, 0, 0)) .8 .1 Spine1 (v(0, 0, 0)) Spine3 (v(0,
0, 0)) Spine4 (v(0, 0, 0)) Neck2 (v(0, 0, 0))
DRAWABLE source 50 51 "elec_cyl_redShape" "electricity" KneeR
(v(.25,0,0)) (rotZ(v(0,1,0), 90))
EFFECT source 38 48 "gen_heavy_hitShape" KneeR
DRAWABLE source 38 41 "heavyhitShape" null KneeR (v(0,0,0))
(v(0,0,0)) KneeR billboard
EFFECT source 38 48 "sparkhit2Shape" KneeR
EFFECT source 58 68 "gen_simple_hitShape" ElbowRight

EFFECT target 68 78 "gen_dustShape" world


(trg.jointPos("Character_Root"))
EFFECT source 38 48 "gen_hitsparksShape" KneeR
LIGHT source 38 41 (colour(190, 121, 30)) 2 1 KneeR (v(0, 0, .1))
##EFFECTS END

# FACIAL_MOOD target 190 24 Brow_Down 0.4


# FACIAL_MOOD target 190 24 Eyes_Blink 0.4
# FACIAL_MOOD target 190 24 Mouth_Mad 1.0
# FACIAL_MOOD target 190 24 Mouth_Open 0.3
DAMAGE target 32 .08
DAMAGE target 190 .05
CAMERA source 1 j_det_kneehammer 10 30
LOCK 0 45
HIT_OBJECT target 0 -1 -1 FullBody ThrowHit
OPPORTUNITY target 92 0 -1 default_groundBank
}

FIGHTNODE grapple_throw_sourgrapes
{
NAME "Sour Grapes"
INHERIT detonata_flex_hair
CONDITION (input(kick_light))

OPPORTUNITY target 0 0 -1 detonata_grapple_throw_reversal


ANIMATION source 0 -1 "AnimID_grapple_give_sourgrapes" 1
ANIMATION target 0 -1 "AnimID_grapple_receive_sourgrapes" 1

Issue: 0.1 Page 89 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
SOUND target 20 "KickBody"
SOUND target 40 "Wince"
SOUND source 99 "Det_Kiss"
SOUND target 20 "CrowdOh"
SOUND target 140 "BodyFall"
# FACIAL_MOOD target 190 24 Brow_Down 0.4
# FACIAL_MOOD target 190 24 Eyes_Blink 0.4
# FACIAL_MOOD target 190 24 Mouth_Mad 1.0
# FACIAL_MOOD target 190 24 Mouth_Open 0.3
DAMAGE target 20 0.15
DAMAGE target 143 0.05
SPECIAL source 90 0.24

##EFFECTS START HERE


DRAWABLE source 15 25 "elec_cyl_redShape" "electricity" HipR
(v(.25,0,0)) (rotZ(v(0,1,0), 90))
DRAWABLE source 15 25 "elec_cyl_redShape" "electricity" KneeR
(v(.25,0,0)) (rotZ(v(0,1,0), 90))
EFFECT source 15 35 "gen_heavy_hitShape" KneeR
DRAWABLE source 15 18 "heavyhitShape" null KneeR (v(0,0,0))
(v(0,0,0)) KneeR billboard
EFFECT source 15 25 "sparkhit2Shape" KneeR
EFFECT target 35 40 "gen_small_get_hitShape" AnkleR
EFFECT target 35 40 "gen_small_get_hitShape" AnkleL
EFFECT target 142 162 "gen_dustShape" world
(trg.jointPos("Character_Root"))
MOTIONTRAIL target 14 42 (colour(200, 40, 10, 20))
fire_swoosh_colour 1.0 KneeR (v(0,0,0)) 0.5 0.2 AnkleR (v(0,0,0)) KneeR (v(0,0,0))
HipR (v(0,0,0))
##EFFECTS END

CAMERA source 1 j_det_sourgrapes 10 10


EXECUTE sourgrapes_bugeye
LOCK 0 25
HIT_OBJECT target 0 -1 -1 FullBody ThrowHit
OPPORTUNITY target 176 0 -1 default_groundBank
}

11.3.3 Pipeline Flow Chart with Descriptions

Scripting Flowchart

Load and Run in the


Write the Scripts
Game

11.3.3.1 Exporting

No exporting occurs in the scripting pipeline.

Issue: 0.1 Page 90 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
11.3.3.2 Data Optimization

TBD

11.3.3.3 Importing / Loading into the Game

When the fight script files are loaded into the game they are tokenized and put into a token
stream from which the necessary structures are later built.

11.3.4 Platform Specific Instructions and Functionality

There are no platform specific instructions or functionality for scripting.

11.3.5 Limitations and Recommendations

TBD

11.3.6 Potential Extensions

TBD

11.3.7 Error Checking

There is currently no means of error checking scripts.

Issue: 0.1 Page 91 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

12. LIGHTING PIPELINE

12.1 Description

12.1.1 Pipeline Description

The lighting pipeline is involved in the process of providing varying amount of light to objects
found in the game and more specifically to the textures on these objects. This pipeline will
provide the ability to preview and light textures under various circumstances as well as deal with
light sources. This section is still in the works as the lightmapping tool will not be completed
until the end of September.

12.1.2 Goals of the pipeline

The goals of this pipeline are:

- Importing and exporting of the files in lighting tools

- Preview and light textures under a variety of circumstances

12.1.3 Users of the Pipeline

Artists who are working on lighting and wish to preview their work will use the lightmaps
pipeline. Programmers will be interested in using the lightmaps pipeline to find out about
loading lighting information into the game. Programmers may also be interested in running the
pipeline to get lighting information.

12.2 User Documentation

12.2.1 Naming Conventions

TBD

12.2.2 Instructions

The following are instructions/guidelines that should be followed when handling lighting.

1. Use as much pre-lighting (CBV lighting) as possible. All static/world geometries should be pre-lit.
Rationale: Pre-lighting bakes colour values into the geometries vertices. It is faster for the graphics
hardware to “light” the polygons using the colour values in the vertex than it is to use real lights. This
frees up real lights for use with characters.

How to apply and view pre-lighting:

Issue: 0.1 Page 92 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
• Select all materials on a mesh and set the P3D material attribute “Lit” flag to “NO”. See
Figure .

• Select the geometry. Select “Edit Polygons->Colors->Prelight” and apply. See

• Select “Display->Custom Polygon Display”. Set “Color Material Channel” to “Ambient


+ Diffuse”. See Figure

Figure 24: Set Lit to NO to flag a material as being pre-lit.

Figure 25: Applying pre-lighting to a selected geometry.

Issue: 0.1 Page 93 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

Figure 26: Setting custom polygon display options to show CBV lighting.

2. No lighting shall be applied to any exported world geometry. Lights shall only be placed in the scene
for the lightmapping tool to calculate the lightmaps and for previewing purposes. There is no limit of
the number of static lights in the scene. Dynamic objects will be handled separately.
Rationale: A lightmapping tool shall be used to light the scene based on the position of lights placed in
the scene.

3. Make use of many types and colours of lights.


Rationale: The look and feel of soft bluish lighting (James Cameron art direction) is very important in
this game. Creative use of lights shall generate this effect.

4. Only use bump-mapping on dynamic objects.


Rationale: Bump-mapping relies on a moving light source to produce the correct effect. Bump-mapping
on a static object is wasted and the shadows should either be produced in the texture or by using a
lightmap. “Moving” and “static” apply to the object/light relationship i.e. either can be moving.

12.2.3 Location of Source and Final Files

TBD

12.2.4 How to Verify Data is Correct

TBD

12.2.5 Limitations and Recommendations

TBD

12.2.6 Troubleshooting

TBD

Issue: 0.1 Page 94 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
12.2.7 References and Supporting Documentation

Lambie, Stephen and Sandie, Bert: Dark Angel Technical Art Specification
(//depot/docs/ArtTech/DATechnicalArtReqs.doc).

12.3 Technical Documentation

12.3.1 Naming Conventions

See Section 12.2.1.

12.3.2 File Format and Content

TBD

12.3.3 Pipeline Flow Chart with Descriptions

Figure 27: Lighting Pipeline Flowchart

12.3.3.1 Exporting

TBD

12.3.3.2 Data Optimization

TBD

12.3.3.3 Importing / Loading into the Game

TBD

12.3.4 Current and Desired Tools

12.3.4.1 Lightmapping Tool

The lightmapping tool is currently being worked on by Pure3D and the estimated finish date is
the end of September.

- This tool will calculate lightmaps and allow for previewing of lighting in scenes

- This tool is currently being defined by Pure3D (Mark James)

12.3.5 Platform Specific Instructions and Functionality

TBD

Issue: 0.1 Page 95 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
12.3.6 Limitations and Recommendations

TBD

12.3.7 Potential Extensions

TBD

12.3.8 Error Checking

TBD

12.3.9 Pipeline Ownership

The pipeline is currently under the guidance of Mark James from Pure3D.

Issue: 0.1 Page 96 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

13. LOCALIZATION PIPELINE

13.1 Description

13.1.1 Pipeline Description

This pipeline will be responsible for the handling of all of the language translation issues that are
found in the front-end text menus, the NIS dialogue, and any text found in the HUDs. The front-
end dialogue and any in-game quips will not be localized. In the NISs and the Logan
transmissions the localization will be attained by using subtitles while in the menu system it will
be done by replacing the text in question with the corresponding text in the appropriate language.
The languages that are currently to be supported are: English, French, Spanish, German, Italian,
and possibly some Asian languages that require two bytes per character. The use of subtitles
brings up several issues that will be discussed in Limitations and Recommendations.

13.1.2 Goals of the Pipeline

The goals of this pipeline are:

- Allow for easy conversion of game from one language to another

- Overcome/Minimize problems involved with subtitles and other localization methods

13.1.3 Users of the Pipeline

One group of people who will use the localization pipeline will be the programmers who are
involved in porting the game from language to language (i.e. performing text bible work or
subtitle programming). Artists and translators who are also working on this localization related
art and language issues would also be users of this pipeline.

13.2 User Documentation

13.2.1 Naming Conventions

The localization pipeline will have to manage the text bibles for the game and the associated
language files that are generated from the text bibles. It is still being investigated at this time the
number of optimal text bibles that are necessary to ensure quick load times and minimized
memory requirements. One possible way to break up the text bibles would be by level, which
would entail the level number being stored at some point in the filename.

E.g. txtbibn.xls where n is the level number

The text bibles and language files will be stored in the fe directory under Resource and then
TextBibles. This section will be filled out in greater detail as soon as the text bible breakdown is
decided upon.

Issue: 0.1 Page 97 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
13.2.2 Instructions

To create the language files that are needed at runtime you need to run "bible txtbib". The
runtime handling of the language files is handled through Scrooby.

13.2.3 Location of Source and Final Files

At this point the only file of importance for this pipeline is the text bible that will be stored with
all the other Scrooby files.

13.2.4 How to Verify Data is Correct

In order to verify whether the data is correct or not your will have to run the game itself with the
different languages.

13.2.5 Limitations and Recommendations

The main issue for the localization in DA is the handling of the subtitles. The subtitles will use a
semi-transparent black rectangle with green text on top to provide some contrast while
minimizing the amount of the screen that is hidden from the user.

The subtitles will be located on the bottom of the screen and will consist of a piece of text
preceded by the name of the speaker.

A major issue that needs to be worked out with respect to the subtitles is the synchronization of
the subtitles with the scene that they are being displayed with and to some extent the sound that
is running at the same time. It is not necessary to have the text displaying at the same time the
words are being spoken as long as the subtitles stay in sync with the images the user is seeing.

One issue with subtitles is where they are located on the screen. Due to the constraints of
displaying text on a TV and the display issues we will be limited in the width of the subtitle and
will have constraints on the vertical position of our subtitle. At this point in time we do not
believe that this will be difficult to work around. For more information on why we are
constrained in where the subtitle can be placed on the screen see Appendix A.

The length of words in certain languages (e.g. German) will be another problem that will have to
be dealt with. How will the length of these words interact with the size of the subtitle and the
transition mechanism? An option to deal with this would be the alteration of Scrooby to handle
word wrapping so that words could be wrapped around onto an optional second line thus
avoiding subtitle length and transition conflicts.

One area of localization that we don’t need to worry about is in-game text cues. There will not
be any text in the environment, that is crucial to game play, that needs to be changed into
different languages.

Issue: 0.1 Page 98 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
13.2.6 Troubleshooting

TBD

13.2.7 References and Supporting Documentation

TBD

13.3 Technical Documentation

13.3.1 Naming Conventions

See Section 11.2.1.

13.3.2 File Format and Content


The main file that will be used for localization is the “Text Bible”. The text bible is a master
spreadsheet that controls the translations for the game. The spreadsheet consists of a list of
symbolic names, followed by their translated versions for the languages that will be supported in
the game. A sample text bible would look like this:

Symbol English UK French Spanish

Accept_button Accept Accept Le Accept El Accepto


Goodbye_label Bye Cheerio Au Revoir Hasta la Vista

13.3.3 Pipeline Flow Chart with Descriptions

Localization Pipeline

Use Text Bible in


Create Text Bible Export Text Bible
Front-End

Issue: 0.1 Page 99 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
Figure 28: Localization Pipeline Flowchart

13.3.3.1 Exporting

To process the text bible you will first need to fill it up with all of the text that is going to use in
the game. This is followed by processing the text bible into a binary, memory-mapped file for
use in the game.

13.3.3.2 Data Optimization

The localization data cannot be manipulated in such a way as to provide an optimized format.

13.3.3.3 Importing / Loading into the Game

In code, when you want a piece of text, you query the text bible by giving it the symbolic name,
and you get back the text for whatever language you asked for. The front-end and subtitles will
have this automatically handled because they are run through Scrooby.

An important point to note is that subtitles will be used for English as well as all other supported
languages. This is due to the fact that some people may be deaf and it also makes it easier to
treat English like any other language.

13.3.4 Platform Specific Instructions and Functionality

There are not any platform specific instructions or concerns in relation to localization.

13.3.5 Limitations and Recommendations

See Section 11.2.5.

13.3.6 Potential Extensions

TBD

13.3.7 Error Checking

TBD

Issue: 0.1 Page 100 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

14. SOUND PIPELINE

14.1 Description

14.1.1 Pipeline Description

The sound pipeline will consist of the process of getting sounds from the sound composer
through to having them playing in the game. The pipeline will include any tools that are needed
to convert or manipulate the sound files.

14.1.2 Goals of the Pipeline

The goals of this pipeline are:

- Sound Creation

- Exporting Sound Files

o Includes manipulation, compression, and conversion

- Importing Sound Files Into The Game

14.1.3 Users of the Pipeline

This pipeline will be used by programmers who are involved in the use of the sound/music that is
created as well as the sound composers.

14.2 User Documentation

14.2.1 Naming Conventions

TBD

14.2.2 Instructions

TBD

14.2.3 Location of Source and Final Files

TBD

14.2.4 How to Verify Data is Correct

TBD

Issue: 0.1 Page 101 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
14.2.5 Limitations and Recommendations
For sound files 16 bit audio is required. A sampling rate of 22,050 is used for general-purpose
sounds. If a sound has more high or low end this sampling rate can go up or down respectively.

A key point to remember is that the size of .wav files is directly proportional to the memory used
for pre-loaded samples (this does not matter for streams).

14.2.6 Troubleshooting

TBD

14.2.7 References and Supporting Documentation

TBD

14.3 Technical Documentation

14.3.1 Naming Conventions

See Section 12.2.1.

14.3.2 Dependencies

Many radsoundutil.hpp objects such as fades and connection objects require the radscript run-
time.

14.3.3 File Format and Content

TBD

14.3.4 Current and Desired Tools

Snowboarding and Simpsons are using radscript 's scripts, tools, and powerful automated run-
time tuning features to define object construction and tweak attributes. The sound composers
will expect and insist that all projects use these tools for sound.

14.3.4.1 WavToRsd Tool

Location: //depot/sdks/radsound/tools/bin/wavtorsd.exe

The WavToRsd tool converts .wav files to all platform formats. It also has an option to recurse
through directories checking dates and converting all .wav files to a target directory of the same
structure.

Issue: 0.1 Page 102 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
Sample Command Line:

wavetorsd foo.wav foo.rsd vag loopon 2048 -checkdate –silent

The first parameter is the source .wav file that needs to be converted to a platform specific
format. The second parameter is the destination .rsd file where the sound will be placed after it
is been converted to the proper format. The next parameter can either be pcm (XBox,
GameCube) or vag (PS2) depending on the target platform. The fourth parameter allows you to
specify whether the sample should loop or not (loopon or loopoff). The next parameter is a
number that represents the chunk size.

14.3.4.2 RadTuner Tool

Location: //depot/sdks/radscript/tools/bin/radTuner/radTuner.exe

RadTuner is used for sound specification and run-time tuning.

14.3.4.3 FreeWish Tool

Location: //depot/sdks/radscript/tools/bin/scriptgen/freewish.exe

FreeWish and hpp2typ generate type-information for the tools and scripting system. The type-
info describes interfaces (classes) in the game to allow scripting with no stubs, no extra memory
footprint, and run-time tuning of all game objects with no extra programming hooks or
programmer support.

14.3.4.4 Hpp2typ Tool

Location: //depot/sdks/radscript/tools/bin/hpp2typ.exe

See Section 12.3.4.3.

Issue: 0.1 Page 103 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
14.3.5 Pipeline Flow Chart with Descriptions

Run tools for format


Create Sound Files Load and Run in Game
conversion

Figure 29: Sound Pipeline Flowchart

14.3.5.1 Exporting

TBD

14.3.5.2 Data Optimization

TBD

14.3.5.3 Importing / Loading into the Game

The loading of sounds into the game will be handled by radsound.

14.3.6 Platform Specific Instructions and Functionality

There are two main approaches to sound based on the desired platform: PCM and ADPCM.

PCM is an uncompressed WAV audio format that is used for the GameCube, XBox, and in
Windows (Win32). For the XBox and the GameCube there is support for regular (non-Sony)
IMA ADPCM that gives a 32/9 (3.5555' to 1) compression ratio. The ADPCM is a lossy
compression format so PCM sounds a lot better, but the ADPCM format can be loaded faster.

For the PS2 you have to use VAG, which is Sony's ADPCM (adaptive differential pulse code
modulation) format that is played by the hardware and has a compression ratio of 3.5 to 1.

14.3.7 Limitations and Recommendations

The tool wavtorsd.exe will be integrated as a plug-in into radscript's IDE in the very near future.
This has been a limitation, but when it reaches the new state it will provide design-time data
integrity for the game's sound resources and objects.

Issue: 0.1 Page 104 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
If you are looking at creating sound for the PS2 you are limited because you only have one
option to explore VAG (ADPCM).

Another limitation, which is only for a short period of time, is that for the GameCube the
ADPCM format is not implemented yet but it will be very soon.

14.3.8 Potential Extensions

TBD

14.3.9 Error Checking

It is important to check the total size of all compressed sound files to ensure that they are inside
the total allowable size.

14.3.10 Pipeline Ownership

The tools and in-game aspects of the sound pipeline are being handled by FTech.

Issue: 0.1 Page 105 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

15. PHYSICS CLOTH SIMULATION PIPELINE

15.1 Description

15.1.1 Pipeline Description

The cloth pipeline is the means by which cloth and cloth-like objects can be created in Maya and
converted into a format that will allow for them to have the appropriate simulations carried out
on them in the game. The two types of cloth that can be represented are: pure cloth and simple
cloth (flexible objects based on bones). It is important to note here that while cloth objects are of
primary interest, the objects that can be created through this pipeline need not be cloth at all. It
is possible to use this pipeline for creating hair or a whip both of which can be simulated in a
realistic fashion. Another point that should be noted here is that the collision volumes are
automatically created. Collision spheres or capsules are automatically created on or between the
particles of the particle system generated from the flex or flexjoint. You should also note that
the cloth, as a mesh, is displayed as usual. The only difference between the cloth and any other
type of geometry that you might have is that the position and normals of vertices are recomputed
each frame for the purposes of the physics simulation.

15.1.2 Goals of the Pipeline

The goals of this pipeline are:

- Provide an easy, understandable way for artists to create cloth or cloth-like objects with
Maya

- Provide all of the tools needed for the manipulation of cloth files and the creation of
supporting files

- Importing and exporting of cloth files

15.1.3 Users of the Pipeline

The users of the physics cloth simulation pipeline will be artists involved in creating the cloth
and programmers involved in creating and using the pipeline.

15.2 User Documentation

15.2.1 Naming Conventions

The naming conventions for cloth objects will follow the standards set out for models and
textures in the other pipelines.

Issue: 0.1 Page 106 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
15.2.2 Instructions

The only parameters that can be tweaked by artists to effect the physics of the cloth are stiffness,
bending, and shearing. For each of these parameters there are two parts: strength and
dissipation.

15.2.3 Location of Source and Final Files

The location of these files has been laid out in the other sections on models and textures.

15.2.4 How to Verify Data is Correct

To verify that the cloth is progressing correctly through the cloth pipeline a viewer similar to
p3dviewer will be made available by Martin Courchesne that we can use.

15.2.5 Limitations and Recommendations

There are no restrictions on the number of bones that should be used in a flexible object other
than it is best to use the minimum amount required to attain good looking results. The ideal
number is influenced by the length and complexity of the object as well as the amount of
deformation expected.

A major issue that is being looked into is that cloth has only been done in a limited fashion on
the XBox and has not been tested on the PS2 at all.

15.2.6 Troubleshooting

TBD

15.2.7 References and Supporting Documentation

TBD

15.3 Technical Documentation

15.3.1 Naming Conventions

See Section 13.2.1.

15.3.2 File Format and Content

The cloth is stored in a standard p3d file, but uses some additional chunk types for physics
objects.

Issue: 0.1 Page 107 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
15.3.3 Pipeline Flow Chart with Descriptions

Cloth Pipeline

h
l ot
Use Flex tool
kC
uic
Q

Create Maya
Geometry
Load p3d file and
Verify p3d
use cloth in the
file
game
Pr
ec
is ion
C l ot
h

Use Phobj or
Phobjman

Figure 30: Cloth Pipeline Flowchart

Step 1: Create an object in Maya that will have cloth-like attributes in the game

Step 2: Convert Maya geometry to p3d file.

Step 3: If you want to use quick (simple) cloth (cloth implemented with bones and joints) use the
Flex tool to create the p3d file with the appropriate information. If you want to use the precision
cloth then you need to use Phobj or Phobjman depending on whether you want a lot of
interactive help setting up your cloth (Phobjman goes step by step through the process).

Step 4: Verify the p3d file that you have created and ensure that the cloth is behaving properly.
This verification step can be undertaken by using a special viewer that is soon to be made
available. It is important to do this verification step before running the game with the cloth to
make it easier to track down the location of problems.

Issue: 0.1 Page 108 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
Step 5: Load the p3d file into the game and run the physics simulation engine on it.

15.3.3.1 Exporting

There are two main aspects that are involved in the exporting process for this pipeline. The first
step to be taken is to export the geometry from Maya. We need to end up exporting the
geometry into a p3d format after we have finished creating the geometry in Maya and before we
run the phobj or flex tools. The next phase of the export process is to convert the regular p3d
files into p3d files where the geometry now consists of objects that can have physics calculations
run on them.

15.3.3.2 Data Optimization

TBD

15.3.3.3 Importing / Loading into the Game

The importing and loading of the data into the game will follow the standard procedure since the
data is stored in a p3d file.

15.3.4 Current and Desired Tools

15.3.4.1 Flex

Location: //depot/sdks/pure3d/tools/commandline/bin/flex.exe

The flex tool adds flex chunks for simulating flexible object.

The flex tool allows you to process only a specific geometry by using the –g argument followed
by the name of the geometry. If you want to specify the start joint for a flexible skeleton branch
you can use the –s option followed by the start joint. Two other important arguments are –k and
–x, which respectively allow you to keep the existing flex chunks and write only the flex chunks
to the output file.

15.3.4.2 PhObj

Location: //depot/sdks/pure3d/tools/commandline/bin/phobj.exe

The PhObj tool adds physics and collision information to the geometry and skin present in the
P3D file.

The PhObj tool is nearly identical to the PhObjMan tool that is listed next. The only real
difference between the two tools is that the PhObjMan tool gives the user a more interactive
approach.

Issue: 0.1 Page 109 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
As described for the Flex tool above the PhObj tool has the –g, -k, -x arguments and they
perform the same relative tasks. The –r argument allows for scaling of fitted collision volumes
allowing for reducing for tighter collision volume generation. Another argument that could be
useful is –C which allows for the conversion of old physics chunks to new ones.

15.3.4.3 PhObjMan

Location: //depot/sdks/pure3d/tools/commandline/bin/phobjman.exe

The PhObjMan tool helps with adding phchunks into the p3d file interactively while allowing
the jointdef files and bat file to be save for use directly with the phobj tool next time.

15.3.5 Platform Specific Instructions and Functionality

The only platform specific instructions to be aware of are the same ones that you have to take
into account for the modeling and texture pipelines.

15.3.6 Limitations and Recommendations

TBD

15.3.7 Potential Extensions

TBD

15.3.8 Error Checking

TBD

15.3.9 Potential Risks

To use pure cloth will be a technical risk because while it will be available to us it is unknown in
terms of speed what it will be able to provide us. The flexible object cloth is available to use
almost for free in terms of speed. Another minor risk is the fact that the physics engine is
currently being overhauled so there will be some aspects of how the cloth is created and
interacted with that could change by September.

15.3.10 Pipeline Ownership

The tools and in-game aspects of the cloth pipeline is being worked on and guided by Martin
Courchesne.

Issue: 0.1 Page 110 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

16. WORLD BUILDER PIPELINE

16.1 Description

16.1.1 Pipeline Description

The World Builder Pipeline will be the location of tools related to level design and will allow for
rooms to be laid out and portals to be specified. This pipeline exists almost completely in Maya
and is an intermediary between the Model Pipeline and the game for world related material.

16.1.2 Goals of the Pipeline

The goals for the World Builder pipeline are as follows:

• Provide an easy means of importing DXF files from Sierra Home Architect Package
which is used by game and level designers to create the levels

• Provide an interface that allows for easy creation and placing of trigger volumes,
camera zones, and NPC generators and paths throughout the level

• Importing and Exporting of world builder files

16.1.3 Users of the Pipeline

The users of this pipeline will be artists, level designers, and game designers, as it will directly
impact their work. It will also be of interest to rendering programmers and other programmers
who will rely on the output of World Builder.

16.2 User Documentation

16.2.1 Naming Conventions

All of the files generated by World Builder will be stored within the rdl directory (//depot/rdl).
The rdl directory will contain files for NPCs, camera zones, context sensitive moves, trigger
volumes, and special effects on a per level basis.

The naming convention for these different level files is going be:

TypeOfFile[1…n].rdl

The type of file will be either npc for non-player characters, camera for camera files, tv for
trigger volumes, sfx for special effects, or csm for context sensitive moves. The next portion of
the file name consists of number representing the level that the file is used with followed by .rdl.

Issue: 0.1 Page 111 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
16.2.2 Instructions

TBD

16.2.3 Location of Source and Final Files

See Section 16.2.1.

16.2.4 How to Verify Data is Correct

TBD

16.2.5 Limitations and Recommendations

TBD

16.2.6 Troubleshooting

TBD

16.2.7 References and Supporting Documentation

Kurahashi, Juneko and Maruno, Yayoi: Dark Angel Art Directory Structure and
Nomenclature (//depot/docs/ArtTech/ArtDirStructure.doc).

Kusy, Brad: World Builder Design (//depot/docs/TechDesign/WorldBuilderDesign.doc).

Sandie, Bert and Kusy, Brad: DA World Builder Technical Overview


(//depot/docs/TechDesign/DA_WorldBuilderTechOverview.doc).

Kurahashi, Juneko and Kusy, Brad: World Builder Workflow Description


(//depot/docs/TechDesign/WorldBuilderFlow.doc).

16.3 Technical Documentation

16.3.1 Naming Conventions

See Section 14.2.1.

16.3.2 File Format and Content

All of the files generated by the World Builder will be in text format. The user will then be able
to open up these text files and edit them if they decide that they would like to do that. The
specific layout for the different types of text files has not been decided yet since the tool is still
be written. When the tool is done this section will updated to reflect the final formats.

Issue: 0.1 Page 112 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
16.3.3 Pipeline Flow Chart with Descriptions

World Builder Pipeline

Build the World Run World Builder on


Create rdl files The Game
Geometry in Maya the Maya geometry

Figure 31: World Builder Pipeline Flowchart

Step 1: Import 2D or 3D DXF file or maya binaries into World Builder

Step 2: Use World Builder to define trigger volumes, camera zones, and NPC information

Step 3: Export the level from World Builder in rdl format

Step 4: Import the p3d file for use within the game

16.3.3.1 Exporting

The World Builder will export files that are in rdl format. RDL is just a simple text format and
by exporting it in a text format like this allows for editing of the scripts by using a text editor.

16.3.3.2 Data Optimization

TBD

16.3.3.3 Importing / Loading into the Game

The files that are generated by the World Builder are in text format with rdl extensions. This
means that the loading in the game is going to be slightly different than the standard p3d file
loading, but should still be done with a bundle format. What will take place in terms of loading
will not be finalized until the file formats have been finished.

Issue: 0.1 Page 113 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
16.3.4 Current and Desired Tools

16.3.4.1 Room Viewer

This portion of the world builder has not been fully specified yet so the exact functionality
cannot be given at this time.

16.3.4.2 NPC Generator

The World Builder tool will allow for the placement of NPC generators through out the world.
An NPC generator has coordinates for its location in the world, and also has slots for the various
NPCs that it can create. Each slot represents one type of NPC that can be generated and holds
values for the number of them that can be in the world at one time as well as the maximum
number that will be generated in total by that generator. If the maximum number that can be
generated is infinity then the NPC types in the other slots will never be generated.

Another point to be noted when dealing with NPCs is that they will have attributes that will be
editable in the World Builder as well as in text files that will be generated as part of the World
Builder Export. The following is a list of the available attributes.

Character attributes:

Aggression
Blocking
High Attack
Low Attack
Combo
Grapple
Reversal
Speed
Life
Recovery
Alert
C.O.V. (Cone of Vision)

16.3.4.3 Portal Placement Tool

This portion of the world builder has not been fully specified yet so the exact functionality
cannot be given at this time.

16.3.4.4 NPC Path Laying Tool

A tool will be provided to allow designers to specify NPC Paths. Using this path, the designer
will be able to place path control vertices on the floor. Visual feedback will be provided in Maya
by connecting the control vertices. At the moment, the intent is to provide straight-line connect-
the-dots type of path. If the need arises for curved paths, the path algorithm used in the Factions’
World Builder will be used.

Issue: 0.1 Page 114 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
16.3.4.5 Trigger Volume Placement Tool

The designers will have the ability to place different shaped trigger volumes around the level.
Triggers can be of the following types:

• NIS trigger (if the player collides with this trigger, an NIS will play)

• Context-sensitive AI trigger (if the player collides with this trigger, an event will be sent
to the AI)

• Stairway trigger (if the player collides with this trigger, the player will start or stop
navigating stairs – depends on whether it indicates the top or bottom of the stairway)

16.3.4.6 Camera Placement and Zone Tool

Cameras will be placed in the level using zones. Each zone will be outlined as a trigger volume.
A camera path will be specified using control vertices and attached to the volume. Whenever a
player enters a new trigger volume, the camera AI will switch the camera to the one attached to
the new volume. The trigger volumes should overlap such that the camera does not snap between
two cameras at a trigger volume. Emphasis is placed on the player entering a volume as opposed
to exiting the old volume.

• The designer will be able to specify a tracking type for the camera, such as stationary
tracking, stationary non-tracking, and side-scrolling.

16.3.5 Platform Specific Instructions and Functionality

For this particular pipeline there are no specific instructions that need to be considered on a
platform-to-platform basis.

16.3.6 Limitations and Recommendations

TBD

16.3.7 Potential Extensions

TBD

16.3.8 Error Checking

TBD

Issue: 0.1 Page 115 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

17. APPENDIX A: TELEVISION DISPLAY ISSUES

Do not place important information against the edge of the screen.


Rationale: When the video image is viewed on a television, the edges of the screen are off the edge of the
viewable area.

TV 544x408 for a 640x480 (85%) screen. 40,30 to 600,450

HDTV 608x456 for a 640x480 (95%) screen. 16,12 to 624, 468

640x480

(40,30)

544x408

Safe Area

(600,450)

Figure 32: NTSC safe title area.

PS2 Resolution – 512 x 448

XBox Resolution – 640 x 480

17.1 NTSC and PAL

Some general comments about outputting video to a standard television are listed below (note
that many of these do not apply to HDTV).

17.1.1 Colors

• Red parts of an image bleed into the surrounding image.

• Everything is a little blurrier.

• Colors are hard to standardize, as every TV is a little different.

• Check illegal colors – a set of guidelines/tools will be provided which verify if colors are
NTSC suitable.

Issue: 0.1 Page 116 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
17.1.2 Overscan

• TVs do not display the entire image being received from the video game system – an area
around the edge of the screens is obscured – this is referred to overscan.

• Always review the positioning of text and important information on the Tv to make sure
it is clearly visible.

• The area not safe frame for display of text encompasses the edges on sides, top and
bottom to about 10 to 15% percentage of the overall screen size.

• [XBox specific] The alpha version of the XBox development kit outputs the TV signal
off center. This will be fixed in beta and final versions or the XBox.

17.1.3 Interlaced Video

• Computer monitors use progressive scanning that updates every horizontal line on the
screen; this is drastically different than what a TV does.

• Interlaced flicker – this is caused by only half of the typical 525 lines on a TV being
drawn in a one-frame period that is called interlaced scanning.

• Flicker Reduction: Avoid fine vertical detail if possible. For example, a single-high pixel,
horizontal white line on a black background causes the worst flicker.

• Flicker Reduction: Avoid areas that have a large bright area with a large dark area below
it.

• Flicker Reduction: Menu screens with too much detail may be the worst flicker
offenders.

17.1.4 Resolution Issues

• Used Anti-Aliased Fonts to allow greater detail.

• Use mip-mapping for greater detail.

• Full scene anti-aliasing will remove jaggies, help with issues such as chroma crawl, and
other undesirable artifacts.

17.1.5 Miscellaneous Issues

1. PAL – the flickering can be worse due to a refresh rate of only 50 KHz as compared to 60
KHz for NTSC. The vertical resolution is also higher. PAL has 512 lines compared to
NTSC’s 448 lines.

Issue: 0.1 Page 117 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02
2. Test NTSC with composite connections as this is what most consumers will be using.

3. Test on many different TVs – low-end to high-end as features such as comb filter or S-Video
connectors make a large difference in the picture quality.

Issue: 0.1 Page 118 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

18. APPENDIX B: WHEN YOUR MAYA FILES ARE BLOWING OUT OF PROPORTION:

18.1 Regular maintenance on the file

These steps should be performed fairly often, to keep the file size under control…

• Delete Construction History: Edit -> Delete All By Type -> History

• Optimize the scene: File -> Optimize Scene Size

• Delete hidden geometry: its definitely not needed if its not displayed, and I don’t know
whether the exporter actually exports it or not when its hidden. During construction of
arenas, levels, characters there might be some reference geometry that is added to the
scene. This should be all deleted once the level is built. It is usually easy enough to find
hidden geometry in the Outliner window, but you might also want to try Display -> Show
-> All from Maya’s main menu bar.

• Delete Intermediate objects that are not connected to anything in the Hypergraph. These
might be hard to find, but in the hypergraph they will look like this:

Figure 33: Finding intermediate objects in the hypergraph.

After clicking on the button that will show the hypergraph, you should be able to see that the
node is disconnected from the rest of the graph. Like so:

Issue: 0.1 Page 119 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

Figure 34: A disconnected intermediate object.

If you use image planes with your cameras, Maya will attach tons of nodes to the camera nodes
of the scene. This is viral, in that every time you open the file, more nodes are added and it will
quickly bring Maya down. This might be fixed in Maya 3.0, but I don’t know for sure. To delete
these nodes, in the hypergraph window, select Options -> Display -> Shape Nodes (so that there
is a check next to it). Select the cameras and their respective shape nodes, and then show
dependencies (as above). If you see something like this, you are suffering from that problem…

Issue: 0.1 Page 120 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

Figure 35: Deleting image planes.

• Note that I deleted about 1000 image planes to get something that I could meaningfully
capture in a screen grab.

• Delete unused materials in the Hypershader window, by using the Edit -> Delete Unused
Nodes in the windows own menu bar.

Issue: 0.1 Page 121 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

18.2 After the Maya file is final and is ready to be exported to the game…

or, if its not been fixed by regular maintenance as stated above… Be careful with this procedure
as you may loose critical information if you do not select the right nodes out of the hypergraph.
Never save over an original file which would be the only copy of the data…

• Select all the top nodes in the hypergraph that you want to be saved (Note: if you have a
skinned character you must make sure that the bind pose is selected from the hypergraph;
if you are using Trax the character set must be selected). Here is an example with a
skinned sphere and Trax:

Figure 36: Hypergraph showing Trax.

• In the export selection option box make sure that all are checked (animation, history,
expressions, textures, etc.), like so:

Issue: 0.1 Page 122 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

Figure 37: Export options when cleaning up file.

• Export the scene to a new Maya binary file, without overwriting the original file.

• Open the new file in Maya, without saving the file that you just messed around with.

Issue: 0.1 Page 123 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

19. APPENDIX C: HOW TRISTRIPPING WORKS

When tri-stripping is used in the most optimal fashion, the example shown below requires 9
vertices to draw the 8 triangles. If the 8 triangles were not tri-stripped then each would require 3
vertices each and hence 24 vertices would be required. Therefore, the memory savings required
to only store 9 vertices as opposed to 24 and the subsequent savings in processing only 9 vertices
are the concrete benefits of using tri-stripping.

Figure 38: Triangles without Tri-Stripping Applied

Figure 39: Tri-stripped Triangles

Issue: 0.1 Page 124 of 125


This Document contains Confidential Information of Radical Entertainment.
Radical Entertainment
DA Content Pipelines 18-Oct-02

Figure 40: Example of a set of tri-strips for a mesh.

Issue: 0.1 Page 125 of 125


This Document contains Confidential Information of Radical Entertainment.

You might also like