訪談系列
《Flash3D猛將錄》為Flash3D研究所2010年專題,將收錄國內外頂尖flash3d高手的精簡訪談資料,直面猛將們對flash3d的心得和對未來的展望。
《flash3d猛將錄》節選
你是否和我們一樣,夢想著網頁三維時代的來臨。在你還在躊躇不前的時候,卻有一群人毅然舉起了flash3d的先鋒旗幟。在Web3D時代到來的前夜,這些前方的猛將們正在創造著一個又一個小小的奇蹟。
請和他們一起勇敢的加油吧。
.
.
.
編輯:哈哈,馬來西亞嗎?有空來玩吧。切入正題,您能告訴一下我們中國的fans您在Flare3d中的職位嗎?
安德拉:我是CEO,基本上管理大部分技術上事情,同時也負責把這些技術商用化。這個畢竟是個商用產品,不是免費引擎。我們除了flare3d,旗下還有其他一些優秀網站. 到現在我們差不多有20年的開發和市場經驗了。
.
.
.
系列教程
pv3d基礎教程系列是Flash3d研究所成員編著的flash3d技術入門教程,其中有大量的實例和原始碼可供flash3d初學者學習,幾乎成為了國內大量flash3der的步入flash3d領域的聖經。
教程區另外還有中級教程,簡單易懂的講解各種三維圖形知識,鼓勵大家向更深入的領域學習。很多flash3d初學者都是從flash或平面繪製轉型的,對三維方面的常識的確理解甚少,即使是天天玩三維遊戲的人。雖然這些信息對一些三維經驗豐富的朋友是顯然得不能再顯然的東西,但寫這一篇對某一些新上手的朋友是有必要的。
f lash3d研究所基礎教程精選
《三維程式/遊戲製作基本常識》
建模
除非簡單幾何體,任何複雜一點的模型和貼圖位置,都只能靠其他三維軟體導入,這不光是flash3d的常識,也是遊戲製作的基本常識。
甚至很多朋友會以為既然用flash是可以‘畫’圖形的,那么用flash3d就能直接‘畫’三維模型。
三維模型之所以叫做‘建’模,就一定和‘畫’模有本質的區別。模型就像"一個燈籠框,外面粘著各種圖畫"一樣,立體的‘燈籠框’肯定是不能簡單的用筆‘畫’出來的。
建模至少包括兩個步驟:
1 模型的建立,每個頂點的空間位置的確定。
2 確定模型每個頂點對應的貼圖位置,以便能夠正確的貼圖
而這兩個步驟,人類不靠建模max,maya,xsi等等建模工具是無法完成的。
理論上來說,只要知道一個模型的所有頂點和對應的貼圖位置,就能不靠三維軟體也能建模,但問題就是稍複雜點的模型至少都是幾百個點到幾萬個點,人類不靠三維軟體是根本無法知道這些頂點和對應貼圖的位置的。
具體如何導入外部模型,請參考《超簡易papervision3D基礎 第三篇 導入外部模型》->點擊去教程
具體如何建漂亮的模型和貼圖則是美工工作,網上有很多教程,和flash3d關係不大。電視劇難看,把電視抱著啃沒什麼用,對吧。
引擎
‘引擎’的定義現在看來已經包括三種:
1) 圖形引擎
最簡單的理解就是一個成像的東西。把三維的數據變成圖像,放映給觀眾。就像一個電視機一樣,把接收到的數據信息變成圖像。 這是我們最早稱作‘引擎’的東西。它的目的就是減少遊戲編程者的工作,因為圖形編程的工作量很龐大的,避免每次重複開發,和讓遊戲編程者儘量把精力集中在遊戲本身的邏輯和規則的開發,而不是怎么顯示圖形上。現在很經典的遊戲圖形引擎比如DOOM,虛幻等等。Pv3d,away3d等等都是ActionScript寫的圖形引擎。
2) 動力引擎
個人認為動力引擎最初的目的應該是"編程人員向動畫人員發起的挑戰"。以前的三維遊戲,動態全是靠動畫人員製作出來。有些簡單遊戲使用動畫人員又有些不必要,簡單動作希望能用程式模擬出來。
動力引擎的好處是每次模擬出來的動態隨受力不同會有改變,這是動畫師無法達到的,因為動畫師做出什麼動作就是什麼,無法隨機變化,頭髮,布料,高處下落,吹飛,拖扯都是動力引擎的強項。但弊端是無法製作出複雜的動態,比如說跳肚皮舞(=_=好冷)
所以現在的大作,一般都是動畫師和動力引擎共同實現,動力引擎處理一些隨機的動態,動畫師(和動態捕捉)處理人物的基本動作。
遊戲界hover這個三維動力引擎是非常有名的。Box2d是一個可以說小巧完美的flash的二維動力引擎,用它可以做一些非常有趣的小遊戲。Wow則是我們flash3d的三維動力引擎,比起前兩者還是非常不完善的。不知道以後會否有hover的支持,(shockwave是可以用hover的)
3) 遊戲引擎
比如說我們現在說的‘《上古捲軸》引擎’的意思就是說能夠輕鬆做出自製任務的引擎,這種引擎製作者根本不用考慮遊戲的規則,邏輯判斷,或者圖形效果等等,大部分精力完全專著於製作任務就是了。也就是說,製作者根本對基本遊戲規則沒法修改,只能根據這個規則添加或改變內容。所以實際上這個東西以前是不叫做‘引擎’的,只是現在大家都喜歡這么稱而已。
什麼是三維
從物理概念來說,所有螢幕上顯示的東西,都不是三維的,都是二維的。只有我們這些能被摸到的東西才是‘真的三維’。我們能觸摸到螢幕,但觸摸不到螢幕里顯示的美女,對吧。所以螢幕是三維的,顯示的美女是二維,即使這個在現實中存在的美女真人是三維的。
但我們平常所說的‘三維’,實際上一種在平面上模擬三維的成像技術,它除了‘左右上下’的移動,還多了‘看起來像’是‘里外’的移動(其實就是縮放)。
和‘看起來是否立體,玩起來是否立體’沒有任何關係。
舉例:《紅俠Joe》和《勇者斗惡龍7》都是卡通渲染,看起來像是二維畫的,但都是‘三維遊戲’
舉例:DC上的《斑鳩》和PS2上的《魂斗羅》都是只能平面的移動飛機和人物的遊戲,但他們都是‘三維遊戲’
"三維"的最大不清楚的地方是,區分"即時(實時)演算三維"和"渲染播放三維"
其實,從本質上來說,這兩個的區別是‘即時(實時)演算三維’的渲染一張圖的時間只有0.0幾秒,而‘渲染播放三維’渲染一張圖的時間需要很多個小時。
另一個區分方法就是"是否有互動的可能性"
舉例:最終幻想10,12有很多玩家不能互動對白過場動畫(不是指那種漂亮的渲染CG的過場動畫),這些都是‘三維’的,雖然玩家不能互動,但有‘互動的可能性’,就是說製作者願意,玩家是可以對對白場景進行各種旋轉操作的。而那種漂亮的渲染CG是沒有‘互動的可能性’的,不管制作者願不願意。
電影,三維卡通片都是用‘渲染播放三維’,裡面有生動真實的光影,毛髮,凹凸等等。‘渲染播放三維’的畫面是可以無限完美的,但它的弊端是無法立即做出互動式的反應。導演開始渲染了什麼鏡頭,觀眾就必須看什麼畫面。電影院沒有觀眾自己能旋轉鏡頭的說法吧。
但因為最終他們保存和播放都是以點陣圖格式,所以我們都按遊戲的觀點,他們都是‘二維’的。所有三維電影都是遊戲定義里的‘二維’,所以遊戲開場動畫這種不能互動的圖像都是‘二維’的。
三維遊戲中,玩家是需要立即互動反應的。我們不可能按一個前進鍵,然後傻坐著等1個月渲染出這個角色做出前進的動作吧。我們需要按前進鍵時,角色能立即作出動畫上的反應。也就是說,如果渲染速度達不到0.0幾秒渲染一張圖,玩家就會覺得‘卡’。
正因為要達到這個速度,所以遊戲畫面雖然越來越華麗,但遊戲角色始終比電影角色看起來要簡陋些的原因
但隨著圖形技術和硬體的不斷進化,幾十年後這兩個稱呼也許會統一起來。
另:我們很多遊戲製作和產品演示中,有一種把三維模型先渲染出幾個方向存起來的方法。
這些都是‘二維’的,即使模型看起來是三維的,也可以旋轉。它的優勢是對圖形運算需求很低。弊端是旋轉只能有開始渲染出來的方向,沒渲染的角度就沒有,旋轉不流暢。
舉例:遊戲裡暗黑破壞神1,2,和現在很多汽車,服裝展示。