Library for new format


#1

I’m thinking of creating one library for JME3.
My library is what makes JME 3 support new formats pmd + vmd + pmx. My library includes a Loader that supports the new formats and a dedicated AnimControl. This library extends MMDLoaderJME of MikuMikuStudio.

  1. SOLVED. I noticed a solution. You can import all SDK Global Libraries in library project, export jar without including dependency, and resolve dependencies as long as it is used in JME project.
    /* My library depends on various code of JME3. If I import one JME jar, I will need to import other jars that the jar depends on. Dependencies may change when JME 3 is updated. Is there a way to easily specify the entire JME3 as a dependency? For example, jmonkeyengine.jar placed in a remote repository.
    */

  2. The latest SDK is 3.2.2. The latest JME is 3.2.3. My library is supposed to be used in games developed on SDK. When is the SDK updated to 3.2.3? I select a large number of libraries from SDK’s Project Property> Libraries> Add Library> Global Libraries. But if I write code based on these libraries, will it work with 3.2.3?

  3. My library’s situation is similar to xbuf. Should I investigate xbuf to support the new format in JME 3?

  4. Are there any notes or information to learn when creating such a library?

thank you for reading.


#2

First I would check the license of these formats? Can you actually use them freely and/or commercially?
Next, the fastest way would probably be to find an existing library which imports these formats, even if they are written in different language.
Other then this you would probably have to find the file specification for each format and that would take a lot of time.
Btw, isn’t AnimControl now deprecated? Well the new anim system is quite similar, so this shouldn’t be an issue.


#3

@The_Leo
Thank you for your reply.

VMD and PMD can be used freely. However, PMX can not be used commercially. I did not notice. Then it is more attractive to make a VRM loader. VRM is a open format. thx for your advice.
I need a PMX or VRM loader for a toolchain I want to create.

Software called MikuMikuStudio was created based on old JME 3 and equipped with VMD and PMD loader. There was no PMX loader. So my plan was to run those loaders with the latest JME 3 and add to PMX support.

PMX and VRM have detailed specifications.

I have never created a program like 3D format conversion or loading into a game engine. But I’m thinking of attempting it. I will probably try to implement the VRM loader.


#4

Creating a loader for VRM file format should not be that hard in jme.
That is because vrm is basically GLTF 2.0 with extension and jme has a gltf loader.

So if you eg. rename a vrm format to .glb,you can already load it into jme. Of course, to support it fully the support for the vrm extension has to be written. This would add eg.: lip-syncing morph shapes, and etc what else is in the extension.


#5

This topic might help you with how to get start with gltf extension in JME :


#6

@The_Leo
I was looking at the VRM specification. The VRM extension is only the JSON part. The binary part is the same as GLB. I thought it would be possible.

One concern is that VRM uses Unity’s Humanoid bone name. Is VRM really open source?

I solved this question myself, but I write it here as information.

  1. Many news sites introduce VRM as open source.
  2. The official site states that VRM can be used with other engines.
    https://vrm.dev/en/vrm_about/

Although the current provided software to import and export VRM is for Unity, VRM its is platform-independent, which means VRM is also applicable to other engines and environments.

  1. Unity Technologies Japan is a member of the VRM Consortium but has not protested many news articles and their statements.

It should be enough for individual developers to trust.

@Ali_RS
Thank you. It is likely to be helpful.