Hi! Here you’ll find info and developer diaries on my upcoming game Grab n' Throw, Unreal Engine 4 -specific tips, fixes and implementations, posts on programming, IT and music, and various other writings.
Grab n Throw
Posts
Situation You’re a monster like me and have standardised on newline braces in PowerShell, but the vscode PowerShell extension has used inline braces.
Solution Copy the snippets you use from %userprofile%\.vscode\extensions\ms-vscode.powershell-1.5.1\snippets\PowerShell.json Add them to your user snippets for PowerShell (CTRL+SHIFT+P > Open User Snippets > PowerShell) CTRL+F, regex mode Find \{", Replace with ",\n\t\t\t"{", CTRL+, to open user settings, then add "editor.snippetSuggestions": "top" Note: there are PowerShell user settings for code formatting, but I found these didn’t apply to snippets.
[Read More]
Read Valid Input in PowerShell
Previously, any time I wanted to validate input in PowerShell, I’d write custom validation functionality per-script. It turns out that I reuse the same basic methods though, so I’ve created and shared a generalised function!
This prompts users to enter input that matches a displayed list, then returns their input if successful. This works from VM or object selection, to simple y/n acceptance restrictions.
The full details and code are here: https://github.
[Read More]
Setting up Reaper Backups and Paths
Reaper is the DAW of champions, but even champions are reduced to tears, and a lifetime of pained staring-into-the-distance, by the loss of their entire creative output. Protect yourself from emotional damage by applying the following steps to your recording set-up. As always, adjust it to suit your own workflow, and tweak where you can. Let me know if you’ve got your own helpful steps to add.
Note: This works with Reaper, but should be applicable to any DAW that has a reasonable level of The Files mentality.
[Read More]
UE4 Pie Graph/Chart Material
(Download link at the bottom)
In Tropical Manipulation, I need to display the share of customers that each player will receive, and communicate the price interaction mechanics (a lower price gets more customers, etc). For this I’ve created a pie graph/chart material, so that I can add an image widget and use it in UMG.
I actually posted an early version of this on the UE4 forums, but it was a basic version that only gave results like this:
[Read More]
Create A UWidget At Runtime
UE4’s built-in blueprint function ‘CreateWidget’ only allows you to specify UUserWidgets, so to add something basic like a button, border or text at runtime, you have to create a custom UUserWidget to wrap it - very inefficient. Luckily, there’s a ConstructWidget() function in C++ that can easily be exposed to blueprints.
Make sure you’ve got a BP/C++ project, then create a blueprint function library C++ class.
Code Add this to the .
[Read More]
Height Based UE4 Island Landscape Material
For the island used in Tropical Manipulation, I wanted a simple material applied that I could quickly tweak to get a great looking island. I investigated using landscape layers, but found that for what I was using it for (an unchanging backdrop to the game) they wouldn’t be necessary.
Here’s what I wanted from the material:
Different areas based on height Beach - sand Flats - sand and grass Lower mountains - grass Upper mountains - snow Automatic rock textures on the side of cliffs A way to transition between areas A way to aesthetically combine sand and grass on the flats Colour manipulation Quick control and feedback over most variables without having to regenerate the material.
[Read More]
Set spline point rotation in UE4 blueprints
Skip to the bottom if you just want the c++ code to use.
Originally written for 4.9. Updated 2016-09-05 for 4.13 (also maybe .10, .11 and .12) code changes.
After following the great tutorials on using splines and spline meshes by DokipenTechTutorials I had a very useable spline_path object, but wanted to extend it a little further. I re-implemented some existing blueprints I was using elsewhere and created options that let me auto-height and auto-pitch start, middle and end points to follow the shape of the ground or object underneath the spline.
[Read More]