文档章节

Min3D测试-在Android里面载入MMD模型-快速3D模型显示测试-By黑月君

harry159821
 harry159821
发布于 2015/01/29 00:31
字数 1608
阅读 662
收藏 0

快速在Android里面实现3D人物显示

一直在研究Android上实现女仆美豆酱(个人助理)的研究,在制作完毕短信和电话提醒功能后,希望可以实现3D人物的快速显示

至少可以独立显示模型及其动作,主要是因为前面两个功能制作的过程中发现图片太难获取了,没有美工没办法,故试试3D

1.查看一下现有的Android 3D库

主要的方向有两个,一个是用C扩展库调用,性能肯定是非常棒的,但是我不太会,敲打 只好现用Java封装的3D引擎,OK

于是选择了Min3D库来做试验品,最后的效果最低限度想达成软件あんどろいどたんjp.co.topgate.charactor.android_tan的

效果:

     

解包あんどろいどたん可知,这个软件是在C开源扩展https://github.com/eaglesakura/jointcoding的基础上写的,坑爹的是

这个库我没有完全编译成功,虽然库开源,但是其使用方法,如模型的打包、动作等的载入等没有完全明白,所以在持续

几天的研究之后,只能暂时放弃了。

关于あんどろいどたん的资料:

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负两倍




© 著作权归作者所有

harry159821
粉丝 1
博文 5
码字总数 4635
作品 0
赣州
私信 提问
加载中

评论(3)

d
dean12138
您好,我现在在学习这一部分的制作,有很多问题想请教你,可以加QQ吗(后面的邮箱)?下载的东西求一份1459730861@qq.com
小薛13643592139
把下载的东西发给我
xue13643592139@163.com
921977939qqcom
921977939qqcom
贴图不显示怎么办?D/Min3D﹕ Adding texture com.weituotian.administrator.min3dtest1:drawable/tex1它已经打印增加贴图的信息了
3D引擎--可移植到Android的开源的引擎

随着android在全球的风靡,越来越多的人将自己的目光投向搭载android的移动设备,但由于手持设备的局限性,怎样利用有限的资源来达到很好的体验,是设备厂商必须要考虑的问题,其中炫目的界面...

长平狐
2012/08/29
12.2K
6
3D引擎--可移植到Android的开源的引擎及调查报告

随着android在全球的风靡,越来越多的人将自己的目光投向搭载android的移动设备,但由于手持设备的局限性,怎样利用有限的资源来达到很好的体验,是设备厂商必须要考虑的问题,其中炫目的界面...

我希冀着
2011/11/28
4.4K
2
tengge1/ShadowEditor

Shadow Editor 名称:Shadow Editor 版本:v0.0.8(开发中) 说明:基于的场景编辑器。 源码:https://github.com/tengge1/ShadowEditor 示例:https://github.com/tengge1/ShadowEditor-exa......

tengge1
2018/10/17
0
0
cocos2d-3D模型 抗锯齿方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/pyf_914406232/article/details/78644525 随着cocos2d-x对3D特性的支持,很多开发者开始尝试在自己的游戏中载...

pyf_914406232
2017/11/27
0
0
如何重置acitivity

小妹想问一个关于Activity周期的问题。 假设我现在写了两个Activity,Activity A和Activity B. 我先从A按一个按钮以后,进入B。在B里面进行了一些操作(目前做的3D模型的位移),然后按一个妞...

秋暮严冬
2012/07/19
265
1

没有更多内容

加载失败,请刷新页面

加载更多

mysql-connector-java升级到8.0后保存时间到数据库出现了时差

在一个新项目中用到了新版的mysql jdbc 驱动 <dependency>     <groupId>mysql</groupId>     <artifactId>mysql-connector-java</artifactId>     <version>8.0.18</version> ......

ValSong
37分钟前
5
0
Spring Boot 如何部署到 Linux 中的服务

打包完成后的 Spring Boot 程序如何部署到 Linux 上的服务? 你可以参考官方的有关部署 Spring Boot 为 Linux 服务的文档。 文档链接如下: https://docs.ossez.com/spring-boot-docs/docs/r...

honeymoose
39分钟前
5
0
Spring Boot 2 实战:使用 Spring Boot Admin 监控你的应用

1. 前言 生产上对 Web 应用 的监控是十分必要的。我们可以近乎实时来对应用的健康、性能等其他指标进行监控来及时应对一些突发情况。避免一些故障的发生。对于 Spring Boot 应用来说我们可以...

码农小胖哥
今天
6
0
ZetCode 教程翻译计划正式启动 | ApacheCN

原文:ZetCode 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远。 ApacheCN 学习资源 贡献指南 本项目需要校对,欢迎大家提交 Pull Request。 ...

ApacheCN_飞龙
今天
4
0
CSS定位

CSS定位 relative相对定位 absolute绝对定位 fixed和sticky及zIndex relative相对定位 position特性:css position属性用于指定一个元素在文档中的定位方式。top、right、bottom、left属性则...

studywin
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部