Solid collision filtering is a really useful feature in Construct 3, but it’s not very well documented.
Continue reading “How to use solid collision filtering with Tile movement in Construct 3”Finally a sprite sheet recoloring process that works
I have been searching for a good workflow for testing out different color palettes for existing video game designs.
I have finally found a relatively pain free method of testing different color palettes and applying them to entire games. I will be making a video tutorial about this in the future, but before I get to that, I thought I would already explain the basics of the workflow.
Continue reading “Finally a sprite sheet recoloring process that works”How to do 3D-projection mapping with Blender
Written version:
Continue reading “How to do 3D-projection mapping with Blender”I tested several Word Cloud generators online, this one was the best
I tested many different options for creating wordart/wordclouds online. Some of them worked well but then exporting wasn’t free. Others were a bit too simple with not much to customize. But this one is both free and it has plenty of handy customizations available: https://www.wordclouds.com/
Convert lines of text to an array format
Sometimes you have a file with tens or hundreds of lines of text and you need to wrap each line with double quotes and a comma so that it can be easily put inside a javascript array. This can happen for example if your data is rows in a spreadsheet. Here’s how you can go from a list of lines to a quoted, comma separated list:
Continue reading “Convert lines of text to an array format”Basics of Using Cryptomatte in Blender 2.93
In the buttons area (on the right side of the interface), select the “View layer properties” tab.
Under “cryptomatte” turn on “object”, “material” or “asset”. I like “asset” since it let’s me select entire rigs that consist of several parts.
Go to the “compositing” workspace.
Turn on “use nodes”.
Add a viewer node with shift+a –> output –> viewer.
Add the cryptomatte node from Matte –> Cryptomatte.
Connect the image output from the render layers node to the image input of the Cryptomatte node. Connect the “pick” output from the Cryptomatte node to the image input of the viewer node. Render the scene (keyboard shortcut F12).
You should now see different matte colors that identify different assets in your render layer. Use the + button to access the eyedropper tool and select as many assets as you need for the matte you are building.
To see the actual matte, you can plug the “matte” output from the Cryptomatte node to the viewer.
Now you have a matte that you can use in various way when you are compositing. As a simple example, you could color correct the matted area by combining two copies of the input image with the “AlphaOver” node while using the matte as the factor. Then simply drop a color correction node like RGB curves between the bottom image connection.
How to get site by day report in Adsense
The Adsense report system can be a bit confusing at times. I decided to write these instructions after struggling to display daily earnings information for just a single site in Adsense.
The easiest way I found was this:
Select the “entire account by day” report type.
Go to the “search or filter your data” input box and choose “site”.
Choose the site you want to see reported. Hit apply.
Now you should see a daily breakdown for just a single site.
How to keep using port 10080 after many browsers block it as an unsafe port
If you have been doing web development using port 10080 you might have run into some issues recently since many browsers including Chrome and Firefox have decided to add that port to their blocked ports list.
I use a tool called InstantWP for WordPress development and it’s using port 10080 for http by default.
I first researched the option to change the ports IWP is using. It seems like it could be done from the config file which you can open from the “Advanced” tab by clicking “Edit Config File”. In the file that opens you should see a setting called PortOffset. I tried to change that but couldn’t get it to work even after trying many different numbers for the port offset.
I also tried to add a flag into Chrome’s startup parameters by right-clicking the Chrome icon and choosing properties. Then I replaced the value under “target” with the following string:
“C:\Program Files (x86)\Google\Chrome\Application\chrome.exe” –explicitly-allowed-ports=10080
However that didn’t seem to fix the situation in my case. I still got the same “unsafe port” error from Chrome.
What finally helped was switching to Firefox and performing these steps:
- Type about:config to the address bar and click on the “accept the risk and continue” button.
Then paste in this string to the search bar:
network.security.ports.banned.override
Choose “string” as the type (I know, number would seem more logical), click on the + button and enter the port number you want to allow (in my case 10080).
Now you should be able to access applications via that port!
Full screen preview for second monitor in DaVinci Resolve
Most video editors have at least two monitors these days. If you want to see the footage your editing fullscreen on your second monitor while having the timeline and the rest of the panels on the other monitor, here are the steps for doing that (Edit: note that this feature requires the Studio version of Resolve):
- Make sure Workspace->dual screen is set to “off” (I know, sounds a bit counter-intuitive)
- Go to Workspace->video clean feed and select your monitor from there.
Increment integer value in a database field using WPDB
Sometimes you need to update values incrementally in your WordPress database. You might for example have an upvote feature to which you automatically add points in an incremental fashion.
It was surprisingly hard to find examples of how to do this using Wpdb. But here’s an example of doing just that:
/* Have to use wpdb->query instead of wpdb->update because the latter assumes strings */
$results = $wpdb->query($wpdb->prepare("UPDATE foodsenglish SET popularity = popularity + 1 WHERE dbID = %d", $foodIdToSendThePointFor), ARRAY_A);