Presentation is loading. Please wait.

Presentation is loading. Please wait.

GAM 245: Game Development II

Similar presentations


Presentation on theme: "GAM 245: Game Development II"— Presentation transcript:

1 GAM 245: Game Development II
Lecture 2: Iridel Game Engine and Maya Models

2 Part I: Understanding The Iridel Game Engine
2

3 Iridel: Evolving… Before we do anything, please note a few very important points: Iridel is designed to make it as easy as possible to create games using XNA. However, it is a complex and evolving application. Consequently, expect new versions to pop up on occasion. During the quarter, new versions would only be introduced to fix serious problems. Important feature upgrades will take place in between quarters. The game engine itself is part of all examples I will give you. In other words: any Visual Studio project I give you will also include the game engine. Only when you create a new Iridel game from scratch (Assignments 4 and 5) will you need to be concerned with getting the latest version. All upgrades will be provided to you through the Iridel Wiki:

4 Iridel Package The Iridel package you installed is composed of:
Project template (IridelGame <version number>.zip) Used when you’ll need when creating a new Iridel game from scratch Set up all the project folder structure Includes the Iridel engine code in the project Creates the basic ‘grid world’ game See the wiki to learn how to create a new Iridel game. Item templates (IridelGameObject and IridelScene) Used when creating a new GameObject or Scene from scratch See the wiki to learn how create a new GameObject or a new Scene. Which lab to use? All the necessary software for our class can be found in the following labs: CDM: rooms 634, 725, 801 and 819 LPC Student Center: rooms 363 and 364

5 Comparing Iridel with GameMaker
Here is a simple game you may remember from GAM 244: This was the first ‘multi level’ game example First level/room: the initial splash page Second level/room: the main game play (single level here) Third level/room: the final splash page Initial Splash Page Gameplay (only one level here) Final Splash Page 5

6 Comparing Iridel with GameMaker
This is what the Gamemaker Editor looked like for this game Let’s focus on the resource window 6 6

7 Games in GameMaker In broad terms, creating a game in Gamemaker meant
Loading up external resources in the game engine Creating objects Objects have properties (variables) Objects react to various events Creating rooms (or levels) Objects must exist in a room Rooms set up the initial arrangement of objects Controllers for game flow Specific controllers made the game progress from one level to the next base on game data 7 7

8 Games in GameMaker … More specifically:
Resources must be loaded in GameMaker before being used Game objects interact with user and each other to create the actual game. Game objects exist in rooms (levels). Only one level is active as any time We used a Game Controller object (and often level controllers) to control the flow of the game. SplashRoom Room0 EndRoom Game Controller Game Controller Game Controller Splash controller Ship Bugs Saucer End controller 8 8

9 Games in Iridel See also Iridel Game Engine on the Wiki In creating Iridel, I tried to use the same ‘entities’ as with a Gamemaker We still have game objects Rooms are now called “scenes” The Iridel controller deals with the game loop: specifically Makes resources available to Scenes and GameObjects Deals with Scene and GameObjects activation through the internal state manager Global variables (Lives, Score, and anything else you might need) Iridel Controller Resource Loading Game State Manager Global Variables SplashRoom Room0 EndRoom Game Controller Game Controller Game Controller Splash controller Ship Bugs Saucer End controller 9 9

10 Games in Iridel See also Project Structure on the Wiki Open a solution file for an Iridel game and consider the Solution Explorer window Low level tools/dlls Just ignore these for now Resources Resources must first be here before Iridel can load them Game project Iridel’s internal code. In theory, you don’t need to look in there, but you can. Iridel Resources and Global Variables. These files are part of Iridel, but they contain game-specific data. You will modify these to fit your game Iridel Tools Various extensions students and I have made that can be useful Game Components This is the code you’ll be creating for your game

11 Games in Iridel See also Project Structure on the Wiki
These are the three areas you most need to focus on: Asset, Global Variables and Game Code Resources Resources must first be here before Iridel can load them Iridel Resources and Global Variables. These files are part of Iridel, but they contain game-specific data. You will modify these to fit your game Game Components This is the code you’ll be creating for your game 11

12 Games in Iridel Let’s look more closely at the .cs files
‘Iridel Resources’ folder GlobalVars.cs: Central location for global variables IridelResources.cs: Iridel’s internal resource management ‘Game Component’ folder The game example we have has two ‘scenes’ . These are organized as subfolders purely for aesthetic reasons Splash Page SceneSplash.cs: SplashControl.cs: Main ‘game’ uses SceneDemo.cs DemoController PlayerCam.cs (not in folder) HUD.cs Target.cs Iridel Controller Resource Loading Game State Manager Global Variables Scene Splash Scene Demo Splash Control Demo Controller Player Cam HUD Target

13 General Comments on .cs Files
using <namespace> statements allow you to use various toolsets available in C# and XNA Example: namespace <name> is a way to group together C# entities. The technical details are not important here Normally, the namespace name will be ‘GameSpace’ class <name> creates a C# object class <name> : <base object> create a specialization of <base object> Examples: To create a new game object: To create a new scene: public/private determines whether variables/methods/classes are visible to other entities using System; using System.Collections.Generic; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.Graphics; using Iridel; class HUD : GameObject class Scene1 : Scene

14 Scene Example: SceneSplash.cs
Control Implements a Scene (level) - note the “ <name> : Scene” form Initialize the scene Scene paramaters are set here Example: background color All game objects declared here (using ‘new’) In Gamemaker, we simply placed objects in a room using the GUI In Iridel, we must list them manually here

15 Game Object Example: SplashControl.cs
Implements a Game Object - note the “ <name> : GameObject” form Local variables - as needed Operations - GameObjects events and methods Constructor Initialize the object Corresponds to GM’s creation event Update Corresponds to GM’s step event Draw Corresponds to GM’s draw event

16 Another Scene Example: SceneDemo.cs
Controller Player Cam HUD Target 16 Implements a Scene (level) - note the “ <name> : Scene” form Initialize the scene Scene paramaters are set here Example: background color - All game objects declared here (using ‘new’) In Gamemaker, we simply placed objects in a room using the GUI In Iridel, we must list them manually here

17 Game Object Example: HUD.cs
Implements a Game Object - note the “ <name> : GameObject” form Local variables - as needed Operations - GameObjects events and methods Constructor Initialize the object Corresponds to GM’s creation event Update Corresponds to GM’s step event Draw Corresponds to GM’s draw event

18 Part II: Content Pipeline
GAM 245 Part II: Content Pipeline

19 Content Pipelines - theory
Content Pipeline: a set of tools, file formats, and procedures to create and use data in your game To get a sense of what this means, lets consider the complete series of steps necessary to use a single image in last week’s HUD demo. 19

20 Example: Image Pipeline (Art side)‏
Images should be in .tga format 24 bit if solid, 32 bit if transparent Images should be stored in the /dev/245/<name>/MyContent/Textures folder Each project has its own folder under /dev/245/<name> Example: Assignment1/FontAndImages Each project folder has a ‘Textures’ folder The project Textures folder holds links (not copies!) to the needed images. File folder view /dev/245/NAME /MyContent /texture HUD-Orange-overlay.tga Created using Paint.net SVN Add Project view /FontAndImages /Content /Textures HUD-Orange-overlay.tga Added as link In the code, we refers to it as “Textures/HUD-Orange-overlay” 20

21 Image Pipeline (code side: XNA)‏
Images are Imported and Processed by XNA The importer reads the source file and converts it into a standard internal format‏ .tga --> internal texture format The processor munges standard XNA data into game-specific data allows data formats to be efficient and customized for your game Importing and processing occur during build and not at runtime This results in .xnb files (stored in the project’s bin folder) Content Processors have runtime counterparts to read processed data and present it to the game look at the properties of Textures/HUD-Orange-overlay.tga 21

22 Image Pipeline (code side: Iridel)‏
Loading (through Iridel): See LoadAllResources on the wiki Note: This actually hides many intermediate operations, but the idea is the same Drawing: LoadTexture2D( "Overlay", "Textures/HUD-Orange-overlay“ ); Loads the processed content (.xnb) into the game and connects it to the variable mOverlay = ResourceGetTexture2D( "Overlay“ ); <…> // A SpriteBatch block is needed to display images and SpriteFonts MainSpriteBatchBeginDefault(); // Draw images MainSpriteBatch.Draw( mOverlay, new Vector2(0, 0), Color.White); // close spritebatch block MainSpriteBatchEnd(); Acts on the loaded content 22

23 Content Pipelines - theory
Content Pipeline: a set of tools, file formats, and procedures to create and use data in your game documentation and best practices are necessary The fewer the number of steps, the better Automated is better than manual When source files are modified, all intermediate and final files are rebuilt Code example: operates like a makefile Image example: changes to the .pdn in Pain.Net (or .psd file in Photoshop) requires you to rebuilt the final .tga used by the XNA environment (and place it in the proper location) Usually setup to operate in one way Typically setup by programmers who are under time pressure Can be ‘brittle‘: the slightest change in procedure typically can cause major problems Specific to one system and game Presumably some sort of ‘standard’ develops over time for a given workgroup Get one of a type of content through, then do exactly the same thing for all instances of that type 23

24 Pipeline for NumberIconWriter / SpriteWriter
Art Side Image files in .tga has the character in a specific arrangement Associated .txt file with the same name has the dimension data Code Side XNA: Import both as link into DEV/245/<name>/MyContent/Fonts Adjust the properties of the .txt file to be ‘none’ and ‘copy if newer’. The image part has the same pipeline process as regular images The txt file is set to be left alone until runtime. Iridel: The .txt file is processed when you initialize a new NumberAndIcon/SpriteWriter Example: When printing text/numbers, the relevant parts of the image are extracted and displayed on screen, one character at a time. This is all done internally by the SpriteWriter/NumberIconWriter classes All that is needed is to call the relevant method mNumWriter = ResourceGetNumberFont( "Numbers“ ); mNumWriter.draw( 140, 25, Color.White, GlobalVars.Score, false );

25 FYI: Xbox360 Pipelines Using Game Studio, the 360 pipelines follows from the PC pipeline All data is created, built, processed on the PC Final data is in a different fundamental format for the 360 compared to the PC Using Visual Studio, we must create a separate project for the 360 version of the game All final data is copied to the 360 during deployment The paths setup in your VS project leads the program to your data 25

26 Part III: Simple Models in Maya
GAM 245 Part III: Simple Models in Maya

27 Getting Started With Maya
If you have the LAM book, it’s not a bad idea to go through their training steps Practice with use their ‘Lessons’ at the beginning of the book For the 2009 edition: LAM’s “lesson 01” chapter, p47-69 create a Great Hall with column and throne For the previous edition: LAM’s “lesson 01" chapter, p40-61 create the garage, shelves, boxes, lamp Skip all the NURB elements since we will only use polygon models. Keep going with lessons 02, 03, 04. This will cover all the basics you’ll need. Do not hide UI elements as requested by lesson 03 We don’t need the extra trouble! I’ll cover the basic minimum you’ll need to make models for this class. However, Maya is not easy. It’ll take some time and practice to get comfortable Create a test directory for your experimental Maya work Keep your class directories clean Experimental work should not be sent send to SVN But you should keep copies of the various stages of your experiments That way you have a way to go back to previous ‘steps’ in case something goes wrong… 27

28 Maya Introduction Resources
There are a number of online introduciton you can find To get started, I recommend this one: Maya 2009 Tutorial - Introduction and Basic Controls Another interface intro: Basic Introduction to the Maya 8 User Interface Excellent video resource: Swinburne University of Technology IMPORTANT! You are NOT expected to produced expert-level models in this class!!! I provide these resources only for those students interested in pushing their Maya work a bit beyond my examples.

29 Making a box in Maya 29

30 Models: General Info 3D Coordinates (RHS)‏
use your right hand extend your thumb to your right, then pointer finger up, then middle finger toward you thumb = X, pointer = Y, middle = Z X is always red, Y is green, Z is blue Always build your models in 000ZY form 000 means that the model's root (rotation / scaling / pivot) is at 0,0,0 Z means model is facing in positive Z Y means Y is up for model Units / Scaling We need to chose a size correspondence between Maya and XNA spaces one Maya unit = one unit in our game worlds Note for blender user: you’ll need to significantly scale down your model while in blender 30

31 Maya: Preparing the Environment
Set the project folder File > Project window Enter location name and click ‘accept’ Setup Grid Display > Grid [] one Maya unit = 1 foot Set Polygons mode 31

32 Create Polygon Cube Use only polygons
Create > Polygon Primitives > Cube [] create a 1x1x1 cube click this diagram to open the channel box Use the Channel box to rename the cube to “box” Also: keys ‘4’ and ‘5’: to flip between shaded and wireframe 32

33 Move & Freeze Geometry 1. Move the cube up so it rests on the ground
2. Modify > Freeze Tranformations [] this 'bakes' the transform changes into the geometry 3. Notice channels have all been reset 33

34 Delete History and Save
1. Edit > Delete All By Type > History this forces geometry into polygons and is very important 2. File > Save.. save your model in your dev/245/NAME/MyContent/models folder you may need to create the models directory 34

35 SVN Add & Commit Save your work regularly
Use the same method as before to add/commit to SVN The exact state (versions) of anything you commit can be retrieved with SVN -- remember this and add meaningful comments when you commit 1. right click on the new models folder and SVN > Add.. 2. make sure the correct files are adding 3. you must now SVN > Commit to send the new files to the repository 35

36 Applying a Texture (Maya experts need to read this!)
Maya has the ability to create very complex and elaborate textures! marble, image mappings, wood grains, etc. Almost all these CANNOT be used by a game engine (any game engine) Typically, the most you can expect is Applying a solid color Applying a texture on a model Think of this as wrapping a square image onto a model HOWEVER, there is a way to use those great Maya textures: Baking! Specifically: In Maya, create a fancy texture of your choice on your models When done, save the texture to a single image file (baking) Change the model so that it applies the image file to itself instead of your initial texture. How can we bake a fancy texture to a file? Using Maya’s 3D paint tool 36

37 Using the 3D paint tool: Step 1: Preparing the 3D Paint Tool
You may also wish to read Read about the 3D Paint Tool in LAM, Select the object you wish to texture Warning: Omitting this step is the most common mistake to make Change the top menu from ‘Polygon’ mode to ‘Rendering’ mode. Select Texturing/3D Paint Tool/ [] From the panel on the right, scroll down to the ‘File Texture’ section Make sure that ‘Attribute to paint’ is set to ‘color’ Click ‘Assign/Edit Texture’ Select a size (1024x1024 is a good one to start for now) Image format must be Targa (tga). Click ‘Assign/Edit textures’ 37 37 37

38 Using the 3D paint tool: Step 2: Creating a Texture
Maya expert may now chose to create a fancy texture and move on to Step 3. For us non-expert, we will simply ‘paint’ our texture. From the side panel, scroll up to ‘Color’ and select a color. Moving the mouse over the object, you can paint the object You may also change the brush size and other attributes using the side panel Don’t forget to pain all sides of the model, including the underside! For this exercise, make sure you draw a texture where you can recognize the model’s orientation. For example: 38 38 38

39 Using the 3D paint tool: Step 3: Saving/Baking a Texture
Whether the texture was painted on or created through some other way, we are now ready to save its appearance on the model to a file. Bring back the side panel for the 3D Paint tool Scroll to the ‘File Texture’ section Click on ‘Save Texture’ Maya will now save this image into the main Maya Project folder under the ‘3DPaintTextures/<model name>’ folder IMPORTANT: At this point, you saved the image but the model is NOT using it! 39 39 39

40 Using the 3D paint tool: Step 4: Using the Saved Textures
Since the only way XNA can texture a model is by applying a texture image to it, we must make sure that this is what Maya is currently doing. Furthermore, this must be done in a way that will also work with XNA Locate the image file you save in the previous step and copy it into your MyContent\Models folder. Yes, in the Models folder since this image will be tightly linked to the model In Maya, open the hyper-shade view Create a new Lambert render node and double-click on it Click the black and white square to the right of the ‘Color’ slider From the render node menu, select ‘file’ On the right, select your newly copied MyContent/Models/<image name> At this point, you have a render node ready to apply the image file onto your model. Select the model Move the mouse over the render node and right-PRESS (not right-click) You will see a context menu appear. Select ‘Assign Material to Selection’ Voila! You finally have a model textured using the image file you created. 40 40 40

41 Using the 3D paint tool: Step 4: Using the Saved Textures
Since the only way XNA can texture a model is by applying a texture image to it, we must make sure that this is what Maya is currently doing. Furthermore, this must be done in a way that will also work with XNA Locate the image file you save in the previous step and copy it into your MyContent\Models folder. Yes, in the Models folder since this image will be tightly linked to the model In Maya, open the hyper-shade view Create a new Lambert render node and double-click on it Click the black and white square to the right of the ‘Color’ slider From the render node menu, select ‘file’ On the right, select your newly copied MyContent/Models/<image name> At this point, you have a render node ready to apply the image file onto your model. Select the model Move the mouse over the render node and right-PRESS (not right-click) You will see a context menu appear. Select ‘Assign Material to Selection’ Voila! You finally have a model textured using the image file you created. Models Using Multiple Shapes In most cases, your models will be composed of more than one primitive shape. A render node can be applied to multiple primitives If you need multiple textures, then you will need to repeat “Step 1” through “Step 4” for each texture!!! 41 41 41

42 Using the 3D paint tool: Step 5: Exporting your Model
To get our models into the game, they must be exported into the FBX format EDIT > Delete All By Type > History Save the .ma file into MyContent/Models Select the model and click on File/Export Selection Make SURE to EXPORT INTO THE MyContent/Models The fbx file MUST be in the same folder as the image file(s) Type in the correct name for your model Select the fbx file type That’s it! You finally have something XNA can use! 42 42 42

43 Done with the 'Art' Side of the model pipeline
Right click on dev/245/NAME and SVN Commit. Make sure only the files you have changed are committed. All the new files you created Any files you modified (now is the time to double check that you are in fact adding the work you've done to the repository)‏ The .ma, .fbx, and .tga should all be going up to the repository 43

44 Part IV: XNA/Iridel Model Pipeline
GAM 245 Part IV: XNA/Iridel Model Pipeline

45 Using Models in Iridel 45

46 Model Pipeline (XNA side)‏
Maya Work: Save texture to image file using 3D Paint Tool Copy those image files to your MyContent/Models folder For each image file, create a render node to apply those image files to the models Export as fbx into MyContent/Models directly File folder view /dev/student/NAME /MyContent /Models box.ma box.tga box.fbx Maya: save Maya: contortions Find the .tga Move and rename it New render nodes in Maya Maya: export Export the .fbx HERE!!! GS Project view Added as link Visual Studio /ModelExample Content /Models box.fbx Only fbx Not the textures 46

47 Model Pipeline (XNA side)‏ Adding box.fbx As Link
in the Solution Explorer: right click on the models folder and select Add Existing Item.. IMPORTANT: navigate up to your dev/ac/NAME/content/models folder Change the “Files of type” drop down list at the bottom of the dialog box to “Content Pipeline Files” Highlight (do not outright double click it) box.fbx To Add: Click on the down arrow on the right side of the Add button, and Add As Link: this leaves the original file in place Do not add the box.tga 47

48 Common Problem Rename your Maya folder
Given how complex the art side pipeline is, it very easy to make mistakes. By far the most common one is that incorrectly set the render node to the image file in your MyContent/Models folder The best way to test this: Load the .fbx in the solution Rename your Maya folder Build. Visual Studio will attempt to conver the fbx (and all associated image files). If no error occur, your did well. If errors occur, read carefully the error message: it will indicate which texture image is ‘not found’ due to the render node looking for it in a folder other than the MyContent/Models folder. If this is the case, than go back to Maya and fix the render node. Re-export the fbx Repeat until no errors  48 48 48

49 Model Pipeline (XNA side) Importer and Processor for Models‏
look at the properties of models/box.fbx This time, the importer and processor are completely different from the .tga files we used previously Thankfully however: XNA does have importer/processors for .fbx. This is not always the case (for example: Animated models, terrain files, etc). 49

50 Model Pipeline (Iridel side)‏ Target.cs (simplified)
Loading (in IridelResources.cs) LoadModel("Target", "Models/Target"); Using it in a Target.cs public class Target : GameObject { ... public Target() : base() ObjectModel = CreateModelGeo("Target"); } public override void update() {...} public override void draw() ObjectModel.draw(); All GameObject have a built-in variable called ObjectModel. Simply initialize with a model preloaded as an Iridel Resource using CreateModelGeo To make the model visible, simply call the draw method of the ObjectModel. 50

51 Model Pipeline (Iridel side)‏ In Pre-Iridel times…
Loading ct is ContentManager Model mModel; // model Matrix mMatWorld; // scale * rotation * translation Matrix[] mMatBones; // bone matrices (structure of the model) mModel = ct.Load<Model>("models/box"); mMatBones = new Matrix[mModel.Bones.Count]; mModel.CopyAbsoluteBoneTransformsTo(mMatBones); Drawing public void draw(ref GraphicsDeviceManager gfx, ref Matrix matProj, ref Matrix matView)‏ { foreach (ModelMesh mesh in mModel.Meshes)‏ foreach (BasicEffect effect in mesh.Effects)‏ effect.World = mMatBones[mesh.ParentBone.Index] * mMatWorld; effect.View = matView; effect.Projection = matProj; effect.EnableDefaultLighting(); effect.CommitChanges(); } // foreach effect mesh.Draw(); } // foreach mesh } // draw()‏ 51 51

52 Testing the Box Model You can easily test your box model by replacing the target model in the code: In the Resource Loading stage Replace “models/Target” with And build/run This allows you to test that The model loads correctly and all the texture file are accessible The model looks good (XNA does not always apply textures as nicely as Maya) The model’s scale is right // Models LoadModel("Target", "Models/Target“ ); // Models LoadModel("Target", "Models/box“ ); Once you know everything is good, you know you can use this model correctly in the rest of your game

53 SVN Commit Close Game Studio
(to make sure you've save all your files and all the project files)‏ SVN Commit.. from your root directory (dev/245/NAME)‏ 53

54 Programming References
Iridel The Wiki is being constantly being updated. if you see errors, problems, etc. Most Iridel methods have the tool-tip set up. You can also look at the Iridel code files Online Books find C# books at the University Libraries. 54

55 Part V: Subversion notes
GAM 245 Part V: Subversion notes 55

56 Add & Commit When you SVN > Add files, they are sent to the repository when you do the next commit Uncheck the “Show unversioned files” box to show only files that have been added to SVN Do not rename / delete the file until you commit it! 56

57 Keep It Clean The rule is to only add and commit “source” files and project files. This means: Source files are files you author .tga .ma .fbx .cs .txt Project files are used by the tools .sln .csproj Do Not Add / Do Not Commit bin/ , obj/, .svn/ Deleting: Right click on the folder you want to delete, SVN > delete Will take effect next commit 57

58 New Updates and Renaming
Getting a new copy: If you would like to pull down a 'fresh' copy of the work you have already done and committed. You should: rename (or delete) the current directory and SVN Update from one level up. IMPORTANT: Be careful! because you will lose any local work in the current directory Renaming files: After a file is committed, you may rename it. How? SVN > Rename Do not try to rename a file after SVN > Add and before your commit it. that is, after you Add, you must commit before making changes 58

59 Part VI: Naming Conventions
GAM 245 Part VI: Naming Conventions 59 59

60 What’s in a Name? Quite a lot actually…
Any project will invariably have many types of entities that must be named: Variables, functions, classes, packages, etc Sprites, images, fonts, etc Sound effects, music, etc Problems occur when more than one content creator work with the same content The sprite’s filename gets changed unbeknownst to the programmer The functions of a class don’t follow the expected naming format Content created through other applications will have varying naming formats Naming conventions are always a source of contention on large projects. One group wants names that closely reflect the content and Another group wants performance and functionality. 60

61 What’s in a Name? Quite a lot actually…
As the number of assets grows, organization and identification of the assets weighs heavier in a determination. Descriptive names provide: An important channel of communication and Aid in efficient development. There is a huge efficiency and time savings realized when all assets have internal names that match their files names. Examples: GameObject class versus file name Resource key name versus font name Maya transform node versus Model name versus .fbx name This enables programmers and artists to talk about the right entity and Track down specific assets easily. A direct corollary: Using only alpha/numeric characters when creating names is ‘safer’. Simplicity in parsing names formed this way (both for humans and compilers) 61

62 Creating a name CHARACTER SETS RULES GUIDELINES Alpha := [a-zA-Z]
Underscore := [_] Digit := [0-9] RULES Start with Alpha or Underscore All characters are Alpha or Digit GUIDELINES Consistent use of abbreviations Consistent use of case Uppercase for internal words (ie: constants and such) Underscore begins system identifiers Numbers at the end for versions Scope: outside-in. Example: SrcHeight, SrcX and NOT XSrc or heightsrc 62

63 Other Considerations FILE SYSTEMS MAYA:
Linux / Unix is case sensitive, PC is not case sensitive Spaces and special characters in file names and paths are problematic Design resources to work across all platforms if possible MAYA: Name of model in the transform node keep all node names unique to avoid |Maya-paths Maya adds numbers at the end of duplicated names But those numbers are hidden from you in Maya and only appear when you export the model… This can cause confusion. 63

64 64


Download ppt "GAM 245: Game Development II"

Similar presentations


Ads by Google