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