投稿記事

2023年 08月の記事 (3)

わんころのUE5勉強会 2023/08/24 23:25

【UE5】PIE起動時にゲームのウインドウサイズが大きくなっていく

皆様、こんばんは!

多分 X(旧Twitter)で見た記憶はあったのですが見つけられなかったので備忘録。


Play In Editor(PIE)で実行すると別ウインドウでゲーム画面を確認することできます。しかし、UE5 にて PIE> 閉じる> PIE> 閉じる...と繰り返すだけでウインドウサイズが大きくなっていくという症状があります。

画面の比率が意図せず変わってしまうので、場合によっては面倒な症状になります。


Unreal Engine Issues にも上がっており、UE5.4 で修正予定のようですがまだ当分先になりそうですね...
URL:New Viewport Resolution setting increases every time a new PIE window is launched




Unreal Engine Issues の通りなのですが、
「エディタの環境設定」> レベルエディタの中にある「プレイ」をクリックし、"Game Viewport Settings" にある "常に最初のビューポートウインドウを画面の中央に配置" のチェックが外れているとこの症状が発生します。

PIE 時に必ず画面中央に配置された状態になるので使いにくいかもしれませんが、チェックを入れておくとでこの症状を回避できます。

C++ を使うと修正出来そうですが、詳しくないためよく分かりません...

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

わんころのUE5勉強会 2023/08/21 20:14

【UE5】Add to Viewport の ZOrder にハマったというお話

皆様、こんばんは!

先日から UI(Widget)周りを触っているのですが、タイトル通り「Add to Viewport」の ZOrder でハマってた時のお話になります。


「Add to Viewport」は、「Create Widget(ウィジェットを作成)」で指定した Widget を画面上に表示する時に利用する関数です。


今回ハマった問題ですが、表示した Widget のボタンが昨日まで反応してたのに何かを実装してから反応しなくなったというものでした。
しかも別 Widget で作成したインベントリの方も同じ症状が発生しました。
(ButtonWidget の On Hovered や On Clicked が効かない症状です)





その「Add to Viewport」ですが、関数の下にある▽をクリックして展開すると、ZOrder という引数が表示されます。

ZOrder は描画順(優先順位)で、数値が大きい程手前に描画されます。
デフォルトで ZOrder は 0 に指定されており、特に意識しなければ後から「Add to Viewport」したものが手前に描画されていきます。


例えば WidgetA を作成し、画面の真ん中にボタンを配置しただけの Widget を作成します。

更に WidgetB を作成し、Border を画面全体に入れておきます。

「CreateWidget」で WidgetA、WidgetB を作成しておき、WidgetA→ WidgetB の順で「Add to Viewport」をすると WidgetA のボタンは反応しません。

後で「Add to Viewport」した WidgetB(画面全体の Border) が手前に来ているため、後ろのボタンが触れないようになっているということになります。

そのため、WidgetA を後で「Add to Viewport」するか、WidgetA の ZOrder を WidgetB より高くしておけばこの問題は解決です。


なんだそれだけ...なことなんですが、実はもう一個気づけなかった理由があります。

私のプロジェクトで一部の Widget のみ「Add to Viewport」した後、「Set Visibility」を使って Visible/Collapsed で表示を切り替えていたものがあったんですが、Collapsed になっている Widget が悪さをしているということが分かりました。
(この Widget が画面大半を占める Border を配置しているものでした)


Collapsed で非表示にしていたので、それが邪魔をしているのに暫く気づけませんでした。「Remove from Parent」をしなければ画面上に表示されていなくても ZOrder の影響を受けるということを知れて大変勉強になりました。


この問題に遭遇し、今まで他の Widget に干渉するような画面配置をしたことがなかったんだと思いました。
たまたま被らないような配置になってたということになりますね...

それではまた!

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

わんころのUE5勉強会 2023/08/17 21:44

自作ゲームの進捗18:時計のモデル作成とバグの修正などなど

皆様、こんばんは!

前回の更新からしばらく空いていましたが、少しずつ裏では進んでおります。規模を大幅縮小したためゲーム本編だけなら6-7割くらいは完成したんじゃないかと思います。

謎解き部分の連動や、それに伴うイベント周り、特に UI 周りが整えばいよいよ大詰めになってきそうです。

無料公開を予定しているのでさっさと作って公開したいという気持ちもあるのですが、最近手を入れ始めた UI 周りの仕様が特殊なのか馴染めない所があり苦戦しております。


そして何か進捗を出そうと思ってたんですが、脱出ゲームを作ってる手前、こんなの出てきます!を作成するたびに出してるとネタバレしてる感も出てしまい、ちょっと出しづらいな...と思いました。
折角なんで出すんですけどね...



以前の進捗で、時計の仕掛けをと思い Megascans から持ってきたモデルと針っぽい何かをモデリングモードで作成し、これを時計だと言い張ってたんですが、時計のモデルはやっぱり欲しいと思い Blender で作成してきました。



左が Blender で作成した素のモデルで、右側が UE5 に持ってきてマテリアルだけ変更したものです。
結構見た目の印象も変わり、これなら胸を張って時計と言えます!

Blender でモディファイアの配列を使ってオブジェクトを均等に円形配置出来るようになりました。



針の回転部分などは以前作ってたのでモデルを差し替えるだけでした。また、画面中央に点を置いてインタラクト可能な物に近づくと目玉のアイコンに変わるようにしました。

Collision に入ったらどこを向いていても目玉が出て不自然なので、対象のオブジェクトとの内積を取ってキャラの向きがある程度オブジェクトへ向いてる時に処理するように変更するか、Collison 内で Tick を有効にして LineTrace などでヒットした時に出すとかしようとは思ってます。


次はオプション画面あたりの実装を整えようと思ってます。
WidgetBP と少しくらいは仲良くなりたい...

それではまた!

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

月別アーカイブ

記事のタグから探す

限定特典から探す

記事を検索