自己做, 自己玩 Xbox 遊戲實作 視覺化實驗室 VLAB 莊世坤 2010/11/24 自我介紹 VALB 簡介, 虛擬測量儀器, 虛擬化平台, 網站架設, 工科海洋 聲納視覺化, 虛擬流力教室, 機場禁限建( Google Earth + Sketchup + 網頁 ) 使用 XNA視覺化平台, 康老師視覺化工程應用課 CAE ( VLAB + RLAB + BIM ) VLAB Interests Group
大綱 Microsoft Xbox 與 XNA 介紹 SimuSurveyX 實例 Demo 程式範例與開發經驗 XNA 開發環境 遊戲賣場與網路資源 連線上傳 SimuSurveyX 實例 Demo 程式範例與開發經驗 基本架構 模型下載與使用 座標轉換整合 控制介面 特殊效果 1. 先Demo 實作案例 SimuSurveyX 2. 介紹 XNA 整個開發環境 3. 功能示範, 對照遊戲實例
Microsoft Xbox 與 XNA 介紹
Xbox HDMI 或 專用連接線提供 AV/ 色差/ S-Video 網路連線 Xbox Live 付費下載或免費試玩 支援 Media Center HDD 儲存遊戲 Facebook, Twitter Kinect 點選圖片Show Xbox 操作介面或實際操作 Xbox 支援 Facebook, Twitter, Kinect
Xbox 遊戲控制器 有線 1500 , 無線 1000
Microsoft XNA 簡化遊戲開發流程, 以 Net.Framework 為基礎, 整合Windows/ Xbox 360/ Windows Phone 等開發平台。 開發環境 ( on Windows 7), 下載並安裝 : VS 2008 ( Express ), ( 程式語言 : C# ) http://www.microsoft.com/express/Downloads/#2008-Visual-CS ( 因為現在微軟開發工具以2010為主, 所以要特別點選2008 ) XNA 3.1 , http://www.microsoft.com/downloads/en/details.aspx?FamilyID=80782277-d584-42d2-8024-893fcd9d3e82&displaylang=en 網路資源與遊戲賣場 XNA Creators Club -> ( http://creators.xna.com ) -> APP HUB 微軟官方遊戲網站 http://www.microsoft.com/taiwan/games/default.aspx XNA Developer Center http://msdn.microsoft.com/zh-tw/xna/default.aspx Xbox LIVE Marketplace, 讓業餘遊戲開發者有了發行管道 。 XNA 3.1->4.0, Windows/Xbox360/Zune -> Windows Phone 7 入門者學習平台,專業遊戲公司用C++, Direct3D
會員資格 Membership (http://create.msdn.com/en-US ) 金會員 ( $99 /year ), 銀會員, 試用會員 可以開發和上傳 Xbox 360 和 Windows Phone 遊戲 DreamSpark https://www.dreamspark.com/default.aspx 點選 XNA Game Studio 3.1 之後有詳細說明 要發佈 XBOX 360 遊戲需要加入 XNA Creator Club, 每年 US $99 或是每季 US $49 要發佈 XBOX 360 遊戲, 主機需要買硬碟版本而非無線網路版 玩家欣瑞說, 連線功能相當重要, 值得花錢購買 XNA 遊戲上傳需要付費帳號, 至少是Trial membership
會員資格比較 需輸入信用卡資訊, 每年自動續約, 需主動上網取消 Microsoft 扣款發生錯誤事件
電腦基本需求 最低硬體需求: Xbox debugging : 繪圖卡支援 Shader Model 1.1, DirectX 9.0c, Windows Phone 7: DirectX 10, with a supporting WDDM 1.1 driver 沒有繪圖卡沒辦法順利執行 ! CPU + GPU = APU, Intel Sandy Bridge nVIDIA SLI Bridge, Scalable Link Interface WDDM 是Vista 之後在Direct3D 之上加速Windows 繪圖的Driver
SimuSurveyX Demo
SimuSurveyX ( http://simusurveyx.caece.net ) 網站介紹 播放SimuSurveyX影片, 點選
完整遊戲範例 以下都有 Source Code 可以參考 2D – Shooting Game ALIEN GAME ( use Game Controller) Space Shooter Mini Game 3D - Robot Game Space Shooter: CreatorsClub\Space Shooter Mini Game, 使用chase camera, 前後/ 左右, 可以用距離與方向, 決定 追蹤攝影機本身的速度 3D Robot 在目錄下有捷徑
程式範例與開發經驗
開始 安裝完之後.來試試看是否OK~ 1.開啟 Microsoft XNA Game Studio 3.1裡的Microsoft Visual Studio C# 2008 Express Edition。 2.【檔案】→【新增專案】→選擇【Windows Game 3.1】。 3.然後就可以開始執行,【偵錯】→【開始偵錯】,或是按下F5, 如果看到藍色畫面, 就成功了!
Update() Draw() XNA 程式基本架構 Game1.cs Initialize() LoadContent() 變數宣告 內容載入 更新頻率: 60 Hz, 即相隔時間 16.7 ms 效能不足時, Draw()會被忽略, 產生 Jerky Movement Update() Draw() 檢查使用者操作 依照邏輯改變物體位置 Camera 視角更新 畫面更新
XNA 遊戲程式的基本 Life Cycle 遊戲開始 (建立 Game) 初始化 (建立 GraphicsDeviceManager, 就是管理螢幕畫面的類別) 載入內容 (呼叫 LoadContent 方法) 遊戲進行 (呼叫 Update 與 Draw 方法) 不斷重複 Step 4. 直到遊戲結束 釋放資源 (呼叫 UloadContent 方法) 遊戲結束 (呼叫 Exit 方法)
在螢幕上顯示一個3D Model 別忘了Content 加入/現有項目 , 選取 landscape.fbx 檔 宣告變數 Model landscape; 載入內容 protected override void LoadContent() { landscape = Content.Load<Model>("landscape"); } 畫出 protected override void Draw(GameTime gameTime) foreach (ModelMesh mesh in landscape.Meshes) mesh.Draw(); base.Draw(gameTime); ( 部分內容省略, 例如指定視點和視角) 別忘了Content 加入/現有項目 , 選取 landscape.fbx 檔 可以用2d3d\06\01 說明程式
關於Update() Update 方法的呼叫時機 預設為 fixed-step 模式, IsFixedTimeStep 為 True Game 的 TargetElapsedTime 預設為 1/60, 原則上每 1/60 秒呼叫 Update 和 Draw 一次 PC 和 XBOX : 1/60 秒 Zune 與 Windows Phone 7 : 1/30 秒 如果 1/60 秒內沒有辦法完成 Update, 則 IsRunningSlowly 會被系統設定為 True. 之後, 僅會呼叫 Update 而不呼叫 Draw 以讓系統跟上更新的頻率 如果始終無法跟上, 則放棄 1/60 秒
GameComponent DrawableGameComponent 和 GameComponent 的差別 在不同圖層 使用場合: 例如 Menu, OnScreen Keyboard 在專案上滑鼠右鍵, 加入/新增項目/ XNA Game Studio 3.1/ Game Component DrawableGameComponent 和 GameComponent 的差別 多了兩個函數 protected override void LoadGraphicsContent(bool loadAllContent) public override void Draw(GameTime gameTime) 用法 主程式Game1.cs 的 Initialize() 中 _g3DMenu = new g3DMenu(State, this); _g3DMenu.Visible = false; _g3DMenu.Enabled = false; _g3DMenu.DrawOrder = 100; _g3DMenu.UpdateOrder = 100; Components.Add(_g3DMenu); 之後程式裡面以 Enabled, Visible 屬性來決定要不要讓此 GameComponent 有作用 程式獨立, 唯一要做的事情就是把結果傳回來 在不同圖層 在 VS2008 裡面 加入\ 新增項目
內建的 Content Pipeline 類型 2D 圖形 3D 模型 音效/音樂 字型 支援格式 .fbx .fx , .x 字型描述檔案 .spritefont 圖片檔 (紋理texture) : .bmp, .dds, .dib, .hdr, .jpg, .pfm, .png, .ppm, .tga XACT 建立的聲音檔 (.xap), .mp3, .wmv, .wma 不支援格式會造成執行時期 LoadContent 失敗, 無法進行遊戲 不支援格式需要自行撰寫 Importer XML
XNA 常用類別 2D 與 3D : Texture2D, Model 座標 : Vector2(二維 xy ), Vector3(三維 xyz), Vector4 碰撞偵測 : (1) BoundingBox 建立元件的邊框模型, 缺點是比較不精確 ( 2D 下使用, 但是需搭配 Vector3, z軸填 0 ) (2) BoundingSphere 遊戲核心 : Game , GameComponent 音效與音樂 : (1) SoundEfffect (簡易版, 播放後無法再控制) (2) SoundEffectInstance (3) MediaPlayer 載入控制 : (1) KeyBoardState 鍵盤 (2) TouchState 觸控 (3) MouseState 滑鼠 (4)GamePadState 遊戲搖桿 3D 模型 : Matrix, ModelMesh, ModelBone, BasicEffect 其他 : (1) GameTime (記錄遊戲開始至結束的時間狀態) (2) SpriteBatch (繪圖) (3) SpriteFont (繪文字) (4) MathHelper (數學運算)
XNA Start - A first application 一般都是新建 Windows 專案 Create Copy of Project for Xbox 360 Create Copy of Project for Zune 由屬性和可以加入的參考的差別 可以看出其差異 XNA Start - A first application http://www.toymaker.info/Games/XNA/html/xna_start.html
網路資源 快速引導手冊- 建立一個遊戲 http://msdn.microsoft.com/zh-tw/xna/ee373492.aspx Toymaker http://www.toymaker.info/Games/XNA/index.html XNA 3.1 /4.0 所附說明文件
從程式範例中學習 http://create.msdn.com/en-US/education/ 依會員資格下載不同等級範例。 一個簡單的 Xbox 遊戲, 只要以下元素, 可以作3D Navigation 3D 模型檔 ( 包含環境, 主角, 敵人 ) 使用者控制 ( 鍵盤, 滑鼠, 搖桿 ) 攝影機控制 網址可以直接打http://www.xna.com 點選education 看 Billboard 範例, 即包含這些元素
連線上傳到 Xbox Create copy of project for Xbox 360 建置方案 Xbox 360 copy of your project Package as XNA Creators Club Game Xbox – 我的遊戲庫/ XNA Game Studio Connect 工具/ Launch XNA Game Studio Device Center 第一次連線需輸入序號 Double click on .ccgame file Xbox 端開始接收 連線示範
區域網路 家裡 ADSL PC 和 Xbox 都在同一個區網, 且都可以連到 Internet, 例如透過 IP分享器上網 學校 PC, Xbox 要註冊 MAC ( 土木系 ) 以便 DHCP 並連上網路
安裝檔製作 Unpack 一般作法 告訴安裝者必須先安裝 VS2008與XNA3.1, Double Click .ccmage 檔案 缺點: 安裝目錄在 使用者\AppData\Local\XNA Creators Club Games\... 為隱藏目錄, 若要安裝新版需要手動移除舊版
NSIS is a professional open source system to create Windows installers 安裝檔製作 -2 使用 NSIS NSIS is a professional open source system to create Windows installers http://nsis.sourceforge.net/Main_Page Nullsoft 網頁, 程式集 , 使用範例 參考 SimuSurvey\ SimuSurveyX_安裝檔製作 執行檔範例在SimuSurvey\ SimuSurveyX_安裝\1.0.2 下一步, 下一步..
遊戲製作流程 企劃 發行 遊戲元素 場景, 角色, 任務 使用者 透過控制介面 控制主角, 在場景中克服重重 關卡, 完成 任務。 實作 企劃 實作 美工+程式 發行 遊戲元素 場景, 角色, 任務 使用者 透過控制介面 控制主角, 在場景中克服重重 關卡, 完成 任務。
架構 - SimuSurveyX 目錄下有捷徑連到Robot Game 的文件
Artificial Intelligence 以 Robot Game 為例 GameEnemy 如何 Move , Search, Turn Left(Right), Attack 遊戲 開發文件
設計參考 參考各種 Xbox 遊戲 , 網路遊戲 http://games.softpedia.com/ 遊戲程式 http://www.gamedev.net
向量與矩陣運算 2D/ 3D 座標系統 向量 Vector3及 矩陣 Matrix 幾何轉換 Geometric Transformations 平移 Matrix.CreateTranslation( x, y, z ); 旋轉 Matrix.CretaeRotationX ( a ); 縮放 Matrix.CreateScale( a ) ; 以矩陣相乘即可
3D Primitives How To: Draw Points, Lines, and Other 3D Primitives Ms-help://MS.VSCC.v90/MS.VSIPCC.v90/MS.XNAGS31.1033/XNA/Draw_3D_Primitives.htm#ID4EWC 開啟 說明檔 + 3D_Primitives 程式 ( 工具/ 選項, 環境/ 字型和色彩 9 -> 20 )+ 小畫家 InitializeTransform() 說明 視點 ( 0, 0, 1 ) Game1.cs Line80 加入 typeToDraw = PrimType.TriangleList; 說明按鍵 Polling 說明 WorldMatrix 指定給 basicEffect.World, ViewMatrix 指定給 basicEffect.View 在 Line 140, and ProjectMatrix
座標軸
Camera Camera 類別 Draw () 中指定世界、觀測、投影矩陣, 從Camera類別取得 Azimuth Pan Elevation Horizon effect.World = transforms[mesh.ParentBone.Index] * Matrix.CreateScale(0.01f); effect.World = effect.World * Matrix.CreateRotationY(modelRotation); effect.View = Matrix.CreateLookAt(new Vector3(0.0f, 1.2f, 1.2f), Vector3.Zero, Vector3.Up); effect.Projection = Matrix.CreatePerspectiveFieldOfView ( MathHelper.ToRadians(45.0f),1.333f, 1.0f, 10000.0f); Tilt
物理引擎 nVIDIA PhysX physical Exgine 萬有引力 , 慣性, 碰撞… 萬有引力 , 慣性, 碰撞… 2D遊戲 Jelly car http://www.youtube.com/watch?v=qwbtkUwSufw Demo SampleTerrain. SampleSoftBody 基本原理 應該有 Xbox 用的版本, 但是還沒找到 C:\Program Files (x86)\NVIDIA Corporation\NVIDIA PhysX SDK\v2.8.1\Bin\win32\SampleTerrain.exe C:\Program Files (x86)\NVIDIA Corporation\NVIDIA PhysX SDK\v2.8.1\Bin\win32\SampleSoftBody.exe
nVIDIA PhysX http://www.nvidia.com.tw 注意 : 必須安裝 Visual Studio 2008 C++ ( Express )注意是C++ 不是C Sharp!! 才能夠 正常編譯及執行 PhysX.Net 的範例 http://www.nvidia.com 1. 先裝 System Software PhysX_9.09.0408_SystemSoftware.exe 2. 再裝 SDK PhysX_SDK_2.8.1_build_13_for_PC.msi 3. PhysX.Net 範例 PhysX.Net_0.11.0.0\ http://physxdotnet.codeplex.com 必須詳讀此網頁的相依性說明 3. 裝 PhysX.Net 0.11.0.0 .Net Wrapper for NVidia's Physx library. 4. 網站上可以下載 Sample Code, PhysX.Net 目錄裡面也有 另外, 參考http://www.stilldesign.co.nz VS2008 C#-XNA 中的 Project 必需含有額外的3 個項目 NxCharacter.dll NxCooking.dll PhysXLoader.dll VS2008 中 做以下設定 Add StillDesign.PhysX.Net into refrence Add NxCharacter.dll, NxCooking.dll and PhysXLoader.dll into the project
Kinematic model 運動學, 請參考 視覺化工程應用 Slides\lec11 Spherical joint Revolute joint Prismatic joint Cylindrical joint Fixed joint 桌面\ 視覺化技術工程應用\ Slide\ lec09.pptx Distance joint
3D Model 工具軟體 3Ds Max Blender Google SketchUp -> 輸出成為 fbx 檔
3D Model - Fbx檔 1. 可由 3DsMax, Google SketchUp 用 Export FBX 的方式 2. XNA 是 Y-Up, 3DsMax 內定是 Z-Up, 要設定一下 3. 有些奇怪的問題, 例如 Google SketchUp 的模型到了 3DsMax 少了一部份, 或材質不對 4. Export 成 ASCII( 非 Binary )再手動改材質檔的目錄, 目錄全部去掉, 留下檔名. 將外部圖檔都放在相同目錄下. 5. 如果檔案太雜, 在 XNA Project 中新建一個目錄, 不要直接右鍵點該目錄去選檔案, 應該 還是在Content 處選好, 在 XNA 內部樹狀結構拖進去 6. 程式中, Content.Load<Model>(@"ddd\fff.fbx") 7. XNA 規定材質圖檔長寬都必須要2 的次方( 64, 128,256 ... )用 PhotoShop 作放大縮小 8. 希望可以順利在 SketchUp 中建立, 3DsMax 中觀察修改與轉檔. XNA 中使用 9. 如果可以的話, 使用 Embedded Material, 但在 3DsMax 使用此選項有問題 *** 10. 手動把材質路徑改好之後, 進入3DsMax 調一下位置, 再重新 Export 成 FBX, 從XNA 中可 以直接使用, 不用再改一次. 已經自行撰寫程式過濾路徑
網路下載免費資源 ( Daily download credit : 15 ) 3D Model 免費資源 網路下載免費資源 ( Daily download credit : 15 ) http://www.3dxtras.com/ 必須先註冊一個帳號
3D Model 連結 SimuSurveyX 範例
Free FBX Viewer http://www.ozone3d.net/ http://www.ozone3d.net/repository_lynx_lite_win32_installer.php Download LynX Lite Edition open Content\Model_Other\tree10.fbx
天空 ( Sky sphere ) 半球, 天空貼圖, 內側
地形 ( Terrain ) 使用現成地形範例
音效檔 ( 簡單 ) Audio01 Audio02 網路上有Free Audio 網站 XNA 提供很多現成音效檔案 最簡單的音效播放範例: SoundEffect[] SndBird; SndBird = new SoundEffect[3]; SndBird[0] = Content.Load<SoundEffect>(@"birds001"); SndBird[_rn].Play(); Example\CreatorsClub\soundLab\SoundLab\Audio
2D 圖檔 使用.png 檔, 可以鏤空和有透明度 例如: SimuSurveyX 的望遠鏡頭和雷達圖 宣告 Texture2D 載入圖檔 用PhotoShop 開啟Telescope.psd
使用者控制介面 (User Interface ) 介面種類 Game Controller, 無線/ 有線 Keyboard 其他 函數範例 調整大小, 與虛擬世界座標大小有關 按鍵對應
選單 CreatorsClub\Menu-GameStateManagemen\ GameStateManagementSample\GameStateManagemen
使用者控制介面 (User Interface ) 宣告 KeyboardState currentKeyboardState = new KeyboardState(); GamePadState currentGamePadState = new GamePadState(); 掛在 Update() 裡面檢查按鍵狀態 protected override void Update(GameTime gameTime)d { HandleInput(); UpdateCamera(gameTime); base.Update(gameTime); } 詳細內容 private void HandleInput() currentKeyboardState = Keyboard.GetState(); currentGamePadState = GamePad.GetState(PlayerIndex.One); // Check for exit. if (currentKeyboardState.IsKeyDown(Keys.Escape) || currentGamePadState.Buttons.Back == ButtonState.Pressed) Exit();
使用 Shader 使3D Model 有動態變化 不佔用 CPU 效能, 交給GPU 處理 Example : Billboard ( CreatorsClub ) 原理: 使用 2D Sptrite 代替 3D Model 說明檔 C:\Users\skc\Desktop\SimuSurvey\Examples\CreatorsClub\Billboard\BillboardSample\Billboard.htm 兩個重點 1. Content Importer 2. Effect File .fx http://www.toymaker.info/Games/html/effects_files.html 以PhotoShop 開啟Content 圖檔( *.tga ) Shader make you powerful !
HLSL 高級著色器語言(High Level Shader Language,簡稱HLSL),由微軟擁有及開發的一種語言,只能供微軟的Direct3D使用。HLSL不能與OpenGL標準兼容。他跟Nvidia的Cg非常相似。 HLSL的主要作用為將一些複雜的圖像處理,快速而又有效率地在顯示卡上完成,與組合式或低階Shader Language相比,能降低在編寫複雜特殊效果時所發生編程錯誤的機會。 Example 彩色轉成灰階 sampler2D Texture0; float4 ps_main( float2 texCoord : TEXCOORD0 ) : COLOR { float4 _inColor = tex2D( Texture0, texCoord ); float gray = 0.3*_inColor.x + 0.59*_inColor.y + 0.11*_inColor.z; float4 _outColor = float4(gray, gray, gray, 1.0); return _outColor; }
Shader Shaders come in two flavours, vertex shaders which allow the manipulation of vertex data and pixel shaders which allow the manipulation of pixel data. The shader code is loaded into the graphics card memory and plugged directly into the graphics pipeline. Shader code is in assembly however nowadays there are a number of higher level 'C' type languages that can be compiled down to the assembly and making them much easier to program. Microsoft have HLSL (High-Level Shading Language) for use with DirectX and OpenGL has the GLSL (OpenGL Shading Language). Hardware vendors also provide some high level languages, NVidia have Cg and ATI have ASHLI (Advanced Shading Language Interface). http://www.toymaker.info/Games/html/shaders.html
Direct3D Pipeline
Vertex Shader A vertex shader is a graphics processing function used to add special effects to objects in a 3D environment. Vertex shaders are run once for each vertex given to the graphics processor. The purpose is to transform each vertex's 3D position in virtual space to the 2D coordinate at which it appears on the screen (as well as a depth value for the Z-buffer). Vertex shaders can manipulate properties such as position, color, and texture coordinate, but cannot create new vertices. The output of the vertex shader goes to the next stage in the pipeline, which is either a geometry shader if present or the rasterizer otherwise. http://www.toymaker.info/Games/html/vertex_shaders.html
Pixel Shader A pixel shader is a computation kernel function that computes color and other attributes of each pixel. Pixel shaders range from always outputting the same color, to applying a lighting value, to doing bump mapping, shadows, specular highlights, translucency and other phenomena. They can alter the depth of the pixel (for Z-buffering), or output more than one color if multiple render targets are active. A pixel shader alone cannot produce very complex effects, because it operates only on a single pixel, without knowledge of a scene's geometry.
BasicEffect Shader XNA 內建簡單好用的 Shader XNA 範例中含 Source Code 及說明檔 To use this shader, at minimum you must set the World, View, and Projection matrix parameters, plus the EyePosition vector parameter (which is specified in world space). This will produce untextured, unlit, and flat color t riangles. 使用自己的Shader 範例, 2d3d\06\01
Effect Files (.fx) 用載入模型的的方式將. fx檔載入 http://www.toymaker.info/Games/html/effects_files.html Wave Demo An effect file is a text file with a .fx extension. It is split into 3 main sections: Variable declarations - these are values that can be set before rendering and then used in this effect file. Examples include: textures, world matrix, lighting parameters Functions - the shader code written in Techniques & Passes- defines how something is to be rendered. It includes state information along with vertex and shader declarations. 舉例 2d3d\06\02
座標轉換 Draw() effect.World = transforms[mesh.ParentBone.Index] *…. Effect.View =Matrix.CreateLookAt(… Effect.Projection= MatrixCreatePerspectiveFieldOfView(… 移動 Matrix.CreateTranslation( new Vector3(1.0f, 1.0f, 1.0f)) 轉動 – Matrix.CreateRotationY(MathHelper.ToRadians(45.0f) 注意矩陣前後順序 縮放 Matrix.CreateScale(0.01f)
使用現成特效 - 程式合併 Billboard Pipeline加入專案 Particle \creatorclub\billboard 加入現有專案 Content Processor 加入 VegetationProcessor 兩個專案的攝影機角度剛好相反, Particle 為真正3D
輔助工具 XACT Program files(x86)/Microsoft XNA/XNA Game Studio/v3.1/Tools 先在XACT 準備所用到的聲音素材, 成為xap檔 在 Game 裡面加入現有項目( xap檔) 只是簡單音效用 SoundEffect, 例如爆炸 XACT- 新增wav bank, sound bank 把 .wav檔拉到 wav bank, 從wav bank 拉到sound bank 視窗下半部cue 存成 xap 檔, 從Game 專案裡面加入現有項目 可以使用有loop 的 Sound Cue
3D Sound Effect angle += 0.01f; // rotate the emitter around a little bit listener.Position = Vector3.Zero; // the listener just stays at the origin the whole time emitter.Position = CalculateLocation(angle, distance); // calculate the location of the emitter again cue.Apply3D(listener, emitter); // apply the 3D transform to the cue
3D Model 調整 3DsMax 大小調整 Boolean 連結物件
螢幕鍵盤 OnScreenKeyboard 直接在SimuSurveyX 測量模式下按 Y進入 用搖桿輸入名字或數字 將 DrawableGameComponent 加入專案
Avatar 必須在Xbox 360 才看的到 設定範例 avatarRenderer.World = Matrix.CreateRotationY(MathHelper.ToRadians(180.0f)); avatarRenderer.Projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(45.0f), GraphicsDevice.Viewport.AspectRatio,.01f, 200.0f); avatarRenderer.View = Matrix.CreateLookAt(new Vector3(0, 1, 3), new Vector3(0, 1, 0), Vector3.Up); avatarRenderer.Draw(avatarAnimation.BoneTransforms, avatarAnimation.Expression); 其他網站的 Avatar http://www.imvu.com/signup/index/ 看那一台 Xbox 360 目前已經傳上去的範例 在Xbox 上面 我的Xbox/skc1125/自訂 虛擬人偶 遊戲賣場/ 專賣店 按右上角圖片連結自行開發的Avatar
Video Video Support in XNA Game Studio 3.1 Demo 這部分如果找不到例子就省略
XNA 4.0 支援 Windows Phone 7 800 * 480 的解析度 多點觸控 (目前支援四點) ARMv7 CPU Silverlight (支援事件驅動) XNA XBOX Live (撰寫線上遊戲) Demo http://chinese.engadget.com/2010/10/13/xbox-live-for-windows-phone-7-your-xbox-isnt-in-your-phone-yet/
輸入與輸出介面 3D Mouse 3Dconnexion SpaceNavigator 3D Display 加一行 graphics.IsFullScreen = true ; 支援 3D 3D, Full Screen 無法 Capture 畫面
Q&A 莊世坤 skc@caece.net 土木新館 611 VLAB Interests Group 虛擬化平台, 網站架設PHP, Joomla, XNA, PhysX or Shader Unity3D, 莊世坤 skc@caece.net 土木新館 611