質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Unreal Engine

Unreal Engineは、Epic Games社によって開発されたゲームエンジンです。高レベルの移植性を持っており、様々なプラットフォームのゲーム開発が可能。GitHubアカウントを登録すれば無料でダウンロードできます。

UE4

UE4はUnreal Engine(アンリアルエンジン)の第4世代です。 UEは、Epic Gamesより開発されたゲームエンジンです。

Q&A

解決済

1回答

1771閲覧

【一部解決のためタイトル更新】カーソルが離れていないのにOnEndCursorOverイベントが実行される

nstto12

総合スコア18

Unreal Engine

Unreal Engineは、Epic Games社によって開発されたゲームエンジンです。高レベルの移植性を持っており、様々なプラットフォームのゲーム開発が可能。GitHubアカウントを登録すれば無料でダウンロードできます。

UE4

UE4はUnreal Engine(アンリアルエンジン)の第4世代です。 UEは、Epic Gamesより開発されたゲームエンジンです。

0グッド

0クリップ

投稿2021/08/08 10:30

編集2021/08/08 11:20

前提・実現したいこと

UnrealEngine4でブループリントを用いてマウスオーバーイベントを作成しています。
目指す機能としては以下のようなものです
・マウスオーバーで軽く上下動するアニメーションの再生
・マウスオーバーでUIを表示
・マウスオーバー終了でUI非表示

※現時点ではマウスオーバーのイベント呼び出しそのものに問題が発生しているため、単純にPrintで文字を表示するのみです。
BluePrintは現時点で以下のような単純なものです。
イメージ説明

このイベントは、以下のメッシュアクタのイベントです。
イメージ説明

発生している問題・エラーメッセージ

上記のブループリントアクタをレベルに配置して動作を確認したところ、以下の問題が発生しています。

※問題1に関しては自己解決しましたが、ログとして残します。
問題1:カーソルを少しでも動かすとその度にOnBeginCursorOverが実行される
理想:カーソルがアクタに重なったとき1度だけイベントを呼ぶ

問題2:カーソルがアクタ上にある状況でOnEndCursorOverが実行されている
理想:カーソルが離れたときにイベントが呼ばれる

キャプチャツールの関係でカーソルは非表示になってしまっていますが、
「一度のマウスオーバー」+「アクタ上でカーソルを小刻みに操作」で画像のようにイベントが繰り返し実行されている状況です。
イメージ説明

以上の問題について、原因と解決法をご教示いただきたく質問させていただきました。

該当のソースコード

ブループリントで発生している問題のためソースコードはありません。
※ブループリントノードのコピペを試しましたが文字数オーバーで投稿できませんでした。

試したこと

以下フォーラムの回答
https://answers.unrealengine.com/questions/496905/problem-with-onbegincursorover-and-onendcursorover.html
"Set the Skeletal Mesh's Collision to Block the Visibility Trace Response channel."
訳「骨格メッシュの衝突を設定して、可視性トレース応答チャネルをブロックします。」

を実施しましたが問題は解決しませんでした。
イメージ説明

以下のように、一度イベントが実行された後SetEnableMouseOverEventsをオフにすると複数回実行される問題は解決しますが、
カーソルが離れた際のイベントが実行されなくなってしまうため根本的な解決には至りませんでした。

イメージ説明

補足情報(FW/ツールのバージョンなど)

UnrealEngine4のバージョンは4.26.1です。

その後の試行

DoOnceノードでOnBeginCursorOverイベントの複数回の実行は防げそうかなと思い、
以下のように改良しました。
イメージ説明
DoOnceのReset時はCompleteから先が出力されないようなので、
以上のようにつなげて必ずBeginとEndが交互に実行されるようにはなりました。

これにより、カーソルが離れていないのにOnEndCursorOverが実行される問題が解決されれば全体の問題も解決できると考えています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

初歩的というか、しょうもない原因でした。

フレームとPlaneを同じ高さに配置していた関係で、
カーソルを動かす度に衝突判定でON/OFFを繰り返していたようです。

フレーム以外の部分には物理的な判定はないのですが、
カーソルの衝突判定は物理とはまた違う挙動をすることがわかりました。

一見してわからない程度にPlaneのTransformを高く配置することで、
常にカーソルがPlaneに衝突しているという状況を作ることができました。

以上をもって、本件は自己解決とさせていただきます

イメージ説明

投稿2021/08/08 14:49

nstto12

総合スコア18

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問