(March 2024) Monthly WIP Screenshot Thread

More examples of custom collision shapes in Minie physics: spherical segments and parabolic lemons…
Segment

Lemon

17 Likes

I’m working around Lemur to implement selection NOT based on the mouse.

First I’m selecting by using the keyboard.

After I get the code structure right, I’m going to implement selection via gamepad. This part should be easier.

The image above shows the selected button getting bigger (towards the right) when selecting up or down with the mapped keyboard keys.

2 Likes

Both should have already been automatic, actually. Lemur already has built in keyboard/gamepad navigation.

Edit: and note that for things like buttons, the built in focus-based navigation will even try to run focus/unfocus effects… so you could even achieve your growing/shrinking button effect if you don’t like the default text color change.

1 Like

Hello @pspeed

My code is as simple as Getting Started · jMonkeyEngine-Contributions/Lemur Wiki · GitHub

I can see the class InputMapper in the links below:

https://github.com/jMonkeyEngine-Contributions/Lemur/wiki/Modules#inputmapper
http://jmonkeyengine-contributions.github.io/Lemur/javadoc/Lemur/

but without a tutorial it would take a really long time to put things together.

I’ll go over it little by little to not re-invent the wheel, though.

Thanks.

By default, out of the box, with no other setup at all… if you show a panel on screen and set the focus to some field on that panel, then using the cursor keys will navigate the fields on that panel.

Customizing that behavior should definitely be documented but the default focus handling is default. Nothing to setup.

1 Like

I’m able to request focus:
GuiGlobals.getInstance().requestFocus(button1);

So now I’m able to navigate based on the bindings listed here:
https://github.com/jMonkeyEngine-Contributions/Lemur/blob/master/src/main/java/com/simsilica/lemur/focus/FocusNavigationFunctions.java

Moreover I enabled the gamepad:

AppSettings settings = new AppSettings(true);
settings.setUseJoysticks(true);

Main app = new Main();
app.setSettings(settings);
app.start();

Using the gamepad on the menu is so cool. :blush:

1 Like

I’ve been slowly making progress on my Particle Monkey editor. I haven’t translated the c++ curve / gradient controls yet but I have some placeholders there.

10 Likes

In the first part I’m using a gamepad to navigate the menu.

In the second part, notice that the mouse cursor is moving. I’m using mouse and keyboard to navigate the menu.

Huge thanks to @pspeed for the lemur library. This is the great UI library. :slight_smile:

8 Likes

I needed this today. Thanks. :slight_smile:

6 Likes

Hello everyone, new month, new editor!
In this video I want to show you a short demo of the graphical editor I am writing using the ImGui library with JME. I am studying how to use the graphical components to create the best user experience. So far I have been going pretty fast, having already developed editors with Swing, JavaFX and the latest with Lemur available on github. In this editor there are tools to view Scene Graph elements, Post-Processing Filters, and a tab to add and remove your own AppStates from the scene (wip). There are different editors for editing Nodes, Geometries, Materials, Colors, Lights and Controllers. It is possible to view AnimClips, AnimTracks, TransformTracks and skeleton Joints. It is possible to add/remove nodes, shapes, lights and particle effects. It is possible to change the Theme of the editor with 5 different styles. The work is long and the code needs constant optimization.

In the meantime, I am testing the SDK and making some suggestions for improvement, thanks to the collaboration with @tonihele and @rickard .

Cheers :wink:

11 Likes

What is ImGui? I would like to build a simple graphical editor. should I use it?

ImGui is an immediate-mode gui library. It’s pretty popular in the c++ world to build quick editors and tools. There are some pretty good Java bindings. I’ve been using ImGui for my particle editor as well.

3 Likes

It would be nice if you could write a post comparing all the alternative UI libraries.

1 Like


(gui for interaction)


(results of the interaction)

Hooked up the Checkbox and Slider gui elements.

In order to learn without asking questions I forked the repository below to my netbeans IDE. :blush:

https://github.com/jMonkeyEngine-Contributions/Lemur/blob/master/examples/demos/src/main/java/demo/DemoLauncher.java

2 Likes

Yeah, lots of decent examples there, I guess. It’s a good idea.

1 Like

  • Separated the upper body (arms) from the lower body (legs). Will add the legs later.
  • The pistol is a separate node so I can swap it for any other node/spatial.
  • Now the code that attaches the upper body to the camera is just two lines. I use to have 2 entire custom classes to handle that. :joy: This because separating the upper and lower body simplifies the logic.
3 Likes

Are you ready for the bullet storm? :gun:

The gif shows the bullet animation triggered by pressing Key K.

This implementation is very clean. I’m just instancing the node. I’m not manipulating the bullet/bone armature.

Since it’s so clean I checked and there aren’t any memory leaks. Once the bullet node is detached from the root node, the java garbage collector acts.

The bullet animation was created is blender. Previously I was coding a routine for the bullet, but that’s very limiting.

2 Likes

Here’s a screenshot from the Blend shader I’ve been working on, showing a dissolve effect using noise with a rust texture:

The source code is available for anyone who wants to try out this shader. I also made a post with more details and a demo video in this other thread for anyone that is interested: Shader Showcase Game Jam - #58 by yaRnMcDonuts

14 Likes


I’m on my way to implement hunched over/crawl player state. In this state the player will not be able to shoot. But they will able to access narrow passages height wise.


This is the pose I’m trying to emulate.

I’m implementing this pose instead of crawl on the knees or crawl on the floor because it’s simpler and works great on multiplayer games. Not that’s I’m trying to make a multiplayer game. Just future proofing my ideas.

To Do:
Tweak the camera and the character model. They are handled via the Update method. So they are lower.
Tweak the key bindings. I’m going to bind LEFT CTRL to this player state.

5 Likes

I made a quick demo video of the animal AI progress. Sort of the conclusion of the last three live streams.

Lots more future work to do but this is enough for this upcoming release.

11 Likes