3DsMax導出插件編寫(xiě) vs2010和3dsmax2011的配置方法
2017/9/1 點擊:
作為3D開發(fā)人員,*是3D引擎開發人員,經常會接觸(chù)到各種三維模型(xíng)的數據。雖然說3dsmax已經可以(yǐ)導出很多格式的模型,不過總是不一定合適(shì)自己用。所以總有一種想自己寫一個導出插件,讓3dmax導出自己想要的數據格式。這裏為(wéi)大家(jiā)介紹一下怎樣為3dmax寫導出插件的(de)步:怎樣配置vs和maxSdk。
這裏你需要的東西(xī)有兩個:
1、一個完整(zhěng)版的3dsMax。
2、一個Visual Studio。
為什麽是要完(wán)整版的3dsMax呢?這是因為完整版本的3dsMax的安裝文件自帶有maxSdk。這是很重要(yào)的。不同版本的(de)3dsMax,帶(dài)的sdk會不(bú)一樣。你拿了其他版本的sdk做了的插件,不一定適合你(nǐ)當前(qián)的3dsmax使用的。很(hěn)多人寫這個配置教程,會告訴你上網去找maxSdk。其實不(bú)需(xū)要這麽(me)麻煩的。下(xià)麵會告訴大家怎樣安裝。我這裏拿的是我(wǒ)當前使用的3dsMax2011的64位版來做示範。其他的版本做法是一樣的。
那(nà)麽Visual Studio有什(shí)麽要求呢?有些人寫的教程會告訴你,每個版本的(de)max的sdk會對應不同版本的vs,*好(hǎo)對應。這樣說也不算(suàn)錯。不過其實這個對(duì)應關係(xì)沒那麽嚴格(gé)的,我下麵會告訴大家(jiā)怎樣跨(kuà)版本配置。比如(rú)max2011的sdk對應的(de)是vs2008,我下麵將會(huì)用vs2010來配置。
好,把上麵2樣東西準備好之後,3dsmax正常安裝,vs也(yě)正常安裝(zhuāng),準備工作就完成了,接下來阿趙和大家就一起來裝這個maxSdk:
運行完整版本(běn)的3dsMax安裝文件,會看到以(yǐ)下界麵,我們選擇“安裝工具和實(shí)用程序(xù)”:
在這裏選(xuǎn)擇需要安(ān)裝(zhuāng)的工具(jù),我們需(xū)要的是3ds max 2011的sdk:
安裝完(wán)之(zhī)後,會在安裝目錄找到一個howto文件夾,裏麵有個3dsmaxPluginWizard文件(jiàn)夾,在裏麵有個readme.txt文檔,文檔裏(lǐ)麵說明了怎麽去配置這個sdk的(de)。其實在安裝完之後,我們可以把這個maxsdk的文件夾隨便的移動到我們想(xiǎng)要的地方的。不過在配置之前,*好先移動好,開始配置之後,就別動這個文件夾的路(lù)徑了。
在(zài)配置之前,這個文件夾的屬性是隻讀的,我們(men)先把整個文件夾的隻讀取消,然後開始配置:
使用記事本打開同文(wén)件(jiàn)夾下的3dsmaxPluginWizard.vsz,然後找(zhǎo)到下圖用紅線下劃的地方。
默認的Wizard=VsWizardEngine.9.0,代表的是對應vs2008版(bǎn)本。我現在需要使用2010版本,所以把它改成了(le)10.0
然後下麵的ABSOLUTE_PATH改成當前的3dsmaxPluginWizard文件夾的路(lù)徑
改完之後,我們把3dsmaxPluginWizard文件夾(jiá)下的這三個文件複製(zhì):
然(rán)後找到vs2010的安裝文件夾,找到(dào)VC/vcprojects文件夾,把剛才複製的三個文件放到這個文件夾下:
然後我們就可以打開vs2010,創建新項目(mù)。這時候會在c++項目(mù)裏麵看到了3dsmax插件的類別,選擇它,然後在下麵的項目名稱和路徑裏麵輸入自己想要的名字和路徑。
如果你之前的配置正確,將會彈(dàn)出設置向導,如果沒有彈出,則要檢查之前的步驟了。我們選擇File Export:
這(zhè)裏是插件的詳情,直接下一步(bù)就行:
這裏是項目詳情,項輸入maxsdk的路徑(jìng),第二項輸入插件想輸出的路徑,比如3dsmax安(ān)裝目錄的(de)plugins文件夾,第三項輸入需要調(diào)試的3dsmax的安裝目錄。三項都是可以在項(xiàng)目(mù)建立之後修改的。
按finish後,由於這個(gè)版本的sdk對應(yīng)的是vs2008,現(xiàn)在我用的是2010,所以有一個轉換版本的過(guò)程
這時候,項目應(yīng)該已經創建成功。如果沒有創建成功,則檢查之前的步驟。通常是因為3dsmaxPluginWizard.vsz裏麵的vs版本設置(zhì)錯誤。如果創建成功後,我們在解決方案資(zī)源管理器裏麵找到你的項目的cpp,打開(kāi)。
在cpp裏麵,修改Ext方法裏麵的返回,這裏是你導(dǎo)出的模型的格式後綴(zhuì)名,這(zhè)裏我是改成了”azhao“,再改ShortDesc方(fāng)法(fǎ)裏麵的返回,這裏是模型的描述,我改成了”阿趙的模型格式“。
現在按調試,會彈出錯誤:
這是因為(wéi)調試的目標沒有設(shè)置正確,可(kě)以找到項目屬性修改:
在配(pèi)置屬性裏麵的調試,修改命令項為(wéi)你的3dsmax.exe路徑:
這是因為(wéi)調試的目標沒有設(shè)置正確,可(kě)以找到項目屬性修改:
在配(pèi)置屬性裏麵的調試,修改命令項為(wéi)你的3dsmax.exe路徑:
按道理,現在我們再開(kāi)始調試,你的3dsmax就會啟(qǐ)動了。如果(guǒ)你是為32位的(de)3dsmax做配置,那麽整個配置過(guò)程已經完成了。
但我這裏3dsmax啟動後報(bào)錯了(le),這是因為我的3dsmax是64位的(de),剛才調試生成的32位插件不(bú)能用。
接下來我們(men)將要把(bǎ)項目改成64位的。先(xiān)打開項目屬性,在配置管理器裏麵,把Win32改成x64:
改完之後,之前我們(men)的所(suǒ)有配置都沒了,需要(yào)逐個去配置:
先配置調試程序路徑:
然後配置輸出路徑
配置生成程序數據庫文(wén)件的路徑
然後配置輸出路徑
配置生成程序數據庫文(wén)件的路徑
好了,64位(wèi)修改完成,我們再次(cì)進行調試,3dsmax應該就能正常打開了。
我們隨便在場景裏麵建立一個茶壺,然後導出。現在我們可以在選擇導出格式的(de)地方,找到我們剛才指定的格(gé)式了,就是”阿趙的模型(xíng)格式“,後(hòu)綴名是”azhao“。
確定保存,會打(dǎ)開(kāi)一個對話框,不過裏麵都是一些默認的東西,沒有任何內容的,因為我們隻是完成了配置的步(bù)驟,沒有開始寫導出的實際內容(róng)。
在vs裏(lǐ)麵找到DoExport方法,在裏麵(miàn)打一個(gè)斷點。再次去(qù)選擇導出我們的格式,vs應該就能進入斷點了。DoExport方(fāng)法就是導出方法(fǎ)的入口了。
如果你途中發現出現(xiàn)問題,很有可能是以下幾種問題:
1、下載的MaxSdk有問(wèn)題,建議使(shǐ)用完(wán)整(zhěng)版3dsMax自帶的sdk。
2、忘記取消(xiāo)maxSdk文件夾的隻讀屬性,這樣在新建項目或者編譯的時候都會出(chū)錯。
3、3dsmaxPluginWizard.vsz裏(lǐ)麵設置的vs版本不對。9.0對應的是vs2008,10.0對應的(de)是vs2010,11.0對應的是vs2012.
4、調(diào)試的時候出錯,有可能是沒有設(shè)置對調試對象,要設置為3dsMax的exe。
5、調試的(de)時候沒(méi)有報錯,卻沒有出現導(dǎo)出的選擇。有可能是(shì)導出保存的路徑不對,要保存在3dsmax的安裝路徑裏麵的插件文件夾(jiá),比如plugins或者stdplugs文件夾。
6、調試的時候3dsmax啟動了,但在啟動的途中報錯(cuò)。這(zhè)有可能是使用的sdk和3dsMax版本不對應,或者是32位插件和64位軟件不對應。
這個過程雖然簡單,不(bú)過卻會遇到很多默默奇妙的小問題,網(wǎng)上雖然相關的教程不(bú)少,但起碼我自己對著很多個教程(chéng)都沒有配置成功,所(suǒ)以才把自己的配置過(guò)程記錄下來,希望能(néng)給以後需要配置的人一個參考。
- 上一篇:VIRTOOLS立體設(shè)置方法 2017/9/1
- 下一篇:3DS MAX SDK插件開發(1) 2017/9/1
