Coder Social home page Coder Social logo

Comments (2)

Jupisoft111 avatar Jupisoft111 commented on September 9, 2024 1

Hello again and thanks a lot for your detailed explanation. Despite searching for it on GitHub and other places I couldn't find the links you have pointed me to, so I'm really grateful for that. I'm not sure if I'll manage to succeed, even for a single game, but I'll do my best to achieve that.

Of course I'll keep you updated in case I ever manage to make any progress within the unknown values to complete the missing knowledge about the G1M format. And I didn't know about the shaders within the G1M file, so that's great to know.

The thing I did notice (if I'm not wrong at interpreting it), is that some of the G1M files seem to have 4th dimensional meshes for some body parts, like if they contained some sort of animation for that part, but sadly I couldn't get very far yet.

To start, I'll port to C# all the templates and then start making lots of tries with several G1M files (while expecting lots of crashes), until hopefully I'll be able to understand a bit more the format like you already did.

Thanks a lot for all your help and massive contribution to the understanding of the G1M format. Have a wonderful day :-)

from project-g1m.

Joschuka avatar Joschuka commented on September 9, 2024

Hello,
First of all thank you for the kind words, I'm happy that you enjoy the plugin.
Importing back to the original format is always a challenge : contrary to exporting where I can ignore the fields I'm not really sure about as long as I get enough information to display the asset, reconstructing the G1M would require understanding every single byte (or at least enough not to make the game crash). While most of the sections are completely figured out, these annoying NUNO ones (among others) still have a lot of unknowns.
Another problem is the versionning. This G1M format has been used by dozens of games since around 2010 and developpers are still updating it and adding new features. Importing back would need to account for these different versions subtleties, making it quite a tedious work (unless you decide to only make it work for a single game).
Yet another issue would be the shaders. As you may have noticed, the g1m have references to shaders, which are game specific.
Also, while I managed to reverse the vertex shader and reconstruct the physics meshes for exporting, I'm still not sure about how they bake these in the first place with their inhouse tools, as the transforms are not bijective for the most part.

So could such an exporter be done ? Most likely, with some time, a lot of testing/reinjecting and more research about the unknown fields left. However I'm afraid that I personally currently cannot afford the time to contribute to such an effort, especially since I don't have a game using G1M I am personally interested in modding myself right now.

If you are really determined, I would suggest to check out the G1M binary template that I maintain here, which has my latest findings about the format https://github.com/three-houses-research-team/010-binary-templates/tree/master/Model%20related%20formats
You can then use it to display all the fields conveniently with the 010 editor and it will help you understand the format much more easily than you'd be able to by just reading my code. After that it will be a matter of trying to reconstruct these different sections one by one and make sure that all the fields are set up accordingly.

Hopefully that helps, again sorry that I cannot help much more but I currently cannot afford the time to get involved in such a demanding effort. However I'll be able to answer questions about the format if you have any. Best of luck !

from project-g1m.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.