• 3DsMax導(dǎo)出插件編寫 vs2010和3dsmax2011的配置方法

    2017/9/1??????點(diǎn)擊:

    作為3D開發(fā)人員,*是3D引擎開發(fā)人員,經(jīng)常會(huì)接觸到各種三維模型的數(shù)據(jù)。雖然說3dsmax已經(jīng)可以導(dǎo)出很多格式的模型,不過總是不一定合適自己用。所以總有一種想自己寫一個(gè)導(dǎo)出插件,讓3dmax導(dǎo)出自己想要的數(shù)據(jù)格式。這里為大家介紹一下怎樣為3dmax寫導(dǎo)出插件的第一步:怎樣配置vs和maxSdk。

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