読者です 読者をやめる 読者になる 読者になる

妹でもわかるUnrealEngine4

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

ALT+ENTERでの画面拡大は、Set Input Mode UI Only状態では効かない

入力 仕様・不具合 UE4.13

「そういえば、ブログには書いてなかったけど、ALT+Enterキーでの画面拡大が、何故か妹の作ったやつでは効かなかったという問題があったんだけど……」

妹「あった。それで録画の時に大変苦労した」

f:id:una_unagi:20161002231954p:plain

「あれはプロジェクト設定で、AltEnterTogglesScreenというところにチェックを入れると有効になる。ただ標準だとチェックされてるし、折りたたんであるから、わざわざ解除しなければそのままになってる」

妹「特に設定した覚えはないし、チェックもついてるね」

「それで調査したところ、ゲーム中だとフルスクリーンになった。タイトル画面だけ駄目だった。どうもSetInputModeUIOnlyノードが原因らしい。これを使ってると内部のAlt+Enter入力チェックがスキップされちゃうらしい」

f:id:una_unagi:20161002231114p:plain

妹「そういわれてもなあ。これ使わないと、クリックしないとゲーム画面にフォーカスがいかないみたいだから……」

「とりあえずはゲーム開始してからフルスクリーンにすれば、その後タイトルに戻っても大丈夫ではある」

妹「ウィジェットで入力を受け取るってのは出来ないの?」

「それも出来そうな気がしたんだけど、どうも上手くいかなかった。それで唯一上手くいったのが」

f:id:una_unagi:20161002232658p:plain

「こういう感じに、ウィジェットのボタンとしてフルスクリーンボタンを作って、そこを押したらコンソールコマンドの"FULLSCREEN"を実行する。UE4のソースコードを見た感じだと、ALT+Enterを押した時も内部的にはこのコマンドを使っていたから、ちゃんと同じように動作するはず」

妹「右上の最大化ボタンじゃ駄目なんだよね?」

「しょうがないから録画の時はそうしてただけど、あれだとウィンドウの枠が出ちゃうから、そこを編集で切り取ったり大変だったわけで」

妹「兄のやつはなんで大丈夫だったの?」

「タイトルはウィジェットで作ってたけど、それは見た目だけで、入力は普通にレベルブループリントでやってたからだよ」

妹「あんまり使わない機能だから、わたしが何か変な作り方してるとかじゃないんだったら別にいいけど」

「あとそもそもの問題として、パッケージ化しないとフルスクリーン化は出来ない。Windowsとかのパソコン用で。これはALT+Enterでもコンソールコマンドでも一緒。スマートフォンとかは元からフルスクリーン限定だし」

妹「そういうパッケージ化すると動作が違うやつって困るよね。パッケージ化すると、ウィジェットが消えるはずのとこで消えなかったりするんだけど……」

「それはまた別に調査しないとわかんないね」