THE WOODS!

Jumped back into unreal but I’m heavily procrastinating the game parts so I started messing with some of the environment tools in unreal. Specifically I’ve been poking at the grass setup tools (https://dev.epicgames.com/documentation/en-us/unreal-engine/grass-quick-start-in-unreal-engine). Not too complicated essentially, your environment drives a few inputs and outputs in your landscape material.

So I whipped up a quick ground texture in gimp:

Where each layer is a bit more grass ontop of the dirt:

Then I whipped up two quick grass and tree models in blender.

Then once you import both into unreal you can tie everything together using a “LandscapeGrassType” which is just a data holder for what you consider grass:

Then throw it into your material

The final result was surprisingly good. Obviously I could add more grass, touch up the ground texture, make a tree that doesn’t look like a plastic pylon. But I’m dumbfounded how far this stuff has come along from unreal 4.

I have a strong feeling you’re straight up not supposed to use this system to add trees (You can see in the video above that the bullets don’t collide with the trees). But I’m still happy at least that the workflow is quite simple.

Drawing onto the landscape is very easy also, If I wanted to make a path I can just draw the rock layer in a quick line like in the video above.

Now to the actual game stuff I’m thinking my next change into game-play will be moving things closer to kind of a pseudo helldivers mission where:
1.) Players spawn on a big map
2.) Enemies spawn a wave to attack the central spawn and players fight to survive/save the base
3.) Once the enemy wave is over players will leave the base to try to destroy spawners
4.) The next wave starts, the players run back to base and restock
5.) Rinse and repeat for all spawners
5.) Once the players destroy all the spawners a boss wave starts
6.)Players defeat the boss and the game ends.

Seems like a reasonable goal, it also sounds like a multiplayer game but honestly I dont wanna go down that rabbit hole yet. I have half of a multiplayer game made from awhile ago which seems like a good idea but it requires you to modify the engine build to pull in steamworks. My goal here is still to avoid using c/c++ so I can focus on just assets until I REALLY need to optimize. In addition making 3rd person models will probably require me to re-make a bunch of the blueprints which sounds horrible at this stage.

Maybe I should have compressed this a bit more

Its cold and I’m unhappy so you can join my in this cacophony of GENERATIVE AUDIO! (Please turn your speakers down, this is the loudest thing I’ve put up and I don’t wanna re-upload)

“How did you achieve this musically inclined symphony??” I’m glad you have asked this:

1.) Operator

2.) A Clipping and distorted 808

3.) A sub sound (Which is also operator I guess)

4.) A hit of that SWEET SWEET Compression

(also an LFO to play with the sub sound)

Now I’m going to scream into a microphone about my commute and complain about needing to drink more water.

I also found an old kindle (like a HELLA old kindle 1) and tried modeling it in substance and blender. Spoiler: it looks HORRID

I thought I could be lazy and not model buttons and just throw them in a bump map. But the geometry lords laughed in my face and made everything terrible (also I spent way too long making this color map in gimp):

Which honestly this seems simple but I spent atleast like 30 minutes before figuring out that gimp added tiling symmetry editing (https://docs.gimp.org/2.10/en/gimp-symmetry-dialog.html) which is AMAZING!

But lessons learned.

Table Part 2

Remade the table this morning:

The “Tris” number is something I forget to mention yesterday which is the thing that directly correlates to how hard a renderer (such as Unreal Engine) has to work to render something. Note the number is around 500 (which honestly might still be too high). The table yesterday:

Hopefully that reinforces the points from yesterday. In addition the UV maps are much easier to see, simple to understand and are broken apart by each component of the table: tabletop, legs, cross bar, leg flange and crossbar flange.

In addition proper use of mirror modifiers lets you do a single object:

Here’s the mirror modifier for the legs:

All in all its a table, it does what it’s supposed to and holds things off the floor. If I wanted to get interesting I can export each portion to unreal individually, re-attach things in game then when the player breaks the table it breaks semi-intelligently. However, I just wanted a table not a crazy physics object (yet).

Also here’s the table colored:

I the crappy wood coloring is from a quick noise texture in blender:

I have better wood/metal materials in the game so once exported that should clean itself up (hopefully).

How to not to Model a Table

Look at this table! Seems good right? …Right?……RIGHT?

I can promise you this is not good, you see when you make 3d models you can’t just “Make” the models. You need to plan and thing it through, the big things are:
1.) Keep the model as many simple shapes as possible
2.) Avoid complex faces that are not quads (i.e. 4 sided 4 vertex where it’s possible to rotate the face to be a flat rectangle
3.) Don’t repeat work (aka if you’re making a table make the leg once and copy+paste it…)

Now let me show you how I violated ALL of these checks

Above is the model view but I’m showing you the faces and vertexes of the model. You can almost immediately see the violations here. Everything is one piece, the legs are obviously done individually, there’s a weird slide in the middle of the table which serves no aesthetic value and if you zoom in on the top of the legs…

A TRIANGLE! However if you take the same pic in wire-frame you can see something much worse.

The bit circled in yellow is a hidden and folded face!!!! A big no-no especially for game dev where you’re trying to minimize the number of faces rendered on screen at once. Now you may ask yourself “Will. It’s still a table why do we care” the problem comes in when you make UV Maps.

from https://lkinulas.github.io/development/unity/2016/05/06/uv-mapping.html

To the uninitiated a UV map is a 2d projection of the external facing surfaces of an object, for a cube if you unwrap it you’ll get a chunky plus sign shape(more about this here: https://lkinulas.github.io/development/unity/2016/05/06/uv-mapping.html , which I skimmed but it seems better than anything I could write). Usually the way that adding textures onto a 3d model works is that you attempt to make the UV map in blender, then you dump into substance painter or equivalent program where you can paint onto the model in 3d, then you can dump the files out as text images. For example here’s the UV map of a keypad I made last year

Which here each of the keys have a single UV map, so therefore they have a single image to represent the color (known as albedo majority of the time, atleast with blender and unreal which both use “Physically based rendering” see https://en.wikipedia.org/wiki/Physically_based_rendering)

The 3d model holds the decoder-ring (which is the UV map) to convert the image file to properly positioned colors on the 3d model. Now you make now ask “hey everything you made for this game is literally a flat color and there’s no detail to mis-align” which is true. However with modern game engines they literally take the UV map and use that information to calculate how it interacts with light. An improperly made UV map can cause 3d models to flicker in bright lights, make them dark when they should be light and vice-versa. In the worst cases it can cause them to disappear entirely! In addition when you start doing things like bullet holes or blood stains on world models, an improper UV map will make the decal that is put onto the model become very mis-aligned from the intended position (think a bullet is shot at a table, the bullet hole should be where the bullet hit).

So now back to the table. The main issue here is that blender is actually pretty awesome at automating the generation of UV maps…Assuming your model is a simple geometry object (i.e. sphere, cube, cone, torus, plane) and doesn’t have the triangles. So if we try to automate the export of the table:

To give context of what you’re looking at, the left hand side shows each face on the table face, each grey square directly corresponds to each face on the 3d model on the right. If I select and individual face:

It shows exactly where the face will appear on the output image. So if you go back to the first image you can see that if I tried to just blindly apply either lighting effects or an image to the uv map we start hitting issues. For instance if I put a light directly on this corner

What will most likely happen is that everything in between those two faces will be lit in addition to the two faces in question. What’s in the middle you ask?

Not the areas you would expect to be lit. There’s also other factors here that I could get away with by getting creative with materials (which determine the direct lighting parameters like luminosity, albedo etc) but that would be much more work than just restarting, making a tabletop model, making a leg model and making a crossbar model then just copy+pasting the whole thing again.

With all of this you may also still be asking:
1.) Why are you making a table
2.) How does this fit into a game?
3.) Why are you blogging and modeling on Saturday night?

Answers:
1.) I haven’t made a model in a few weeks and I wanted to get my feet wet again
2.) Idk, places have tables. Wooden tables. Nice tables. With cross bars.
3.) It’s cold. I feel like crap and shut up

Also I’m straight up dreading adding more animations to the robot, I need to add a knife stab animation, a grenade throw animation and some kind of heavy shot animation. Unreal is very very bad at handling an updated model with updated animations. The process involves re-exporting everything as another .fbx file, deleting redundant animations, deleting the new re-imported base model and re-assigning each animation’s skeleton to the original skeleton and hoping you remembered the export settings from 6 months ago. If your forgot the aforementioned export settings you need to turn a knob keep doing the same process until things look kinda right. I’m debating on buying maya just to avoid this situation but I’d love to avoid learning new things until I get this silly game on steam.

Editors note (1 day later): I realized I wrote this whole thing without explaining why I did a bunch of dumb stuff: I was getting back to modeling and I just ran with the feelings for an hour rather than thinking it through. So I made a bunch of critical early mistakes which makes the model very hard to use.

This time with less computer

I swear only the 808 was from abelton

Green track is the kaoss pad (https://korgusshop.com/products/nts-3-programmable-effect-kit?_pos=3&_sid=9d3d6f0c3&_ss=r) , yellow is my bass, brown is from the po-20 (https://teenage.engineering/store/po-20?srsltid=AfmBOopbNWwmoK9D7lDfaQzFf8onkUlwYCFjm5SLCwQ32HzNQitBiizg, gift from my brother) , peach, tan and pink are all from the horner instructor 32 (https://hohner.de/en/instruments/melodica/student-melodicas/student-32-melodica I can only find the student version I guess I got a second hand teacher’s?)

But you can argue that the po-20 and the kaoss pad aren’t much better but at least it required a little bit of technique (not pictured is my bass which I played three notes on. Also ignore the pc speakers). Should have I properly mixed at the end? Sure, but why do that when you can compress and forget.

This should be on a t-shirt

(Don’t judge me for staying in C major)

Start the new year off kinda lame and unmixed

I started today trying to look at more legit known decent chord progressions, then I realized I never learned roman numeral notation (see https://www.activemelody.com/wp-content/uploads/2019/11/The-Chord-Numbering-System.pdf) but I got distracted and just kinda started throwing crap into abelton until something sounded coherent.

The bass sounds alright but it still is midi-ified because I opted to use a sampled bass rather than being less lazy to use my bass. I’m also moving down the path of using the arrangement view to handle making these loops from now on. It forces me to think of anything I make as a whole piece rather than a collection of loop states.

All work and blank scenes makes will indifferent

I also finished the blade itself (book one of this series https://en.wikipedia.org/wiki/The_First_Law) which I enjoyed (also it was pretty much the only book I read in 2024) but it ended kind of abruptly. Felt as if the whole series was written at once and then arbitrarily chopped. I found out today that one of the side books is getting made into a movie so maybe I’ll try to read that before it’s made.

This might be better if I didn’t make it on a computer

I dig the vibes from this but there’s a few big issues:

  • The bass sounds midi as hell, like doom 1 level of computerization
  • I had trouble mixing the drums, I dug how robotic those sounded but it was hard balancing it with the lead synth
  • The Lead synth is cool as hell but really I would’ve rather a real distorted as hell guitar

Maybe I’ll go grab a crappy guitar and re-record this with real stuff to see if the problem is the lack of humanization or if it’s just a poorly thought out song in general. My bet is that once I try playing it, I’ll see some weirdness that will change the underlying song to be more of a real thing.

“We have several items for purchase!”

I made a store stand that I’ll put a bipedal robot behind to be a shop owner. It’s currently not scaled or setup right to work. I think I’m going to make the lightbulb it’s own object that way I can swap colors on the fly. Right now I kept them in because I wanted to see what they would look like on the wire there. On the counter is a cardboard tip box and a metal lock-box.

Behind the Counter is a metal bucket (filled with what? Idk) and a generator that I’ll probably break out into it’s own object also.

In addition I wanna put a decal on the sign up top to say something like “robot killing weapons”.

Also I need to copy +paste the table a few times to make a full stand kind of thing. The proportions are definitely off so when I pull it into unreal it will be flippin’ huge. But before I do any scaling I’ll need to finalize everything on the table and fix up the wires so they’re not as blocky. Flat shading is fine but I think I can keep that vibe but put some wood texture on it for the next go around.