[newbie question] about format

This sentence was written through Google Machine Translation.

Is there a format in which most of the following checklists are yes?

Format Evaluation Checklist
A. Is it exportable from blender?
B. jme3 can import it fast at runtime?
C. Will it maintain backwards compatibility in the future?
D. Is it independent of gameengine?
E. Is it continually updated?
F. Is it easy for parsers and exporters to make?
G. Can it have flexible content, eg include only animations?

I read an xbuf thread. I do not understand how xbuf works, but this is my thought.
A. yes
B. unknown
C. unknown
D. yes
E. no
F. yes
G.unknown

I read the gltf thread. this is my thought.
A. yes
B.maybe yes
C. yes
D. yes
E. yes
F.unknown
G.unknown

About my situation.
I advanced the tutorial about half.
https://wiki.jmonkeyengine.org/jme3/beginner/hello_animation.html
In this tutorial, I think that Models / Oto / Oto.mesh.xml has animation data.
However, I need a format that handles animation-only files. And the format is suitable for run-time loading.

https://wiki.jmonkeyengine.org/jme3/intermediate/best_practices.html

Do n’t reference Blender / Ogre / OBJ files in your load () code
Convert Models to j3o format.

Here is my situation.
There are many models with common skeletons. There are many animation files for that skeleton. Each animation file can be read into blender.

thank you for reading.

gltf is current best format to use.

A. yes
B. depends(it have 3 versions), i had models that take much time to load. anyway .j3o will load faster imo.
C. yes
D. yes
E. yes
F. yes
G. yes (it even have morph support as i know)

so only B might be problem i think. Question is why you need load it in “runtime”. even if you need, then you should cache result(that is cached anyway by assetManager)

1 Like

@oxplay2
Thank you for your reply.
gltf is promising.

My game loads various files dynamically with simpleInitApp ().
The meaning at runtime is that it is a format that can be handled only by jme3 without sdk.

A Simple Application that loads a blend model and then export it using BinaryExporter.

Perhaps this answer means that if you use a .blend file, you will do a development task that convert with sdk each time. I am a beginner and I am not sure if this interpretation is correct. If so, the .blend file is not a format that jme3 can directly handle.

https://wiki.jmonkeyengine.org/jme3/intermediate/best_practices.html

Don’t reference Blender / Ogre / OBJ files in your load () code, because these unoptimized files are not packaged into the JAR.

This tutorial means that assets in some formats are ignored when creating an executable binary through sdk.

So the formats that jme3 and sdk can handle are different.
So I added to the checklist that jme3 can handle it directly. In the word runtime.

You can convert your files to j3o when building your application, this way it will be optimized when you load them. Or if you will not have the files until runtime, you can have your application convert them to j3o files, then they will be able to load faster when you re-run the application later.

1 Like

let me tell you something.

lets say you use blender 2.8 and you export to .gltf.

you get .gltf file and packed metalness/roughness map and other maps.

you can load it directly via .gltf file. i already do that with character file, because i was lazzy to convert to .j3o every time like you said.

BUT:

once you convet it to .j3o you dont even need to apply materials or anything. Your model already will have everything you need. you can easly preview it in SDK(just need light probe to see proper effect), and it load faster(at least i think so)

if you dont use SDK for code, i anyway suggest have SDK for assets. still you can just look at SDK sourcecode and do own tools if need

Also, idk what blender version you use. But in Blender 2.8 you have Eevee or however they name it. It speed up modeling very much. But i was still looking for upgrade to apply multiple textures with one brush.

Anyway see video:

@tlf30 i didnt even knew about it. is there some quick one-line in gradle for this?

anyway when testing it should load fast too, so prefer have them, but one line executing(generate missing .j3o files) would be a perfect tool.

i always vote for speed up workflow.

Ah sorry, when I said build, I did not mean the build process I meant building as in using the SDK. Sorry for the confusion. On the other hand, I do not see a reason that I could not make a maven plugin or gradle task for this. That is actually a good idea, I will look into that.

1 Like

right, but how it should work. search for all .gltf files and generate .j3o?

usually you can have multiple .blend files like v1.blend, v2.blend, but i dont think someone might have v1.gltf, v2.gltf

Also what about if model exist but gltf file was modified.

The idealistic tool would re-generate if .gltf file changed too.

btw. jme have some file update check, but it never worked well for me.