あっぷあっぷブログ

UnrealEngine(ゲーム用途)関連の備忘録です。

【UE5】DataTableに設定したTextを改行させる

構造体からDataTableを作った際に、Text型の値が改行されず困ったことがありました。

構造体の設定をチェック

構造体にText型を設定した場合、複数行テキストという項目があります。
ここにチェックを入れれば、DataTableに複数行対応のテキストを格納できます。
改行はShift + Enter。

【UE5】ある日エディタが起動しなくなった

今回の原因

WidgetBPが壊れていました。

エディタ起動と同時にクラッシュ

エディタ起動と同時にCrashRepoterが表示され、

Assertion failed: Linker [File:D:\build\++UE5\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectGlobals.cpp] [Line: 2152]

とあり、よくわかりません。

似た事例

forums.unrealengine.com ここでは、Widgetブループリントで問題が起きていた方の投稿がありました。
Widgetが問題を起こしていることも考慮に入れてみます。

ログファイルを開く

Crash Reporter
ここからログファイルが格納されているディレクトリに移動し、ログファイルを開いてみると、

LogLinker: Warning: [AssetLog] xxx.uasset: Asset has been saved with empty engine version. The asset will be loaded but may be incompatible.

と表記されている箇所がありました。関係あるかはわかりません。
Assertion failed: LinkerLogLinkerって似てるなぁぐらいの安易な思い付きです。
ただ、 xxx.uassetWidgetブループリントで参照されています。WidgetBPが問題を起こしていたケースがフォーラムにもあったようなので、調べたいですが、エディタが立ち上がりません。

新規プロジェクトで開く

qiita.com

こちらを参考にContentフォルダの中身を新規プロジェクトにコピペして、新規プロジェクト経由でエディタが立ち上がる状態にしておきます。 xxx.uassetを参照しているWidgetBPが2つあり、1つは開けましたが、もう1つを開こうとしたらエディタが落ちました。

怪しいです。

xxx.uassetが問題というよりは、xxx.uassetを参照しているWidgetBPの1つが壊れていたため、警告がでていたのかな?と推測してみたり。

解決?

その後、フォルダから直接、問題のWidgetBPを削除したら開けるようになりました。
今回はたまたまうまくいったようです。

【UE5】変数を削除した後のコンパイルでエディターがクラッシュする場合

Map変数を削除した後、コンパイルしたらエディタが落ちる現象に遭遇しました。
厄介なのは、エディタを再起動しても問題の変数の削除を行うとこの現象が起きてしまうことです。

環境

UE5.3.2

変数名の変更で直った?

問題の変数の名前を変更してみました。コンパイルしてもクラッシュしませんでした。
一応開いたBPのタブを閉じたり、再起動したりしてから問題の変数を削除し、コンパイルしてみたところ無事エディターのクラッシュを回避できたようです。

フォーラムで似たような問題についての言及

forums.unrealengine.com

【UE5】Set Input Mode Game And UI で遭遇した問題

FirstPersonテンプレートでの確認

BP_FirstPersonCharacter内のBeginPlayでSet Input Mode Game And UIノードを使用します。これで、ゲーム起動後すぐに Input Mode が変更されます。

Set Input Mode Game And UIで発生する問題

MouseCaptureModeが変更される

Set Input Mode Game And UIノードを使用後、以下のようなログが表示されます。

CaptureDuringMouseDownというものに変更されている?

CaptureDuringMouseDownはマウスクリック中にのみマウスの動きを認識してくれるようです。 試してみると、BP_FirstPersonCharacterの視点移動はマウスクリック中しかできなくなりました。

MouseCaptureModeを変更する

Set Input Mode Game And UIノードの直後にSet Viewport Mouse Capture Modeノードを使用して、常に、マウスキャプチャーされるようにしてみました。
BP_FirstPersonCharacterの視点移動はマウスクリックをせずとも可能になりました。

ShowMouseCursorをオンにしてた場合は?

以下の記事でも触れていますが、ShowMouseCursorをOnにした状態だと、マウスによる視点移動入力はマウスクリック中にしか反応しませんでした。 make-study.hatenablog.com

UIにフォーカス時、InputActionが発動しない?

UIにフォーカスされている場合、InputActionを受け付けない問題に遭遇しました。
Widgetをクリックしたり、Set Input Mode Game And UIIn Widget to FocusWidgetを設定することでUIにフォーカスさせることができますが、この状態だとInputActionが発動しないようです。

UIへのフォーカスを外す

Set Focus to Game Viewportノードを使用することでUIへのフォーカスを外すことが可能です。 これにより、InputActionが呼ばれるようになりました。

最初にビューポート画面を一度クリックしないといけない問題

※ゲーム起動後すぐにSet Input Mode Game And UIを使用していた場合のお話です。
ゲームをビューポート上でプレイする場合、最初にマウスをビューポート画面でクリックしないとマウスやキーボードの入力を受け取ってくれません。スタンドアローンでプレイする場合は、最初にクリックしないといけないという問題は起きません。なのであまり気にしなくていいのかもしれません。

ちなみにSet Input Mode Game Onlyを使っている場合、この問題は起きません。

どうしても気になる場合

Set Input Mode Game And UIノードのIn Widget to Focusを指定したり、Set Focus to Game Viewportノードを使用したりすることで、画面を一度クリックしなきゃいけない問題は防げたりします。

【UE5】エクスポートした.iniファイルが表示されない

プロジェクト設定等から.iniファイルをエクスポートできますが、エクスポートしても指定先のフォルダに表示されませんでした。

エディタ実行中は表示されないみたい

エディタ実行中は表示されないみたいです。エディタを閉じると表示されます。