2009年12月24日 星期四

3dsMax Exporter Plug-in (1)

序言

Exporter 是我們在製作 3D 遊戲時,非常常用的一項工具程式。由於美術所製作的 3dsMax 模型,對於 3D 引擎來說,資料過多且複雜,所以我們需要借助 Exporter 將模型資料轉出成我們所需要的資料格式。DirectX X-File 即為其中一種格式。

3dsMax 利用了抽象介面的概念,定義了非常多的 Interface,Plug-in 設計者可以繼承這些 Interface 來實做,3dsMax 便可以透過抽象介面虛擬函式的動態連結,在需要的時候呼叫 Plug-in 所提供的實作物件。

Step by Step

第一步,當然是先把 3dsMax 安裝起來,同時,要安裝 3dsMax SDK,是的,Max 也有 SDK。

接著,為了自己的便利,最好把 "3ds max Plugin Wizard" 安裝起來。通常 SDK 的目錄文件裡都有,如果沒有,就花點時間請 Google 大神幫忙。

安裝完畢,Visual Studio的專案裡,會多了一種專案。

image

建立一個新專案 ( MyExporter1 ),當然,要選取3ds max Plugin Wizard。

然後Wizard會出現以下的選擇畫面。

clip_image001

看到麼? 沒在騙人,真的有很多種類型的 Plug-in。

我們這次需要的是 File Exporter 。

選擇以後,後面兩個步驟就照著需要,填寫裡面內容。

然後,Wizard 就會協助建立一個 Plug-in 專案。

有了專案,編譯看看。

如果,我們前面的設定沒有問題,編譯通常就沒問題。我們會得到一個附檔名是 dle 的檔案,直接輸出在 3dsMax 的 plugin 目錄下。

dle 檔案實際上就是一個 dll ,改成 dle 只是表示這是一個 exporter 。

2009年11月7日 星期六

Unreal Development Kit

Unreal把它的開發工具,很完整的開放出來了。免費授權。如果你自己做了個遊戲拿出來賣的話,只要收入不超過5000美金,是不用抽稅的。

據說Unreal在大陸的授權金已經是低到很離譜了,完全是為了打開市場考量,所以現在把這個開發工具免費授權也就真的沒什麼好驚訝的了。

下載網址在這裡:

Unreal Development Kit

昨天很快的用我的「光世代」下載了。

不過為什麼會變成簡體中文的咧?

udk

 

而且說真的,打開程式以後完全不知道要怎麼開始編輯一個關卡或場景,有沒有什麼 Quick Start  或是 Tutorial 之類的文件可以看看啊?

2009年11月6日 星期五

T-shirt for twins

網路上晃啊晃的,看到這樣兩張圖片,常碰電腦的應該會會心一笑吧...

500x_tumblr_ks3cysr6YE1qzpwi0o1_500

500x_copy-paste-twins_01

2009年10月13日 星期二

家族日本行 (3)

溫泉旅館度過了一晚之後,隔天回頭往東京。

因為是搭乘遊覽車在東京市區裡,所以,還真的沒辦法參觀很多地方。不過說實在的,東京我也逛過好幾次了,自己坐地鐵還比較能夠跑更多地方。

DSC00706

這個大燈籠真的沒什麼好拍的,不過還是得拿來當做『到此一遊』的記號。

接著被遊覽車帶去參觀了一個專賣高檔精品的百貨公司,這裡倒是有點不一樣的東西。

DSC00711

這個是百貨公司裡頭的樓層場館導覽,整個都是觸控螢幕。不知道台灣的百貨公司有沒有這種東西。

 DSC00712 DSC00713DSC00714

百貨公司館外草坪上剛好有人在吹熱氣球

跟著呢,遊覽車載著我們到台場的飯店住房,然後就自由活動逛街。

台場逛街的戰利品,就是在娃娃機用六個硬幣夾到的三個娃娃。雖然忘了拍照存證,但是,日本的夾娃娃機真的很佛心啊.... 台灣,尤其是台北的夾娃娃機,根本就是吃角子老虎....

晚餐自行解決,所以.....一定要築地壽司!!

DSC00734 DSC00730 DSC00732

本來是想坐在櫃台的,就像日劇裡演的那樣,一邊點壽司一邊跟廚師聊天。但是....還是算了吧....

現在想到,我們在隔天早上出發到機場之前,應該拍張全家福合照的....

就拿在溫泉旅館拍的來做結尾吧....

DSC00697

2009年10月8日 星期四

家族日本行 (2)

隔天,坐上遊覽車,往箱根前進,沿路走了幾個景點。

第一個來到的是小田原城。

日本戰國時代,北条氏發跡的小田原城。

旅行之前,剛好在玩「信長之野望」,所以對這個城特別有興趣....XD

北条氏很猛,從小田原城發跡,曾經擋住了武田信玄的攻擊,一直傳了五代,每一代的領土都有擴張,直到豐臣秀吉用好幾路大軍包圍,北条氏才被吃掉。

不過我在玩的「信長之野望」裡頭,北条氏老是活不長,歷史模擬遊戲終究還是沒辦法模擬歷史。

DSC00644

DSC00648

天守閣的外觀

DSC00645

天守閣裡面有戰國時代的歷史文物展覽。不能拍照的,拍了一張就被制止了,所以這張照片很稀有....

接著咧,坐小火車上山。這個小火車跟阿里山的一樣,也是用之字形的方式上山。

DSC00654

車站裡頭

DSC00656

乘客可以直接看到駕駛員在做什麼。深深覺得台灣的火車跟捷運也要這樣透明才行。

DSC00667

上了山,參觀一個雕刻公園。

DSC00684

然後坐這個所謂的「海賊船」到湖的對岸。其實我不喜歡這種船,在日本嘛,就應該讓我們坐坐以前日本人當海盜的那種船啊!

DSC00691

跟著來到了一個叫做「忍野八海」的地方。八海指的是八個小池塘。這地方就有點歷史的感覺了。雖然裡面還是在賣現代化的土產。

(從這時候開始,遇到大陸旅行團了,所以開始用台語交談....)

接下來,就到了溫泉旅館休息泡湯。

hmm....全裸的泡湯就不能提供照片了....

因為不能帶相機進去....

2009年10月6日 星期二

家族日本行 (1)

九月底,咱們一家大小 (七個大人外加一個兩歲半的小朋友),到日本玩了五天。實際上是三天啦,迪士尼樂園玩一天,坐車到箱根的溫泉,沿路上參觀小田原城跟其他景點,在溫泉旅館住一晚,然後回頭到東京的景點晃一晃。

DSC00595

桃園機場大廳

DSC00599

兩歲半的小朋友和她媽媽(也就是我老妹)

小朋友超可愛,殺掉相機裡一半以上的記憶體......

DSC00608

迪士尼專車

DSC00617

迪士尼樂園拍不了全貌,只能拍大門的一角。

據說迪士尼樂園本來是要建在台灣的,不知道為什麼最後被東京給搶了去。總之脫不了短視近利外加豬腦袋這兩個原因。

迪士尼玩了一天,可是沒什麼照片。晚上的遊行表演倒是有影片。

呵....

對,影片拍得很不好....

2009年8月24日 星期一

Dirty Coding Tricks

Dirty Coding Tricks by Brandon Sheffield

================================================

今天在Gamasutra上看到的一篇文章。

遊戲開發有時程壓力,而當我們發現一個很難解的Bug,時間又已經來不及的時候,我們該怎麼辦? 這篇文章就舉出了幾個偷吃步的故事。

頭一個故事就很慘了。

在一個PS2遊戲即將要發行的時候,測試團隊發現,在第一個關卡裡,玩家只是靜靜的站著就偶而會造成crash,而且更不幸的是,是在燒成光碟之後,這個問題才會出現。

於是開發團隊為了解決問題,不斷的修改程式,燒成光碟,然後測試,弄了十幾個小時( 為了等程式 crash,只好拿 World of Warcraft 打發時間.... )。

後來奇蹟出現了。有人發現,一開始攝影機向右轉個90度的話,程式就不會出問題,於是乎,PS2的版本,就在攝影機轉個角度之後,順利通過測試而發片。而已經上架的另外兩個平台的版本,攝影機角度還是維持原先的設計。

我的結論是:寫程式,也需要奇蹟。

第二個故事,真的就是偷吃步了。

遊戲程式中所用到的資源,例如一大堆的檔案,在檔案系統中通常會想些編碼的方式當作索引來存取這些檔案。這個故事裡的團隊很倒楣,他們將檔案的檔名CRC32編碼,同時也將檔案內容做CRC32編碼,用這兩個值組成64位元的索引來存取檔案內容。

開發了兩年,處理了幾萬個檔案,從來沒有發生索引值衝突到的狀況。

可是,它真的發生了。兩個不同內容的檔案,卻有完全相同的檔名(也不知道為什麼要這樣設計....),而且檔案內容在編碼之後也得到相同的CRC32編碼--這下子事情大條。

改檔案系統,改索引方式,都是個大工程,而且誰知道改了之後會不會發生同樣的狀況? 這時候,再怎麼完美的編碼方式,都沒辦法給人信心了。

沒時間了,只好用一個最簡單的偷吃步解決這個問題 -- 把其中一個文字檔案打開,在最後面加一個空格,然後存檔。

於是乎,遊戲如期發行。

 

當然啦,這些方法都不是好的解決方式,而且會帶來後續的問題,不管是程式穩定度還是程式維護上的問題。

不過,對我們老是在有限時間跟疑難雜症打仗的人來說,這些故事是會讓人會心一笑的。