位置はボタンの下部かつ中央にした(Fig5)。(ゲームで使用するフォントの選び方は課題。手順3:ブループリントでメインメニューの表示・非表示を実装ここからブループリント(ノード)を触っていく。Playノードを使うが、今回は特定のキーでメインメニューを表示してほしいのでキーボードイベントノードを使う(※2)。(※2)日本語環境だと検索欄に「keyboard」と入力してもヒットしなかった。カタカナで「キーボード」と入力するとヒットする(Fig6)。Viewportノードで画面に表示されるようになる。Parentノードを使うが、これはウィジェットを削除しているワケではないようで、メモリ上には残るらしい。消えている状態で、CreateWidgetするのは問題ないです。中の変数は初期化されます。危険なのは、Viewportに乗っている状態(消えていない状態)でCreateWidgetすること。CreateWidgetするたびに新しく生成されてしまいます。古い方は触れなくなるので画面に残り続けることになります。みつまめ杏仁また、ボタンに画像を使用することを考慮した場合など、ハード参照だと処理性能の低下を招くという知識を耳にした。RemoveFromParentでWidgetを削除した後にGCを実行したとしても、ハードリファレンスされたWidgetがある場合はまだ再利用される可能性があるため(オブジェクトが完全に切り離されていない状態)GCの対象とはなりません。これはWidget(Slate)の既定動作であり、親Widgetが完全に削除されたり、OpenLevelなどによるシーンの移動が発生するまではリソースは開放されません。Viewportを分けて実装してみた。Widgetノードをつなぐ。Widgetノードは作成したウィジェットの名前をクラスに指定する。ウィジェットの表示・非表示を別のフローで実行するためにウィジェットを変数化(?)する。Valueのピンの上で右クリックすると「変数へ昇格」が実行できる(※3)。これでSetノードが接続される(Fig7)(Fig8)。(※3)この方法に気づくまで30分かかった。Setノードは検索にヒットせず、読んでいた解説にも書かれていなかったから。(実はノードのドキュメントには書かれていたりする。右も左も分からない最初のうちは読んでいる解説をふた周りは優しくしてくれないとこうやってつまづく。使用しても、変数の作成が可能です。オプションを選択します。メインメニューを作成するノードメニューを表示・非表示にする処理はキーボードイベントから始まり、トグルスイッチのようにONとOFFを交互に繰り返すようにした。Parentノードでメニューを閉じるようになる。これらのノードには対象(ターゲット)が必要なので、変数化したウィジェットとワイヤーでそれぞれ接続する。キーボード操作を考慮してメニューを表示した際にはマウスカーソルも表示し、メニューを閉じた際はマウスカーソルを消すようにしたい。Corsorがヒットするので接続する。カーソルを表示する場合はチェックボックスをONにし、一連の処理をワイヤーで接続する(Fig9)。メインメニューを表示・非表示にするノードこれでプレビューを実行すると、Homeキーを押すたびに見た目のみのウィジェットが出たり消えたりする(Fig10)。アニメーションを作っていないので、本当に出たり消えたりするだけ。Panelを使ったメニューの作成ができた。Engineが警告を出してきた(Fig11)。ウィジェットが作成済みというメッセージ課題(未実装)メニューの遷移(未実装)メニューを開いた直後の状態(初期値)は左上のボタンを選択状態(ハイライト)にする(未実装)ボタンに画像(マテリアル?)を貼る(未実装)メニューが表示される際のアニメーション(不明)適切なゲームモード。イラストの塗りが分からん。【Ubuntu】PCのリアとフロントから音を同時に出力する方法【alsamixer】プロフィールchromitz(くろみつ)「自分がつまづいたところは、他の誰かもつまづくだろう。困っている人を助けるために解決策を発信したい」というスタンスでブログを始めました。うつ経験者で、アダルトチルドレン。「動けない完璧主義」を抱えて生きてます。