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.
I have a few cassettes of older music that I wanna sample and put into something in Abelton. Why use cassettes? They’re cheap as hell, this one was $4 from my local record store.
I also made this guy:
Simple enough, getting it in game went smoothly. I don’t think I want to make this a first person model I’ll probably just attach it onto the front of one of the bots to make a kamikaze bot that rushes the player.
I also spun up a quick “use” system, which is just a ray-trace off the front of the player’s camera to whatever is in front of them. Then I made a generic “usableObject” interface which receives use commands that anything can implement.
This will be the first usable thing:
Idk what it will do but my hope is to make quick chat logs when you press use, or even a buy menu.
Been doing more with the game and got to the point where levels are starting to feel like levels and my “assetImports” folder is blowing up.
More work still needed but I’m starting to get a warehouse vibe that I think I’m going to roll with until it gets stale.
I pretty much gave up on the hit reactions for now. If I come back to that I think I’ll need to make a human-style character, then look through some unreal tutorials before I can move back to the bot.
Working on these guys made me pull in all of the knowledge of unreal and blender I’ve learned over the years. I’ll break it down into hurdles that I had to overcome.
1.) Retargeting skeletons
All of these models have their own skeletons, and each animation that you import has its own skeleton assignment. For the life of me I had no idea how to swap animations that I imported from version 1 of a model to version 2 (i.e. all of the skeleton bones had the same names). I went down a dark path of ik rigging just to realize I should’ve just right clicked a single animation.
…nuts…I had to re-import the assault rifle because I removed the stock for the bot and I made a new animation for the bot:
2.) Making the bots reload.
Again so the goal was to make the bots throw a physical object into the air so that the player would have the opportunity to shoot it. This is a crazy concept that requires a lot of tweaking to get right. The idea here is that I mark a point on the back of the bot as a “throw point” where I spawn a mag.
Then Unreal has a system called “Animation Notifies” which lets me communicate from an animation asset through an animation blueprint back to the controlled pawn.
You can see there are two here: “release Mag” which is the bot dropping a mag and “Spawn Mag” which creates and throws the new mag.
These are then tied to triggers within the animation blueprint to call back to the pawn.
Honestly not a great system but its apparently how unreal wants us to handle these things. Ideally you would have a nicer hierarchy of ownership but making what I would consider “Good” software left the room once I decided to go with blueprints.
3.) Unreal’s AI is helpful and horrible at the same time.
The tree I showed yesterday was very simplistic relative to this. When looking at this the first reaction is “oh yeah that makes sense” then “wait why would you do it this way” then finally “I don’t understand what this picture is”. So quick explanation: start at the root node, go down to the sequence node which triggers the nodes below it from left to right. The green box uptop is called a “service” and essentially is a while(true) loop that triggers while the sequence is executing. The blue boxes are if checks that happen before executing each node, for example “doIHaveAmmo” is used twice here and checks if the bot has ammo before executing. In the event that these blueboxes return false the entire sequence is canceled and you go back to the first node in the sequence(which in this case is the reload node).
4.) Niagra confuses me and I might get back into HLSL to avoid it
I made the muzzle flashes but I still kinda hate how they look. I started trying to make some 2d stuff but that ended up not really working:
The idea there was to try to make a ribbon that had a sinewave of width that would be lower frequency and a radial sinewave that would give bumps on the side. That didn’t really work however.
Then I got creative with making a mesh in blender and importing it in as the firecloud that comes out the front of the gun.
I stuck with that 2nd iteration and it seems like its better than the ribbon but I still want some more cloud-ness to it.
When firing (as seen above) it kinda looks like an orb just kinda spawned in front of your barrel. Most other games try to do this with 2d sprites however I’m a big fan of 3d sprite muzzle flashes like those from the tf2 announcement trailer:
I might just add some more spikes onto the current model and call it quits on that front.
Now next up for work is probably the environment, I have a bunch of reference images of place I thought were cool in boston and the surrounding area I’m going to try to generate some textures using them as inspiration. I then eventually have to do audio but I’m really dreading looking back into unreal’s dsp system. It’s very intense (and I literally do hardware based DSP in my day job).
Woo! Got some animations in game, I made the mistake of thinking that Unreal engine control rigs were actually something useful for what I’m doing. Once I found that out I just gritted my teeth and did the whole animation process in blender and transferred it over into unreal.
These animations will definitely need to be remade at some point but I’ll punt on that until I think I have a level of robot shooting going on.
I tried being clever and pretty much wasted 6 hours….
I spent a bunch of time rigging up this model, a large portion of the time was spent undoing the dumb modifiers I put on the legs. Specifically I used array modifiers and mirror modifiers to generate the legs after making the first one.
Using this technique ensures that when you finally go to export you need to manually re-assign origins somewhere on the model which is something you really need to keep track of when rigging properly.
This all went good but I decided to put the bones 90 degrees offset because I thought it would make it nicer to manipulate. Which I would say is true if I was going to manually manipulate the bones. However, I tried getting smart and moving into unreal engine control rigs: https://dev.epicgames.com/documentation/en-us/unreal-engine/control-rig-in-unreal-engine
Which in theory should let me animate in unreal, which would save me an export/debug step which I normally have to do from blender. However I kept hitting weird issues with setting up controls and having unreal auto-recognize things… Then I noticed the issue once I tried testing the physics asset:
So that isn’t good. Essentially unreal makes a set of simple geometric shapes that it glues onto your model when you import to try to get a good collision box setup. In this case me twisting the bones make the system give up and just surrounded the body with a capsule and legs with one big box:
So I attempted to fix this (which looked good)
…But then I hit the next problem…
What’s going on here is that there’s a parenting loop going on. Looking back at the original model I put the bones 90 degrees offset from the mesh (again because I think I’m smarter than how everyone does stuff).
With the bones offset from the mesh I had to apply the physics geometries to the mesh itself rather than the bone. So then unreal was trying to modify the position of the mesh, but the bone had no constraints to the physics so it tried putting the mesh back, then the physics manipulated the mesh, then the bone manipulated the mesh, then the physics manipulated the mesh, then the bone manipulated the mesh….So that comes out with the result you see above which is everything kind of giving up. The fix here is to re-orient the bones so I can attach the physics geometries to the bone….I basically wasted my morning setting myself up for failure. However this is the first complex mechanical mesh I’ve ever done so it’s still a learning experience in my head.
Remade the robot for the game. This one has some more real world inspiration and is quadruped which I think should make some of the animations easier (easier in concept not really execution).
There’s still some work I might do on the front (there’s that blank space) but I might just stick with this one to rush it in game.
In my head this is a converted cargo type robot, and I wanna keep the same idea where a new magazine shoots out of the back and the robot has to catch it. I keep having this idea that the player should be able to identify this and can shoot the magazine before it gets to the rifle.
Spent some time today setting up and rigging an assault rifle for the game.
It’s still kind blocky but any more effort on this would end up being on details that are un-needed. My main goal with my current modeling streak is to rush a bunch of stuff in game to make a simple fps.
It seems to be looking fine in unreal also.
Now that I have two bonified animated weapons in game (I’m aggressive not doing any reloads, just goldeneye style hide weapon reloads) I can start working the enemy side.
I have some ideas but mostly I’m thinking some kind of drones rushing you and moving in inhuman ways. I have a start here but I think I need to redo the legs/locomotion of this guy.
Maybe not so in execution but definitely in concept. I could take down some of the work I need to do if I just re-use models on the enemies. If I get a good single enemy variant down I can just throw other weapons on top to provide differing variety of enemies.
My friend is making a webpage that handles a dashboard to some cyber security stuff and he asked me to make a globe.
Well technically he didn’t ask me he just suggested that we get a spinning globe on there. Instead of googling for a free solution like a reasonable person I thought “That sounds dope” and I rushed to make a globe in blender (cough cough https://globe.gl/). However the globe ended up being WAYY to good.
The data is then converted into a normal map and I make a blue -> brown -> green gradient on the maps which isn’t always accurate (which is why there’s no inland water, such as the great lakes.
I was debating on texture painting in the blue where it obviously should be but that was pushing it in terms of how long I wanted to spend on this. Majority of my time was spent integrating the globe into three.js , then wrapping that in a class which then got wrapped in a react component. However, I’m pretty happy with the results. Only other cool thing I could think of doing is adding some kind of wave effect near the shores but because the exported diffuse map is like 3 mb I didn’t want to add much more here.
If you zoom in enough some things are just missing, for instance. Delaware?
My plan there is to solve in post processing in the actual react widget to draw some state lines.
The end goal had lat/long lines, a alert system and a cursor to select said alerts. Pretty dope all in all.
(I also weirdly made the stars in the background in blender by threshold-ing some noise)
I made a knife in blender and pulled it into unreal.. Haven’t rigged it up yet but the plan is to get a skeleton on it sometime tomorrow and throw it in the game. Maybe at some point I’ll start making the “game” but right now I’m just living off of this new .gltx high.
There’s probably some huge gotcha with the .gltx that I’m not seeing because this has been some of the easiest imports I ever did.
Even the sizing was easier. Man why did anyone ever make tutorials using .fbx?