| TMD Model Processing Tool | |
|
+27sagebalsys FFossil Sanchos Ecliptic jarofnibbles C-Rex JPBrasil keegz97 FTKchuuNINJA DinoWorld2014 Marllon98 DoktorPopcorn fdinick Dragon Scales Jurassic Gabo jpog2 LostWorld Chopperface Lucca2951 Troodon mcblegal123 Mamenchi EchoGreen Megaspino2 Bleeding Rose jaml655 equinox- 31 posters |
|
Author | Message |
---|
equinox- Embryo
Posts : 44 Reputation : 7 Join date : 2016-11-22
| Subject: TMD Model Processing Tool Mon Dec 26, 2016 6:16 am | |
| JP: Operation Genesis Model Processing ToolThis tool is used to convert from the .tmd format supported by JPOG into an asset interchange format, which can then be modified in a 3D graphics tool and merged back with the original .tmd file to create a modified model for use in-game. I'd like to emphasize that this is a very early release, and almost certainly has problems. FeaturesI'm open to suggestions for future features, however keep in mind that there are some limitations to the engine and format the cannot be overcome; I'll do my best to explain any such limitation as I encounter them. TMD IO Layer FesturesMost pieces have a full IO layer, but levels of detail and animations rely on magic numbers gathered from a template .tmd file.
- Read-write support for scene graph data
- Read-write support for mesh data
- Read, limited write support for level of detail data
- Read, limited write support for animation data
Mesh Merging FeaturesCurrently Supported Modifications
- Modifying mesh vertices: positions, UV coordinates, normals, and armature weights
- Adding and removing both faces and vertices
- Moving the location of joints without their orientation
- Ability to modify multi-piece meshes (those with complicated skeletons or high triangle counts) (this seems to primarily be the large carnivores)
Currently in Development
- Modifying the rotation of joints, and adapting the pre-merge animations to work with the modified skeleton
- Automatically export and import textures from/to TML files
Examples Model Merging ExamplesIf you want some examples of what this tool can do, here is the stock Ankylosaurus modified to have ~8x as many triangles, and a strange horn. From Blender to JPOG. (Sidenote: If you make anything cool with this tool I'd be glad to replace my examples) Model IO ExamplesIf you'd like to see some pictures of the animations (textured with the Forgotten Mod), here are some links. Note that these were rendered using a LibGDX project that I haven't included in the above repository. Visitor Center: Main Gates All Dinosaurs: Walking Acrocanthosaurus + Armature: Roar Dilophosaurus: Idle Sniff Overall Workflow
- After backing up your JPOG Data/ directory... (or at least Models/)
- Export a '.tmd' file from JPOG as a Collada '.dae' using this tool.
- Edit the '.dae' file in the 3D graphics editor of your choice (I use Blender)
- Merge the original '.tmd' file from step 1 with the '.dae' file produced in step 2 using this tool to create a new '.tmd' file
- Replace the '.tmd' file in Data/Models/ with your modified one after making sure you have a backup
Please note that currently this tool doesn't regenerate the levels of detail for these models, so they are more performance heavy. Binaries and Source Code (New)I distribute binaries through JFrog's Bintray. Binaries and Source Code (Old)Current binary releases can be found on GitHub; they'll require the 64 bit Java Runtime Environment and Windows. Source code can also be found on GitHub; it'll require an adventurous programmer to compile. To use this tool you need to install a Java Runtime Environment and set the JAVA_HOME environmental variable to the installation directory. If you have any problems please report them with a private message. - Setting JAVA_HOME:
- Open a file manager and determine where you installed the JRE or JDK. It should be around "C:/Program Files/Java/jre1.8.0_112" and contain the folders "bin", "lib", and other things.
- Open System in Control Panel
- Open "Advanced System Settings"
- Open "Environmental Variables"
- Check the list of User Variables for one by the name of "JAVA_HOME"; if it's already there you're probably done
- Click "New" under the list of User Variables
- Set the variable name to "JAVA_HOME"
- Set the variable value to the directory found in (1).
Also, if you have any suggestions for features, user interface tweaks, or bugs feel free to either drop me a PM, leave a response on this thread, or submit an issue on GitHub. If you want to get ahold of myself, or other users of this tool visit my Discord server: https://discord.gg/9yYnX
Last edited by equinox- on Sun Apr 23, 2017 11:23 pm; edited 8 times in total (Reason for editing : OpenJPOG Organization) | |
|
| |
jaml655 Embryo
Posts : 36 Reputation : 0 Join date : 2016-12-18
| Subject: Re: TMD Model Processing Tool Mon Dec 26, 2016 10:35 am | |
| Excellent, I may play around with this later today Edit: Ok so I tried running the program with the batch file but all that happens is a window keeps popping up and disappearing in the blink of an eye. (I'm not too familiar with Java by the way, I made sure to install it before attempting this) | |
|
| |
Bleeding Rose Embryo
Posts : 6 Reputation : 0 Join date : 2016-06-09 Location : Some Place.
| Subject: Re: TMD Model Processing Tool Mon Dec 26, 2016 2:55 pm | |
| I too cannot figure out how to get this thing to work, I have no experience with Java, possibly some tutorial to get this to work for those that don't know how to work Java would be good? | |
|
| |
equinox- Embryo
Posts : 44 Reputation : 7 Join date : 2016-11-22
| Subject: Re: TMD Model Processing Tool Mon Dec 26, 2016 6:43 pm | |
| Sorry about that; I didn't remember that JAVA_HOME isn't set by default when you install a JRE/JDK. I've added directions to do so in the main post. | |
|
| |
jaml655 Embryo
Posts : 36 Reputation : 0 Join date : 2016-12-18
| Subject: Re: TMD Model Processing Tool Mon Dec 26, 2016 9:36 pm | |
| That got things up and running . However, when I try to export a model to ".dae" I get an extremely long error message, this. | |
|
| |
equinox- Embryo
Posts : 44 Reputation : 7 Join date : 2016-11-22
| Subject: Re: TMD Model Processing Tool Mon Dec 26, 2016 10:15 pm | |
| Sorry about that; when I packaged the files for installation I screwed something up. I released 0.0.2-alpha that fixes this; and makes the error messages more readable. | |
|
| |
jaml655 Embryo
Posts : 36 Reputation : 0 Join date : 2016-12-18
| Subject: Re: TMD Model Processing Tool Mon Dec 26, 2016 10:28 pm | |
| Ok tried that out but then this happened | |
|
| |
equinox- Embryo
Posts : 44 Reputation : 7 Join date : 2016-11-22
| Subject: Re: TMD Model Processing Tool Mon Dec 26, 2016 10:32 pm | |
| Do you have the .tkl files in the same folder as you're loading the model from? | |
|
| |
jaml655 Embryo
Posts : 36 Reputation : 0 Join date : 2016-12-18
| Subject: Re: TMD Model Processing Tool Mon Dec 26, 2016 10:42 pm | |
| Ok nvm found the problem, I have to work from a Models folder from my desktop instead of my Programs Folders Edit: Got the model into blender and edited it, but when I try the merge with DAE process, I get this error message after selecting where to save the merged TMD. Tested merging with other models without changing a thing in blender, but the same error occurs | |
|
| |
Megaspino2 Moderator
Posts : 234 Reputation : 21 Join date : 2016-06-07
| Subject: Re: TMD Model Processing Tool Tue Dec 27, 2016 5:24 pm | |
| This is incredible ! You have discovered the holy grail of JPOG; I must try this out soon. | |
|
| |
equinox- Embryo
Posts : 44 Reputation : 7 Join date : 2016-11-22
| Subject: Re: TMD Model Processing Tool Tue Dec 27, 2016 7:46 pm | |
| Okay I've moved packaging of the binary to OneJar, and dug out another computer to test on. Version 0.0.3-alpha shouldn't have any basic errors now.
Sorry about all the trouble; I haven't released a JAR that needed natives in a long time. | |
|
| |
Bleeding Rose Embryo
Posts : 6 Reputation : 0 Join date : 2016-06-09 Location : Some Place.
| Subject: Re: TMD Model Processing Tool Wed Dec 28, 2016 7:44 pm | |
| I'm getting the same error as jaml655 whenever I attempt to merge a .dae and a .tmd file, even if there are no edits made, even in the newest version. | |
|
| |
equinox- Embryo
Posts : 44 Reputation : 7 Join date : 2016-11-22
| Subject: Re: TMD Model Processing Tool Wed Dec 28, 2016 7:49 pm | |
| Yeah, it seems there is an issue with onejar unpacking the natives. I'm looking into it.
Edit: Yeah there was an issue with dependent libraries. My other computer already had the dependency installed so I didn't catch it. I've released v0.0.4, which is even more likely to work than the previous releases.
There are still some issues in the assimp library, which cause intermittent crashes. They don't seem associated with a particular file so if this crash does occur just try again.
Last edited by equinox- on Wed Dec 28, 2016 9:37 pm; edited 1 time in total (Reason for editing : v0.0.4) | |
|
| |
EchoGreen Embryo
Posts : 35 Reputation : 1 Join date : 2016-06-07
| Subject: Re: TMD Model Processing Tool Fri Dec 30, 2016 10:38 pm | |
| I get this error message when attempting to merge the .dae file with the .tmd file (here it is a Spino_hi.tmd renamed Bary.tmd). It occurs with both unmodified and modified .dae files. - Error message:
java.lang.UnsupportedOperationException: This basis file, Bary, was divided due to its skeletal complexity. This program doesn't support exporting to this format yet. at repacker.model.merge.ModelMerger_DAE.doMeshLayers(ModelMerger_DAE.java:41) at repacker.model.merge.ModelMerger_DAE.apply(ModelMerger_DAE.java:68) at repacker.SimpleGUI.lambda$main$1(SimpleGUI.java:114) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) at java.awt.Component.processMouseEvent(Component.java:6533) at javax.swing.JComponent.processMouseEvent(JComponent.java:3324) at java.awt.Component.processEvent(Component.java:6298) at java.awt.Container.processEvent(Container.java:2236) at java.awt.Component.dispatchEventImpl(Component.java:4889) at java.awt.Container.dispatchEventImpl(Container.java:2294) at java.awt.Component.dispatchEvent(Component.java:4711) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466) at java.awt.Container.dispatchEventImpl(Container.java:2280) at java.awt.Window.dispatchEventImpl(Window.java:2746) at java.awt.Component.dispatchEvent(Component.java:4711) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.awt.EventQueue$4.run(EventQueue.java:731) at java.awt.EventQueue$4.run(EventQueue.java:729) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
EDIT: in addition, I am unable to apply the textures onto the model. Probably has to do with my inexperience in Blender . . . | |
|
| |
equinox- Embryo
Posts : 44 Reputation : 7 Join date : 2016-11-22
| Subject: Re: TMD Model Processing Tool Sat Dec 31, 2016 3:54 am | |
| Yeah sorry about that. That's a know limitation currently. Some files (the larger carnivores) primarily, have a large number of bones in the armature and were split into multiple mesh "pieces" to ease the load on the game engine. When I export to DAE I merge these pieces together, since if I don't editing them would be really hard. I haven't yet written something to re-split the meshes; it's on the TODO list. Try a smaller dinosaur.
Regarding textures: This tool doesn't export them yet, so you'll have to rip them from the .tml files yourself (another thing on the list is to make this easier). Then you can associate the texture to the precreated texture node in Blender.
Edit: I've written the IO layer for the TML files; I'll see about integrating it in the next couple days.
Also, here's the first actually useful model made with this tool (that I know of). A smallish Therizinosaurus based on the Gallimimus. Features include a higher triangle count, and open assets. From Blender to JPOG. Assets are here, in a zip file containing the PNG and XCF (GIMP) format texture, the blender project file, the UV layout, and the compiled model file "Galli.tmd", and the partner material library "dinos_flamingcliffs.tml" generated by this tool. | |
|
| |
jaml655 Embryo
Posts : 36 Reputation : 0 Join date : 2016-12-18
| Subject: Re: TMD Model Processing Tool Sat Dec 31, 2016 9:33 am | |
| Nice How do you play the animations in blender? Edit: Had some fun making this guy, gonna start over for better results. It's an amazing tool you made equinox, it opens the door for quality new animals Coelophysis Model works ingame but having problems getting the texture in with it
Last edited by jaml655 on Sat Dec 31, 2016 3:58 pm; edited 1 time in total (Reason for editing : Miracle of the the Holy Grail) | |
|
| |
equinox- Embryo
Posts : 44 Reputation : 7 Join date : 2016-11-22
| Subject: Re: TMD Model Processing Tool Sat Dec 31, 2016 5:27 pm | |
| There should be a timeline at the bottom in blender, along with play pause buttons. Drop into object mode and that should work. I'll try to add in full texture support today. | |
|
| |
EchoGreen Embryo
Posts : 35 Reputation : 1 Join date : 2016-06-07
| Subject: Re: TMD Model Processing Tool Sun Jan 01, 2017 6:55 am | |
| Whoo, thanks for the prompt reply! I mucked around in Blender a bit and got the skin to display. However I have the same issue as jaml655 in that the exported tmd file doesn't display a skin in game. When opened in a hex editor, the strings that dictate which skin the model should use are simply missing. Any help would be appreciated -- I'm definitely missing something obvious, as your models clearly have skins in game. EDIT: A quick model I did to familiarize myself with the basics of Blender. This tool really opens up a lot of options. | |
|
| |
equinox- Embryo
Posts : 44 Reputation : 7 Join date : 2016-11-22
| Subject: Re: TMD Model Processing Tool Sun Jan 01, 2017 7:12 am | |
| I just released v0.0.5-alpha; it includes a fancier UI with support for managing material libraries.
Regarding material/texture support: The merge pipeline currently imports the texture names from the *.dae file, without updating the material libraries to include the textures. The Therizinosaurus I made used some little tricks, and some of the code included the pre-release I just released that allows material library editing. If you add a material to the corresponding library with the proper name you could get it working; however I'd suggest waiting for the next release to import the textures into JPOG.
The next release (0.0.6) is currently planned to include full automation of the texture import and export pipeline in the model merging pipeline. At that point I would consider the tool "feature complete," and the remaining updates will probably focus on making it work for the large carnivores that use multi-piece models.
If you really want to get the material integrated with the current version you can look at this bit of code and see that the material name used in JPOG is the texture name from blender, minus the "_0" at the end. So if use a blender texture named "Galli_0" then the corresponding JPOG material will be "Galli". Since the Gallimimus is part of the Flaming Cliffs formation you can open the material library "dinos_flamingcliffs.tml" inside the material library editor, select the "Galli" material, select the alive texture, then import the new texture and save the material library.
Another note: feel free to use Blender's subdivide tool in edit mode, or a subdivision surface modifier that you apply in Object mode to give you more vertices to work with when you want to deform the model. | |
|
| |
Mamenchi Embryo
Posts : 19 Reputation : 2 Join date : 2016-06-09
| Subject: Re: TMD Model Processing Tool Mon Jan 02, 2017 5:53 am | |
| Oh my God, this is incredible! Now I must try this! See what time, patience and determination can do?! XD | |
|
| |
equinox- Embryo
Posts : 44 Reputation : 7 Join date : 2016-11-22
| Subject: Re: TMD Model Processing Tool Mon Jan 02, 2017 9:46 am | |
| I'm aware that this program currently has quite a few limitations, however as the author I don't have the best idea of how to make the UI efficient and easy to use. If you have suggestions or grievances with the current UI (or program in general) please drop me a PM, open an issue on GitHub, or post in this topic. I'd really like some feedback on how this tool's UI could be improved, as user experience stuff isn't my forté. | |
|
| |
EchoGreen Embryo
Posts : 35 Reputation : 1 Join date : 2016-06-07
| Subject: Re: TMD Model Processing Tool Mon Jan 02, 2017 8:23 pm | |
| UI wise, I think there should be an option to bookmark certain folders for quick access.
I'm guessing scaling models up and down isn't supported as of yet? | |
|
| |
equinox- Embryo
Posts : 44 Reputation : 7 Join date : 2016-11-22
| Subject: Re: TMD Model Processing Tool Mon Jan 02, 2017 10:55 pm | |
| I'll try to come up with a way to improve the folder and file access scheme. I'm probably going to change the UI to use the default (operating system) file browser instead of the Java one.
Regarding global scaling: Global scaling requires modifying the underlying armature of the models, which in some cases also requires modifying the underlying animation data. Currently I'm focusing on the pipeline that allows users to edit the underlying mesh -- through blender -- and global scaling (and local bone scaling) can't really be part of that pipeline. Currently the underlying input/output layer supports all the necessary operations to do these; I just haven't worked on a UI yet. What I might do is add a "Model Modification" tab to the editor that allows global scaling, local scaling, etc... | |
|
| |
mcblegal123 Embryo
Posts : 15 Reputation : 3 Join date : 2016-06-13
| Subject: Re: TMD Model Processing Tool Tue Jan 03, 2017 1:33 pm | |
| Thanks a lot for the tool, but could you make a video of how to install it and how to use it? Thanks | |
|
| |
equinox- Embryo
Posts : 44 Reputation : 7 Join date : 2016-11-22
| Subject: Re: TMD Model Processing Tool Tue Jan 03, 2017 2:14 pm | |
| Currently the installation process and user interface are in a state of flux. Until I've got them to a point where I feel they are stable I'm going to hold off on putting much effort into providing tutorials that would become useless after an update. I plan to write more documentation once I reach v1.0.0 (the first "stable" release) | |
|
| |
mcblegal123 Embryo
Posts : 15 Reputation : 3 Join date : 2016-06-13
| Subject: Re: TMD Model Processing Tool Tue Jan 03, 2017 2:24 pm | |
| | |
|
| |
equinox- Embryo
Posts : 44 Reputation : 7 Join date : 2016-11-22
| Subject: Re: TMD Model Processing Tool Wed Jan 04, 2017 10:20 am | |
| Also, mainly just a notice: I'm going to be busy with other stuff for awhile now (break is over) and I no longer will be putting out releases every other day. I'll try to strive to get something done each week, but who knows if that will happen.
Edit: How useful would it be to be able to visualize the results of the merge before opening JPOG? (An embedded model viewer) | |
|
| |
EchoGreen Embryo
Posts : 35 Reputation : 1 Join date : 2016-06-07
| Subject: Re: TMD Model Processing Tool Wed Jan 04, 2017 10:24 pm | |
| IMO Blender displays the model pretty much as it appears in game. It shouldn't be necessary. | |
|
| |
jaml655 Embryo
Posts : 36 Reputation : 0 Join date : 2016-12-18
| Subject: Re: TMD Model Processing Tool Wed Jan 04, 2017 10:46 pm | |
| If the viewer allowed us to preview the model edits with all its animations then it definitely would be. It would help with fine tuning the model to look natural with the animations. But for just viewing the model, Blender handles that well | |
|
| |
Troodon Embryo
Posts : 33 Reputation : 0 Join date : 2017-01-03
| Subject: Re: TMD Model Processing Tool Thu Jan 05, 2017 1:33 am | |
| Hey, I have Windows XP, do you think it will do? | |
|
| |
Sponsored content
| Subject: Re: TMD Model Processing Tool | |
| |
|
| |
| TMD Model Processing Tool | |
|