投稿記事

UE5の記事 (50)

わんころの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 と少しくらいは仲良くなりたい...

それではまた!

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

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

わんころのUE5勉強会 2023/07/31 21:22

自作ゲームの進捗17:内部的な部分などを修正、追加など

皆様、こんばんは!

1週間ほど前からコロナに罹っておりまして色々終わっておりました。
まだ喉が若干痛かったり、異様な倦怠感を示していますがとりあえず PC で作業したりなど出来るまでは快復したので生存報告も兼ねて。

現在のプロジェクトですが、UE5.0.3 から UE5.1.1 へ移行しました。
現時点では目立った不具合らしきものが出てないので良かったです。
パッケージ化も行い、こちらも大丈夫そうな気配。

まだ移したばかりなので様子を見ながら進めてみます。



YesNoDialogue の作成。
該当BP へのイベント通知周りを少し考えないといけなくなったのですが見た目も結構気に入ってるのでどっかで使おうと思ってます。


UE5.1 に移した理由の一つに Overlay Material で楽をしたかったというのがありまして、選択中の StaticMesh を分かりやすくしたいなと思い早速実装。

SetOverlayMaterial を呼んで指定のメッシュにマテリアル設定するだけでお手軽に使えるので非常にありがたいです。



マテリアルは Opaque/UnLit で設定し、Fresnel ノードを使った簡易的なもので実装。これだけでも選択中というのが分かるのでいいですね~。

後は簡易的なインベントリ画面の作成や、内部的なところをあれこれ追加していきました。

画面で見せれるような場所があまりないので以前とほぼ変わってなさそうに見えますが、内部的な部分はちゃんと使いやすくなっていってます。


先日 UE5.3 Preview1 が公開されてちょっとだけ触ってみました。
UE5.2は殆ど触ってないのにもう UE5.3 が...早いですね~

かなり熱いですし熱中症なども含め、皆様もどうかご自愛下さい!
それではまた!

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

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

わんころのUE5勉強会 2023/07/12 23:30

自作ゲームの進捗16:ダイアルロック解除の仕掛け

皆様、こんばんは!

ここ最近眠気に負けすぎてしまい UE5 を触れてなかったのですが、少しでも取り戻すため作業を再開していました。


今回実装したのがダイアルロックの解除処理です。
以前 YouTube で紹介したことあったんですが、あの時に比べて出来ることも増えたため処理自体は結構スマートになったかなという印象です。

先日スーツケースを Blender で作成したのですが、それと連動する仕掛けも欲しいなと思っていたため、当初は普通の鍵で開けるタイプにしようとしてましたが、ダイヤルロックで解除する方式にしてみました。



キャラの視点からカメラの切り替えに使った「Set View Target with Blend」ですが、このスーツケースの BP に Camera Component(画像の DialLockCamera) を追加し、Camera Component を引数 "New View Target" へは直接繋げませんでした。

この "New View Target" は Actorのオブジェクト参照だったことを今回初めて知りました(Camera Actor 限定だと思ってた)

Camera Component から「Get Owner」を出すことで接続でき、カメラの切り替えが出来ました。かなり便利な関数ですね。

これなら別の Actor へ視点を移したりも結構簡単に出来そうだなと思いました。


そして、当初予定していた2つ3つの謎を解くという目標はほぼ達成しました。後はどうこの謎解きを連動させるかなどを考えていきます。


オプション画面の実装がまだ残っているので、これが結構厄介かもしれないです。

それではまた!

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

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

1 2 3 4 5 6 7

記事のタグから探す

月別アーカイブ

限定特典から探す

記事を検索