Min3D測試-在Android裏面載入MMD模型-快速3D模型顯示測試-By黑月君

快速在Android裏面實現3D人物顯示java

一直在研究Android上實現女僕美豆醬(我的助理)的研究,在製做完畢短信和電話提醒功能後,但願能夠實現3D人物的快速顯示python

至少能夠獨立顯示模型及其動做,主要是由於前面兩個功能製做的過程當中發現圖片太難獲取了,沒有美工沒辦法,故試試3Dandroid

1.查看一下現有的Android 3D庫

主要的方向有兩個,一個是用C擴展庫調用,性能確定是很是棒的,可是我不太會,敲打 只好現用Java封裝的3D引擎,OKgit

因而選擇了Min3D庫來作試驗品,最後的效果最低限度想達成軟件あんどろいどたんjp.co.topgate.charactor.android_tan的github

效果:windows

     

解包あんどろいどたん可知,這個軟件是在C開源擴展https://github.com/eaglesakura/jointcoding的基礎上寫的,坑爹的是網絡

這個庫我沒有徹底編譯成功,雖然庫開源,可是其使用方法,如模型的打包、動做等的載入等沒有徹底明白,因此在持續app

幾天的研究以後,只能暫時放棄了。svn

關於あんどろいどたん的資料:工具

https://play.google.com/store/apps/details?id=jp.co.topgate.charactor.android_tan

http://moeapk.com/info/jp.co.topgate.charactor.android_tan

https://github.com/eaglesakura/jointcoding

http://eaglesakura.hatenablog.com/entry/2013/02/24/230128

http://d.hatena.ne.jp/eaglesakura/20100627/1277657026

トップゲート, 山下武志

2.Min3D測試

Min3D庫https://code.google.com/p/min3d/,基於Android OpenGL ES 1.0,沒有2.0,

1.先下載庫代碼:

svn checkout http://min3d.googlecode.com/svn/trunk/ min3d-read-only

下載這個也是折騰,最近網絡管理比較厲害仍是什麼,先是用TortoiseSVN下載失敗,再去Linux嘗試直接命

令行,總之仍是折騰到了代碼,下載失敗的同窗能夠找我

2.Sample

內部有兩個文件夾,sample和src,安裝其中編譯好的實例 min3dSampleProject1_020.apk ,真機運行看看

   

第一個是選擇界面,二是OBJ模型的載入,三是嵌入式窗口的帶入,之後也許能夠用來把人物載入到懸浮窗內部

四是MD2動畫格式模型,


在Eclipse裏面新建一個工程 com.example.mini3dobjtest 來測試這兩個模型,複製 ExampleLoadObjFile.java 和

ExampleLoadMD2File.java 到 mini3dobjTest\src\com\example\mini3dobjtest 路徑下,加入到 AndroidManifest.xml

複製min3d文件夾到你的工程文件夾裏面,分別編譯兩個模型載入的APK,Copy模型及其圖片資源到你的工程內部



運行之,成功

3.MMD模型的載入

Min3D庫只支持三種模型,3ds,Obj,MD2,要模型動做就須要把PMD格式轉換成MD2或者Obj

這裏用Blender建模軟件轉換模型,Blender如今最新版本2.7.1,不過我這裏用2.6.7版

解包blender_mmd_tools-0.4.5.zip,把mmd_tools文件夾複製到Blender路徑下blender-2.67-windows32\2.67\scripts\addons\

重啓Blender,在Blender中啓用插件,查閱資料http://tieba.baidu.com/p/1954890397 並參照視頻成功導入了MMD模型

導入步驟錯誤的,或者模型太大,Blender就會卡住,如何區分呢?2.6.7版本啓動Blender是有python窗口的,這個窗口裏面能夠查看載入以及導出的進度,故用此區分


導入模型的時候有幾個要點

1.在左邊的工具欄的MMD分欄裏面選擇GLSL模式

2.切換成日文版,工具什麼的不須要

3.去掉導入時左下角的Rename Bones重命名骨骼的選項


這裏用來實驗的是 nano改変亞北ネル PMX模型,Nano系列的模型都很是小巧,像這個只有50KB

導入模型以後右鍵選擇人物的骨骼,注意,一點要選擇骨骼再導入Vmd 動做文件!以前在這裏被坑了好久

VMD文件這裏也本身製做,由於導入其餘動做有名字匹配問題,在MikuMikuDance裏面載入模型,載入動做

再導出VMD動做文件,完畢以後用Blender載入vmd動做文件



4.OBJ MD2模型以及圖片的導出

Blender默認支持Obj格式的導出,我這裏用的導出選項以下,本身安裝本身的喜愛調節,不明白意思多調試幾回來理解

導出MD2模型先右鍵選擇人物模型,而後再導出,注意MD2支持的浮點數有限,數據過大的模型沒法導出,還有一點十

分重要,有時候導出沒問題可是沒有顯示,是由於大小問題,在代碼裏面帶入要考慮到,Blender導出OBJ MD2用了1000

倍,調成1倍,導出MD2模型動畫要勾選上 導出動畫 選項,導出的進度能夠在Python窗口中查看的到


5.模型在工程裏面載入

1.要注意的是OBJ在raw文件夾裏面裏面須要重命名,yabei.obj命名成yabei_obj,材質信息文件yabei.mtl命名成yabei_mtl

MD2文件不須要重命名直接使用便可

2.圖片必需要所有導出到drawable文件夾中,而且用小寫英文,因此你須要在Blender裏面弄好,或者手動編輯材質文件

內部記錄的圖片名稱成小寫英文,還有就是不要用絕對路徑,全部路徑一律轉換成文件名

6.編譯,結束

修改好Java文件中使用的文件名稱,編譯運行完畢,便可

 



3.擴展 錯誤問題集中

以上工程的主要步驟就完畢了,實際會遇到不少錯誤、問題

1.一閃而過或者載入好久後彈出

模型載入失敗,頗有多是名字錯誤,或者貼圖錯誤,還有多是模型太大,載入失敗

要精確確認是哪一步載入錯誤,最快的辦法就是根據Eclipse給出的錯誤提示在載入前在Log輸出要載入的文件名字

根據錯誤回溯到模型載入的Min3D庫Java文件並在其中加入Log語句便可

2.文件啓動切換致使沒法啓動

在ExampleLoadMD2File和ExampleLoadObjFile之間切換啓動文件的時候,徹底卸載軟件後再安裝

鏈接Android真機運行  adb uninstall com.example.mini3dobjtest

3.屏幕一直黑,不顯示模型

考慮你模型的位置以及大小在修正,通常取 objModel.position().y = -2f 可讓人形模型在屏幕中間,即Y負兩倍

相關文章
相關標籤/搜索