该代码用于导出ingress中的模型
起因是我想做一个短片,使用Ae合成手拿INGRESS道具的效果。
第一反映就是去游戏中提取,没想到看似obj拓展名的文件实际上file结果为『Java serialization data, version 5』
反编译之,最终找到相关解析代码,阅读后重新写出此项目,用于将INGRESS模型导出为OBJ模型。
(对Java一窍不通,昨天才看的书入门,代码各种问题请指正~)
ps:本来想写Makefile的……(逃)
javac Main.java
java Main ingress_obj/1.112.0_android_apk/scanner/interestCapsuleResource.obj -o a.obj
先是吧顶点数据全部塞进去效果如图
然后猜测其中有贴图顶点
(猜对了)
然后猜面
变得很奇怪,继续猜
猜对了
为何有这么多人好奇脚的模型啥样子……(你们都是脚控么?)
这算是个对比吧。。
蓝桶(之所以是蓝桶不是红桶……因为红桶还要画贴图)
研究一晚上,@zhiyb猜想Texture vertices序号和Geometric vertices序号(以及后来才发现有的模型还有的Vertex normals)可能是一样的。然后实验证明正确。所以只需要在surface中写上一样的Texture vertices序号就可以了。
所以现在程序导出的模型是带有正确的uv数据的,所以自己贴图上去吧,scanner的大部分模型贴图应该都是genericModTexture.png,不过Y轴需要翻转一下。
Ingress巧妙的设计,不同模型贴图顶点坐标的巧妙利用,实现不同模型用同一个贴图。
某些c4d文件也直接上传了,可以直接编辑。