LoginSignup
3
0

[UE5]マウスカーソルを動かさずに、マウスカーソルの表示状態を切り替える

Last updated at Posted at 2023-12-11

概要

Unreal Engine 5では、マウスカーソルの表示状態を切り替えるために「Show Mouse Cursor」の状態を切り替えます。

image.png

しかし、インプットモード(Input Mode)が「Game And UI」となっているとき、マウスカーソルの表示状態を切り替えるためには「Show Mouse Cursor」の状態を切り替えるだけでは表示状態は変更できず、マウスカーソルを動かす必要があります。
(下の動画は、左上に「Hide MouseCursor」と出た瞬間に「Show Mouse Cursor」をオフにしており、マウスカーソルが消えた瞬間にマウスを動かしています。)



この記事では、下の動画のように、インプットモードが「Game And UI」のときに、マウスカーソルを動かさずに、マウスカーソルの表示状態を切り替える処理を、C++で実装します。



また、Blueprintで、現実のマウスを動かさずにマウスカーソルの表示状態を切り替える処理を実装します。

この記事の主な対象者

  • Unreal EngineのC++初心者の方
  • Blueprint(BP)の作り方の基礎を習得されている、初心者の方

マウスカーソルの表示を切り替える処理の実装(C++)

マウスカーソルを動かさずに、マウスカーソルの表示を切り替えるための処理を書くために、最初にプログラムの「[プロジェクト名].Build.cs」ファイルを開きます。

「[プロジェクト名].Build.cs」ファイルの中に、「PublicDependencyModuleNames.AddRange」と書かれているところがあるので、その項目の中に「"Slate"」を追加します。

addrange_slate.jpg

次に、マウスカーソルの表示非表示を切り替える処理を書きたいC++ファイルを開き、下のような処理を書きます

// コントローラを取得する
TObjectPtr<APlayerController> playerController = UGameplayStatics::GetPlayerController(this, 0);

// マウスカーソルを非表示にする
PlayerController->SetShowMouseCursor(true);
FSlateApplication::Get().OnCursorSet();

(上の処理は、マウスカーソルを非表示にする処理です。マウスカーソルを表示する処理を書きたい場合は、「playerController->SetShowMouseCursor(true)」に変更してください。)

上の処理を書いたら、下の動画ようにマウスカーソルが動くことなく、マウスの表示状態を切り替えることができているかを確認します。

マウスカーソルの表示を切り替える処理の実装(Blueprint)

インプットモードが「Game And UI」となっているとき、Blueprintでは、マウスカーソルを動かさずにマウスカーソルの表示状態を切り替えることはできる方法は、申し訳ないのですが筆者はわかりません。

ですのでBlueprintでは、「Show Mouse Cursor」の状態を切り替えた後に、Blueprintの処理でマウスカーソルの座標を少しだけ動かすようにして、現実のマウスを動かす必要がないようにします。

「Show Mouse Cursor」の状態を切り替える処理のところに、下のようなノードを組みます。

mousepos_movealittle.jpg

上図のノードを組み終えたら、下の動画のように、現実のマウスを動かさずにカーソルの表示状態が切り替わっているか確認します。
(「Show Mouse Cursor」をオフにしたときに左上に「Hide MouseCursor」と表示するようにしており、「Hide MouseCursor」と表示された瞬間に少しだけマウスカーソルが動き、カーソルが消えています。)




以上で今回の記事の内容は終了です。
最後まで読んでいただき、ありがとうございました。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0