UE4.16の新機能で、自作のハードウェアマウスカーソルを出す
https://www.unrealengine.com/ja/blog/unreal-engine-4-16-released
「4.16のリリースノートの日本語版が出てたから見てたんだけど、その中にハードウェアのカーソルのカスタム化っていうのが書いてあって、さっそく試してみたのが上の写真」
妹「このガブ太郎がカーソル?」
「そのガブ太郎がカーソル。前にスタンプ作った時のデータが手近なところにあったから。赤い矢印の方は最近UMGウィジェットとして作ってたやつで、それが残ってる状態」
妹「普通のカーソルは?」
「それはガブ太郎に置き換わってるから出せない」
妹「でも今日のやつはなんか写真が汚いね」
「ハードウェアカーソルにすると、スクリーンショットに映らないというか、妙にちっちゃくなるというか、しょうがないのでスマホでパソコン画面を写真に撮ったんだよ」
「プロジェクト設定の、ユーザーインターフェースのところで設定する。マウスカーソルって元々何種類かあるけど、特に何も設定してなければDefault(矢印)しか使ってないはずだから、これを置き換えればいい。別のを使ってる場合はそっちを設定する」
「説明の通りに、カーソルはpngで作ってcontentsフォルダに入れる。テクスチャアセットとしてじゃなくpngのままフォルダに入れる必要がある」
「pngファイルを追加すると、エディタでこういうメッセージが出る。インポートしないを選ぶ。インポートの方を選んでも、テクスチャアセットが増えるだけだから、それ消せばいいけど、名前が同じアセットがあった場合上書きしちゃうから注意。セーブせずにプロジェクトを閉じれば助かるかも」
妹「ハードウェアカーソルの下に、ソフトウェアカーソルっていうのも書いてあるけど」
「それはなんか……元々あったみたい」
「ここでカーソルに使うウィジェットを指定すれば、別に自分でTickイベントで動かさなくても良かったという。精度もTick式より良さそうだった。Tick式カーソルの方が少し遅れてくる」
妹「ハードウェアカーソルとソフトウェアカーソルがどっちがいいの?」
「両方同時に出せないから、どっちが正確かはわからないし、処理性能についても不明。今のところわかってることとしては」
ハードウェアカーソル
・カーソルに使う絵はpng画像か、そのOSで一般的なカーソル用の形式
・今のところWindows、Mac、Linuxにのみ対応
・画像のどの位置がカーソルの中心点になるのか設定できる(HotSpot)
・ウィンドウの外にも絵が出る
・スクリーンショットに写らない
ソフトウェアカーソル
・カーソルに使う絵はUMGウィジェット
・対応OSは不明
・HotSpotは固定(ウィジェットの中央部分?)
・ウィンドウの外にも絵が出る
・スクリーンショットに写る
Tickイベントでカーソル動かす
・カーソルに使う絵はなんでもいい(たぶんウィジェットが一番簡単)
・本物のカーソルより少し遅れて動く(実用上は多分問題なし)
・ウィンドウの外に絵は出ない。ウィンドウの縁のところで見切れる
・カーソルが画面外に出た後も、画面内にカーソルが残る(対処法はあるかもしれない)
「こんな感じ。多分ハードウェアカーソルが良いから新機能で入れたんだと思うけど、ソフトウェアカーソルも悪くはなかった。あと4.16で同じカーソル種別に対してハードウェアカーソルとソフトウェアカーソルを両方設定すると、ソフトウェアカーソルが優先で、でもウィンドウ端とかでチラッとハードウェアカーソルが見えることがある。どっちか片方にした方がいい」