jPCT - a 3d engine for Java > Support

Merging OBJ Frames

(1/3) > >>

AGP:
I'm about to post a little project for anyone unable to export either Ogre or MD2-animated versions of their models but are able to export OBJ or 3ds. I found a little maxscript that automates the exporting of the frames, and I'm writing the jpct end of it. Problem is I keep getting a size difference of 1 between frame 1 and all the rest ("ERROR: The sizes of the Animation's Meshes (26938) and the object's Mesh (26937) don't match!").


--- Code: ---/**
Written by AGP (BR) on May, 2018
*/
import java.io.*;
import com.threed.jpct.*;

public class MergeAndSerialize {
     public static void main(String[] args) {
Logger.setLogLevel(Logger.LL_ERRORS_AND_WARNINGS);
float SCALE = 3.6f;
String animationName = "Idle";
if (args == null || args.length < 1) {
     System.err.println("USAGE: java MergeAndSerialize [baseFileName] where the file name needs no extension.\nFOR OBJs ONLY.");
     return;
}
String fileName = args[0].trim();
FilenameFilter filter = new FilenameFilter() {
     public boolean accept(File dir, String name) {
return (name.startsWith(fileName) && name.toLowerCase().endsWith(".obj"));
     }
};
String[] frames = new File("./").list(filter);
Object3D model = Object3D.mergeAll(Loader.loadOBJ(frames[0], frames[0].substring(0, frames[0].lastIndexOf("."))+".mtl", SCALE));
Animation animation = new Animation(frames.length);
animation.createSubSequence(animationName);
System.out.println("\n\n\nFrames length: "+frames.length);
model.build();
for (int i = 1; i < frames.length; i++) {
System.out.println("I: "+i);
     Object3D frame = Object3D.mergeAll(Loader.loadOBJ(frames[i], frames[i].substring(0, frames[i].lastIndexOf("."))+".mtl", SCALE));
     frame.build();
     Mesh mesh = frame.getMesh();
     animation.addKeyFrame(mesh);
}
model.setAnimationSequence(animation);
try {
     new DeSerializer().serialize(model, new java.io.FileOutputStream(fileName.substring(0, fileName.lastIndexOf("."))+".serialized"), false);
}
catch (java.io.IOException ex) {System.err.println("Trouble saving file: "+ex.getMessage());}
java.awt.Toolkit.getDefaultToolkit().beep();
     }
}

--- End code ---

EgonOlsen:
Try to set http://www.jpct.net/doc/com/threed/jpct/Loader.html#setVertexOptimization(boolean) to false before loading the files.

AGP:
I did. Same thing.

EgonOlsen:
In that case, the mesh sizes are different in the file. Can you check the log output while loading them for any differences?

AGP:
All of the OBJs have the exact same file size. The following is the output for the first few frames:


--- Quote ---Loading file Catwoman000.mtl
Text file Catwoman000.mtl loaded...386 bytes
Processing new material CatSuit!
Texture named CatAtlas.png added to TextureManager!
Loading file Catwoman000.obj
Text file Catwoman000.obj loaded...5293896 bytes
Processing object from OBJ-file: CC_Base_Body
Processing object from OBJ-file: CC_Base_Body
Object 'CC_Base_Body_jPCT-2' created using 15500 polygons and 8068 vertices.
Processing object from OBJ-file: CC_Base_Tongue
Processing object from OBJ-file: CC_Base_Tongue
Object 'CC_Base_Tongue_jPCT-1' created using 592 polygons and 309 vertices.
Processing object from OBJ-file: CC_Base_Eye
Processing object from OBJ-file: CC_Base_Eye
Object 'CC_Base_Eye_jPCT0' created using 1088 polygons and 580 vertices.
Processing object from OBJ-file: CC_Base_Teeth
Processing object from OBJ-file: CC_Base_Teeth
Object 'CC_Base_Teeth_jPCT1' created using 4822 polygons and 2632 vertices.
Processing object from OBJ-file: Cat_Suit
Processing object from OBJ-file: Cat_Suit
Object 'Cat_Suit_jPCT2' created using 8647 polygons and 4407 vertices.
Processing object from OBJ-file: Bunny_Female
Processing object from OBJ-file: Bunny_Female
Object 'Bunny_Female_jPCT3' created using 1540 polygons and 819 vertices.
Processing object from OBJ-file: Fingerless_gloves
Processing object from OBJ-file: Fingerless_gloves
Object 'Fingerless_gloves_jPCT4' created using 2908 polygons and 1510 vertices.
Processing object from OBJ-file: Female_knee_boots
Processing object from OBJ-file: Female_knee_boots
Object 'Female_knee_boots_jPCT5' created using 2416 polygons and 1228 vertices.
Processing object from OBJ-file: RL_G6_Hair
Processing object from OBJ-file: RL_G6_Hair
Object 'RL_G6_Hair_jPCT6' created using 1266 polygons and 947 vertices.
Processing object from OBJ-file: RL_Face002
Processing object from OBJ-file: RL_Face002
Object 'RL_Face002_jPCT7' created using 12470 polygons and 6429 vertices.



Frames length: 345
I: 1
Loading file Catwoman001.mtl
Text file Catwoman001.mtl loaded...386 bytes
Processing new material CatSuit!
Loading file Catwoman001.obj
Text file Catwoman001.obj loaded...5294012 bytes
Processing object from OBJ-file: CC_Base_Body
Processing object from OBJ-file: CC_Base_Body
Object 'CC_Base_Body_jPCT9' created using 15500 polygons and 8068 vertices.
Processing object from OBJ-file: CC_Base_Tongue
Processing object from OBJ-file: CC_Base_Tongue
Object 'CC_Base_Tongue_jPCT10' created using 592 polygons and 309 vertices.
Processing object from OBJ-file: CC_Base_Eye
Processing object from OBJ-file: CC_Base_Eye
Object 'CC_Base_Eye_jPCT11' created using 1088 polygons and 580 vertices.
Processing object from OBJ-file: CC_Base_Teeth
Processing object from OBJ-file: CC_Base_Teeth
Object 'CC_Base_Teeth_jPCT12' created using 4822 polygons and 2632 vertices.
Processing object from OBJ-file: Cat_Suit
Processing object from OBJ-file: Cat_Suit
Object 'Cat_Suit_jPCT13' created using 8647 polygons and 4407 vertices.
Processing object from OBJ-file: Bunny_Female
Processing object from OBJ-file: Bunny_Female
Object 'Bunny_Female_jPCT14' created using 1540 polygons and 819 vertices.
Processing object from OBJ-file: Fingerless_gloves
Processing object from OBJ-file: Fingerless_gloves
Object 'Fingerless_gloves_jPCT15' created using 2908 polygons and 1510 vertices.
Processing object from OBJ-file: Female_knee_boots
Processing object from OBJ-file: Female_knee_boots
Object 'Female_knee_boots_jPCT16' created using 2416 polygons and 1228 vertices.
Processing object from OBJ-file: RL_G6_Hair
Processing object from OBJ-file: RL_G6_Hair
Object 'RL_G6_Hair_jPCT17' created using 1266 polygons and 947 vertices.
Processing object from OBJ-file: RL_Face002
Processing object from OBJ-file: RL_Face002
Object 'RL_Face002_jPCT18' created using 12471 polygons and 6430 vertices.
I: 2
Loading file Catwoman002.mtl
Text file Catwoman002.mtl loaded...386 bytes
Processing new material CatSuit!
Loading file Catwoman002.obj
Text file Catwoman002.obj loaded...5294007 bytes
Processing object from OBJ-file: CC_Base_Body
Processing object from OBJ-file: CC_Base_Body
Object 'CC_Base_Body_jPCT20' created using 15500 polygons and 8068 vertices.
Processing object from OBJ-file: CC_Base_Tongue
Processing object from OBJ-file: CC_Base_Tongue
Object 'CC_Base_Tongue_jPCT21' created using 592 polygons and 309 vertices.
Processing object from OBJ-file: CC_Base_Eye
Processing object from OBJ-file: CC_Base_Eye
Object 'CC_Base_Eye_jPCT22' created using 1088 polygons and 580 vertices.
Processing object from OBJ-file: CC_Base_Teeth
Processing object from OBJ-file: CC_Base_Teeth
Object 'CC_Base_Teeth_jPCT23' created using 4822 polygons and 2632 vertices.
Processing object from OBJ-file: Cat_Suit
Processing object from OBJ-file: Cat_Suit
Object 'Cat_Suit_jPCT24' created using 8647 polygons and 4407 vertices.
Processing object from OBJ-file: Bunny_Female
Processing object from OBJ-file: Bunny_Female
Object 'Bunny_Female_jPCT25' created using 1540 polygons and 819 vertices.
Processing object from OBJ-file: Fingerless_gloves
Processing object from OBJ-file: Fingerless_gloves
Object 'Fingerless_gloves_jPCT26' created using 2908 polygons and 1510 vertices.
Processing object from OBJ-file: Female_knee_boots
Processing object from OBJ-file: Female_knee_boots
Object 'Female_knee_boots_jPCT27' created using 2416 polygons and 1228 vertices.
Processing object from OBJ-file: RL_G6_Hair
Processing object from OBJ-file: RL_G6_Hair
Object 'RL_G6_Hair_jPCT28' created using 1266 polygons and 947 vertices.
Processing object from OBJ-file: RL_Face002
Processing object from OBJ-file: RL_Face002
Object 'RL_Face002_jPCT29' created using 12469 polygons and 6428 vertices.

--- End quote ---

Navigation

[0] Message Index

[#] Next page

Go to full version