August 20, 2020
One of the most basic things that you can do in a PC game is move your cursor. People have been adding custom cursors to games to add flavor for decades.
Want to show that something can be grabbed? Make a hand grab cursor. Want to show that something can be opened? Make an unlock cursor. You get the picture. However, when it comes time to add these to your Unreal Engine 4 game, the path can be a bit bumpy.
Unreal Engine 4 has its roots in first-person shooter games, and that influence shows in which feature sets are fleshed out and which are a bit lackluster. Hardware cursor is one of those "less than complete" sections.
As of 4.25, Unreal Engine 4 allows you to override the standard operating system cursors (text beam, arrow, grab, etc.) through Blueprints, but it hides a special Custom option which allows you to override your own custom cursors. This means that you are limited to overriding 13 cursors in Blueprint. This is also a problem because you may want to use the standard cursors at some point.
Unreal Engine 4 also allows you to overlay software cursors, which are basically Widgets, in place of hardware cursors. Here, again, Unreal Engine 4 shows its FPS roots. In an FPS, the cursor is fixed to the center of the screen and moves very little, if at all, and so software cursors are sufficient. But in other genres like MOBAs, your cursor needs to hyper-responsive, and software cursors lag under these circumstances.
Cursory solves these problems in two ways. First, Cursory allows you to define and tag an arbitrary (read: infinite) number of hardware cursors in Editor. These definitions do not override standard cursors but instead supplement them. Second, Cursory allows you to swap been standard and custom cursors at runtime, through Blueprints, from anywhere: player controllers, widgets, actors, levels, etc.
Together, this functionality makes using hardware cursors a pleasant and enjoyable experience.