2.5K Views
January 07, 25
スライド概要
Unreal Engine Meetup in Osaka Vol.03にあたり京都コンピュータ学院 4回生 服部様が作成したスライドです。
https://indie-us-games.connpass.com/event/332960/
株式会社Indie-us GamesのDocswell公式アカウントです。
UE5 ツール制作のすゝめ
おしながき ・自己紹介 ・Editor Utility Widget ってなんぞ ・C++でさらに便利に
自己紹介 服部綜太(はっとり そうた) 京都コンピュータ学院 ゲーム学科の4回生。 ゲームプログラマとして勉強中 (2025年3月卒業予定)
自己紹介 服部綜太(はっとり そうた) 京都コンピュータ学院 ゲーム学科の4回生。 ゲームプログラマとして勉強中 (2025年3月卒業予定) 作業ゲー愛好家。 先日CoocieClickerのプレイ時間が 20000時間を超えました。 クッキーは、いいぞ。
お伝えしたいこと ツール制作の時間を惜しんではいけない ツール制作時間 < デバッグ所要時間 となることもしばしば… 制作人数が少ないほどツール制作の費用(時間)対効果は高くなる
Editor Utility Widget とは (知らない方向け) 普段利用しているUser Widget と 同じ感覚でエディター用 ウィンドウを作成することが できるツール 専用の関数からアセットやレベル 上のアクター等にアクセスする こともでき、エディターの拡張が 簡単に行える
Editor Utility Widget 利用例① シューティングゲーム制作のテスト用レベル テストしたい要素を細かく変更できるように したいが、詳細タブからでは分かりづらい上、 内容によってアクターを選択し直したりと 手間がかかる…
Editor Utility Widget 利用例① EditorUtilityWidgetを利用することで、 必要な設定を一か所から変更可能 ウィンドウの配置やボタンレイアウトも 自由自在
実装例① デザイナー部分 コンボボックスやチェックボックスなど、 使用しているパーツは通常のウィジェットと 同じ スクロールボックスにすることでウィンドウ の縮小にも対応
実装例① チェックボックスから選択状況に応じた Bool値を取得し、設定内容を反映 インターフェースで汎用化したり タグで絞り込みしても◎
実装例① GameModeやプレイヤーなど、 ビューポートにないアクターには Save Gameを使って間接的にアクセスする
Editor Utility Widget 利用例② StringTableのID検索にも有用 MultiLineEditableTextを使用しているので このままコピペで使うことができる
ステマ宣伝 カスタマイズ×弾幕×スコアアタック! 縦スクロールSTG「DANTALION」鋭意制作中! 詳細はコチラ
ツール制作にC++を使うメリット BPに公開されていないクラスや関数が使える 学習コストは高いが、身に付ければ より汎用性の高いツールを作ることができる!
C++ 利用例 ランタイム中にスクリーンショットを 撮影する一般的な方法 ただしこの方法ではUIを含めた 撮影はできない…
C++ 実装例 FScreenShotRequestはC++からしか 利用できない構造体 撮影リクエスト時にUIを含めるかどうかを 設定できる(真ん中の引数)
C++ 実装例 UIを含めた撮影に成功! 同じ名前で複数枚撮影すると上書きされて しまうので、タイムスタンプを名前に 入れるなどの工夫は必要
C++応用編 ビルドしたゲームで値を変更できるように してみる BPでもJsonUtility等を使えば実現できるが、 今回はスプレッドシートから変更を行う
C++応用編 HTTP通信を行うクラス UOnlineBlueprintCallProxyBaseクラスを 継承することで、通信処理を非同期で行う ことができる
C++応用編 FEmptyOnlineDelegateクラスを メンバーにすることで、成功時や失敗時など に処理を分岐させることができる
C++応用編 スプレッドシートから送られる文字列は 二重配列のJsonオブジェクトになっている ため、パーサークラスを作成 データの方向や構造に応じてパース方法も 変更できるように
C++応用編 あとはブループリントに配置するだけ リロードできる仕組みを作れば ランタイム中やパッケージ後のデータでも 値の更新が行える
プラグインにまとめる 完成品をプラグインにすることで、 他プロジェクトへの流用が 容易に行える 汎用的なツールであるほど その恩恵は絶大
おわりに C++応用編の内容をプラグインにまとめてみました こちらからダウンロードできます↓ ご清聴ありがとうございました!