構造体からDataTableを作った際に、Text型の値が改行されず困ったことがありました。
構造体の設定をチェック
構造体にText型を設定した場合、複数行テキストという項目があります。
ここにチェックを入れれば、DataTableに複数行対応のテキストを格納できます。
改行はShift + Enter。
構造体からDataTableを作った際に、Text型の値が改行されず困ったことがありました。
構造体にText型を設定した場合、複数行テキストという項目があります。
ここにチェックを入れれば、DataTableに複数行対応のテキストを格納できます。
改行はShift + Enter。
Generate Abstract Class
にチェックが入っているとD&Dでアクターをレベルに配置できなくなります。
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が問題を起こしていることも考慮に入れてみます。
ここからログファイルが格納されているディレクトリに移動し、ログファイルを開いてみると、
LogLinker: Warning: [AssetLog] xxx.uasset: Asset has been saved with empty engine version. The asset will be loaded but may be incompatible.
と表記されている箇所がありました。関係あるかはわかりません。
Assertion failed: Linker
とLogLinker
って似てるなぁぐらいの安易な思い付きです。
ただ、 xxx.uasset
はWidgetブループリントで参照されています。WidgetBPが問題を起こしていたケースがフォーラムにもあったようなので、調べたいですが、エディタが立ち上がりません。
こちらを参考にContentフォルダの中身を新規プロジェクトにコピペして、新規プロジェクト経由でエディタが立ち上がる状態にしておきます。
xxx.uasset
を参照しているWidgetBPが2つあり、1つは開けましたが、もう1つを開こうとしたらエディタが落ちました。
怪しいです。
xxx.uasset
が問題というよりは、xxx.uasset
を参照しているWidgetBPの1つが壊れていたため、警告がでていたのかな?と推測してみたり。
その後、フォルダから直接、問題のWidgetBPを削除したら開けるようになりました。
今回はたまたまうまくいったようです。
レベル(World型)の参照を変数で持ちたい場合に迷ったのでメモ。
BP_FirstPersonCharacter
内のBeginPlayでSet Input Mode Game And UI
ノードを使用します。これで、ゲーム起動後すぐに Input Mode が変更されます。
Set Input Mode Game And UI
ノードを使用後、以下のようなログが表示されます。
CaptureDuringMouseDownはマウスクリック中にのみマウスの動きを認識してくれるようです。
試してみると、BP_FirstPersonCharacter
の視点移動はマウスクリック中しかできなくなりました。
Set Input Mode Game And UI
ノードの直後にSet Viewport Mouse Capture Mode
ノードを使用して、常に、マウスキャプチャーされるようにしてみました。
BP_FirstPersonCharacter
の視点移動はマウスクリックをせずとも可能になりました。
以下の記事でも触れていますが、ShowMouseCursor
をOnにした状態だと、マウスによる視点移動入力はマウスクリック中にしか反応しませんでした。
make-study.hatenablog.com
UIにフォーカスされている場合、InputActionを受け付けない問題に遭遇しました。
Widgetをクリックしたり、Set Input Mode Game And UI
でIn Widget to Focus
にWidgetを設定することでUIにフォーカスさせることができますが、この状態だとInputActionが発動しないようです。
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
ノードを使用したりすることで、画面を一度クリックしなきゃいけない問題は防げたりします。
プロジェクト設定等から.iniファイルをエクスポートできますが、エクスポートしても指定先のフォルダに表示されませんでした。
エディタ実行中は表示されないみたいです。エディタを閉じると表示されます。