Modding Stonehearth's Graphics Test Program

Take a look into this thread:

@Nicedude80 you can open or extract the .smod files with programms like 7zip or winrar and .json files for example with notepad++ the .luac are in their current state in binary form and cannot be read with a texteditor :wink:

What did you use to decompile the luac files? Iā€™m trying some stuff but if youā€™ve got an easy way that would be better.

@Xavion i used a command line decompiler. But as i wrote above i am not going to eplain how i did it because i donā€™t want to destroy the hard work of radiant, Maybe you wait until they publish a official modding tool :wink:

Just a few minutes ago I got luadec51 working finally after trying what I shouldā€™ve tried in the first place and just googling a binary. Also did you see this post?

Iā€™m gonna take that as permission to try modifying the lua here and see how much I can get done before it becomes too much effort.

1 Like

Who says that only pigs can fly? :wink:

So this is the first custom animation I was able to execute. It is not that beautiful, but to be honest I was more concerned on getting it working at all. I have used Blender to create an animation (based on the .qb-model which comes with the Graphics Test Program) and exported it with the Add-On I am working on. So far it seems like everything works. The Add-On is not very comfortable to use yet (letā€™s see how comfortable it can be at all) and the process requires some manual work. I will try to smoothen the process and adjust the Add-On so it can be used to animate existing models but also own creations.

8 Likes

Great. Did you do the animating with the bone rigging method or with the Tom method?

No rigging. In the meanwhile I have decided for myself that rigging takes too much time and is maybe an overkill for such small animations. I have just parented the single meshes and rotate them as required.

The Add-On for Blender will support this approachā€¦ not sure for rigging. While I prepare it now for the first release, I will try out if it works with both.

Well I am fine with just conecting the meshes. I tried the rigging method once myself, takes indeed a lot of time too.

I came up with this.

3 Likes

Uh, that looksā€¦ interesting :wink:. Seems like a bunny dressed up in this warrior outfit behaves a bit unexpected :stuck_out_tongue:.

I also changed the male for a female and Iā€™m using the warm hands animation. Warrior? Oh no sir, the souls of the dead are trapped with in that armor and they are trying to break free.

1 Like

ā€¦ and youā€™ve changed the displayed message and obviously colors for earth and gras. Probaby I will be stucked for this week with Blender and try to get the Add-On somehow stable / sharable. But am also looking forward to dig a bit more into the files. There must be some other things we can modifyā€¦ although I see us reaching some serious limitations. After all it is only a Graphics Test Program, no the game :disappointed:.

Yeah, I want to learn as mush as I can now from this. But Iā€™m guessing the early release will be a lot easier for us to mod. Now, the only problem I see is animating.

We need a way to make rigging a lot easier. Maybe a set of presets for us all to use. Like Running. jumping and eating or more complexed moves like running under something or jumping off a cliff and landing onto the groundā€¦ Someone could put it them somewhere for us to download.

Can you explain a bit more in detail what you have in your mind, not sure that I understand?

As you can see I have added another animation. Let me explain the workflow on a very high level for an existing model based on the tool I am planning:

  1. Load .qb-file into Qubicle and export it as .obj-file
  2. Load .obj-file into Blender
  3. Load related skeleton file (.json)
  4. Prepare for animation (some background work)
  5. Start animating
  6. Export your animation (.json)

If you have an existing model, step 3 and 4 are loading the important information from the .json file and will move the model to the right position. After that you should have the right pivots in place and in some cases (I need to hard code this for every single entity) even the hierarchy between body-parts (parent-child-relationships). What you need to do is mainly to pay attention and collect / prepare the right files. You will be able to export your animation and receive the required .json-file which you need to include it into Stonehearth. For custom made models the workflow looks a bit different as you have to define your model by yourself for the first timeā€¦ after that it works similar as the Add-On will be able to align an .obj-file to its related .json skeleton.

What I have also in my mind is to allow the import of an existing animation. I.e. you would have to do e.g. steps 1-4 but after that you could import an animation into Blender and you see the different frames loaded into the tool. However, this will probably not be in from day one and I have to find out first if that works at all like I have it in my mind.

1 Like

I think our beloved Team Radiant has opened Pandoraā€™s Box with giving this thing awayā€¦ luck for us, only the good things were left when they had opened it.

2 Likes

My idea is this and I think we can write some of the presets in .json and have them add them into the animation program.

A set of presets that would be applied during animation. For example, I export the .obj-file to begin animation and while the user is in the program. They select the preset running and jumping. Meaning the .obj runs and then jumps to end action. The users can drag and point when the action for running and jumping begins and ends.

They would then have to adjust the size of the preset to the rigging of the .obj-file. After they are done making the right adjustments. All they would have to do next is complete their work and export the animation. I see this more as a short-cut. So, the user would not have to do it by hand. Which we all know can take hours.

Something like this would make a good preset.

Hmā€¦ not sure if this fits to the way how Stonehearth handles it. As I understand from different streams shown by Tom you have rather short animations in Stonehearth. So ā€œrunā€ would be already a stand-alone animation as ā€œjumpā€ would be a second one. I am not sure how often we will see longer sequence within one animation.

Where I think that the import of animations might be interesting is more in terms of adjusting them to create a different variation or even more in cases where you create your own model, so you could adjust existing animations to fit your design.

Overall I am a bit careful by setting the right expectation. As far as I see it at the moment, custom animations will require some work. It might be hard to create a ā€œdrag and dropā€-kind of tool which makes everything super simple and easyā€¦ letā€™s see.

Yeah, we will have to wait and see what we can and canā€™t do.

Iā€™m really torn. I want to respect Radiant Entertainments wishes but I want to also learn from their luac. The question is, is the luac compiled or obfuscated. If it is compiled for performance reasons and Radiant doesnā€™t mind, then its fair game. If it is compiled to obfuscate their IP, I can respect that barrier. I wish they would give us a clear answer.

If Radiant said ā€œPlease donā€™t decompile the luac, except for personal knowledgeā€. I would not and Iā€™m certain the forum would not allow links to decompiled code and that would pretty much end modding on the Graphics Test. If on the other hand they are OK with it. Lets post that code so we can do some real modding.

Oh, Radiant, where do you stand?